자동 배경 확인

티어: 프리미엄, 얼티메이트 제공: Self-Managed

자동 배경 확인은 전송된 데이터가 계산된 체크섬과 일치하는지 확인합니다. 기본 사이트의 데이터의 체크섬이 보조 사이트의 데이터의 체크섬과 일치하는 경우 데이터가 성공적으로 전송됩니다. 계획된 장애 조치 후, 손상된 데이터는 손실될 수 있습니다. 손상 정도에 따라 달라집니다.

기본 사이트에서 확인이 실패하면, Geo가 손상된 객체를 복제하고 있음을 나타냅니다. 문제를 해결하려면 백업에서 복원하거나 기본 사이트에서 제거해야 합니다.

기본 사이트에서 확인에 성공하지만 보조 사이트에서 실패하면, 이는 객체가 복제 프로세스 중에 손상된 것을 나타냅니다. Geo는 활성적으로 검증 실패를 수정하려고 하며 리포지토리를 다시 동기화할 수 있도록 표시합니다. 이러한 실패의 확인을 재설정하려면 다음 지침에 따라야 합니다.

확인이 복제보다 크게 늦어지는 경우, 계획된 장애 조치를 예약하기 전에 사이트에 더 많은 시간을 부여할 것을 고려하십시오.

리포지토리 확인

기본 사이트:

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

    건강한 기본 Geo 인스턴스 개요가 포함된 확인 정보 탭

보조 사이트:

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

    건강한 보조 Geo 인스턴스 개요가 포함된 확인 정보 탭

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

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

리포지토리 다시 확인

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

기본 사이트:

  1. 왼쪽 사이드바에서 가장 아래쪽에서 관리자를 선택합니다.
  2. Geo > 사이트를 선택합니다.
  3. 기본 사이트의 편집을 선택하여 최소 다시 확인 간격을 사용자 정의합니다:

    Geo 노드의 구성 속성을 보여주는 창

확인에 실패한 프로젝트의 확인 재설정

Geo는 검증 실패를 활성적으로 수정하려고 하며 리포지토리를 다시 동기화할 수 있도록 표시합니다. 수동으로 초기화하려면 다음 명령을 보조의 Rails 노드에서 실행하십시오.

리포지토리의 경우:

sudo gitlab-rake geo:verification:repository:reset

위키의 경우:

sudo gitlab-rake geo:verification:wiki:reset

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

기본보조 사이트의 체크섬 확인 불일치가 발생한 경우, 원인이 분명하지 않을 수 있습니다. 체크섬 불일치의 원인을 찾으려면:

  1. 기본 사이트에서:

    1. 왼쪽 사이드바에서 가장 아래쪽에서 관리자를 선택합니다.
    2. 왼쪽 사이드바에서 개요 > 프로젝트를 선택합니다.
    3. 확인을 확인하려는 프로젝트를 찾고 이름을 선택합니다.
    4. 프로젝트 관리 페이지에서 저장소 이름상대 경로 필드의 값을 가져옵니다.
  2. 기본 사이트의 Gitaly 노드보조 사이트의 Gitaly 노드에서 프로젝트 저장소 디렉터리로 이동하십시오. Gitaly 클러스터를 사용하는 경우, 이 명령을 실행하기 전에 거기에서 정상 상태인지 확인하십시오.

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

    cd /var/opt/gitlab/git-data/repositories
    
    1. 기본 사이트에서 다음 명령을 실행하고 출력을 파일로 리디렉션하십시오:

      git show-ref --head | grep -E "HEAD|(refs/(heads|tags|keep-around|merge-requests|environments|notes)/)" > primary-site-refs
      
    2. 보조 사이트에서 다음 명령을 실행하고 출력을 파일로 리디렉션하십시오:

      git show-ref --head | grep -E "HEAD|(refs/(heads|tags|keep-around|merge-requests|environments|notes)/)" > secondary-site-refs
      
    3. 이전 단계에서 생성된 파일을 같은 시스템에 복사하고 내용 사이의 차이를 비교합니다:

      diff primary-site-refs secondary-site-refs
      

현재 제한 사항

복제 및 확인 방법과 관련된 자세한 정보는 지원되는 Geo 데이터 유형을 참조하십시오.