Keepalived의 작동 원리는 TCP/IP 참조 모델의 세 번째, 네 번째 및 다섯 번째 계층 전환 메커니즘에 따라 각 서비스 노드의 상태를 감지하는 것입니다. 서버 노드가 비정상이거나 오작동하는 경우 Keepalived는 장애가 발생한 서버 노드는 클러스터 시스템에서 제거됩니다.
이 튜토리얼의 운영 환경: centos7 시스템, thinkpad t480 컴퓨터.
Keepalived는 차세대 Linux용 경량 고가용성 솔루션입니다. 고가용성(High Availability): 넓은 의미에서는 전체 시스템의 고가용성을 의미하며, 좁은 의미에서는 호스트의 중복성과 인계를 의미합니다.
HeartBeat와 유사한 기능을 구현하며 둘 다 서비스 또는 네트워크의 고가용성을 달성할 수 있지만 차이점이 있습니다. HeartBeat는 다음과 같은 HA 소프트웨어에 필요한 기본 기능을 제공하는 전문적이고 완전한 기능을 갖춘 고가용성 소프트웨어입니다. : 하트비트 감지, 자원 인수, 클러스터 내 서비스 감지, 클러스터 노드의 공유 IP 주소 소유자 이전 등
HeartBeat는 강력하지만 배포 및 사용이 상대적으로 번거롭습니다. HeartBeat에 비해 Keepalived는 HeartBeat만큼 강력하지는 않지만 배포 및 사용이 매우 간단합니다. 완료하려면 구성 파일이 필요합니다.
Keepalived는 원래 LVS용으로 설계되었으며 특히 TCP/IP의 세 번째, 네 번째 및 다섯 번째 계층 전환 메커니즘을 기반으로 각 서비스 노드의 상태를 감지하는 데 사용됩니다. 참조 모델 상태에서 서버 노드가 비정상이거나 작업이 실패하면 Keepalived는 이를 감지하고 클러스터 시스템에서 실패한 서버 노드를 제거합니다. 이러한 모든 작업은 수동으로 완료할 필요가 없습니다. 유일한 목적은 실패한 서비스 노드를 복구하는 것입니다.
나중에 Keepalived에 VRRP 기능이 추가되었습니다. VRRP(VritrualRouterRedundancyProtocol, 가상 라우팅 이중화 프로토콜)의 목적은 정적 라우팅의 단일 실패 지점 문제를 해결하는 것입니다. VRRP를 통해 중단 없이 안정적인 네트워크 운영을 달성할 수 있습니다. Keepalived에는 서버 상태 감지 및 오류 격리 기능이 있고, HAcluster 기능도 있습니다.
상태 확인과 장애 조치는 연결 유지의 두 가지 핵심 기능입니다. 소위 상태 확인은 TCP 3방향 핸드셰이크, ICMP 요청, HTTP 요청, UDP 에코 요청 등을 사용하여 전환이 실패한 동안 로드 밸런서 뒤의 실제 서버(일반적으로 실제 비즈니스를 수행하는 서버)를 유지합니다. 주로 적용 Active 및 Standby 모드로 구성된 로드 밸런서의 경우 VRRP를 사용하여 Active 및 Standby 로드 밸런서의 하트비트를 유지합니다. Active Load Balancer에 문제가 발생하면 대기 로드 밸런서가 해당 서비스를 전달하여 트래픽을 최소화합니다. 손실 및 서비스의 안정성을 제공합니다.
실제 네트워크 환경에서. 호스트 간 통신은 정적 라우팅(기본 게이트웨이)을 구성하여 완료됩니다. 따라서 호스트 간 라우터가 실패하면 통신이 실패하게 됩니다. 따라서 이 통신 모드에서는 라우터가 이 문제를 해결하기 위해 단일 지점 병목 현상이 발생합니다. VRRP 프로토콜이 도입되었습니다.
VRRP 프로토콜은 호스트의 다음 홉 경로에 오류가 발생하면 다른 라우터가 오류가 발생한 라우터를 대체하도록 보장하는 내결함성 활성-대기 모드 프로토콜입니다. VRRP는 네트워크 오류가 발생할 때 장치 전환을 투명하게 수행할 수 있습니다. 호스트 간의 데이터 통신에 영향을 미칩니다.
가상 라우터: 가상 라우터는 VRRP 백업 그룹에 있는 모든 라우터의 집합이며 논리적인 개념이며 실제로 존재하지 않습니다. 백업 그룹 외부에서 백업 그룹의 라우터를 보면 그룹의 모든 라우터가 하나인 것처럼 느껴집니다. 이는 기본 라우터 + 모든 백업 라우터 = 가상 라우터라는 그룹에 속한 것으로 이해할 수 있습니다.
가상 라우터에는 가상 IP 주소와 MAC 주소가 있습니다. 호스트는 가상 라우터를 기본 게이트웨이로 사용합니다. 가상 MAC 주소의 형식은 00-00-5E-00-01-{VRID}입니다. 일반적으로 가상 라우터는 가상 MAC 주소를 사용하여 ARP 요청에 응답합니다. 가상 라우터가 특별히 구성된 경우에만 인터페이스의 실제 MAC 주소에 응답합니다.
메인 라우터(MASTER): 가상 라우터는 가상 IP를 통해 외부 세계에 서비스를 제공하며, 가상 라우터 내에서는 동시에 외부 세계에 서비스를 제공하는 물리적 라우터가 하나만 있습니다. 서비스를 제공하는 것을 마스터 라우터라고 합니다. 일반적으로 마스터는 선출 알고리즘에 의해 생성되며 외부 서비스를 위한 가상 IP를 가지며 ARP 요청, ICMP 데이터 전달 등 다양한 네트워크 기능을 제공합니다.
백업 라우터(BACKUP): 가상 라우터의 다른 물리적 라우터는 외부 가상 IP를 갖지 않으며 외부 네트워크 기능도 제공하지 않습니다. 이러한 라우터는 MASTER의 VRRP 상태 알림 정보만 허용합니다. 기본 라우터에 장애가 발생하면 BACKUP 역할의 백업 라우터가 다시 선택되어 MASTER 역할에 진입하고 외부 서비스를 계속 제공하기 위한 새 기본 라우터가 생성됩니다. 전체 스위치는 사용자에게 완전히 투명합니다.
VRRP 라우터에는 작동 중 세 가지 상태가 있습니다.
1. 초기화 상태: 시스템이 시작된 후 초기화로 들어갑니다.
2. 마스터 상태
3. 백업 상태
일반적으로 메인 라우터는 마스터 상태이고, 백업 라우터는 백업 상태입니다.
VRRP는 선출 메커니즘을 사용하여 라우터의 상태를 결정합니다.
1. VRRP 그룹의 IP 소유자. 가상 IP 주소가 VRRP 그룹에 있는 VRRP 라우터의 IP 주소와 동일한 경우 이 라우터는 IP 주소의 소유자가 되며 이 라우터는 마스터 라우터로 위치하게 됩니다.
2. 우선순위를 비교하세요. IP 주소 소유자가 없는 경우, 우선 순위 범위는 0~255 입니다. 3. IP 주소를 비교하십시오. IP 주소 소유자가 없고 우선순위가 동일한 경우에는 IP 주소가 큰 쪽이 메인 라우터 역할을 합니다.
아래 그림과 같이 가상 IP는 10.1.1.254입니다. VRRP 그룹에는 IP 주소 소유자가 없습니다. 그런 다음 우선 순위를 비교하면 분명히 RB와 RA의 우선 순위가 RC보다 큽니다. RA와 RB의 IP 주소가 큽니다. 따라서 RB는 그룹의 주요 라우터입니다.
작업 프로세스선점 모드에서 백업 라우터는 VRRP 메시지를 수신하면 자체 우선순위와 메시지의 우선순위를 비교합니다. 광고 메시지의 우선순위보다 높으면 마스터 라우터가 되고, 그렇지 않으면 백업 상태로 유지됩니다.
비선점 모드에서는 마스터 라우터가 실패하지 않는 한 백업의 라우터입니다. 그룹은 항상 마스터 또는 백업 상태로 유지되며, 백업 라우터는 나중에 더 높은 우선순위로 구성되더라도 마스터 라우터가 되지 않습니다.
백업 라우터가 이후 마스터 라우터로부터 VRRP 메시지를 수신하지 못하는 경우; 타이머가 만료되면 마스터 라우터가 더 이상 제대로 작동하지 않는 것으로 간주됩니다. 이때 백업 라우터는 자신을 마스터 라우터로 간주하고 외부로 VRRP 패킷을 보냅니다. 백업 그룹의 라우터는 우선순위에 따라 마스터 라우터를 선택하여 패킷 전달 기능을 맡습니다.
Keepalvied 작동 원리Keepalived는 TCP/IP 참조 모델의 세 번째, 네 번째 및 다섯 번째 계층(물리적 계층, 링크 계층)에서 작동합니다.
네트워크 계층(3): Keepalived는 ICMP 프로토콜을 통해 서버 클러스터의 각 노드에 ICMP 패킷을 보냅니다(Ping의 기능과 다소 유사). 노드가 응답 패킷을 반환하지 않으면 해당 노드가 발생한 것으로 간주됩니다. 실패하면 Keepalived는 노드 실패를 보고하고 서버 클러스터에서 실패한 노드를 제거합니다.
전송 계층(4): Keepalived는 전송 계층에서 TCP 프로토콜의 포트 연결 및 스캐닝 기술을 사용하여 일반 웹 서버의 포트 80과 같이 클러스터 노드의 포트가 정상적인지 여부를 확인합니다. 또는 SSH 서비스 포트 22. Keepalived가 해당 포트 번호에 전송 계층에서 데이터 응답이나 데이터 반환이 없음을 감지하면 해당 포트를 비정상으로 간주한 다음 서버 클러스터에서 해당 포트에 해당하는 노드를 강제로 제거합니다.
애플리케이션 계층(5): Keepalived의 작동 모드는 더욱 포괄적이고 복잡합니다. 예를 들어 Keepalived는 프로그램이나 스크립트를 작성하여 실행할 수 있으며, Keepalived는 다음과 같이 실행됩니다. 매개변수는 다양한 프로그램이나 서비스가 정상적으로 작동하도록 허용하는지 여부를 감지하며, Keepalived의 감지 결과가 사용자 설정과 일치하지 않으면 Keepalived는 해당 서버를 서버 클러스터에서 제거합니다.
Keepalived는 원래 LVS용으로 설계되었습니다. Keepalived는 클러스터 노드의 상태 감지를 실현할 수 있고 IPVS는 로드 밸런싱 기능을 실현할 수 있으므로 Keepalived는 타사 모듈 IPVS의 도움으로 쉽게 구축할 수 있습니다. 로드 밸런싱 시스템. Keepalived의 IPVS 모듈은 구성 가능합니다. 로드 밸런싱 기능이 필요한 경우 Keepalived를 컴파일할 때 로드 밸런싱 기능을 켜거나 컴파일 매개변수를 통해 끌 수 있습니다.
SchedulerI/OMultiplexer는 Keepalived의 모든 내부 작업 요청을 예약하는 I/O 다중화 분산 스케줄러입니다.
Memory Mngt는 메모리 관리 메커니즘이며 이 프레임워크는 메모리에 액세스하는 몇 가지 일반적인 방법을 제공합니다. Plane은 구성 파일을 컴파일하고 구문 분석할 수 있는 keepalived의 제어판입니다.
핵심 구성 요소 이 부분은 주로 5개 부분으로 구성됩니다.
- core: 메인 프로세스의 전역 구성 파일 시작, 유지 관리 및 로드를 담당합니다.
- check: 상태 확인을 담당합니다
- vrrp: vrrp 프로토콜을 구현하는 데 사용됩니다
heartbeat/corosync 등Keealived에서 사용하는 vrrp 가상 라우팅 중복 프로토콜 방법은 호스트 또는 네트워크 서비스를 기반으로 하는 고가용성 방법입니다. Keepalived의 목적은 라우터의 고가용성을 시뮬레이션하는 것입니다. Heartbeat 또는 Corosync는 서비스 고가용성을 구현하는 것입니다.
따라서 일반적으로 Keepalived는 프런트엔드 고가용성을 달성하는 데 사용됩니다. 일반적으로 사용되는 프런트엔드 고가용성 조합에는 공통 LVS+Keepalived, Nginx+Keepalived 및 HAproxy+Keepalived가 포함됩니다. Heartbeat 또는 Corosync는 서비스의 고가용성을 달성하는 데 사용됩니다. 일반적인 조합에는 웹 서버의 고가용성을 달성하기 위한 Heartbeat v3(Corosync)+Pacemaker+NFS+Httpd와 고가용성을 달성하기 위한 Heartbeat v3(Corosync)+Pacemaker+NFS+MySQL이 포함됩니다. MySQL 서버의 .
요약하자면 Keepalived는 일반적으로 프런트 엔드 고가용성에 사용되며 공유 저장소가 필요하지 않은 경량 고가용성을 구현합니다. 일반적으로 두 노드의 고가용성을 위해 사용됩니다. Heartbeat(또는 Corosync)는 일반적으로 서비스의 고가용성을 위해 사용되며 공유 스토리지가 필요하며 일반적으로 여러 노드의 고가용성을 위해 사용됩니다.
(추천 학습:
linux 튜토리얼위 내용은 연결 유지는 어떻게 작동하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!