StorageGRID 中的云存储池要求和限制
如果您计划使用云存储池将对象移出 StorageGRID 系统,则必须查看配置和使用云存储池的注意事项。
一般注意事项
-
一般来说,云存档存储(例如 Amazon S3 Glacier 或 Azure Blob 存储)是存储对象数据的低成本场所。但是,从云存档存储中检索数据的成本相对较高。为了实现最低的总体成本,您必须考虑何时以及多久访问一次云存储池中的对象。建议仅对您希望不经常访问的内容使用云存储池。
-
不支持将云存储池与 FabricPool 结合使用,因为从云存储池目标检索对象会增加延迟。
-
启用了 S3 对象锁定的对象不能放置在云存储池中。
-
云存储池不支持具有 S3 对象锁的以下平台、身份验证和协议组合:
-
平台:Google Cloud Platform 和 Azure
-
身份验证类型:匿名访问
-
协议:HTTP
-
云存储池使用的端口的注意事项
为确保 ILM 规则可以将对象移入和移出指定的云存储池,必须配置包含系统存储节点的网络。您必须确保以下端口可以与云存储池进行通信。
默认情况下,云存储池使用以下端口:
-
80:对于以 http 开头的端点 URI
-
443:对于以 https 开头的端点 URI
创建或编辑云存储池时,可以指定其他端口。
如果使用不透明的代理服务器,则还必须"配置存储代理"以允许将消息发送到外部端点,例如 Internet 上的端点。
成本注意事项
使用云存储池访问云中的存储需要通过网络连接到云。您必须考虑用于访问云的网络基础架构的成本,并根据预期使用云存储池在 StorageGRID 与云之间移动的数据量进行适当配置。
当 StorageGRID 连接到外部云存储池端点时,它会发出各种请求来监控连接并确保它可以执行所需的操作。虽然这些请求会产生一些额外费用,但监控云存储池的成本应仅占在 S3 或 Azure 中存储对象总成本的一小部分。
如果需要将对象从外部 Cloud Storage Pool 端点移回 StorageGRID,可能会产生更高的成本。在以下任一情况下,对象可能会被移回 StorageGRID:
-
对象的唯一副本位于云存储池中,您决定将对象存储在 StorageGRID 中。在此情况下,您需要重新配置 ILM 规则和策略。进行 ILM 评估时,StorageGRID 会发出多个请求以从云存储池检索对象。然后,StorageGRID 在本地创建指定数量的复制副本或纠删编码副本。对象移回 StorageGRID 后,将删除云存储池中的副本。
-
由于存储节点故障,对象丢失。如果对象的唯一剩余副本位于云存储池中,StorageGRID 会暂时还原该对象,并在恢复的存储节点上创建新副本。
|
|
当对象从云存储池移回 StorageGRID 时,StorageGRID 会针对每个对象向云存储池端点发出多个请求。在移动大量对象之前,请联系技术支持以获得有关估计时间范围和相关费用的帮助。 |
S3:云存储池存储桶所需的权限
用于云存储池的外部 S3 存储桶的策略必须授予 StorageGRID 权限,以将对象移动到存储桶、获取对象的状态、在需要时从 Glacier 存储还原对象等。理想情况下,StorageGRID 应具有对存储桶的完全控制访问权限(s3:*);但是,如果无法做到这一点,存储桶策略必须向 StorageGRID 授予以下 S3 权限:
-
s3:AbortMultipartUpload -
s3:DeleteObject -
s3:GetObject -
s3:ListBucket -
s3:ListBucketMultipartUploads -
s3:ListMultipartUploadParts -
s3:PutObject -
s3:RestoreObject
S3:外部存储桶生命周期的注意事项
StorageGRID 和云存储池中指定的外部 S3 存储桶之间的对象移动由 ILM 规则和 StorageGRID 中的活动 ILM 策略控制。相比之下,对象从云存储池中指定的外部 S3 存储桶到 Amazon S3 Glacier 或 S3 Glacier Deep Archive(或实现 Glacier 存储类的存储解决方案)的过渡由该存储桶的生命周期配置控制。
如果要从Cloud Storage Pool转换对象,则必须在外部S3存储桶上创建适当的生命周期配置,并且必须使用实现Glacier存储类并支持S3 RestoreObject API的存储解决方案。
例如,假设您希望将从 StorageGRID 移动到 Cloud Storage Pool 的所有对象立即转换到 Amazon S3 Glacier 存储。您将在外部 S3 存储桶上创建一个生命周期配置,该配置指定单个操作(Transition),如下所示:
<LifecycleConfiguration>
<Rule>
<ID>Transition Rule</ID>
<Filter>
<Prefix></Prefix>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>0</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
此规则将在创建当天(即从 StorageGRID 移至 Cloud Storage Pool 当天)将所有存储桶对象转换为 Amazon S3 Glacier。
|
|
配置外部存储桶的生命周期时,切勿使用 Expiration 操作来定义对象何时过期。过期操作会导致外部存储系统删除过期的对象。如果稍后尝试从 StorageGRID 访问已过期的对象,则找不到已删除的对象。 |
如果要将云存储池中的对象过渡到 S3 Glacier Deep Archive(而不是 Amazon S3 Glacier),请在存储桶生命周期中指定 <StorageClass>DEEP_ARCHIVE</StorageClass>。但是,请注意,您无法使用 `Expedited`层从 S3 Glacier Deep Archive 还原对象。
Azure:访问层的注意事项
配置 Azure 存储帐户时,可以将默认访问层设置为"热"或"冷"。创建用于云存储池的存储帐户时,应使用热层作为默认层。即使 StorageGRID 在将对象移动到云存储池时立即将层设置为"存档",使用默认设置"热"也可以确保在最少 30 天之前从冷层删除的对象不会被收取提前删除费。
Azure:不支持生命周期管理
不要对与 Cloud Storage Pool 一起使用的容器使用 Azure Blob 存储生命周期管理。生命周期操作可能会干扰 Cloud Storage Pool 操作。