기술_Kudu

랙 인식

구일칠구 2022. 7. 7. 05:43

버전 1.9부터 Kudu는 랙 인식 기능을 지원합니다. Kudu의 일반적인 재 복제 방법은 단일 노드 장애시 클러스터의 가용성을 보장합니다. 그러나 클러스터는 여러 노드의 상관 된 오류에 취약 할 수 있습니다. 예를 들어, 랙 상단 형 스위치에 장애가 발생하면 데이터 센터의 동일한 랙에있는 모든 물리적 호스트를 동시에 사용할 수 없게 될 수 있습니다. Kudu의 랙 인식 기능은 데이터 센터의 단일 랙 오류와 같은 일부 종류의 상관 된 오류로부터 보호합니다.

Kudu 랙 인식 기능의 첫 번째 요소는 위치 할당입니다. 태블릿 서버 또는 클라이언트가 마스터에 등록하면 마스터가 위치를 할당합니다. 위치는로 /시작하는 구분 된 문자열 /이며 각 구분 된 /구성 요소는 집합의 문자로 구성됩니다 [a-zA-Z0-9_-.]. 예를 들어, /dc-0/rack-09동시에, 올바른 위치 rack-04및 /rack=1유효 사항은 아니다. 따라서 위치 문자열은 디렉토리 및 파일 이름의 문자가 집합으로 제한되는 절대 UNIX 파일 경로와 유사합니다 [a-zA-Z0-9_-.]. 현재 Kudu는 위치의 계층 구조를 사용하지 않지만 향후에는 사용할 수 있습니다. 위치 할당은 사용자가 제공 한 명령에 의해 수행되며 경로는 다음을 사용하여 지정해야합니다.--location_mapping_cmd마스터 플래그. 명령은 단일 인수, 태블릿 서버 또는 클라이언트의 IP 주소 또는 호스트 이름을 취하고 태블릿 서버 또는 클라이언트의 위치를 ​​반환해야합니다. 모든 Kudu 마스터가 동일한 위치 매핑 명령을 사용하고 있는지 확인하십시오.

Kudu의 랙 인식 기능의 두 번째 요소는 배치 정책입니다.

태블릿 서버의 대부분의 태블릿 복제본을 동일한 위치에 두지 마십시오.

리더 마스터는 새로 생성 된 복제본을 태블릿 서버에 배치하고 기존 태블릿을 다시 복제 할 때 배치 정책을 준수하는 방식으로 복제본을 배치하려고 시도합니다. 예를 들어, 다섯 개 태블릿 서버와 클러스터에서 A, B, C, D,와 E, 각각의 위치와 /L0, /L0, /L1, /L1, /L2, 새로운 3 배 복제 태블릿이 그 복제본에 놓여 있었다 배치 정책을 준수하기 위해 A, C그리고 E, 그러나에 A, B, 그리고 C, 왜냐하면 태블릿은 위치에 2/3 복제본을 가질 것이기 때문 /L0입니다. 다른 예로서, 정제는 경우 태블릿 서버 복제본 A, C및 E후C실패하면 D배치 정책을 준수하기 위해 교체 용 복제본을 배치해야합니다 .

배치 정책을 준수하는 방식으로 복제본을 배치 할 수없는 경우 Kudu는 정책을 위반하고 어쨌든 복제본을 배치합니다. 태블릿은 태블릿 서버의 복제본이있는 경우 예를 들어, 설치 프로그램을 사용하여, 이전 단락에서 설명 A, C그리고 E다음 E쿠두 중 하나에 태블릿을 다시 복제하는 것, 실패 B또는 D배치 정책을 위반하는 대신 태블릿을 떠나, 무기한 복제 부족. kudu cluster rebalance그렇게 할 수있는 경우 도구는 배치 정책을 다시 설정할 수 있습니다. 그만큼kudu cluster rebalance클러스터가 랙 인식 기능을 사용하도록 방금 구성되었고 배치 정책을 준수하기 위해 기존 복제본을 이동해야하는 경우 도구를 사용하여 클러스터에 배치 정책을 설정할 수도 있습니다. 자세한 정보 는 랙 인식 클러스터에서 태블릿 재조정 도구 실행 을 참조하십시오.

Kudu 랙 인식 기능의 세 번째이자 마지막 요소는 클라이언트 위치를 사용하여 "근처"서버를 찾는 것입니다. 언급했듯이 마스터는 클러스터에 연결할 때 클라이언트에도 위치를 할당합니다. 클라이언트 (Java, C ++ 또는 Python)는 CLOSEST_REPLICA모드 에서 스캔 할 때 "가까운"복제본을 선호하기 위해 자체 위치와 클러스터의 태블릿 서버 위치를 사용 합니다. 클라이언트는 다음 순서로 스캔 할 복제본을 선택합니다.

  1. 동일한 호스트의 태블릿 서버에서 복제본이있는 경우 스캔합니다.
  2. 동일한 위치에있는 태블릿 서버의 복제본이있는 경우 스캔합니다.
  3. 일부 복제본을 스캔하십시오.

태블릿 서버와 같은 호스트의 클라이언트가 예를 들어, 클러스터 설정을 사용하여, 상기 한 A태블릿 서버의 복제본과 태블릿을 검색 A, C및 E에 CLOSEST_REPLICA모드가 켜져 복제에서 스캔 할 때 선택하는 것 A, 클라이언트와 복제 이후 on A은 동일한 호스트에 있습니다. 클라이언트가 태블릿 서버 B, C및의 복제본이있는 태블릿을 스캔하는 경우 클라이언트와 동일한 위치에 있으므로 E의 복제본에서 스캔하도록 선택합니다 . 기준을 충족하는 복제본이 여러 개있는 경우 임의로 하나가 선택됩니다.B/L0

'기술_Kudu' 카테고리의 다른 글

전체 노드의 물리적 백업  (0) 2022.07.07
백업 및 복원  (0) 2022.07.07
Apache Must 관리  (0) 2022.07.07
테이블 삭제  (0) 2022.07.06
테이블에 데이터 삽입  (0) 2022.07.06