InfoGrab DocsInfoGrab Docs

오브젝트 스토리지를 사용한 Geo

요약

Geo는 오브젝트 스토리지(AWS S3 또는 그 밖의 호환 오브젝트 스토리지)와 함께 사용할 수 있습니다. 보조 사이트는 다음 중 하나를 사용할 수 있습니다. 파일의 스토리지 방식(로컬 또는 오브젝트 스토리지)은 데이터베이스에 기록되며, 데이터베이스는 기본 Geo 사이트에서 보조 Geo 사이트로 복제됩니다.

히스토리
  • 오브젝트 스토리지 검증이 geo_object_storage_verification이라는 기능 플래그와 함께 GitLab 16.4에서 도입되었습니다. 기본적으로 활성화되어 있습니다.

Geo는 오브젝트 스토리지(AWS S3 또는 그 밖의 호환 오브젝트 스토리지)와 함께 사용할 수 있습니다.

보조 사이트는 다음 중 하나를 사용할 수 있습니다.

  • 기본 사이트와 동일한 스토리지 버킷.
  • 복제된 스토리지 버킷.
  • 기본 사이트가 로컬 스토리지를 사용하는 경우의 로컬 스토리지.

파일의 스토리지 방식(로컬 또는 오브젝트 스토리지)은 데이터베이스에 기록되며, 데이터베이스는 기본 Geo 사이트에서 보조 Geo 사이트로 복제됩니다.

업로드된 오브젝트에 접근할 때 스토리지 방식(로컬 또는 오브젝트 스토리지)을 데이터베이스에서 가져오므로, 보조 Geo 사이트는 기본 Geo 사이트의 스토리지 방식과 일치해야 합니다.

따라서 기본 Geo 사이트가 오브젝트 스토리지를 사용한다면 보조 Geo 사이트도 오브젝트 스토리지를 사용해야 합니다.

복제 방식은 다음과 같이 선택합니다.

GitLab에서 오브젝트 스토리지를 사용하는 방법에 대한 자세한 내용을 참고합니다.

오브젝트 스토리지 검증#

Geo는 기본 사이트와 보조 사이트 간 데이터 정합성을 보장하기 위해 오브젝트 스토리지에 저장된 파일을 검증합니다.

geo_object_storage_verification 기능 플래그가 오브젝트 스토리지 검증을 제어하며 기본적으로 활성화되어 있습니다. 운영상의 제어 수단으로, 오브젝트 스토리지 파일 검증이 인스턴스의 데이터베이스 부하나 메모리 사용량을 과도하게 높인다면 이 기능 플래그를 비활성화할 수 있습니다.

Warning

오브젝트 스토리지 검증을 비활성화하는 것은 권장하지 않습니다. geo_object_storage_verification 기능 플래그를 비활성화하면 GitLab 이 기존 검증 상태 레코드를 모두 비동기로 삭제합니다.

geo_object_storage_verification 기능 플래그가 비활성화되면 다음과 같이 동작합니다.

  • Geo 검증 워커(Geo::VerificationBatchWorker)가 Sidekiq 로그에 계속 나타날 수 있지만 검증은 수행되지 않습니다.
  • 검증 레코드를 정리하는 동안 남은 레코드를 처리하기 위해 워커가 큐에 추가될 수 있습니다.

GitLab 관리형 오브젝트 스토리지 복제 활성화#

Warning

문제가 발생하더라도 개별 파일을 수동으로 삭제하지 않습니다. 데이터 불일치로 이어질 수 있습니다.

보조 사이트는 기본 사이트가 저장한 파일을 로컬 파일 시스템에 저장했는지 오브젝트 스토리지에 저장했는지와 무관하게 복제할 수 있습니다.

GitLab 복제를 활성화하려면 다음을 수행합니다.

  1. 오른쪽 위 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 Geo > Sites를 선택합니다.
  3. 보조 사이트에서 Edit를 선택합니다.
  4. Synchronization Settings 섹션에서 Allow this secondary site to replicate content on Object Storage 체크박스를 찾아 활성화합니다.

LFS는 LFS 오브젝트 스토리지 설정 문서를 참고합니다.

CI job 아티팩트는 job 아티팩트 오브젝트 스토리지를 구성하는 유사한 문서가 있습니다.

사용자 업로드는 업로드 오브젝트 스토리지를 구성하는 유사한 문서가 있습니다.

기본 사이트의 파일을 오브젝트 스토리지로 마이그레이션하려는 경우, 보조 사이트는 다음 몇 가지 방식으로 구성할 수 있습니다.

  • 완전히 동일한 오브젝트 스토리지를 사용합니다.
  • 별도의 오브젝트 스토어를 사용하되 오브젝트 스토리지 솔루션에 내장된 복제 기능을 활용합니다.
  • 별도의 오브젝트 스토어를 사용하면서 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가 표시됩니다.

Warning

데이터 손실을 피하려면 기본 사이트와 보조 사이트에 서로 다른 오브젝트 스토어를 사용하는 경우에만 Allow this secondary site to replicate content on Object Storage 설정을 활성화합니다.

GitLab은 다음 두 조건이 동시에 성립하는 경우를 지원하지 않습니다.

  • 기본 사이트가 로컬 스토리지를 사용합니다.
  • 보조 사이트가 오브젝트 스토리지를 사용합니다.

마이그레이션 후 발생하는 불일치#

로컬 스토리지에서 오브젝트 스토리지로 마이그레이션할 때 데이터 불일치가 발생할 수 있으며, 자세한 내용은 오브젝트 스토리지 문제 해결 섹션에 설명되어 있습니다.

서드 파티 복제 서비스#

Amazon S3를 사용하는 경우 Cross-Region Replication(CRR)을 사용해 기본 사이트가 사용하는 버킷과 보조 사이트가 사용하는 버킷 간에 자동 복제를 구성할 수 있습니다.

Google Cloud Storage를 사용한다면 Multi-Regional Storage 사용을 검토합니다. 또는 Storage Transfer Service를 사용할 수 있으나, 이 서비스는 일 단위 동기화만 지원합니다.

수동 동기화나 cron으로 예약한 동기화는 다음을 참고합니다.

오브젝트 스토리지를 사용한 Geo

GitLab v19.4
Tier: Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기

요약

Geo는 오브젝트 스토리지(AWS S3 또는 그 밖의 호환 오브젝트 스토리지)와 함께 사용할 수 있습니다. 보조 사이트는 다음 중 하나를 사용할 수 있습니다. 파일의 스토리지 방식(로컬 또는 오브젝트 스토리지)은 데이터베이스에 기록되며, 데이터베이스는 기본 Geo 사이트에서 보조 Geo 사이트로 복제됩니다.

히스토리
  • 오브젝트 스토리지 검증이 geo_object_storage_verification이라는 기능 플래그와 함께 GitLab 16.4에서 도입되었습니다. 기본적으로 활성화되어 있습니다.

Geo는 오브젝트 스토리지(AWS S3 또는 그 밖의 호환 오브젝트 스토리지)와 함께 사용할 수 있습니다.

보조 사이트는 다음 중 하나를 사용할 수 있습니다.

  • 기본 사이트와 동일한 스토리지 버킷.
  • 복제된 스토리지 버킷.
  • 기본 사이트가 로컬 스토리지를 사용하는 경우의 로컬 스토리지.

파일의 스토리지 방식(로컬 또는 오브젝트 스토리지)은 데이터베이스에 기록되며, 데이터베이스는 기본 Geo 사이트에서 보조 Geo 사이트로 복제됩니다.

업로드된 오브젝트에 접근할 때 스토리지 방식(로컬 또는 오브젝트 스토리지)을 데이터베이스에서 가져오므로, 보조 Geo 사이트는 기본 Geo 사이트의 스토리지 방식과 일치해야 합니다.

따라서 기본 Geo 사이트가 오브젝트 스토리지를 사용한다면 보조 Geo 사이트도 오브젝트 스토리지를 사용해야 합니다.

복제 방식은 다음과 같이 선택합니다.

GitLab에서 오브젝트 스토리지를 사용하는 방법에 대한 자세한 내용을 참고합니다.

오브젝트 스토리지 검증#

Geo는 기본 사이트와 보조 사이트 간 데이터 정합성을 보장하기 위해 오브젝트 스토리지에 저장된 파일을 검증합니다.

geo_object_storage_verification 기능 플래그가 오브젝트 스토리지 검증을 제어하며 기본적으로 활성화되어 있습니다. 운영상의 제어 수단으로, 오브젝트 스토리지 파일 검증이 인스턴스의 데이터베이스 부하나 메모리 사용량을 과도하게 높인다면 이 기능 플래그를 비활성화할 수 있습니다.

Warning

오브젝트 스토리지 검증을 비활성화하는 것은 권장하지 않습니다. geo_object_storage_verification 기능 플래그를 비활성화하면 GitLab 이 기존 검증 상태 레코드를 모두 비동기로 삭제합니다.

geo_object_storage_verification 기능 플래그가 비활성화되면 다음과 같이 동작합니다.

  • Geo 검증 워커(Geo::VerificationBatchWorker)가 Sidekiq 로그에 계속 나타날 수 있지만 검증은 수행되지 않습니다.
  • 검증 레코드를 정리하는 동안 남은 레코드를 처리하기 위해 워커가 큐에 추가될 수 있습니다.

GitLab 관리형 오브젝트 스토리지 복제 활성화#

Warning

문제가 발생하더라도 개별 파일을 수동으로 삭제하지 않습니다. 데이터 불일치로 이어질 수 있습니다.

보조 사이트는 기본 사이트가 저장한 파일을 로컬 파일 시스템에 저장했는지 오브젝트 스토리지에 저장했는지와 무관하게 복제할 수 있습니다.

GitLab 복제를 활성화하려면 다음을 수행합니다.

  1. 오른쪽 위 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 Geo > Sites를 선택합니다.
  3. 보조 사이트에서 Edit를 선택합니다.
  4. Synchronization Settings 섹션에서 Allow this secondary site to replicate content on Object Storage 체크박스를 찾아 활성화합니다.

LFS는 LFS 오브젝트 스토리지 설정 문서를 참고합니다.

CI job 아티팩트는 job 아티팩트 오브젝트 스토리지를 구성하는 유사한 문서가 있습니다.

사용자 업로드는 업로드 오브젝트 스토리지를 구성하는 유사한 문서가 있습니다.

기본 사이트의 파일을 오브젝트 스토리지로 마이그레이션하려는 경우, 보조 사이트는 다음 몇 가지 방식으로 구성할 수 있습니다.

  • 완전히 동일한 오브젝트 스토리지를 사용합니다.
  • 별도의 오브젝트 스토어를 사용하되 오브젝트 스토리지 솔루션에 내장된 복제 기능을 활용합니다.
  • 별도의 오브젝트 스토어를 사용하면서 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가 표시됩니다.

Warning

데이터 손실을 피하려면 기본 사이트와 보조 사이트에 서로 다른 오브젝트 스토어를 사용하는 경우에만 Allow this secondary site to replicate content on Object Storage 설정을 활성화합니다.

GitLab은 다음 두 조건이 동시에 성립하는 경우를 지원하지 않습니다.

  • 기본 사이트가 로컬 스토리지를 사용합니다.
  • 보조 사이트가 오브젝트 스토리지를 사용합니다.

마이그레이션 후 발생하는 불일치#

로컬 스토리지에서 오브젝트 스토리지로 마이그레이션할 때 데이터 불일치가 발생할 수 있으며, 자세한 내용은 오브젝트 스토리지 문제 해결 섹션에 설명되어 있습니다.

서드 파티 복제 서비스#

Amazon S3를 사용하는 경우 Cross-Region Replication(CRR)을 사용해 기본 사이트가 사용하는 버킷과 보조 사이트가 사용하는 버킷 간에 자동 복제를 구성할 수 있습니다.

Google Cloud Storage를 사용한다면 Multi-Regional Storage 사용을 검토합니다. 또는 Storage Transfer Service를 사용할 수 있으나, 이 서비스는 일 단위 동기화만 지원합니다.

수동 동기화나 cron으로 예약한 동기화는 다음을 참고합니다.