Private Cloud용 Edge v. 4.17.09
주키퍼 앙상블은 서비스가 손실되더라도 데이터 손실 없이 계속 작동하도록 주키퍼 노드가 하나 이상 있을 수 있습니다. 이러한 복원력을 활용하여 시스템 다운타임이 없는 ZaKeeper 노드
주키퍼 및 Edge 정보
Edge에서 ZaKeeper 노드에는 클러스터의 위치와 구성에 대한 구성 데이터가 포함되어 있습니다. 구성 변경을 서로 다른 구성요소에 알립니다. 전체 프로덕션 시스템에 지원되는 Edge 토폴로지는 3개 이상의 동물원키퍼를 사용하도록 지정합니다. 노드라는 두 가지 리소스가 있습니다
ZK_HOSTS 및 ZK_CLIENT_HOSTS 속성 ZooKeeper 노드를 지정하는 에지 구성 파일입니다. 시험용
ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
각 항목의 의미는 다음과 같습니다.
- ZK_HOSTS - 지정
모든 URL에 저장됩니다. IP 주소는
모든 ZooKeeper 노드와 동일합니다.
다중 데이터 센터 환경에서 모든 데이터 센터의 모든 주키퍼 노드를 나열합니다. - ZK_CLIENT_HOSTS:
이 데이터 센터에서만 사용하는 주키퍼 노드의 IP 주소를 지정합니다. IP
주소는 데이터 센터의 모든 주키퍼 노드에서 동일한 순서로 나열되어야 합니다.
단일 데이터 센터 설치에서 이 노드들은 ZK_HOSTS에 의해 지정된 것과 동일한 노드입니다. 각 데이터 센터의 에지 구성 파일에는 해당 데이터 센터의 주키퍼 노드
기본적으로 모든 ZooKeeper 노드는 Voter 노드로 지정됩니다. 즉, 노드에는 모두 주키퍼의 리더를 선정하는 데 참여합니다. 이때 ':observer' 수정자를 ZK_HOSTS로 변경 메모가 투표자가 아닌 관찰자 노드입니다. 관찰자 노드는 도움이 될 것입니다
여러 에지 데이터를 만들 때는 일반적으로 ':observer' 수정자를 지정합니다. 센터 또는 단일 데이터 센터에 많은 동물원이 있는 경우 예를 들어 2개의 데이터 센터가 있는 12-호스트 Edge 설치, 데이터 센터 2의 노드 9에 있는 주키퍼는 관찰자:
그런 다음 데이터 센터 1의 구성 파일에서 다음 설정을 사용합니다.
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
데이터 센터의 경우
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
리더, 팔로어, 유권자 및 관찰자
멀티 노드 ZooKeeper 설치에서 노드 중 하나가 리더로 지정됩니다. 다른 모든 ZaKeeper 노드는 팔로어로 지정됩니다. 읽기는 모든 리소스에서 발생할 수 있지만 ZooKeeper 노드에서 모든 쓰기 요청이 리더로 전달됩니다. 예를 들어 새 메시지 프로세서가 Edge에 추가됩니다. 이 정보는 주키퍼 리더에게 작성됩니다. 모든 팔로어 데이터를 복제합니다
Edge 설치 시 개발자는 각 주키퍼 노드를 유권자 또는 관찰자로 지정합니다. 이 그런 다음 모든 유권자 주키퍼 노드에 의해 리더가 선출됩니다. 한 가지 요구사항은 사용 가능한 주키퍼 투표자 노드의 쿼럼이 있어야 한다는 것이 리더의 선택입니다. 가 쿼럼은 모든 데이터 센터의 전체 유권자 주키퍼 노드 중 절반 이상이 있습니다.
사용 가능한 투표자 노드 쿼럼이 없는 경우 리더를 선출할 수 없습니다. 이 시나리오에서는 주키퍼는 요청을 처리할 수 없습니다. 즉, 에지 관리에 요청을 할 수 없습니다. 쿼럼이 복원될 때까지 서버를 관리하거나, Management API 요청을 처리하거나, Edge UI에 로그인해야 합니다.
예를 들어 단일 데이터 센터 설치에서 다음을 수행합니다.
- 주키퍼 노드 3개를 설치했습니다.
- 모든 주키퍼 노드는 유권자임
- 2개의 작동하는 투표자 노드가 있는 쿼럼
- 투표자 노드가 하나만 있을 경우 주키퍼 앙상블이 작동할 수 없습니다.
2개의 데이터 센터가 있는 설치:
- 데이터 센터당 3개의 주키퍼 노드를 설치하여 총 6개의 노드를 설치했습니다.
- 데이터 센터 1에 3개의 투표자 노드가 있음
- 데이터 센터 2에 2개의 투표자 노드와 1개의 관찰자 노드가 있음
- 쿼럼은 두 데이터 센터의 투표자 5명을 기준으로 결정되므로 작동하는 투표자 노드 3개
- 사용할 수 있는 유권자 노드가 두 개 이하인 경우 주키퍼 앙상블은 함수
투표자로 노드 추가 또는 관찰자
시스템 요구사항으로 인해 Edge에 ZuKeeper 노드를 더 추가해야 할 수 있습니다. 설치해야 합니다 ZooKeeper 노드 추가 문서 Edge에 추가적인 주키퍼 노드를 추가하는 방법을 설명합니다. 주키퍼 노드를 추가할 때 다음을 수행해야 합니다. 에서는 추가할 노드 유형(투표자 또는 관찰자)을 고려합니다.
하나 이상의 유권자 노드가 다운되어도 충분한 유권자 노드가 있어야 합니다. 주키퍼 앙상블이 여전히 작동할 수 있습니다. 즉, 투표자 노드 수가 여전히 있습니다. 투표자 노드를 추가하면 쿼럼 크기가 증가하므로 더 많은 유권자 노드가 중단되는 것을 용인할 수 있습니다
하지만 추가 투표자 노드를 추가하면 쓰기 성능에 부정적인 영향을 줄 수 있습니다. 쿼럼이 리더에 합의해야 합니다. 주요 변수를 결정하는 데 걸리는 시간 유권자 노드 수를 기준으로 하며, 유권자 노드를 추가하면 증가합니다. 따라서 모든 노드 투표자로 만들고 싶지는 않습니다.
투표자 노드를 추가하는 대신 관찰자 노드를 추가할 수 있습니다. 관찰자 노드를 추가하면 증가 리더 선정에 따른 오버헤드를 추가하지 않고 전체 시스템 읽기 성능을 줄일 수 있습니다 관찰자 노드는 응답하지 않으며 쿼럼 크기에 영향을 미치지 않습니다. 따라서 관찰자 노드가 리더를 선택하는 앙상블의 능력에 영향을 미치지 않습니다. 관찰자 손실 노드의 경우 주Keeper 앙상블의 읽기 성능이 저하될 수 있습니다. 더 적은 수의 노드가 가능합니다
Apigee는 단일 데이터 센터에서 투표자가 5명 이하일 것을 권장합니다. 관찰자 노드 수를 나타냅니다 Apigee는 두 개의 데이터 센터에 9명 (데이터 센터에서 5명, 다른 데이터 센터 4명)보다 높습니다. 그런 다음 관찰자 노드를 직접 만들 수 있습니다
유지보수 고려사항
중단 없이 모든 기능을 갖춘 앙상블에서 주키퍼의 유지보수 작업을 수행할 수 있습니다. 단일 노드에서 수행됩니다 주키퍼 노드가 단 한 개만 다운되었는지 확인하여 한 번이라도 주를 선출할 수 있는 유권자 노드 쿼럼이 항상 있도록 할 수 있습니다. 있습니다
유지보수 전반 여러 데이터 센터
여러 데이터 센터에서 작업하는 경우, ZooKeeper 앙상블은 구별합니다. 주키퍼 어셈블리에는 전체 데이터 센터를 하나의 앙상블로 통합
주어진 데이터 센터에서 유권자 노드의 위치는 주키퍼가 수행할 때 고려되는 요소가 아닙니다. 쿼럼 계산을 수행합니다. 개별 노드는 데이터 센터 간에 다운될 수 있지만 쿼럼이 주키퍼는 계속 작동합니다.
유지보수로 인한 영향
유권자이거나 유권자인 경우 유지보수를 위해 주키퍼 노드를 중단시켜야 하는 경우도 많습니다. 관찰자 노드와는 다릅니다 예를 들어 노드에서 Edge 버전을 업그레이드해야 할 수 있습니다. 주키퍼를 호스팅하는 머신이 실패할 수도 있고, 또는 다른 몇몇 서비스가 노드를 사용할 수 없게 될 수도 있습니다. 네트워크 오류와 같은 원인이 있을 수 있습니다.
중단되는 노드가 관찰자 노드인 경우 주키퍼 앙상블의 성능이 계속 유지됩니다. 노드가 유권자인 경우 노드를 삭제하면 다른 모든 노드에서 실행되는 노드의 손실로 인해 동물원키퍼 앙상블의 실행 가능성에 영향을 리더 선택 프로세스에 참여합니다. 투표자 노드가 사용할 수 있는 유권자 노드의 쿼럼을 유지하는 것이 중요합니다.
유지보수 절차
주키퍼가 작동한다는 것입니다. 이때 관찰자 노드가 작동하고 있고 쿼럼을 유지하기 위해 유지보수 중에 사용할 수 있는 유권자 노드 수를 줄일 수 있습니다.
이러한 조건이 충족되면 임의의 크기의 주키퍼 앙상블이 데이터 손실이나 성능에 유의미한 영향 없이 언제든지 단일 노드의 손실을 야기할 수 있습니다. 이 앙상블에 있는 노드 중 하나에 있는 한 어떤 노드에서든 자유롭게 노드 단위로만 지정할 수 있습니다
유지보수 수행의 일환으로 다음 절차에 따라 주키퍼 노드 (리더, 투표자 또는 관찰자):
- 주키퍼 노드에 이 앱이 설치되어 있지 않으면 nc:
를 설치합니다. > sudo yum install nc - 노드에서 다음 nc 명령어를 실행합니다.
> 에코 통계 | NC 로컬 호스트 2,181
여기서 2181은 주키퍼 포트입니다.
양식에 출력이 표시됩니다. Zookeeper 버전: 3.4.5-1392090, 구축 날짜: 2012년 9월 30일 17:52(GMT)
클라이언트: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
지연 시간 최소/평균/최대: 0/0/0
수신됨: 1
전송됨: 0
연결: 1
미결제: 0
Zxid: 0xc00000044
모드: 팔로어
노드 수: 653
출력의 Mode 줄 노드의 경우 관찰자, 리더 또는 팔로어( 리더)의 리소스)를 제공합니다.
참고: 단일 동물원 관리 노드로 Edge를 독립형으로 설치하면 모드가 독립형으로 설정됩니다. - 각 주키퍼 노드에서 1단계와 2단계를 반복합니다.
요약
ZooKeeper 앙상블에 대한 유지관리를 수행하는 가장 좋은 방법은 한 번에 한 노드씩 유지관리하는 것입니다. 있습니다. 주의:
- 주키퍼가 유지될 수 있도록 유지보수 중에 유권자 노드 쿼럼을 유지해야 합니다. 앙상블이 기능 유지
- 관찰자 노드를 종료해도 쿼럼 또는 리더 선택 기능에 영향을 미치지 않습니다.
- 쿼럼은 모든 데이터 센터의 모든 주키퍼 노드에서 계산됩니다.
- 이전 서버가 작동하면 다음 서버에서 유지관리를 진행합니다.
- nc 명령어를 사용하여 주키퍼 노드 검사