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