Geo 자주 묻는 질문
Geo 자주 묻는 질문에 대해 설명합니다.
Geo를 실행하기 위한 최소 요구 사항은 무엇인가요? # 요구 사항은 인덱스 페이지 에 나열되어 있습니다. Geo는 동기화할 프로젝트를 어떻게 알 수 있나요? # 각 보조 사이트에는 GitLab 데이터베이스의 읽기 전용 복제 복사본이 있습니다. 보조 사이트에는 동기화된 프로젝트를 저장하는 추적 데이터베이스도 있습니다. Geo는 두 데이터베이스를 비교하여 아직 추적되지 않은 프로젝트를 찾습니다. 처음에는 이 추적 데이터베이스가 비어 있으므로 Geo는 GitLab 데이터베이스에서 볼 수 있는 모든 프로젝트에서 업데이트를 시도합니다. 동기화할 각 프로젝트에 대해: Geo는 주 사이트에서 최신 정보를 가져오기 위해 git fetch geo --mirror 를 실행합니다. 변경 사항이 없으면 동기화가 빠릅니다. 그렇지 않으면 최신 커밋을 가져와야 합니다. 보조 사이트는 추적 데이터베이스를 업데이트하여 이름으로 프로젝트를 동기화했다는 사실을 저장합니다. 모든 프로젝트가 동기화될 때까지 반복합니다. 누군가가 주 사이트에 커밋을 푸시하면 저장소가 변경되었다는 이벤트가 GitLab 데이터베이스에 생성됩니다. 보조 사이트는 이 이벤트를 보고 해당 프로젝트를 더티로 표시하고 프로젝트를 다시 동기화하도록 예약합니다. 파이프라인 문제(예: 동기화 실패 횟수 초과 또는 job 손실)로 인해 프로젝트 동기화가 영구적으로 중단되지 않도록 Geo는 더티로 표시된 프로젝트에 대해 추적 데이터베이스를 주기적으로 확인합니다. 이 확인은 동시 동기화 수가 repos_max_capacity 아래로 떨어지고 동기화를 기다리는 새 프로젝트가 없을 때 발생합니다. Geo에는 SHA 값에 대한 모든 Git 참조에서 SHA256 합계를 실행하는 체크섬 기능도 있습니다. 주 사이트와 보조 사이트 사이의 refs가 일치하지 않으면 보조 사이트는 해당 프로젝트를 더티로 표시하고 다시 동기화를 시도합니다. 따라서 추적 데이터베이스가 오래되었더라도 유효성 검사가 활성화되어 저장소 상태의 불일치를 찾고 다시 동기화합니다. 재해 복구 상황에서 Geo를 사용할 수 있나요? # 예, 하지만 복제하는 내용에 대한 제한이 있습니다( 보조 사이트에 복제되는 데이터는 무엇인가요? 를 참조하세요). 재해 복구 문서를 읽어보세요. 보조 사이트에 복제되는 데이터는 무엇인가요? # 전체 rails 데이터베이스, 프로젝트 저장소, LFS 객체, 생성된 첨부 파일, 아바타 등을 복제합니다. 이는 사용자 계정, 이슈, 머지 리퀘스트, 그룹, 프로젝트 데이터 등의 정보를 쿼리에 사용할 수 있다는 것을 의미합니다. Geo에서 복제하는 데이터의 포괄적인 목록은 지원되는 Geo 데이터 유형 페이지 를 참조하세요. 보조 사이트에 git push 할 수 있나요? # 보조 사이트에 직접 푸시(HTTP와 SSH 모두, Git LFS 포함)가 지원됩니다. 커밋이 보조 사이트에 복제되는 데 얼마나 걸리나요? # 모든 복제 작업은 비동기적으로 수행되며 디스패치를 위해 대기열에 추가됩니다. 따라서 트래픽 양, 커밋 크기, 사이트 간 연결 및
