StorageGRID의 교차 그리드 복제에 대해 알아보십시오
크로스 그리드 복제는 "그리드 페더레이션 연결"에 연결된 두 StorageGRID 시스템의 선택된 S3 버킷 간에 객체를 자동으로 복제하는 기능입니다. "계정 복제"은(는) 크로스 그리드 복제에 필요합니다.
그리드 간 복제 워크플로
워크플로 다이어그램은 두 그리드의 버킷 간 교차 그리드 복제를 구성하는 단계를 요약합니다.

그리드 간 복제를 위한 요구 사항
테넌트 계정에 하나 이상의 "그리드 페더레이션 연결"을(를) 사용할 수 있는 그리드 페더레이션 연결 사용 권한이 있는 경우, 루트 액세스 권한이 있는 테넌트 사용자는 각 그리드의 해당 테넌트 계정에 버킷을 생성할 수 있습니다. 이러한 버킷은 다음과 같습니다.
-
서로 다른 이름을 가질 수 있습니다
-
지역마다 다를 수 있습니다.
-
버전 관리 기능이 활성화되어 있어야 합니다.
-
비어 있어야 합니다
두 버킷이 모두 생성된 후에는 두 버킷 중 하나 또는 둘 모두에 대해 그리드 간 복제를 구성할 수 있습니다.
그리드 간 복제 작동 방식
그리드 간 복제는 단방향 또는 양방향으로 수행되도록 구성할 수 있습니다.
단방향 복제
한 그리드의 버킷에 대해서만 그리드 간 복제를 활성화하면 해당 버킷(원본 버킷)에 추가된 객체는 다른 그리드의 해당 버킷(대상 버킷)으로 복제됩니다. 그러나 대상 버킷에 추가된 객체는 원본 버킷으로 다시 복제되지 않습니다. 그림에서 그리드 간 복제는 my-bucket Grid 1에서 Grid 2로 활성화되어 있지만, 반대 방향으로는 활성화되어 있지 않습니다.

양방향 복제
두 그리드 모두에서 동일한 버킷에 대해 그리드 간 복제를 활성화하면 어느 한 버킷에 추가된 객체가 다른 그리드로 복제됩니다. 그림에서는 `my-bucket`에 대해 양방향으로 그리드 간 복제가 활성화되어 있습니다.

오브젝트가 수집될 때 어떻게 됩니까?
크로스 그리드 복제가 활성화된 버킷에 S3 클라이언트가 객체를 추가하면 다음과 같은 현상이 발생합니다.
-
StorageGRID 소스 버킷에서 대상 버킷으로 객체를 자동으로 복제합니다. 이 백그라운드 복제 작업에 소요되는 시간은 대기 중인 다른 복제 작업의 수 등 여러 요인에 따라 달라집니다.
S3 클라이언트는 GetObject 또는 HeadObject 요청을 실행하여 객체의 복제 상태를 확인할 수 있습니다. 응답에는 StorageGRID 관련
x-ntap-sg-cgr-replication-status응답 헤더가 포함되며, 이 헤더에는 다음 값 중 하나가 있습니다.그리드 복제 상태 소스
-
완료됨: 모든 그리드 연결에 대한 복제가 성공적으로 완료되었습니다.
-
PENDING: 해당 개체가 하나 이상의 그리드 연결에 복제되지 않았습니다.
-
FAILURE: 복제 작업이 어떤 그리드 연결에 대해서도 보류 중이 아니며, 하나 이상의 연결이 영구적으로 실패했습니다. 사용자가 오류를 해결해야 합니다.
목적지
REPLICA: 해당 객체는 원본 그리드에서 복제되었습니다.
StorageGRID는 x-amz-replication-status헤더를 지원하지 않습니다. -
-
StorageGRID는 다른 객체와 마찬가지로 각 그리드의 활성 ILM 정책을 사용하여 객체를 관리합니다. 예를 들어, 그리드 1의 객체 A는 두 개의 복제본으로 저장되어 영구적으로 보존될 수 있으며, 그리드 2로 복제된 객체 A의 복사본은 2+1 이레이저 코딩을 사용하여 저장되고 3년 후에 삭제될 수 있습니다.
객체가 삭제되면 어떻게 됩니까?
앞서 설명한 바와 같이 "데이터 흐름 삭제", StorageGRID는 다음과 같은 이유로 객체를 삭제할 수 있습니다.
-
S3 클라이언트가 삭제 요청을 보냅니다.
-
테넌트 관리자 사용자가 "버킷에서 객체 삭제" 옵션을 선택하여 버킷에서 모든 객체를 제거합니다.
-
버킷에는 만료되는 수명 주기 구성이 있습니다.
-
해당 객체에 대한 ILM 규칙의 마지막 기간이 종료되었으며, 더 이상 지정된 배치가 없습니다.
StorageGRID 버킷 내 객체 삭제 작업, 버킷 수명 주기 만료 또는 ILM 배치 만료로 인해 객체를 삭제하는 경우, 복제된 객체는 그리드 페더레이션 연결의 다른 그리드에서 삭제되지 않습니다. 그러나 S3 클라이언트 삭제 작업으로 소스 버킷에 추가된 삭제 마커는 선택적으로 대상 버킷으로 복제될 수 있습니다.
크로스 그리드 복제가 활성화된 버킷에서 S3 클라이언트가 객체를 삭제할 때 발생하는 상황을 이해하려면, 버전 관리가 활성화된 버킷에서 S3 클라이언트가 객체를 삭제하는 방법을 다음과 같이 검토하십시오.
-
S3 클라이언트가 버전 ID를 포함한 삭제 요청을 보내면 해당 버전의 객체가 영구적으로 삭제됩니다. 버킷에는 삭제 표시가 추가되지 않습니다.
-
S3 클라이언트가 버전 ID를 포함하지 않은 삭제 요청을 보내면 StorageGRID는 객체 버전을 삭제하지 않습니다. 대신 버킷에 삭제 마커를 추가합니다. 이 삭제 마커로 인해 StorageGRID는 객체가 삭제된 것처럼 동작합니다.
-
버전 ID가 없는 GetObject 요청은 다음과 함께 실패합니다.
404 No Object Found -
유효한 버전 ID를 사용한 GetObject 요청이 성공하면 요청된 객체 버전이 반환됩니다.
-
크로스 그리드 복제가 활성화된 버킷에서 S3 클라이언트가 객체를 삭제하면 StorageGRID는 다음과 같이 삭제 요청을 대상으로 복제할지 여부를 결정합니다.
-
삭제 요청에 버전 ID가 포함된 경우 해당 객체 버전은 소스 그리드에서 영구적으로 제거됩니다. 그러나 StorageGRID는 버전 ID가 포함된 삭제 요청을 복제하지 않으므로 대상에서는 동일한 객체 버전이 삭제되지 않습니다.
-
삭제 요청에 버전 ID가 포함되지 않은 경우, StorageGRID는 버킷에 대해 그리드 간 복제가 구성된 방식에 따라 삭제 마커를 선택적으로 복제할 수 있습니다.
-
삭제 마커 복제(기본값)를 선택하면 소스 버킷에 삭제 마커가 추가되고 대상 버킷으로 복제됩니다. 결과적으로 두 그리드 모두에서 객체가 삭제된 것처럼 보입니다.
-
삭제 마커 복제를 선택하지 않으면 소스 버킷에는 삭제 마커가 추가되지만 대상 버킷으로는 복제되지 않습니다. 즉, 소스 그리드에서 삭제된 객체는 대상 그리드에서는 삭제되지 않습니다.
-
그림에서 *삭제 마커 복제*는 "그리드 간 복제가 활성화되었습니다."일 때 *예*로 설정되어 있습니다. 버전 ID가 포함된 소스 버킷의 삭제 요청은 대상 버킷의 객체를 삭제하지 않습니다. 버전 ID가 포함되지 않은 소스 버킷의 삭제 요청은 대상 버킷의 객체를 삭제하는 것처럼 보입니다.

|
|
그리드 간 객체 삭제를 동기화하려면 양쪽 그리드의 버킷에 해당하는 "S3 라이프사이클 구성"을 생성하십시오. |
암호화된 객체가 복제되는 방식
그리드 간 복제를 사용하여 그리드 간에 객체를 복제할 때 개별 객체를 암호화하거나, 기본 버킷 암호화를 사용하거나, 그리드 전체 암호화를 구성할 수 있습니다. 버킷에 대한 그리드 간 복제를 활성화하기 전이나 후에 기본 버킷 또는 그리드 전체 암호화 설정을 추가, 수정 또는 제거할 수 있습니다.
개별 객체를 암호화하려면 소스 버킷에 객체를 추가할 때 SSE(StorageGRID에서 관리하는 키를 사용하는 서버 측 암호화)를 사용할 수 있습니다. x-amz-server-side-encryption 요청 헤더를 사용하고 `AES256`을(를) 지정합니다. "서버 측 암호화 사용"을(를) 참조하십시오.
|
|
SSE-C(고객 제공 키를 사용하는 서버 측 암호화)는 그리드 간 복제에 지원되지 않습니다. 데이터 수집 작업이 실패합니다. |
버킷에 기본 암호화를 사용하려면 PutBucketEncryption 요청을 사용하고 SSEAlgorithm 매개변수를 AES256`로 설정하십시오. 버킷 수준 암호화는 `x-amz-server-side-encryption 요청 헤더 없이 수집된 모든 객체에 적용됩니다. "버킷에 대한 작업"을 참조하십시오.
그리드 수준 암호화를 사용하려면 저장된 객체 암호화 옵션을 *AES-256*으로 설정하십시오. 그리드 수준 암호화는 버킷 수준에서 암호화되지 않았거나 x-amz-server-side-encryption 요청 헤더 없이 수집된 모든 객체에 적용됩니다. "네트워크 및 객체 옵션 구성"을 참조하십시오.
|
|
SSE는 AES-128을 지원하지 않습니다. 소스 그리드에서 AES-128 옵션을 사용하여 저장된 객체 암호화 옵션을 활성화하더라도 AES-128 알고리즘은 복제된 객체에 적용되지 않습니다. 대신 복제된 객체는 대상의 기본 버킷 또는 그리드 수준 암호화 설정(사용 가능한 경우)을 사용합니다. |
소스 오브젝트를 암호화하는 방법을 결정할 때 StorageGRID는 다음 규칙을 적용합니다.
-
수집 헤더가 있는 경우
x-amz-server-side-encryption이를 사용합니다. -
수집 헤더가 없는 경우, 구성된 경우 버킷의 기본 암호화 설정을 사용합니다.
-
버킷 설정이 구성되지 않은 경우, 구성된 경우 그리드 전체 암호화 설정을 사용합니다.
-
그리드 전체에 적용되는 설정이 없는 경우 소스 객체를 암호화하지 마십시오.
복제된 객체를 암호화하는 방법을 결정할 때 StorageGRID는 다음 규칙을 이 순서대로 적용합니다.
-
소스 객체가 AES-128 암호화를 사용하는 경우를 제외하고, 소스 객체와 동일한 암호화를 사용합니다.
-
원본 객체가 암호화되지 않았거나 AES-128을 사용하는 경우, 대상 버킷에 기본 암호화 설정이 구성되어 있다면 해당 설정을 사용합니다.
-
대상 버킷에 암호화 설정이 없는 경우, 구성된 경우 대상의 그리드 전체 암호화 설정을 사용합니다.
-
그리드 전체에 적용되는 설정이 없는 경우 대상 객체를 암호화하지 마십시오.
S3 객체 잠금을 사용한 크로스 그리드 복제
다음과 같은 상황에서 S3 Object Lock이 활성화된 StorageGRID 버킷 간의 크로스 그리드 복제를 구성할 수 있습니다.
| 소스 버킷의 S3 Object Lock이 설정된 경우… | 대상 버킷에 대한 S3 객체 잠금은 다음과 같습니다… |
|---|---|
활성화됨 |
활성화됨 |
비활성화됨 |
활성화됨 |
소스 버킷에 S3 객체 잠금이 활성화된 경우:
-
대상 위치에서 객체는 다음 순서대로 보존 설정에 따라 잠깁니다.
-
소스 객체의 보존 헤더 값:
x-amz-object-lock-modex-amz-object-lock-retain-until-date -
소스 버킷의 기본 보존 기간(설정된 경우).
-
대상 버킷의 기본 보존 기간(설정된 경우).
대상 버킷의 기본 보존 기간은 소스 객체에서 복제된 보존 설정을 재정의하지 않습니다.
-
-
`x-amz-object-lock-legal-hold`을 사용하여 객체를 업로드할 때 대상 객체에 대한 법적 보존 상태를 설정할 수 있습니다.
-
대상 테넌트 또는 버킷이 소스 객체의 S3 객체 잠금 설정을 지원하지 않으면 오류가 발생합니다. 다음을 참조하십시오. "그리드 간 복제 경고 및 오류."
소스 버킷의 S3 객체 잠금이 비활성화된 경우:
-
대상 버킷의 기본 보존 기간을 구성하여 S3 객체 잠금 보존 설정을 대상 객체에 적용할 수 있습니다.
-
대상 객체는 법적 보존 상태를 설정할 수 없습니다.
PutObjectTagging 및 DeleteObjectTagging은 지원되지 않습니다.
PutObjectTagging 및 DeleteObjectTagging 요청은 크로스 그리드 복제가 활성화된 버킷의 객체에 대해 지원되지 않습니다.
S3 클라이언트가 PutObjectTagging 또는 DeleteObjectTagging 요청을 보내면, `501 Not Implemented`이 반환됩니다. 메시지는 `Put(Delete) ObjectTagging isn't available for buckets that have cross-grid replication configured`입니다.
PutObjectRetention 및 PutObjectLegalHold는 지원되지 않습니다
PutObjectRetention 및 PutObjectLegalHold 요청은 크로스 그리드 복제가 활성화된 버킷의 객체에 대해서는 완벽하게 지원되지 않습니다.
S3 클라이언트가 PutObjectRetention 또는 PutObjectLegalHold 요청을 보내면 소스 객체의 설정은 수정되지만, 변경 사항은 대상 객체에 적용되지 않습니다.
분할된 객체가 복제되는 방법
원본 그리드의 최대 세그먼트 크기는 대상 그리드로 복제되는 객체에 적용됩니다. 객체를 다른 그리드로 복제할 때 원본 그리드의 최대 세그먼트 크기 설정(구성 > 시스템 > 저장소 옵션)이 두 그리드 모두에 사용됩니다. 예를 들어 원본 그리드의 최대 세그먼트 크기가 1GB이고 대상 그리드의 최대 세그먼트 크기가 50MB라고 가정해 보겠습니다. 원본 그리드에 2GB 크기의 객체를 가져오면 해당 객체는 1GB 세그먼트 두 개로 저장됩니다. 대상 그리드의 최대 세그먼트 크기가 50MB이더라도 해당 객체는 1GB 세그먼트 두 개로 대상 그리드에도 복제됩니다.