객체 스토리지를 사용한 Geo
Offering: GitLab Self-Managed
Geo는 객체 스토리지(AWS S3 또는 기타 호환 가능한 객체 스토리지)와 함께 사용할 수 있습니다. 보조 사이트는 다음 중 하나를 사용할 수 있습니다: 파일의 스토리지 방법(로컬 또는 객체 스토리지)은 데이터베이스에 기록되며 데이터베이스는 기본 Geo 사이트에서 보조 Geo 사이트로 복제됩니다.
Geo는 객체 스토리지(AWS S3 또는 기타 호환 가능한 객체 스토리지)와 함께 사용할 수 있습니다.
보조 사이트는 다음 중 하나를 사용할 수 있습니다:
- 기본 사이트와 동일한 스토리지 버킷.
- 복제된 스토리지 버킷.
- 기본 사이트가 로컬 스토리지를 사용하는 경우 로컬 스토리지.
파일의 스토리지 방법(로컬 또는 객체 스토리지)은 데이터베이스에 기록되며 데이터베이스는 기본 Geo 사이트에서 보조 Geo 사이트로 복제됩니다.
업로드된 객체에 액세스할 때 데이터베이스에서 스토리지 방법(로컬 또는 객체 스토리지)을 가져오므로 보조 Geo 사이트는 기본 Geo 사이트의 스토리지 방법과 일치해야 합니다.
따라서 기본 Geo 사이트가 객체 스토리지를 사용하는 경우 보조 Geo 사이트도 사용해야 합니다.
다음을 원하는 경우:
- GitLab이 복제를 관리하도록 하려면 GitLab 복제 활성화를 따르세요.
- 타사 서비스가 복제를 관리하도록 하려면 타사 복제 서비스를 따르세요.
GitLab에서 객체 스토리지 사용에 대해 자세히 알아보기.
객체 스토리지 검증#
Geo는 기본 및 보조 사이트 간의 데이터 무결성을 보장하기 위해 객체 스토리지에 저장된 파일을 검증합니다.
객체 스토리지 검증을 비활성화하는 것은 권장하지 않습니다.
geo_object_storage_verification 기능 플래그를 비활성화하면 GitLab이 모든 기존 검증 상태 레코드를 비동기적으로 삭제합니다.
geo_object_storage_verification 기능 플래그가 비활성화된 경우:
- Geo 검증 워커(
Geo::VerificationBatchWorker)가 Sidekiq 로그에 여전히 나타날 수 있지만 검증이 수행되지 않습니다. - 검증 레코드 정리 중에 워커가 나머지 레코드를 처리하기 위해 큐에 추가될 수 있습니다.
GitLab 관리 객체 스토리지 복제 활성화#
히스토리
- GitLab 15.1에서 도입.
문제가 발생한 경우 마이그레이션 후 불일치가 발생할 수 있으므로 개별 파일을 수동으로 삭제하지 마세요.
보조 사이트는 로컬 파일 시스템 또는 객체 스토리지에 저장되어 있는지 여부와 관계없이 기본 사이트에 저장된 파일을 복제할 수 있습니다.
GitLab 복제를 활성화하려면:
- 오른쪽 상단 모서리에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Geo > Sites를 선택합니다.
- 보조 사이트에서 Edit를 선택합니다.
- Synchronization Settings 섹션에서 Allow this secondary site to replicate content on Object Storage 체크박스를 찾아 활성화합니다.
LFS의 경우 LFS 객체 스토리지 설정 문서를 따르세요.
CI 작업 아티팩트의 경우 작업 아티팩트 객체 스토리지 구성에 대한 유사한 문서가 있습니다.
사용자 업로드의 경우 업로드 객체 스토리지 구성에 대한 유사한 문서가 있습니다.
기본 사이트의 파일을 객체 스토리지로 마이그레이션하려는 경우 보조를 몇 가지 방법으로 구성할 수 있습니다:
- 정확히 동일한 객체 스토리지를 사용합니다.
- 별도의 객체 스토어를 사용하지만 객체 스토리지 솔루션의 기본 제공 복제를 활용합니다.
- 별도의 객체 스토어를 사용하고 Allow this secondary site to replicate content on Object Storage 설정을 활성화합니다.
Allow this secondary site to replicate content on Object Storage 설정이 비활성화되어 있고 모든 파일을 로컬 스토리지에서 객체 스토리지로 마이그레이션한 경우 많은 Admin > Geo > Sites 진행 막대가 Nothing to synchronize를 표시합니다.
데이터 손실을 방지하기 위해 기본 및 보조 사이트에 별도의 객체 스토어를 사용하는 경우에만 Allow this secondary site to replicate content on Object Storage 설정을 활성화해야 합니다.
GitLab은 다음 두 가지가 모두 해당되는 경우를 지원하지 않습니다:
- 기본 사이트가 로컬 스토리지를 사용합니다.
- 보조 사이트가 객체 스토리지를 사용합니다.
마이그레이션 후 불일치#
로컬에서 객체 스토리지로 마이그레이션할 때 데이터 불일치가 발생할 수 있습니다. 이에 대한 자세한 내용은 객체 스토리지 문제 해결 섹션에 설명되어 있습니다.
타사 복제 서비스#
Amazon S3를 사용하는 경우 교차 지역 복제(CRR)를 사용하여 기본 사이트가 사용하는 버킷과 보조 사이트가 사용하는 버킷 간에 자동 복제를 수행할 수 있습니다.
Google Cloud Storage를 사용하는 경우 다중 지역 스토리지를 사용하는 것을 고려하세요. 또는 Storage Transfer Service를 사용할 수 있지만 이는 일일 동기화만 지원합니다.
수동 동기화 또는 cron으로 예약하려면 다음을 참조하세요:
