Geo 자주 묻는 질문

Tier: Premium, Ultimate Offering: Self-managed

Geo를 실행하는 데 필요한 최소 요구 사항은 무엇인가요?

요구 사항은 인덱스 페이지에 나열되어 있습니다.

Geo는 어떻게 프로젝트를 동기화할지 알고 있나요?

이차 사이트에서는 GitLab 데이터베이스의 읽기 전용 복제본이 있습니다. 이차 사이트에는 프로젝트 동기화 정보가 저장되는 추적 데이터베이스도 있습니다. Geo는 두 데이터베이스를 비교하여 아직 추적되지 않은 프로젝트를 찾습니다.

시작할 때 이 추적 데이터베이스는 비어 있으므로, Geo는 GitLab 데이터베이스에서 볼 수 있는 모든 프로젝트에서 업데이트를 시도합니다.

각 동기화할 프로젝트에 대해:

  1. Geo는 최신 정보를 얻기 위해 git fetch geo --mirror를 실행합니다. 변경 사항이 없는 경우 동기화가 빠릅니다. 그렇지 않으면 최신 커밋을 가져와야 합니다.
  2. 이차 사이트는 추적 데이터베이스를 업데이트하여 동기화한 프로젝트를 이름별로 저장합니다.
  3. 모든 프로젝트가 동기화될 때까지 반복합니다.

기본 사이트에 커밋을 푸시하면 GitLab 데이터베이스에서 리포지터리가 변경되었다는 이벤트가 생성됩니다. 이차 사이트는 이 이벤트를 감지하고 해당 프로젝트를 더티(dirty)로 표시하고 프로젝트를 다시 동기화할 예정입니다.

파이프라인 문제(예: 동기화 실패 횟수가 너무 많거나 작업이 손실된 경우)로 인해 프로젝트 동기화가 영구적으로 중지되지 않도록 하기 위해 Geo는 정기적으로 추적 데이터베이스에서 더티로 표시된 프로젝트를 확인합니다. 이 확인은 동기화 중복이 repos_max_capacity보다 적고 동기화를 기다리는 새 프로젝트가 없을 때 발생합니다.

Geo에는 또한 모든 Git 참조에 대해 SHA 값을 사용하여 SHA256 합을 실행하는 체크섬 기능이 있습니다. 기본 사이트와 이차 사이트 간에 참조가 일치하지 않으면 이차 사이트가 해당 프로젝트를 더티로 표시하고 다시 동기화를 시도합니다. 따라서 추적 데이터베이스가 오래된 경우에도 유효성 검사가 활성화되어 리포지터리 상태의 불일치를 찾아 다시 동기화해야 합니다.

재해 복구 상황에서 Geo를 사용할 수 있나요?

네, 하지만 복제할 수 있는 데이터에는 제한이 있습니다(이차 사이트로 복제되는 데이터는 무엇인가요? 참조).

재해 복구에 대한 문서를 읽어보세요.

이차 사이트로 복제되는 데이터는 무엇인가요?

현재 우리는 전체 Rails 데이터베이스, 프로젝트 리포지터리, LFS 오브젝트, 생성된 첨부 파일, 아바타 등을 복제합니다. 이는 사용자 계정, 이슈, Merge Request, 그룹 및 프로젝트 데이터와 같은 정보가 쿼리할 수 있음을 의미합니다.

Geo에 의해 복제되는 데이터 유형에 대한 포괄적인 디렉터리은 지원되는 Geo 데이터 유형 페이지를 참조하세요.

이차 사이트로 git push할 수 있나요?

git push이차 사이트로 직접(HTTPS 및 SSH 모두, Git LFS를 포함)할 수 있습니다.

이차 사이트로 커밋이 복제되기까지 얼마나 걸릴까요?

모든 복제 작업은 비동기적으로 처리되며 디스패치될 예정입니다. 따라서 이는 트래픽 양, 커밋의 크기, 사이트 간 연결 상태 및 하드웨어 등 여러 요인에 따라 달라집니다.

SSH 서버가 다른 포트에서 실행되는 경우에는 어떻게 되나요?

전혀 문제 없습니다. 우리는 모든 이차 사이트로부터 기본 사이트로부터 리포지터리 변경 사항을 가져오기 위해 HTTP(s)를 사용합니다.

기본 사이트에 있는 컨테이너 레지스트리를 복제하는 것이 가능한가요?

네, 하지만 이는 재해 복구 시나리오에 대해서만 지원합니다. 이차 사이트용 컨테이너 레지스트리를 참조하세요.

이차 사이트에 로그인할 수 있나요?

네, 하지만 이차 사이트는 모든 인증 데이터(사용자 계정 및 로그인과 같은)를 기본 사이트로부터 수신합니다. 따라서 인증을 위해 기본 사이트로 리디렉션되어 다시 경로가 되어야 합니다.

모든 Geo 사이트는 주 사이트와 같아야 하나요?

아니요, Geo 사이트는 서로 다른 참조 아키텍처를 기반으로 할 수 있습니다. 예를 들어, 주 사이트는 3K 참조 아키텍처를 기반으로 하고, 하나의 이차 사이트는 3K 참조 아키텍처를 기반으로 하며, 다른 하나는 1K 참조 아키텍처를 기반으로 할 수 있습니다.

Geo는 보관된 프로젝트를 복제하나요?

네, 선택적 동기화를 통해 제외되지 않는 한 보관된 프로젝트도 복제합니다.

Geo는 개인 프로젝트를 복제하나요?

네, 선택적 동기화를 통해 제외되지 않는 한 개인 프로젝트도 복제합니다.

지연된 삭제 프로젝트도 이차 사이트로 복제되나요?

네, 지연된 삭제에 의해 삭제 예정인 프로젝트이지만 영구적으로 삭제되지 않은 프로젝트도 이차 사이트로 복제됩니다.