注意
本文档适用于 Ceph 开发版本。
云恢复
The 云迁移该功能使得对象可以过渡到远程云服务。下面描述的功能能够将从远程 S3 端点过渡的对象恢复到本地 RGW 部署中。cloud-restore
feature described below enables restoration
of those transitioned objects from the remote S3 endpoints into the local
RGW deployment.
当前该功能支持将过渡到 S3 兼容云服务的对象恢复。为了实现这一点,在配置存储类时应将选项设置为retain_head_object
。true
。Cephadm 还支持使用tier-config
。
可以使用S3 RestoreObjectAPI 恢复对象。恢复的副本将在 RGW 中保留指定的days
时间。但是,如果days
未提供,则恢复的副本被视为永久副本,并将被视为普通对象。allow_read_through
选项,S3 GetObjectAPI 可以用来临时恢复对象。
云存储类层级配置
The 层级配置用于数据过渡的云存储类的配置也用于恢复对象:
{
"access_key": <access>,
"secret": <secret>,`
"endpoint": <endpoint>,
"region": <region>,
"host_style": <path | virtual>,
"acls": [ { "type": <id | email | uri>,
"source_id": <source_id>,
"dest_id": <dest_id> } ... ],
"target_path": <target_path>,
"target_storage_class": <target-storage-class>,
"multipart_sync_threshold": {object_size},
"multipart_min_part_size": {part_size},
"retain_head_object": <true | false>
}
已在层级配置中添加了以下选项以促进对象恢复。
restore_storage_class
(字符串)
要恢复对象数据的目标存储类。默认值为STANDARD
.
读写特定可配置项
allow_read_through
(true
|false
)
如果为 true,则启用read-through
。然后可以使用S3 GetObject
API 为集群设置默认值。
read_through_restore_days
(整数)
恢复对象。read-through
恢复的副本将保留
例如:
radosgw-admin zonegroup placement modify --rgw-zonegroup default \
--placement-id default-placement \
--storage-class CLOUDTIER \
--tier-config=endpoint=http://XX.XX.XX.XX:YY,\
access_key=<access_key>,secret=<secret>, \
retain_head_object=true, \
restore_storage_class=COLDTIER, \
allow_read_through=true, \
read_through_restore_days=10
S3 Glacier 特定可配置项
要恢复存储在 S3 Glacier 或磁带云存储类中的对象,数据必须首先恢复到云服务,然后再读取并下载到 RGW。要启用此过程,请确保存储类配置了--tier-type=cloud-s3-glacier
。此外,应相应设置以下可配置项:
glacier_restore_days
(整数)
对象在远程云服务上恢复的持续时间。
glacier_restore_tier_type
(Standard
|Expedited
)
云服务内的检索类型,这可能代表不同的价格。支持的选项是Standard
和Expedited
.
例如:
radosgw-admin zonegroup placement add --rgw-zonegroup=default \
--placement-id=default-placement \
--storage-class=CLOUDTIER-GLACIER --tier-type=cloud-s3-glacier
radosgw-admin zonegroup placement modify --rgw-zonegroup default \
--placement-id default-placement \
--storage-class CLOUDTIER \
--tier-config=endpoint=http://XX.XX.XX.XX:YY,\
access_key=XXXXX,secret=YYYYY, \
retain_head_object=true, \
target_storage_class=Glacier, \
............ \
............ \
restore_storage_class=COLDTIER, \
glacier_restore_days=2, \
glacier_restore_tier_type=Expedited
[
{
"key": "default-placement",
"val": {
"name": "default-placement",
"tags": [],
"storage_classes": [
"CLOUDTIER-GLACIER",
"STANDARD"
],
"tier_targets": [
{
"key": "CLOUDTIER-GLACIER",
"val": {
"tier_type": "cloud-s3-glacier",
"storage_class": "CLOUDTIER-GLACIER",
"retain_head_object": "true",
"s3": {
"endpoint": http://XX.XX.XX.XX:YY,
"access_key": "XXXXX",
"secret": "YYYYY",
"host_style": "path",
"target_storage_class": "Glacier",
.......
.......
}
"allow_read_through": true,
"read_through_restore_days": 10,
"restore_storage_class": "COLDTIER",
"s3-glacier": {
"glacier_restore_days": 2
"glacier_restore_tier_type": "Expedited"
}
}
}
]
}
}
]
恢复对象示例
使用 S3 RestoreObject 命令行界面
ThS3 restore-object命令行界面支持这些选项:
aws s3api restore-object --bucket <value> \
--key <value> \
[--version-id <value>] \
--restore-request (structure) { \
Days=<integer> \
}
注意:Days
是可选的,如果未提供,则对象将永久恢复。
示例 1:
aws s3api restore-object --bucket bucket1 --key doc1.rtf \
[--version-id 3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo] \
--restore-request Days=10 \
....
这将恢复对象doc1.rtf
在可选版本中,持续时间为 10 天。
示例 2:
aws s3api restore-object --bucket bucket1 --key doc2.rtf --restore-request {} ....
这将恢复对象doc2.rtf
并将其视为普通对象。
使用 S3 GetObject 命令行界面
Ensure that the allow_read_through
层级配置选项已启用。
示例 3:
aws s3api get-object --bucket bucket1 --key doc3.rtf ....
这将恢复对象doc3.rtf
forread_through_restore_days
天。
注意:如果对象恢复时间过长,上述命令可能会超时。您可以在重新发出命令之前验证恢复状态。
验证恢复状态
通过发出S3 HeadObject请求来验证恢复状态。如果对象恢复正在进行中或已恢复副本,响应将包括x-amz-restore
标头。
Example:
aws s3api head-object --key doc1.rtf --bucket bucket1 ....
The radosgw-admin
命令行界面可用于检查恢复状态和其他详细信息。
Example:
radosgw-admin object stat --bucket bucket1 --object doc1.rtf
恢复对象属性
存储
对象恢复到通过层级配置中的restore_storage_class
配置的存储类。但是,根据https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html恢复对象的存储类应保持不变。因此,对于临时副本,x-amz-storage-class
将继续反映原始云层级存储类。
mtime
The mtime
过渡和恢复的对象的存储类应保持不变。
生命周期
Temporary
副本不会过渡到云。但是,与云过渡对象一样,它们可以通过常规 LC(生命周期)过期规则或外部 S3delete
请求中使用的密钥 ID。
Permanent
副本被视为普通对象,并受适用 LC 策略的约束。
复制
Temporary
副本不会复制,并且仅在发起恢复请求的区域中保留。
Permanent
副本像其他普通对象一样复制。
版本化对象
对于版本化对象,如果对象已过渡到云,则它处于非当前状态。恢复后,相同的非当前对象将使用下载的数据更新,并且其HEAD
对象将相应修改。
未来工作
管理操作
通知
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.