了解網格聯邦的全域命名空間
全域命名空間允許租戶存取跨多個 StorageGRID 系統的儲存桶。在網格聯合連線上啟用全域命名空間後,以全域命名空間端點為目標的 S3 CreateBucket 和 ListBuckets 請求可以傳送到任何網格的負載平衡器端點,並根據請求中的簽章區域自動路由到正確的網格。
什麼是全域命名空間?
全域命名空間允許租戶存取跨多個 StorageGRID 系統的儲存桶。在網格聯合連線上啟用全域命名空間後,以全域命名空間端點為目標的 S3 CreateBucket 和 ListBuckets 請求可以傳送到任何網格的負載平衡器端點,並根據請求中的簽章區域自動路由到正確的網格。
|
|
您應該設定 DNS 解析器,將儲存桶 URL 的 DNS 對應到特定的網格。如有需要,請諮詢您的網路管理員,以確保 DNS 解析器設定正確。請參閱 "設定 DNS 解析"。 |
StorageGRID 不會強制要求全域命名空間內的各個網格使用唯一的儲存桶名稱,因此同名儲存桶可能存在於不同的網格中。要求中的簽署區域用於確定哪個網格擁有該儲存桶並應接收該要求。
例如,如果網格 A 使用區域 us-east-1,網格 B 使用區域 us-west-1,傳送到任何具有該區域 `us-west-1`之網格的 CreateBucket 請求都會自動路由到網格 B。
如需網格聯盟的詳細資訊,請參閱 "什麼是網格同盟?"。
全域命名空間範例
-
預設區域:
region-1 -
預設 CNAME:
s3.region-1.company.com -
全域端點:
s3.company.com
-
預設區域:
region-2 -
預設 CNAME:
s3.region-2.company.com -
全域端點:
s3.company.com
-
預設區域:
region-3 -
預設 CNAME:
s3.region-3.company.com -
全域端點:
s3.company.com
CreateBucket 和 ListBuckets 作業
如果您建立儲存貯體 (bucket123),其具有簽署區域 region-2 且以全域端點 s3.company.com 為目標,則任何接收到此要求的網格都將在 Grid 2 上建立該儲存貯體。
儲存桶特定物件操作和通用物件操作
在指定網格上建立儲存桶後,您的 DNS 解析器會將儲存桶 URL 解析為儲存桶和網格 CNAME。
在 以上範例 中,DNS 解析器應將 bucket123.s3.company.com 解析為 bucket123.s3.grid3.company.com(儲存桶和網格的 CNAME)。換句話說,所有請求都直接傳送至該網格,無需額外的路由。
PutObject to bucket123.s3.company.com 解析為 bucket123.s3.grid3.company.com
S3 與全域命名空間的行為
全域命名空間完全設定完成後,S3 將採取以下行為。
區域強制執行
-
如果簽署區域不符,請求將遭拒,並顯示以下錯誤訊息:
An error occurred (AuthorizationHeaderMalformed) when calling the <operation> operation: The authorization header is malformed; the region '<signing-region>' is wrong; expecting '<grid-default-region>'
-
區域強制執行適用於網格上的所有儲存桶,包括在啟用全域命名空間之前建立的儲存桶。
-
區域限制僅適用於 V4 驗證請求。匿名請求和 V2 請求不受區域限制。
CreateBucket 路由
CreateBucket 發送到全域命名空間端點的請求(s3.company.com)可以導向至任何網格的負載平衡器端點。請求會自動路由到預設區域與請求中簽署區域相符的網格。
例如:
-
網格 A 有預設區域
us-east-1,網格 B 有預設區域us-west-1。 -
用戶端傳送 CreateBucket 請求至
s3.company.com,並帶有簽署區域us-west-1。 -
循環 DNS 將請求導向網格 A。
-
網格 A 將請求路由至網格 B。
-
儲存桶建立在網格 B 上。
CreateBucket 的其他考量事項:
-
該
LocationConstraint`元素可以設定為網格的任何預設或非預設區域。這只會影響 ILM 原則,而不會影響建立儲存桶的網格(與 AWS 的行為不同 `us-east-1)。 -
請求中的簽署區域決定哪個網格建立儲存桶(簽署區域必須與目標網格的預設區域相符)。
-
支援預簽章 V4 請求。
-
全域命名空間路由不支援匿名請求和 V2 請求。
ListBuckets 路由
ListBuckets 發送到全域命名空間端點的請求與 CreateBucket 請求的路由方式類似,使用簽章區域來確定正確的網格。
HEAD Bucket 和 ListBuckets 回應均不包含網格的預設區域。預設區域由簽署區域隱含,且簽署區域必須與網格的預設區域相符。
帳戶和存取金鑰管理
租用戶帳戶和 S3 存取金鑰可以透過 "帳戶同步" 在所有網格之間同步,但即使每個網格都有自己獨立的存取金鑰集,全域命名空間也同樣適用。如果使用獨立的存取金鑰,請確保 S3 用戶端在向每個網格發送請求時使用正確的存取金鑰。
接下來呢?
現在您已準備好"設定全域命名空間"。