자동 배경 검증

Tier: Premium, Ultimate Offering: Self-managed

자동 배경 확인은 전송된 데이터가 계산된 체크섬과 일치하는지를 확인합니다. Primary 사이트의 데이터의 체크섬이 secondary 사이트의 데이터와 일치하면, 데이터가 성공적으로 전송됩니다. 계획된 장애 조치 후, 훼손된 데이터는 피해가 될 수 있습니다.

Primary 사이트에서 확인에 실패하면, 이는 Geo가 손상된 객체를 복제하고 있다는 것을 나타냅니다. 문제를 해결하려면 백업에서 복원하거나 Primary 사이트에서 제거할 수 있습니다.

Primary 사이트에서 확인에 성공하지만 secondary 사이트에서 실패한다면, 이는 객체가 복제 프로세스 중에 손상된 것을 나타냅니다. Geo는 확인 실패를 지속적으로 수정하려고 하며, 리포지토리를 백오프 기간과 함께 다시 동기화하도록 표시합니다. 이러한 실패에 대한 확인을 재설정하려면, 이 지침을 따르세요.

확인이 복제보다 크게 뒤처지면, 계획된 장애 조치를 예약하기 전에 사이트에게 더 많은 시간을 주는 것을 고려해보세요.

리포지토리 확인

Primary 사이트에서:

  1. 왼쪽 사이드바에서 아래쪽으로 이동하여 관리 영역(Admin Area)를 선택합니다.
  2. Geo > 사이트(Geo > Sites)를 선택합니다.
  3. 해당 사이트의 검증 정보(Verification information) 탭을 확장하여 리포지토리와 위키의 자동 체크섬 상태를 확인합니다. 성공은 초록색, 보류 중인 작업은 회색, 실패는 빨강색으로 표시됩니다.

    Verification status

Secondary 사이트에서:

  1. 왼쪽 사이드바에서 아래쪽으로 이동하여 관리 영역(Admin Area)를 선택합니다.
  2. Geo > 사이트(Geo > Sites)를 선택합니다.
  3. 해당 사이트의 검증 정보(Verification information) 탭을 확장하여 리포지토리와 위키의 자동 체크섬 상태를 확인합니다. 성공은 초록색, 보류 중인 작업은 회색, 실패는 빨강색으로 표시됩니다.

    Verification status

체크섬을 사용하여 Geo 사이트 비교하기

Geo Secondary 사이트의 건강 상태를 확인하기 위해 Git 참조 및 그 값에 대한 체크섬을 사용합니다. 체크섬에는 HEAD, heads, tags, notes, 그리고 GitLab 특정 참조가 포함되어 진정한 일관성을 보장합니다. 두 사이트가 동일한 체크섬을 가지고 있다면, 그들은 분명히 동일한 참조를 보유하고 있습니다. 우리는 모든 사이트에 대해 모든 업데이트 후에 체크섬을 계산하여 동기화되어 있는지 확인합니다.

리포지토리 재확인

버그 또는 일시적인 인프라 장애로 인해 Git 리포지토리가 예상치 않게 변경되어 확인되지 않을 수 있습니다. Geo는 데이터의 무결성을 보장하기 위해 리포지토리를 지속적으로 재확인합니다. 기본적으로 권장되는 재확인 간격은 7일이지만, 1일로 설정할 수 있는 간격도 있습니다. 더 짧은 간격은 위험을 감소시키지만 부하를 증가시키며, 그 반대도 마찬가지입니다.

Primary 사이트에서:

  1. 왼쪽 사이드바에서 아래쪽으로 이동하여 관리 영역(Admin Area)를 선택합니다.
  2. Geo > 사이트(Geo > Sites)를 선택합니다.
  3. Primary 사이트를 선택하여 최소 재확인 간격을 사용자 정의합니다.

    Re-verification interval

확인 실패로 인해 프로젝트의 확인을 재설정

Geo는 확인 실패를 지속적으로 수정하려고 하며, 리포지토리를 백오프 기간이 없는 다시 동기화하도록 표시합니다. 수동으로 재설정하려면, 이 Rake 작업은 확인에 실패하거나 체크섬이 일치하지 않는 프로젝트를 표시합니다:

Secondary 사이트의 Rails 노드에서 해당 커맨드를 실행하세요.

리포지토리의 경우:

sudo gitlab-rake geo:verification:repository:reset

위키의 경우:

sudo gitlab-rake geo:verification:wiki:reset

체크섬 불일치로 인한 차이 조정

Primary 사이트와 Secondary 사이트 사이에 체크섬 확인 불일치가 발생하는 경우, 원인이 명백하지 않을 수 있습니다. 체크섬 불일치의 원인을 찾으려면:

Primary 사이트에서: 1. 왼쪽 사이드바에서 아래쪽으로 이동하여 관리 영역(Admin Area)를 선택합니다. 1. 왼쪽 사이드바에서 개요 > 프로젝트(Overview > Projects)를 선택합니다. 1. 확인하려는 프로젝트를 찾아서 해당 이름을 선택합니다. 1. 프로젝트 관리 페이지에서 저장소 이름상대 경로(Relative path)의 값들을 얻으세요.

Primary 사이트의 Gitaly 노드Secondary 사이트의 Gitaly 노드에서 프로젝트의 리포지토리 디렉토리로 이동합니다. Gitaly 클러스터를 사용하는 경우, 이 커맨드를 실행하기 전에 정상 상태인지 확인하세요.

기본 경로는 /var/opt/gitlab/git-data/repositories입니다. git_data_dirs가 사용자 정의되었다면, 서버의 디렉토리 레이아웃을 확인하십시오:

cd /var/opt/gitlab/git-data/repositories

Primary 사이트에서 다음 커맨드를 실행하여 출력을 파일에 리디렉션하세요:

git show-ref --head | grep -E "HEAD|(refs/(heads|tags|keep-around|merge-requests|environments|notes)/)" > primary-site-refs

Secondary 사이트에서 다음 커맨드를 실행하여 출력을 파일에 리디렉션하세요:

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 데이터 유형을 참조하십시오.