Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

了解网格联盟的全局命名空间

贡献者 netapp-lhalbert netapp-pcarriga

全局命名空间允许租户跨多个 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。

有关网格联合的详细信息,请参阅 "什么是网格联合?"

全局命名空间示例

网格 1
  • 默认区域: region-1

  • 默认 CNAME: s3.region-1.company.com

  • 全局端点: s3.company.com

网格 2
  • 默认区域: region-2

  • 默认 CNAME: s3.region-2.company.com

  • 全局端点: s3.company.com

Grid 3
  • 默认区域: 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 行为。

区域强制执行

对全局命名空间端点的所有 S3 请求("CreateBucket""List桶" 除外)都要求 V4 身份验证标头中的签名区域与网格的默认区域匹配。

  • 如果签名区域不匹配,则请求将被拒绝,并显示以下错误:

    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

  • 客户端向 s3.company.com`发送 CreateBucket 请求,签名区域为 `us-west-1

  • 轮询 DNS 将请求定向到 Grid A。

  • 网格 A 将请求路由到网格 B。

  • 该存储桶在网格 B 上创建。

有关 CreateBucket 的其他注意事项:

  • LocationConstraint 元素可以设置为网格的任何默认或非默认区域。这只会影响 ILM 策略,而不会影响哪个网格创建存储桶(与 AWS 使用 us-east-1 的行为不同)。

  • 请求中的签名区域确定哪个网格创建存储桶(签名区域必须与目标网格的默认区域相匹配)。

  • 支持预先签名的 V4 请求。

  • 全局命名空间路由不支持匿名和 V2 请求。

ListBuckets 路由

ListBuckets 发送到全局命名空间端点的请求的路由方式与 CreateBucket 请求类似,使用签名区域来确定正确的网格。

HEAD Bucket 和 ListBuckets 响应均不包含网格的默认区域。默认区域由签名区域隐含,签名区域强制与网格的默认区域匹配。

帐户和访问密钥管理

租户帐户和 S3 访问密钥可以使用 "帐户同步" 在所有网格之间进行同步,但当每个网格都有自己的单独访问密钥集时,全局命名空间也可以使用。如果使用单独的访问密钥,请确保 S3 客户端在向每个网格发送请求时使用正确的访问密钥。

下一步是什么?

现在,您已准备就绪 "配置全局命名空间"