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