注意

本文档适用于 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_objecttrue。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 GetObjectAPI 为集群设置默认值。

  • 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)

云服务内的检索类型,这可能代表不同的价格。支持的选项是StandardExpedited.

例如:

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.rtfforread_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. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.