보관 소프트웨어는 주로 VRRP 프로토콜을 통해 고가용성 기능을 구현합니다. VRRP는 Virtual Router Redundancy Protocol의 약자로, VRRP는 정적 경로의 단일 지점 장애 문제를 해결하기 위해 설계되었으며, 개별 노드가 다운되더라도 전체 네트워크가 끊김 없이 작동할 수 있도록 보장합니다. 따라서 Keepalived는 LVS 구성 및 관리 기능을 수행하며, LVS 하에서 노드의 건강 상태를 점검하는 기능도 가지고 있으며, 한편으로는 시스템 네트워크 서비스의 고가용성 기능도 구현할 수 있습니다.
보관 고가용성 장애 조치 원칙
고가용성 서비스 쌍 간의 유지형 장애 조치는 VRRP(가상 라우터 중복 프로토콜)를 통해 구현됩니다.
Keepalived 서비스가 정상적으로 작동할 때, 마스터 노드는 백업 노드가 아직 살아 있음을 알리기 위해 스탠바이 노드에 지속적으로 하트비트 메시지를 전송합니다(멀티캐스트). 마스터 노드가 실패하면 하트비트 메시지를 보낼 수 없으므로 스탠바이 노드는 더 이상 마스터 노드의 하트비트를 감지할 수 없고, 스탠바이 노드는 자체 인수(takeover) 프로그램을 호출하여 마스터 노드의 IP 자원과 서비스를 인수합니다. 주 마스터 노드가 복원되면, 백업 노드는 마스터 노드가 인수한 IP 자원과 서비스를 해제하고 원래의 대기 상태로 복원합니다.
유지된 고가용성 쌍은 VRRP를 통해 서로 통신합니다
1) VRRP, 즉 Virtual Router Redundancy Protocol의 정식 명칭으로, 중국어명은 Virtual Route Redundancy Protocol이며, VRRP는 정적 경로의 단일 고장 지점 문제를 해결하기 위해 등장했습니다. 2) VRRP는 VRRP 라우터에 라우팅 작업을 부여하는 캠페인 프로토콜 메커니즘입니다. 3) VRRP는 IP 멀티캐스트를 사용합니다 (기본 멀티캐스트 주소 (224.0.0.18)) 는 고가용성 쌍 간의 통신을 가능하게 합니다. 4) 마스터 노드가 패킷을 보내고 대기 노드가 패킷을 받으면, 대기 노드가 마스터 노드가 전송한 데이터 패킷을 받을 수 없을 때, 마스터 노드의 자원을 인수하기 위해 탈취 프로그램이 시작됩니다. 여러 대기 노드가 있을 수 있으며, 우선순위 경쟁을 통해 선정되지만, 일반적으로 Keepaled 시스템의 운영 및 유지보수에는 쌍이 존재합니다. 5) VRRP는 암호화 프로토콜을 사용해 데이터를 암호화하지만, Keepalived 관계자들은 인증 유형과 비밀번호를 설정할 때 평문을 사용할 것을 여전히 권장합니다.
키팔리비드 서비스 작동 방식
1) 보존된 고가용성 페어는 VRRP를 통해 통신하며, VRRP는 캠페인 메커니즘을 통해 결정됩니다. 마스터의 우선순위가 대기보다 높으므로 작업 시 마스터가 모든 자원을 우선적으로 확보합니다. 대기 노드는 대기 상태에 있으며, 마스터가 멈추면 대기 노드가 마스터 노드의 자원을 인수한 후 마스터 노드를 대체하여 외부 세계에 서비스를 제공합니다.
2) 유지된 서비스 쌍 사이,항상 전송하는 서버는 마스터 서버뿐입니다VRRP방송 패키지마스터가 사용 불가능, 즉 호스트가 마스터가 전송한 방송 패키지를 들을 수 없을 때, 관련 서비스가 자원을 인수하여 비즈니스 연속성을 보장합니다. 가장 빠른 점령 속도는 1초 미만일 수 있습니다.
테스트 환경
시스템: CentOS 8
| IP 주소 | 설명 | | 192.168.50.222 | VIP 연설 | | 192.168.50.227 | 마스터 마스터 노드 | | 192.168.50.131 | 백업 대기 노드 |
완성된 렌더링을 다음과 같이 살펴보겠습니다:
Nginx 서비스를 설치하세요
얌을 직접 사용하세요마스터노드그리고대체 노드서버는 다음 명령어로 nginx를 설치합니다:
기본 노드와 대기 노드의 nginx 구성 파일을 별도로 편집하세요, 경로:/etc/nginx/nginx.conf구성은 다음과 같습니다:
nginx 명령어로 시작, 다음 이미지에 나와 같이 브라우저를 통해 포트 8055 접근을 테스트합니다:
Install Keepalived 기본 노드와 대기 노드 모두에 설치하려면 명령어는 다음과 같습니다:
프로필 주소:/etc/keepalived/keepalived.conf
여기서는 건강 체크 스크립트를 구성하고 새로 만들어야 합니다chk_nginx.sh파일, 코드는 다음과 같습니다:
스크립트를 /etc/keepalived 디렉터리에 업로드하세요. 실행 권한을 다음과 같이 부여합니다:
192.168.50.227 기본 노드 keepalived.conf 구성다음과 같습니다:
192.168.50.133 대체 노드 keepalived.conf 구성다음과 같습니다:
두 서버에 각각 부팅과 부팅을 설정하세요
지금까지구성이 완료되었습니다(렌더링은 문서 상단을 참조하세요)는 nginx 서비스를 통해 다음 명령어로 테스트할 수 있습니다:
(끝)
|