Kudu 다중 마스터 배포는 마스터가 손실 된 경우 정상적으로 작동합니다. 그러나 죽은 마스터를 교체하는 것이 중요합니다. 그렇지 않으면 사용 가능한 마스터 수에 따라 두 번째 오류로 인해 가용성이 손실 될 수 있습니다. 이 워크 플로는 데드 마스터를 교체하는 방법을 설명합니다.
KUDU-1620 으로 인해 라이브 마스터를 다시 시작하지 않고는이 워크 플로를 수행 할 수 없습니다. 따라서 워크 플로에는 유지 관리 기간이 필요하지만 클러스터가 DNS 별칭으로 설정된 경우 잠재적으로 짧은 기간입니다.
회복 준비
- DNS 별칭없이 배포가 구성된 경우 다음 단계를 수행하십시오.
- 유지 관리 기간을 설정합니다 (1 시간이면 충분 함). 이 기간 동안 Kudu 클러스터를 사용할 수 없습니다.
- 클러스터의 모든 Kudu 태블릿 서버 프로세스를 종료하십시오.
- 죽은 주인이 건강하고 진정으로 죽었는지 확인하십시오. 실수로 다시 시작되는 것을 방지하기 위해 필요한 조치를 취하십시오. 이는 복구 후 클러스터에 매우 위험 할 수 있습니다.
- 복구의 기초로 사용할 나머지 라이브 마스터 중 하나를 선택합니다. 이 워크 플로의 나머지 부분에서는이 마스터를 "참조"마스터라고합니다.
- 새 마스터가 상주 할 클러스터에서 사용되지 않는 머신을 선택합니다. 마스터는 매우 적은로드를 생성하므로 동일한 구성의 다른 Kudu 마스터가 아닌 다른 데이터 서비스 또는로드 생성 프로세스와 함께 배치 될 수 있습니다. 이 워크 플로의 나머지 부분에서는이 마스터를 "교체"마스터라고합니다.
- 교체 마스터에 대해 다음 준비 단계를 수행하십시오.
- 시스템 패키지 ( kudu및 kudu-master패키지를 설치해야 함)를 통해 또는 다른 방법을 통해 Kudu가 머신에 설치되어 있는지 확인 합니다.
- 마스터의 데이터가 저장 될 디렉토리를 선택하고 기록하십시오.
- 각 라이브 마스터에 대해 다음 준비 단계를 수행하십시오.
- 마스터의 데이터가있는 디렉토리를 식별하고 기록하십시오. Kudu 시스템 패키지를 사용하는 경우 기본값은 / var / lib / kudu / master이지만 fs_wal_dir및 fs_data_dirs구성 매개 변수 를 통해 사용자 정의 할 수 있습니다 . fs_data_dirs의 값이 아닌 다른 디렉토리로 설정 한 경우 fs_wal_dir포함 된 아래의 모든 명령에 명시 적으로 포함되어야합니다 fs_wal_dir. 이러한 디렉터리 구성에 대한 자세한 내용은 Kudu 구성 문서를 참조하십시오 .
- 마스터의 UUID를 식별하고 기록하십시오. 다음 명령을 사용하여 가져올 수 있습니다.master_data_dir예
- $ sudo -u kudu kudu fs dump uuid --fs_wal_dir = / data / kudu / master / wal --fs_data_dirs = / data / kudu / master / data 2> / dev / null 80a82c4b8a9f4c819bab744927ad765c
- 라이브 마스터의 이전에 녹음 된 데이터 디렉토리
- $ sudo -u kudu kudu fs dump uuid --fs_wal_dir=<master_wal_dir> [--fs_data_dirs=<master_data_dir>] 2>/dev/null
- 참조 마스터에 대해 다음 준비 단계를 수행하십시오.
- 마스터의 데이터가있는 디렉토리를 식별하고 기록하십시오. Kudu 시스템 패키지를 사용하는 경우 기본값은 / var / lib / kudu / master이지만 fs_wal_dir및 fs_data_dirs구성 매개 변수 를 통해 사용자 정의 할 수 있습니다 . fs_data_dirs의 값이 아닌 다른 디렉토리로 설정 한 경우 fs_wal_dir포함 된 아래의 모든 명령에 명시 적으로 포함되어야합니다 fs_wal_dir. 이러한 디렉터리 구성에 대한 자세한 내용은 Kudu 구성 문서를 참조하십시오 .
- 다음 명령을 사용하여 클러스터에있는 모든 마스터의 UUID를 식별하고 기록합니다.master_data_dirtablet_id예
- $ sudo -u kudu kudu local_replica cmeta print_replica_uuids --fs_wal_dir = / data / kudu / master / wal --fs_data_dirs = / data / kudu / master / data 000000000000000000000000000000 2> / dev / null 80a82c4b8a9f4c819bab744927ad765c 2a73eeee5d47413981d9a1c637cce170 1c3f3094256347528d02ec107466aef3
- 문자열이어야합니다. 00000000000000000000000000000000
- 참조 마스터의 이전에 기록 된 데이터 디렉토리
- $ sudo -u kudu kudu local_replica cmeta print_replica_uuids --fs_wal_dir=<master_wal_dir> [--fs_data_dirs=<master_data_dir>] <tablet_id> 2>/dev/null
- 이전에 기록 된 두 개의 UUID 목록 (하나는 모든 라이브 마스터 용, 다른 하나는 모든 마스터 용)을 사용하여 데드 마스터의 UUID를 결정하고 기록합니다 (제거 과정에 따라).
복구 수행
- 이전에 기록 된 데드 마스터의 UUID를 사용하여 교체 마스터 시스템의 데이터 디렉토리를 포맷합니다. 다음 명령 시퀀스를 사용하십시오.master_data_dirUUID
- 죽은 마스터의 이전에 기록 된 UUID
- 교체 마스터의 이전에 기록 된 데이터 디렉토리
- $ sudo -u kudu kudu fs format --fs_wal_dir=<master_wal_dir> [--fs_data_dirs=<master_data_dir>] --uuid=<uuid>
'기술_Kudu' 카테고리의 다른 글
전체 노드의 물리적 백업 (0) | 2022.07.07 |
---|---|
백업 및 복원 (0) | 2022.07.07 |
랙 인식 (0) | 2022.07.07 |
Apache Must 관리 (0) | 2022.07.07 |
테이블 삭제 (0) | 2022.07.06 |