Geo 자주 묻는 질문

Tier: 프리미엄, 얼티밋 Offering: Self-managed

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

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

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

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

처음에는 이 추적 데이터베이스가 비어 있으므로 Geo는 GitLab 데이터베이스에서 볼 수 있는 모든 프로젝트를 대상으로 업데이트하려고 시도합니다.

각 프로젝트 동기화를 위해:

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

누군가가 사이트에 커밋을 푸시하면 GitLab 데이터베이스에 해당 저장소가 변경되었음을 알리는 이벤트가 생성됩니다. 보조 사이트는 이 이벤트를 감지하고 해당 프로젝트를 변경된 상태로 표시하고 프로젝트를 다시 동기화하도록 예약합니다.

파이프라인에 문제가 발생하는 것을 방지하기 위해(Geo 물론, 동기화가 너무 많이 실패하거나 작업이 손실되는 경우) 프로젝트 동기화가 영구적으로 중지되지 않도록 Geo는 주기적으로 추적 데이터베이스를 확인하여 변경된 프로젝트를 찾습니다. 이 확인은 repos_max_capacity 미만의 동시 동기화 수가 감소하고 동기화 대기 중인 새 프로젝트가 없을 때 발생합니다.

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

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

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

재해 복구에 대한 문서를 확인하세요.

보조 사이트에 어떤 데이터가 복제되나요?

현재 우리는 전체 레일스 데이터베이스, 프로젝트 리포지토리, LFS 객체, 생성된 첨부 파일, 아바타 등을 복제합니다. 이는 사용자 계정, 이슈, 병합 요청, 그룹 및 프로젝트 데이터와 같은 정보를 쿼리할 수 있는 것을 의미합니다.

Geo가 복제하는 데이터 유형에 대한 포괄적인 목록은 지원되는 Geo 데이터 유형 페이지를 참조하세요.

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

직접 보조 사이트로 푸시하기(HTTP 및 SSH 모두, Git LFS를 포함하여)를 지원합니다.

커밋이 보조 사이트로 복제되는 데 얼마나 걸릴까요?

모든 복제 작업은 비동기적으로 처리되어 디스패치되기 위해 대기열에 들어갑니다. 따라서 이에 걸리는 시간은 트래픽 양, 커밋의 크기, 사이트 간의 연결 및 하드웨어 등 많은 요소에 따라 달라집니다.

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

전혀 문제 없습니다. 우리는 주 사이트에서 모든 보조 사이트로의 저장소 변경 사항을 가져오기 위해 HTTP(s)를 사용합니다.

사이트의 컨테이너 레지스트리와 동일하게 보조 사이트에 컨테이너 레지스트리를 설정할 수 있나요?

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

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

네, 그러나 보조 사이트는 주(Primary) 인스턴스로부터 모든 인증 데이터(사용자 계정 및 로그인과 같은)를 받습니다. 이는 인증을 위해 처음에는 주 사이트로 리디렉션되고 다시 경유하여 보조 사이트로 돌아오게 됨을 의미합니다.

모든 Geo 사이트가 주 사이트와 동일해야 하나요?

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

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

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

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

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

지연된 삭제 프로젝트가 보조 사이트로 복제되나요?

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