이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.22 10:23
keepalived는 리눅스 시스템에서 로드 밸런싱과 고가용성을 제공하는 소프트웨어이다. 이는 서버 클러스터 내에서 가상 IP 주소를 관리하고, 서버의 상태를 지속적으로 체크하며, 장애 발생 시 자동으로 백업 서버로 전환하는 장애 조치 기능을 핵심으로 한다.
이 소프트웨어는 VRRP 프로토콜을 구현하여 동작한다. VRRP를 통해 여러 대의 물리적 서버가 하나의 가상 IP 주소를 공유하며, 이 중 한 대가 마스터 역할을 담당하여 실제 서비스를 제공한다. 나머지 서버들은 백업 상태로 대기하다가 마스터 서버에 문제가 발생하면 새로운 마스터로 선출되어 서비스 중단 없이 업무를 이어간다.
keepalived는 2001년에 Alexandre Cassen에 의해 처음 출시되었으며, C 언어로 작성되었다. GNU 일반 공중 사용 허가서 하에 배포되는 오픈 소스 소프트웨어로, 주로 웹 서버 클러스터나 데이터베이스 이중화와 같은 인프라의 안정성을 높이는 데 널리 사용된다.
keepalived의 핵심 기능 중 하나는 가상 IP 주소 관리이다. 이는 실제 네트워크 인터페이스에 물리적으로 할당된 주소가 아닌, 소프트웨어적으로 관리되는 논리적인 IP 주소를 의미한다. keepalived는 VRRP 프로토콜을 기반으로 이 가상 IP를 생성하고, 이를 클러스터 내의 특정 서버에 할당하여 외부에서 접근 가능한 단일 접점을 제공한다.
가상 IP는 클라이언트가 서비스를 요청할 때 목표로 하는 주소로, 실제 서비스는 이 IP를 소유한 서버 뒤에서 처리된다. keepalived는 이 가상 IP의 소유권을 동적으로 관리한다. 정상 작동 중에는 마스터 서버가 가상 IP를 소유하며, 모든 서비스 트래픽을 수신한다. 이를 통해 서비스의 단일 진입점을 유지하면서도, 백엔드 서버의 물리적 변경을 클라이언트에게 노출시키지 않는다.
장애 발생 시 keepalived는 사전에 정의된 규칙에 따라 가상 IP의 소유권을 백업 서버로 이전한다. 이 전환 과정은 매우 빠르게 이루어지며, 네트워크 상에서의 ARP 갱신을 통해 새로운 마스터 서버가 가상 IP에 대한 트래픽을 수신하도록 한다. 결과적으로 서비스의 지속성을 보장하며 다운타임을 최소화하는 데 기여한다.
이러한 가상 IP 관리 메커니즘은 로드 밸런서, 웹 서버, 데이터베이스 서버 등 다양한 애플리케이션 계층의 고가용성 클러스터를 구성하는 데 필수적인 기반이 된다.
keepalived의 핵심 기능 중 하나는 다양한 방법을 통해 서비스와 서버의 상태를 지속적으로 체크하는 것이다. 이 상태 체크 기능은 시스템이 실제로 정상적으로 작동하는지를 확인하여, 단순히 서버가 켜져 있는지 여부를 넘어서는 진정한 고가용성을 보장한다.
상태 체크는 크게 두 가지 주요 방식으로 이루어진다. 첫 번째는 서버 자체의 상태를 확인하는 L3 체크이다. 이는 기본적으로 ICMP 에코 요청(ping)을 사용하여 서버의 네트워크 연결 및 응답 가능 여부를 판단한다. 두 번째는 실제 애플리케이션 서비스의 상태를 확인하는 L4 체크와 L7 체크이다. TCP 또는 UDP 포트에 연결을 시도하거나(L4), HTTP/HTTPS 요청을 보내 특정 응답 코드나 페이지 내용을 검증(L7)하는 방식으로, 웹 서버나 데이터베이스 등의 서비스가 실질적으로 요청을 처리할 수 있는지를 검사한다.
이러한 체크 결과는 keepalived의 장애 조치 결정에 직접적인 영향을 미친다. 상태 체크 스크립트가 실패로 정의된 조건을 감지하면, 해당 서버는 비정상 상태로 판단되고, 사전에 정의된 스크립트를 실행하거나 가상 IP 주소를 포기하도록 신호를 보낸다. 이를 통해 백업 서버로의 신속한 전환이 이루어지며, 사용자는 서비스 중단을 최소화하면서 지속적인 서비스를 이용할 수 있게 된다.
keepalived의 핵심 기능 중 하나는 장애 조치이다. 이는 시스템이나 서비스에 문제가 발생했을 때, 미리 설정된 백업 시스템으로 자동으로 전환하여 서비스의 중단 시간을 최소화하는 과정이다. keepalived는 VRRP 프로토콜을 기반으로 마스터 서버와 백업 서버를 구성하고, 지속적으로 서버의 상태를 체크하여 장애를 감지한다.
장애 조치가 발생하는 조건은 크게 두 가지로 나눌 수 있다. 첫째는 마스터 서버 자체에 물리적 또는 네트워크 장애가 발생하여 VRRP 애드버타이즈먼트 패킷을 더 이상 보내지 못하는 경우이다. 둘째는 keepalived에 구성된 상태 체크 스크립트가 특정 서비스(예: 웹 서버, 데이터베이스)의 정상 작동을 확인하지 못하고 실패를 보고하는 경우이다. 이러한 조건이 감지되면, 백업 서버 중 우선순위가 가장 높은 서버가 새로운 마스터로 승격된다.
이 과정에서 가상 IP 주소가 새 마스터 서버로 이동하게 되며, 이는 ARP 프로토콜을 통해 네트워크에 알려진다. 결과적으로 외부 클라이언트는 거의 인지하지 못한 채 동일한 IP 주소를 통해 계속해서 서비스를 이용할 수 있게 된다. 장애가 해결되어 원래의 마스터 서버가 복구되면, 설정에 따라 자동으로 다시 마스터 역할을 회복하거나 백업 상태로 유지될 수 있다.
이러한 장애 조치 메커니즘은 로드 밸런서, 웹 서버 클러스터, 데이터베이스 이중화 등 다양한 고가용성 시나리오에서 서비스의 연속성을 보장하는 데 필수적이다.
VRRP 프로토콜은 keepalived가 고가용성을 구현하는 핵심 기반이다. VRRP는 가상 라우터 중복 프로토콜의 약자로, 여러 개의 물리적 라우터나 서버를 하나의 가상 라우터로 묶어 단일 실패 지점을 제거하는 표준 네트워크 프로토콜이다. 이 프로토콜은 IETF에서 표준화되었으며, keepalived는 이를 구현하여 리눅스 시스템에서 로드 밸런서나 서비스의 고가용성을 보장한다.
VRRP의 핵심 개념은 가상 IP 주소와 가상 MAC 주소를 관리하는 것이다. 프로토콜을 사용하는 호스트들은 하나의 가상 라우터를 형성하며, 이 그룹 내에서 한 대의 호스트만 마스터 역할을 수행한다. 마스터 호스트는 실제로 가상 IP 주소에 대한 ARP 요청에 응답하고, 해당 주소로 향하는 네트워크 트래픽을 처리한다. 나머지 호스트들은 백업 상태로 대기하며, 마스터에 장애가 발생할 경우를 대비한다.
역할 | 설명 |
|---|---|
마스터 | 가상 IP 주소를 소유하고 실제 트래픽을 처리하는 활성 호스트. |
백업 | 마스터를 모니터링하며 장애 시 마스터 역할을 인수하는 대기 호스트. |
이 프로토콜은 멀티캐스트 통신을 통해 그룹 구성원 간의 상태를 지속적으로 교환한다. 마스터는 정해진 간격으로 VRRP 광고 패킷을 보내 자신이 정상 작동 중임을 알린다. 백업 호스트들은 이 광고 패킷을 수신 대기하며, 일정 시간 동안 패킷을 받지 못하면 마스터에 장애가 발생한 것으로 판단하고 새로운 마스터 선출 과정을 시작한다. 이 과정을 통해 서비스 중단 시간을 최소화할 수 있다.
keepalived는 VRRP 프로토콜을 기반으로 마스터와 백업이라는 두 가지 주요 역할을 정의한다. 이 구조는 하나의 가상 IP 주소를 여러 물리 서버가 공유하며, 언제든지 한 대의 서버만이 해당 IP를 소유하고 트래픽을 처리하도록 보장한다. 마스터 노드는 가상 IP를 실제 네트워크 인터페이스에 바인딩하여 활성 상태로 서비스를 제공하는 반면, 백업 노드는 대기 상태로 유지되며 마스터의 상태를 지속적으로 모니터링한다.
이러한 마스터/백업 구조는 선출 과정을 통해 결정된다. 각 노드는 자신의 우선순위 값을 브로드캐스트하며, 가장 높은 우선순위를 가진 노드가 마스터로 선출된다. 일반적으로 우선순위는 구성 파일에서 명시적으로 설정할 수 있어, 특정 서버를 기본 마스터로 지정하는 것이 가능하다. 모든 노드는 정기적인 VRRP 광고 패킷을 교환하여 자신의 상태와 우선순위를 알린다.
마스터 노드에 장애가 발생하면, 백업 노드들이 광고 패킷 수신이 중단되는 것을 감지한다. 사전에 정의된 타임아웃 시간 내에 마스터의 광고를 받지 못하면, 백업 노드들 중에서 새로운 마스터 선출 과정이 시작된다. 가장 높은 우선순위를 가진 백업 노드가 새로운 마스터로 승격되어, 가상 IP 주소를 인수하고 서비스 제공을 즉시 시작한다. 이 과정은 사용자에게 거의 중단 없이 서비스가 유지되는 것을 보장한다.
이 구조는 여러 백업 노드를 구성하여 이중화의 수준을 높일 수 있다. 하나의 마스터와 여러 개의 백업으로 구성된 클러스터를 만들어, 마스터에 장애가 발생했을 때 여러 후보 중에서 가장 적합한 서버가 서비스를 이어받도록 할 수 있다. 또한, 상태 체크 스크립트와 연동하여 애플리케이션 수준의 장애도 감지하고, 우선순위를 동적으로 조정함으로써 더욱 정교한 장애 조치가 가능해진다.
keepalived는 VRRP 프로토콜을 기반으로 마스터와 백업 노드 간의 상태를 지속적으로 모니터링하며, 사전 정의된 조건에 따라 상태 전환을 자동으로 수행한다. 이 과정은 시스템의 고가용성을 보장하는 핵심 메커니즘이다.
상태 전환은 주로 마스터 노드에 장애가 발생했을 때 이루어진다. keepalived는 정기적으로 헬스 체크를 수행하여 마스터 노드의 서비스 상태를 확인한다. 만약 마스터 노드가 다운되거나 설정된 체크 조건을 만족하지 못하면, 백업 노드 중 우선순위가 가장 높은 노드가 새로운 마스터로 승격된다. 이때 승격된 노드는 가상 IP 주소를 인수하여 서비스의 연속성을 유지한다.
상태 | 설명 |
|---|---|
MASTER | 가상 IP를 소유하고 실제 서비스를 제공하는 주 활성 노드이다. |
BACKUP | 대기 상태로, 마스터의 상태를 모니터링하며 장애 시 승격될 준비를 한다. |
FAULT | 장애 상태로, 헬스 체크 실패 등으로 인해 서비스 제공에서 제외된다. |
장애가 해결된 원 마스터 노드는 다시 클러스터에 합류하게 된다. 설정에 따라, 이 노드는 즉시 마스터 상태로 복귀하거나(선점 모드), 현재의 새 마스터를 그대로 유지한 채 백업 상태로 남을 수 있다. 이러한 상태 전환 로직은 네트워크 트래픽의 단절을 최소화하면서도 서비스의 안정성을 극대화하도록 설계되어 있다.
keepalived는 대부분의 주요 리눅스 배포판의 패키지 관리자를 통해 쉽게 설치할 수 있다. 우분투나 데비안 계열에서는 apt 명령어를, RHEL이나 CentOS, 페도라와 같은 레드햇 계열에서는 yum 또는 dnf 명령어를 사용한다. 설치 후에는 keepalived 서비스를 활성화하고 시작해야 정상적으로 동작한다.
설치가 완료되면 주요 구성 파일인 /etc/keepalived/keepalived.conf를 편집하여 설정을 진행한다. 이 파일은 초기에는 비어있거나 샘플 내용만 포함하고 있으므로, 사용자의 환경에 맞는 가상 IP 주소 관리와 상태 체크 방식을 정의해야 한다. 설정 파일은 글로벌 정의, VRRP 인스턴스 정의, 가상 서버 정의 등의 섹션으로 구성된다.
설정 파일을 작성한 후에는 systemctl 명령어를 사용하여 keepalived 서비스를 재시작하고 상태를 확인해야 한다. 설정 파일에 문법 오류가 있을 경우 서비스가 시작되지 않으므로, keepalived -t 명령어를 통해 설정 파일의 문법 검사를 먼저 수행하는 것이 좋다. 서비스가 정상적으로 실행되면 ip addr 명령어로 가상 IP가 할당되었는지 확인할 수 있다.
패키지 관리자 외에도 소스 코드를 직접 다운로드하여 컴파일 설치하는 방법도 지원한다. 이 방법은 최신 개발 버전을 사용하거나 특별한 컴파일 옵션이 필요할 때 유용하다. 공식 웹사이트에서 소스 코드를 내려받아 configure, make, make install 과정을 거쳐 설치한다.
keepalived의 설정은 주로 /etc/keepalived/keepalived.conf 파일을 통해 이루어진다. 이 파일은 전역 설정, VRRP 인스턴스 설정, 가상 서버 설정 등 크게 세 가지 섹션으로 구성된다.
전역 설정 섹션(global_defs)은 이메일 알림, 라우터 ID, 스크립트 실행 경로 등 keepalived 데몬 자체의 전역적인 동작을 정의한다. VRRP 인스턴스 섹션(vrrp_instance)은 가상 라우터 그룹을 정의하며, 여기서 가상 IP 주소, 상태 체크 스크립트, 인증 방식, 마스터/백업 우선순위 등을 설정한다. 이 설정을 통해 VRRP 프로토콜 기반의 장애 조치 그룹이 구성된다.
가상 서버 섹션(virtual_server)은 실제 로드 밸런싱 규칙을 정의하는 부분이다. 여기서는 가상 IP와 포트, 사용할 스케줄링 알고리즘, 지속성, 프로토콜 등을 지정한다. 그 하위의 실제 서버 블록(real_server)에서 상태 체크 방법과 함께 백엔드 서버의 실제 IP 주소와 포트를 등록한다. 상태 체크는 TCP, HTTP, SSL, MISC 체크 등 다양한 방법으로 구성할 수 있다.
설정 파일은 문법 오류에 민감하므로 keepalived -t 명령어를 사용하여 설정 검증을 수행하는 것이 좋다. 또한, 여러 개의 VRRP 인스턴스와 가상 서버를 정의하여 복잡한 고가용성 아키텍처를 구성하는 것도 가능하다.
가상 서버 구성은 keepalived의 핵심 설정 요소로, 실제 서비스를 제공하는 서버 그룹을 정의하고 이를 가상 IP 주소에 매핑하는 역할을 한다. 이 구성은 keepalived.conf 설정 파일 내 virtual_server 블록을 통해 이루어진다. 각 가상 서버 블록은 하나의 가상 IP 주소와 포트를 지정하며, 해당 주소로 들어오는 트래픽을 처리할 실제 서버들의 목록을 포함한다.
가상 서버 블록 내에서는 real_server 지시어를 사용하여 백엔드 실제 서버들을 정의한다. 각 실제 서버는 고유한 IP 주소와 포트, 그리고 해당 서버의 상태를 확인하는 방법을 명시한다. 상태 체크는 TCP 연결 확인, HTTP/HTTPS 요청 검증, 또는 사용자 정의 스크립트 실행 등 다양한 방식으로 구성할 수 있다. 이를 통해 특정 실제 서버가 정상적으로 서비스를 제공하는지 지속적으로 모니터링한다.
구성 예시는 다음과 같다. 이 예시는 가상 IP 192.168.1.100의 80번 포트로 들어오는 HTTP 트래픽을 두 대의 실제 웹 서버에 분산하는 기본적인 로드 밸런싱 설정을 보여준다.
설정 항목 | 값 | 설명 |
|---|---|---|
가상 IP 주소 | 192.168.1.100 | 외부에서 접근하는 가상 IP 주소 |
프로토콜 및 포트 | TCP 80 | 서비스 포트 (HTTP) |
로드 밸런싱 방법 | rr | 라운드 로빈 스케줄링 알고리즘 사용 |
실제 서버 1 | 10.0.0.1:80 | 첫 번째 백엔드 웹 서버 |
실제 서버 2 | 10.0.0.2:80 | 두 번째 백엔드 웹 서버 |
상태 체크 방식 | TCP_CHECK | 80번 포트로 TCP 연결 시도를 통한 헬스 체크 |
이러한 가상 서버 구성을 통해 관리자는 단일 진입점을 제공하면서도 백엔드 서버 풀의 상태를 관리하고, 장애가 발생한 서버를 자동으로 트래픽 분배 대상에서 제외시킬 수 있다. 이는 로드 밸런서의 고가용성과 서비스 연속성을 보장하는 데 필수적이다.
keepalived는 로드 밸런서 자체의 고가용성을 확보하는 데 핵심적으로 사용된다. 일반적으로 로드 밸런싱을 담당하는 서버는 단일 장애점이 될 수 있기 때문에, keepalived를 이용해 두 대 이상의 로드 밸런서를 이중화 구성한다. 이 경우 한 대는 활성 상태의 마스터 서버로 작동하고, 다른 서버는 대기 상태의 백업 서버로 준비하여 시스템의 지속성을 보장한다.
주요 구성 요소인 가상 IP 주소는 keepalived에 의해 관리되며, 이 IP는 실제 서비스의 진입점 역할을 한다. 마스터 서버가 정상적으로 작동할 때는 이 가상 IP가 마스터 서버의 물리적 네트워크 인터페이스에 바인딩된다. 사용자나 클라이언트의 모든 트래픽은 이 가상 IP를 통해 마스터 로드 밸런서로 유입된 후, 백엔드의 실제 웹 서버 풀로 분산된다.
마스터 서버에 장애가 발생하면 keepalived의 VRRP 프로토콜이 백업 서버에게 장애 사실을 알리고, 백업 서버는 가상 IP를 인수한다. 이 장애 조치 과정은 매우 빠르게 이루어져 서비스 중단 시간을 최소화한다. 결과적으로 클라이언트는 동일한 가상 IP를 사용해 서비스에 계속 접속할 수 있으며, 백엔드의 실제 서버 풀에 대한 로드 밸런싱 기능도 백업 서버가 그대로 이어받아 수행한다.
이러한 구성을 통해 LVS나 HAProxy와 같은 소프트웨어 로드 밸런서를 사용하는 환경에서도 고가용성 클러스터를 쉽게 구현할 수 있다. keepalived는 로드 밸런싱 기능을 직접 제공하기보다는, 로드 밸런서의 가용성을 높이는 인프라 층의 솔루션으로서 역할을 한다.
keepalived는 웹 서버 클러스터의 고가용성을 보장하는 데 널리 사용된다. 여러 대의 웹 서버를 하나의 가상 IP 주소 뒤에 묶어서, 사용자는 항상 하나의 통합된 엔드포인트를 통해 서비스에 접근할 수 있다. 이때 keepalived는 VRRP 프로토콜을 활용하여 마스터 서버와 백업 서버를 선출하고, 마스터 서버에 가상 IP를 부여한다. 사용자의 모든 요청은 이 가상 IP를 통해 현재 활성 상태인 마스터 웹 서버로 전달된다.
주요 웹 서버의 상태를 지속적으로 모니터링하는 것이 keepalived의 핵심 기능이다. 관리자는 HTTP 또는 TCP 상태 체크 스크립트를 구성하여 특정 URL 경로에 접근하거나 특정 포트의 응답을 확인하도록 설정할 수 있다. 만약 마스터 서버에서 웹 서비스 프로세스가 다운되거나 네트워크 연결에 문제가 생기면, keepalived는 이를 감지하고 사전에 정의된 장애 조치 절차를 시작한다.
장애가 발생하면 keepalived는 백업 서버 중 우선순위가 가장 높은 서버를 새로운 마스터로 승격시킨다. 이 과정에서 가상 IP 주소는 기존 마스터 서버에서 새로운 마스터 서버로 이전된다. 이 전환은 매우 빠르게 이루어지기 때문에 사용자 세션의 단절이 최소화되며, 서비스의 무중단 운영이 가능해진다. 이를 통해 아파치 HTTP 서버나 Nginx와 같은 웹 서버로 구성된 클러스터의 신뢰성을 크게 향상시킬 수 있다.
구성 요소 | 역할 |
|---|---|
마스터 노드 | 정상 시 가상 IP를 소유하며 실제 웹 트래픽을 처리 |
백업 노드 | 마스터 노드를 모니터링하며 장애 시 대기에서 활성 상태로 전환 |
가상 IP (VIP) | 클라이언트가 접근하는 단일 IP 주소 |
상태 체크 스크립트 | 웹 서버의 실제 응용 프로그램 상태를 주기적으로 확인 |
keepalived는 데이터베이스 서버의 고가용성을 확보하기 위한 이중화 솔루션으로도 활용된다. 주로 마스터-슬레이브 복제 구조를 가진 MySQL이나 PostgreSQL과 같은 데이터베이스 시스템에서, 마스터 서버에 장애가 발생했을 때 백업 서버로의 자동 전환을 구현하는 데 사용된다. 이를 통해 데이터베이스 서비스의 중단 시간을 최소화하고 연속적인 가용성을 보장할 수 있다.
데이터베이스 이중화 구성에서 keepalived는 VRRP 프로토콜을 통해 하나의 가상 IP 주소를 관리한다. 정상적인 상태에서는 마스터 데이터베이스 서버가 이 가상 IP를 소유하여 모든 애플리케이션의 연결 요청을 처리한다. keepalived는 설정된 스크립트를 주기적으로 실행하여 마스터 서버의 데이터베이스 프로세스 상태나 특정 포트의 응답을 체크한다.
구성 요소 | 역할 |
|---|---|
마스터 노드 | 평상시 가상 IP를 보유, 실제 데이터베이스 서비스 제공 |
백업 노드 | 마스터 노드의 상태를 모니터링, 장애 시 가상 IP 인수 |
가상 IP | 애플리케이션이 연결하는 단일 접점(엔드포인트) |
체크 스크립트가 마스터 서버의 장애를 감지하면, keepalived는 사전에 정의된 우선순위에 따라 백업 서버 중 하나로 가상 IP를 이전한다. 애플리케이션 측에서는 연결하려는 IP 주소를 변경할 필요 없이, 새로운 마스터 서버로 자동 재연결되어 서비스를 지속할 수 있다. 이 방식은 애플리케이션 수준의 변경을 최소화하면서 신속한 장애 조치를 가능하게 한다.
keepalived의 가장 큰 장점은 복잡한 고가용성 클러스터를 비교적 간단한 설정으로 구축할 수 있다는 점이다. 표준화된 VRRP 프로토콜을 기반으로 하여, 별도의 공유 스토리지나 복잡한 클러스터 관리 소프트웨어 없이도 가상 IP 주소를 통한 장애 조치를 구현할 수 있다. 이는 인프라 비용과 운영 복잡성을 크게 줄여준다.
또한, 매우 유연한 상태 체크 기능을 제공한다. 단순한 ICMP 핑 체크부터 특정 TCP/UDP 포트 연결 확인, 그리고 사용자가 직접 작성한 스크립트를 실행하여 애플리케이션 수준의 건강 상태를 판단할 수 있다. 이는 웹 서버, 데이터베이스, 메일 서버 등 다양한 서비스에 맞춤형 고가용성을 적용할 수 있게 한다.
장점 | 설명 |
|---|---|
설치 및 구성의 용이성 | 패키지 관리자를 통한 쉬운 설치와 직관적인 설정 파일 구조를 가진다. |
경량 및 고성능 | C 언어로 작성되어 시스템 자원을 적게 사용하며, 빠른 상태 전환이 가능하다. |
오픈 소스 | GNU GPL 라이선스 하에 무료로 사용, 수정, 배포할 수 있다. |
활발한 커뮤니티 | 장기간 개발되어 공식 문서와 사용자 커뮤니티의 풍부한 자료가 존재한다. |
이러한 특징들 덕분에 keepalived는 리눅스 기반의 로드 밸런서 고가용성 쌍을 구성하거나, 중요 웹 서버 클러스터를 보호하는 데 널리 사용되는 검증된 솔루션이다.
keepalived는 강력한 고가용성 솔루션이지만 몇 가지 단점도 존재한다. 첫째, keepalived는 기본적으로 리눅스 환경에서만 동작한다. 이는 마이크로소프트 윈도우나 유닉스 계열의 다른 운영 체제에서는 네이티브로 사용할 수 없음을 의미하며, 이식성이 제한적이다. 또한, VRRP 프로토콜에 의존하기 때문에 네트워크 환경이 복잡하거나 특정 방화벽 규칙이 설정된 경우 프로토콜 패킷 전달에 문제가 발생할 수 있어 추가적인 네트워크 구성이 필요할 때가 있다.
둘째, 구성과 운영에 대한 복잡성이 단점으로 지적된다. 고가용성 클러스터를 구성하기 위해서는 IP 주소 관리, 상태 체크 스크립트 작성, 장애 조치 정의 등 상당한 수준의 시스템 및 네트워크 지식이 요구된다. 초보자에게는 설정 파일의 문법과 다양한 파라미터를 이해하는 데 진입 장벽이 있을 수 있다. 또한, 장애 발생 시 원인을 분석하고 문제를 해결하는 디버깅 과정도 간단하지 않을 수 있다.
마지막으로, keepalived 자체는 강력한 로드 밸런싱 기능을 제공하지만, 상용 고가용성 제품군에 비해 통합된 관리 도구나 그래픽 사용자 인터페이스가 부족하다. 대부분의 설정과 모니터링이 명령줄 인터페이스와 로그 파일을 통해 이루어지므로, 중앙화된 관리나 대규모 클러스터 운영 시에는 불편함이 따를 수 있다. 따라서 사용자는 이러한 운영상의 제약을 고려하여 도입을 결정해야 한다.