什麼是跨網格複寫?
跨網格複寫的工作流程
工作流程圖摘要說明在兩個網格上的儲存格之間設定跨網格複寫的步驟。
跨網格複寫的需求
跨網格複寫的運作方式
跨網格複寫可設定為單向或雙向進行。
單向複寫
如果您只在一個網格上為某個儲存格啟用跨網格複寫、則新增至該儲存格(來源儲存格)的物件會複寫至另一個網格(目的地儲存格)上的對應儲存格。然而、新增至目的地儲存區的物件不會複寫回來源。在圖中、已啟用跨網格複寫 my-bucket
從網格 1 到網格 2 、但在其他方向並未啟用。
雙向複寫
如果您在兩個網格上為相同的儲存格啟用跨網格複寫、則新增至任一儲存格的物件都會複寫至其他網格。在圖中、已啟用跨網格複寫 my-bucket
兩個方向。
擷取物件時會發生什麼情況?
當 S3 用戶端將物件新增至已啟用跨網格複寫的貯體時、會發生下列情況:
-
StorageGRID 會自動將物件從來源貯體複製到目的地貯體。執行此背景複寫作業的時間取決於多項因素、包括擱置中的其他複寫作業數。
S3 用戶端可發出 GetObject 或 HeadObject 要求、以驗證物件的複寫狀態。回應包括 StorageGRID 專屬的
x-ntap-sg-cgr-replication-status
回應標頭會有下列其中一個值: S3 用戶端可發出 GetObject 或 HeadObject 要求、以驗證物件的複寫狀態。回應包括 StorageGRID 專屬的x-ntap-sg-cgr-replication-status
回應標頭會有下列其中一個值:網格 複寫狀態 來源
-
* 成功 * :所有網格連線的複寫都成功。
-
* 擱置 * :物件尚未複寫至至少一個網格連線。
-
* 失敗 * :複寫並未擱置任何網格連線、至少有一個失敗且永久失敗。使用者必須解決此錯誤。
目的地
-
複本 * :物件已從來源網格複寫。
不支援StorageGRID x-amz-replication-status
標頭。 -
-
StorageGRID 使用每個網格的主動式 ILM 原則來管理物件、就像管理任何其他物件一樣。例如、 Grid 1 上的 Object A 可能會儲存為兩個複寫複本、並永久保留、而複寫至 Grid 2 的 Object A 則可能會使用 2+1 銷毀編碼來儲存、並在三年後刪除。
刪除物件時會發生什麼情況?
如所述 "刪除資料流程", 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 (伺服器端加密搭配客戶提供的金鑰)。擷取作業將會失敗。 |
若要使用儲存庫的預設加密、請使用 PuttBucketEncryption 要求並設定 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 、請使用目的地儲存區的預設加密設定(如果已設定)。
-
如果目的地貯體沒有加密設定、請使用目的地的全網格加密設定(如果已設定)。
-
如果沒有網格範圍的設定、請勿加密目的地物件。
不支援 PutObjectTagged 和 DeleteObjectTagging
已啟用跨網格複寫的貯體中的物件不支援 PutObjectTagged 和 DeleteObjectTagged 要求。
如果 S3 用戶端發出推送對象標記或刪除對象標記要求、 501 Not Implemented
會傳回。訊息是 Put(Delete) ObjectTagging is not available for buckets that have cross-grid replication configured
。
分割物件的複寫方式
來源網格的最大區段大小適用於複寫到目的地網格的物件。將物件複寫到其他網格時、來源網格的 * 最大區段大小 * 設定( * 組態 * > * 系統 * > * 儲存選項 * )將會同時用於兩個網格。例如、假設來源網格的最大區段大小為 1 GB 、而目的地網格的最大區段大小則為 50 MB 。如果您在來源網格上擷取 2 GB 物件、該物件會儲存為兩個 1 GB 區段。即使網格的最大區段大小為 50 MB 、也會將其複寫到目的地網格、做為兩個 1 GB 區段。