InfoGrab DocsInfoGrab Docs

Gitaly 클러스터(Praefect) 복구 옵션 및 도구

Gitaly 클러스터(Praefect) 복구 옵션 및 도구에 대해 설명합니다.

Gitaly 클러스터(Praefect)는 프라이머리 노드 장애 및 사용할 수 없는 저장소에서 복구할 수 있습니다. Gitaly 클러스터(Praefect)는 데이터 복구를 수행할 수 있으며 Praefect 추적 데이터베이스 도구를 갖추고 있습니다. Gitaly 클러스터(Praefect)의 Gitaly 노드 관리 # Gitaly 클러스터(Praefect)에서 Gitaly 노드를 추가하고 교체할 수 있습니다. 새 Gitaly 노드 추가 # 새 Gitaly 노드를 추가하려면: 문서 에 따라 새 Gitaly 노드를 설치합니다. praefect['virtual_storages'] 아래의 Praefect 구성 에 새 노드를 추가합니다. 다음 명령을 실행하여 Praefect를 재구성하고 다시 시작합니다: gitlab-ctl reconfigure gitlab-ctl restart praefect 복제 동작은 복제 계수 설정에 따라 다릅니다. 사용자 정의 복제 계수 # 사용자 정의 복제 계수가 설정된 경우 Praefect는 기존 저장소를 새 Gitaly 노드에 자동으로 복제하지 않습니다. set-replication-factor Praefect 명령을 사용하여 각 저장소에 대해 복제 계수 를 설정해야 합니다. 새 저장소는 복제 계수 를 기반으로 복제됩니다. 기본 복제 계수 # 기본 복제 계수를 사용하는 경우 Praefect는 복제 계수를 유지하기 위해 구성에 추가된 모든 새 Gitaly 노드에 모든 데이터를 자동으로 복제합니다. 기존 Gitaly 노드 교체 # 기존 Gitaly 노드를 동일한 이름 또는 다른 이름의 새 노드로 교체할 수 있습니다. 프라이머리 노드 교체 # Gitaly 클러스터(Praefect)는 각 저장소에 대해 개별적으로 프라이머리를 선출합니다. 일부 저장소의 프라이머리인 노드를 제거하면, 결과는 최신 레플리카가 남아 있는지 여부에 따라 달라집니다. 남아 있는 정상적인 노드에 최신 레플리카가 존재하는 경우, 저장소는 계속 사용 가능한 상태로 유지됩니다. 읽기는 최신 레플리카에서 제공되며, Praefect는 프라이머리가 필요한 다음 요청 시 유효한 후보 중에서 새 프라이머리를 선출합니다. 사용자는 영향을 받지 않습니다. 최신 레플리카가 남아 있지 않은 경우(제거된 노드가 마지막 최신 복사본을 보유하고 있었던 경우), 저장소를 사용할 수 없게 됩니다. Praefect는 오래된 복사본을 제공하는 대신 읽기에 대해 404 를 반환합니다. 저장소는 다음 중 하나가 최신 복사본을 복원할 때까지 사용할 수 없는 상태로 유지됩니다: 노드를 다시 가져와서(동일한 이름) 다시 복제합니다. 저장소의 데이터가 포함된 교체 노드가 사용 가능해집니다(다른 이름). 사용 불가능한 저장소에는 선출할 유효한 프라이머리 후보가 없으므로, 읽기로는 복구할 수 없습니다. 요청을 라우팅할 곳이 없기 때문입니다. 다음 쓰기는 사용 가능한 최상의 레플리카(미복제 변경 사항이 가장 적은 레플리카)를 승격하여 프라이머리를 다시 설정하는데, 이는 제거된 노드에만 존재하던 쓰기에 대해