자동 백그라운드 검증
Offering: GitLab Self-Managed
자동 백그라운드 검증은 전송된 데이터가 계산된 체크섬과 일치하는지 확인합니다. 기본 사이트에서 검증이 실패하면 Geo가 손상된 객체를 복제하고 있음을 나타냅니다. 기본 사이트에서 검증은 성공하지만 보조 사이트에서 실패하면, 복제 과정에서 객체가 손상되었음을 나타냅니다.
자동 백그라운드 검증은 전송된 데이터가 계산된 체크섬과 일치하는지 확인합니다. 기본 사이트의 데이터 체크섬이 보조 사이트의 데이터 체크섬과 일치하면 데이터가 성공적으로 전송된 것입니다. 계획된 장애 조치 후, 손상된 데이터는 손상 범위에 따라 손실될 수 있습니다.
기본 사이트에서 검증이 실패하면 Geo가 손상된 객체를 복제하고 있음을 나타냅니다. 백업에서 복원하거나 기본 사이트에서 삭제하여 문제를 해결할 수 있습니다.
기본 사이트에서 검증은 성공하지만 보조 사이트에서 실패하면, 복제 과정에서 객체가 손상되었음을 나타냅니다. Geo는 백오프 기간을 두고 저장소를 재동기화 대상으로 표시하여 검증 실패를 적극적으로 수정하려고 합니다. 이러한 실패에 대한 검증을 재설정하려면 다음 지침을 따라야 합니다.
검증이 복제보다 현저히 뒤처지는 경우, 계획된 장애 조치를 예약하기 전에 사이트에 더 많은 시간을 줄 것을 고려하세요.
저장소 검증#
사전 요구사항:
- 관리자 접근 권한.
기본 사이트에서:
-
오른쪽 상단 모서리에서 Admin을 선택합니다.
-
왼쪽 사이드바에서 Geo > Sites를 선택합니다.
-
해당 사이트의 검증 정보 탭을 확장하여 저장소 및 위키의 자동 체크섬 상태를 확인합니다. 성공은 녹색, 보류 중인 작업은 회색, 실패는 빨간색으로 표시됩니다.

보조 사이트에서:
-
오른쪽 상단 모서리에서 Admin을 선택합니다.
-
왼쪽 사이드바에서 Geo > Sites를 선택합니다.
-
해당 사이트의 검증 정보 탭을 확장하여 저장소 및 위키의 자동 체크섬 상태를 확인합니다. 성공은 녹색, 보류 중인 작업은 회색, 실패는 빨간색으로 표시됩니다.

체크섬을 사용하여 Geo 사이트 비교#
Geo 보조 사이트의 상태를 확인하기 위해 Git 참조 목록과 해당 값에 대한 체크섬을 사용합니다. 체크섬에는 HEAD, heads, tags, notes, GitLab 특화 참조가 포함되어 진정한 일관성을 보장합니다. 두 사이트의 체크섬이 동일하면 동일한 참조를 보유하고 있는 것입니다. 모든 업데이트 후 모든 사이트가 동기화되었는지 확인하기 위해 각 사이트의 체크섬을 계산합니다.
저장소 재검증#
버그나 일시적인 인프라 장애로 인해 Git 저장소가 검증 표시 없이 예기치 않게 변경될 수 있습니다. Geo는 데이터 무결성을 보장하기 위해 저장소를 지속적으로 재검증합니다. 기본 및 권장 재검증 간격은 7일이지만, 최소 1일로 설정할 수 있습니다. 간격이 짧을수록 위험은 줄어들지만 부하가 증가하며, 그 반대도 마찬가지입니다.
기본 사이트에서:
-
오른쪽 상단 모서리에서 Admin을 선택합니다.
-
왼쪽 사이드바에서 Geo > Sites를 선택합니다.
-
기본 사이트에 대해 편집을 선택하여 최소 재검증 간격을 사용자 지정합니다:

검증이 실패한 프로젝트에 대한 검증 재설정#
Geo는 백오프 기간을 두고 저장소를 재동기화 대상으로 표시하여 검증 실패를 적극적으로 수정하려고 합니다. UI 또는 Rails 콘솔을 통해 개별 구성 요소를 수동으로 재동기화 및 재검증할 수도 있습니다.
체크섬 불일치로 인한 차이점 조정#
히스토리
- 스토리지 이름 및 상대 경로 필드가 GitLab 16.3에서 Gitaly 스토리지 이름 및 Gitaly 상대 경로에서 이름이 변경되었습니다.
기본 및 보조 사이트 간에 체크섬 검증 불일치가 있는 경우, 원인이 명확하지 않을 수 있습니다. 체크섬 불일치의 원인을 찾으려면:
-
기본 사이트에서:
- 오른쪽 상단 모서리에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Projects를 선택합니다.
- 체크섬 차이를 확인할 프로젝트를 찾아 이름을 선택합니다.
- 프로젝트 관리 페이지에서 스토리지 이름 및 상대 경로 필드의 값을 가져옵니다.
-
기본 사이트의 Gitaly 노드와 보조 사이트의 Gitaly 노드에서 프로젝트 저장소 디렉토리로 이동합니다. Gitaly 클러스터(Praefect)를 사용하는 경우, 이 명령을 실행하기 전에 정상 상태인지 확인합니다.
기본 경로는
/var/opt/gitlab/git-data/repositories입니다. 저장소 스토리지가 사용자 지정된 경우, 서버의 디렉토리 레이아웃을 확인합니다:cd /var/opt/gitlab/git-data/repositories-
기본 사이트에서 다음 명령을 실행하고 출력을 파일로 리디렉션합니다:
git show-ref --head | grep -E "HEAD|(refs/(heads|tags|keep-around|merge-requests|environments|notes)/)" > primary-site-refs -
보조 사이트에서 다음 명령을 실행하고 출력을 파일로 리디렉션합니다:
git show-ref --head | grep -E "HEAD|(refs/(heads|tags|keep-around|merge-requests|environments|notes)/)" > secondary-site-refs -
이전 단계의 파일을 동일한 시스템에 복사하고 내용을 비교합니다:
diff primary-site-refs secondary-site-refs
-
현재 제한사항#
지원되는 복제 및 검증 방법에 대한 자세한 내용은 지원되는 Geo 데이터 유형을 참조하세요.
