- Geo를 실행하기 위한 최소 요구 사항은 무엇인가요?
- Geo는 어떻게 동기화할 프로젝트를 파악하나요?
- 재해 복구 상황에서 Geo를 사용할 수 있나요?
- 보조 사이트로 어떤 데이터가 복제되나요?
- 보조 사이트로
git push
를 할 수 있나요? - 커밋이 보조 사이트로 복제되기까지 얼마나 걸리나요?
- SSH 서버가 다른 포트에서 실행 중인 경우 어떻게 되나요?
- 기본 사이트와 동일한 컨테이너 레지스트리를 보조 사이트에 설정할 수 있나요?
- 보조 사이트에 로그인할 수 있나요?
- 모든 Geo 사이트가 기본 사이트와 동일해야 하나요?
- Geo가 아카이빙된 프로젝트를 복제하나요?
- Geo가 개인 프로젝트를 복제하나요?
- 지연 삭제 프로젝트는 보조 사이트로 복제되나요?
Geo 자주 묻는 질문
Geo를 실행하기 위한 최소 요구 사항은 무엇인가요?
요구 사항은 인덱스 페이지에 나열되어 있습니다.
Geo는 어떻게 동기화할 프로젝트를 파악하나요?
각 보조 사이트마다 GitLab 데이터베이스의 읽기 전용 복제본이 있습니다. 보조 사이트에는 이미 동기화된 프로젝트가 저장된 추적 데이터베이스도 있습니다. Geo는 두 데이터베이스를 비교하여 아직 추적되지 않은 프로젝트를 찾습니다.
처음에는 이 추적 데이터베이스가 비어 있으므로 Geo는 GitLab 데이터베이스에서 볼 수 있는 모든 프로젝트에서 업데이트를 시도합니다.
각 동기화할 프로젝트마다:
- Geo는 최신 정보를 얻기 위해
git fetch geo --mirror
를 실행합니다. 변경 사항이 없으면 동기화가 빠릅니다. 그렇지 않으면 최신 커밋을 가져와야 합니다. - 보조 사이트는 동기화된 프로젝트를 이름으로 저장하는 추적 데이터베이스를 업데이트합니다.
- 모든 프로젝트가 동기화될 때까지 반복합니다.
누군가가 기본 사이트에 커밋을 푸시하면 GitLab 데이터베이스에서 해당 리포지터리가 변경되었음을 나타내는 이벤트가 생성됩니다. 보조 사이트는 이 이벤트를 감지하여 해당 프로젝트를 “더러운” 것으로 표시하고 프로젝트를 다시 동기화할 예정입니다.
파이프라인 문제(예: 동기화에 너무 많은 실패가 발생하거나 작업이 손실되는 경우)가 프로젝트의 동기화를 영구적으로 중지하는 것을 방지하기 위해 Geo는 주기적으로 “더러운” 프로젝트를 추적 데이터베이스에서 확인합니다. 이 확인은 동시 동기화 수가 repos_max_capacity
보다 낮아지고 동기화할 프로젝트가 더 이상 없는 경우에 수행됩니다.
Geo에는 또한 모든 Git 참조에 대해 SHA256 해시를 실행하는 체크섬 기능이 있습니다. 기본 사이트와 보조 사이트 간에 참조(refs)가 일치하지 않으면 보조 사이트는 해당 프로젝트를 “더러운” 것으로 표시하고 다시 동기화를 시도합니다. 따라서 오래된 추적 데이터베이스가 있더라도 유효성 검사를 활성화하여 리포지터리 상태의 불일치를 찾고 다시 동기화해야 합니다.
재해 복구 상황에서 Geo를 사용할 수 있나요?
네, 하지만 우리가 복제하는 데이터에는 제한이 있습니다(보조 사이트로 복제되는 데이터 참조).
재해 복구에 대한 문서를 참조하세요.
보조 사이트로 어떤 데이터가 복제되나요?
현재 우리는 레일스 데이터베이스 전체, 프로젝트 리포지터리, LFS(Large File Storage) 객체, 생성된 첨부 파일, 아바타 등을 복제합니다. 이는 사용자 계정, 이슈, Merge Request, 그룹 및 프로젝트 데이터와 같은 정보가 조회 가능하다는 것을 의미합니다.
Geo에 의해 복제되는 데이터 유형에 대한 포괄적인 디렉터리은 지원되는 Geo 데이터 유형 페이지를 참조하세요.
보조 사이트로 git push
를 할 수 있나요?
git push
를 직접 보조 사이트로(HTTPS 및 SSH 모두, Git LFS 포함) 할 수 있습니다.
커밋이 보조 사이트로 복제되기까지 얼마나 걸리나요?
모든 복제 작업은 비동기적으로 처리되며 전송 대기열에 포함되어 실행됩니다. 따라서 이는 트래픽 양, 커밋의 크기, 사이트 간 연결성, 하드웨어 등 다양한 요소에 따라 달라집니다.
SSH 서버가 다른 포트에서 실행 중인 경우 어떻게 되나요?
전혀 문제가 되지 않습니다. 우리는 기본 사이트에서 보조 사이트로의 리포지터리 변경 사항을 가져오기 위해 HTTP(s)를 사용합니다.
기본 사이트와 동일한 컨테이너 레지스트리를 보조 사이트에 설정할 수 있나요?
네, 그러나 이는 재해 복구 시나리오에 대해서만 지원합니다. 보조 사이트를 위한 컨테이너 레지스트리를 참조하세요.
보조 사이트에 로그인할 수 있나요?
네, 하지만 보조 사이트는 사용자 계정 및 로그인과 같은 모든 인증 데이터를 기본 인스턴스로부터 수신합니다. 이는 사용자가 인증을 위해 기본 위치로 리디렉션되고 다시 라우팅된다는 것을 의미합니다.
모든 Geo 사이트가 기본 사이트와 동일해야 하나요?
아니요, Geo 사이트는 서로 다른 참조 아키텍처를 기반으로 할 수 있습니다. 예를 들어, 기본 사이트를 3K 참조 아키텍처를 기반으로 하고, 그 중 하나는 3K 참조 아키텍처를 기반으로 하고 또 다른 하나는 1K 참조 아키텍처를 기반으로 할 수 있습니다.
Geo가 아카이빙된 프로젝트를 복제하나요?
네, 이들은 선택적 동기화를 통해 제외되지 않는 한 복제됩니다.
Geo가 개인 프로젝트를 복제하나요?
네, 이들은 선택적 동기화를 통해 제외되지 않는 한 복제됩니다.
지연 삭제 프로젝트는 보조 사이트로 복제되나요?
네, 지연 삭제에 의해 삭제 예정인 프로젝트는 아직 영구적으로 삭제되지 않았더라도 보조 사이트로 복제됩니다.