网易首页 > 网易号 > 正文 申请入驻

Ceph 对象存储分层功能增强:第二部分

0
分享至

新钛云服已累计为您分享854篇技术干货

简介和功能概述

在本系列的第一部分中,我们探讨了 Ceph 对象存储的基础知识及其基于策略的云/磁带归档功能,该功能能够将数据无缝迁移到远程 S3 兼容的存储类别。这一功能对于将数据存储到经济高效的存储层级(如云存储或基于磁带的系统)至关重要。然而,以往这一过程是单向的。一旦对象被迁移,检索它们需要直接访问云提供商的 S3 存储。这一限制带来了操作上的挑战,尤其是在访问归档或冷存储数据时。

为了弥补这些不足,我们在 Ceph 对象存储生态系统中引入了基于策略的数据检索功能。这一增强功能使管理员和运维团队能够将迁移到云或磁带层级的对象直接检索回 Ceph 集群,从而满足操作效率和数据可访问性的需求。

为什么这很重要?

基于策略的数据检索功能显著提升了 Ceph 中云迁移对象的可用性。无论数据是存储在经济的磁带归档中,还是高延迟/低成本的云层级中,这一功能都确保用户能够无缝访问和管理其对象,而无需依赖外部提供商的 S3 端点。这一能力简化了工作流程,并增强了与操作策略和数据生命周期要求的合规性。

基于策略的数据检索

这一新功能提供了两种方法来检索迁移到远程云/磁带 S3 的对象:

  1. S3 RestoreObject API 实现:类似于 AWS S3 RestoreObject API,此功能允许用户使用 S3 RestoreObject API 手动检索对象。对象恢复操作可以是永久的或临时的,具体取决于 RestoreObject API 调用中指定的保留期限。

  2. 直接读取模式(Read-Through Mode):通过引入可配置的--allow-read-through功能,Ceph 可以处理对云层级存储类别中迁移对象的读取请求。在收到 GET 请求时,系统会异步从云层级检索对象,将其存储在本地,并将数据提供给用户。这消除了之前对云迁移对象遇到的InvalidObjectState错误。

S3 RestoreObject 临时恢复

恢复的数据被视为临时数据,仅在恢复请求中指定的时间段内存在于 Ceph 集群中。一旦指定期限到期,恢复的数据将被删除,对象将恢复为存根(stub),同时保留元数据和云迁移配置。

跳过生命周期迁移规则

在临时恢复期间,对象不受生命周期规则的影响,这些规则可能会将其迁移到其他层级或删除。这确保了在到期日期之前可以无中断地访问数据。

恢复数据的默认存储类别

默认情况下,恢复的对象会写入 Ceph 集群中的STANDARD存储类别。然而,对于临时对象,x-amz-storage-class标头仍会返回原始的云层级存储类别。这与 AWS Glacier 的语义一致,即恢复对象的存储类别保持不变。

S3 RestoreObject API 操作示例

我们使用名为databucket的存储桶将一个名为2gb的对象上传到本地 Ceph 集群。在本系列博客的第一部分中,我们为databucket配置了一个生命周期策略,该策略会在 30 天后将数据分层/归档到 IBM COS。我们设置了一个名为tiering的 AWS CLI 客户端配置文件,用于与 Ceph 对象网关的 S3 API 端点进行交互。

aws --profile tiering --endpoint https://s3.cephlabs.com s3 cp 2gb s3://databucket upload: ./2gb to s3://databucket/2gb

我们可以检查本地 Ceph 集群中STANDARD存储类中上传对象的大小:

aws --profile tiering --endpoint https://s3.cephlabs.com s3api head-object --bucket databucket --key 2gb
{
    "AcceptRanges": "bytes",
    "LastModified": "2024-11-26T21:31:05+00:00",
    "ContentLength": 2000000000,
    "ETag": "\"b459c232bfa8e920971972d508d82443-60\"",
    "ContentType": "binary/octet-stream",
    "Metadata": {},
    "PartsCount": 60
}

30 天后,生命周期转换开始,对象将转换到云层。首先,作为管理员,我们使用radosgw-admin命令检查生命周期 (LC) 处理是否已完成,然后作为用户,我们使用 S3 HeadObject API 调用来查询对象的状态:

# radosgw-admin lc list| jq .[1]
{
  "bucket": ":databucket:fcabdf4a-86f2-452f-a13f-e0902685c655.310403.1",
  "shard": "lc.23",
  "started": "Tue, 26 Nov 2024 21:32:15 GMT",
  "status": "COMPLETE"
}
# aws --profile tiering --endpoint https://s3.cephlabs.com s3api  head-object --bucket databucket --key 2gb
{
    "AcceptRanges": "bytes",
    "LastModified": "2024-11-26T21:32:48+00:00",
    "ContentLength": 0,
    "ETag": "\"b459c232bfa8e920971972d508d82443-60\"",
    "ContentType": "binary/octet-stream",
    "Metadata": {},
    "StorageClass": "ibm-cos"
}

作为管理员,我们可以使用radosgw-admin bucket stats命令来检查已使用的空间。我们可以看到rgw.main是空的,我们的rgw.cloudtiered位置是唯一存储数据的位置。

# radosgw-admin bucket stats --bucket databucket | jq .usage
{
  "rgw.main": {
    "size": 0,
    "size_actual": 0,
    "size_utilized": 0,
    "size_kb": 0,
    "size_kb_actual": 0,
    "size_kb_utilized": 0,
    "num_objects": 0
  },
  "rgw.multimeta": {
    "size": 0,
    "size_actual": 0,
    "size_utilized": 0,
    "size_kb": 0,
    "size_kb_actual": 0,
    "size_kb_utilized": 0,
    "num_objects": 0
  },
  "rgw.cloudtiered": {
    "size": 1604857600,
    "size_actual": 1604861952,
    "size_utilized": 1604857600,
    "size_kb": 1567244,
    "size_kb_actual": 1567248,
    "size_kb_utilized": 1567244,
    "num_objects": 3
  }
}

现在该对象已转换到我们的 IBM COS Cloud 层,让我们使用 S3 RestoreObject API 调用将其恢复到我们的 Ceph 集群。在此示例中,我们将请求临时恢复并将过期时间设置为三天:

# aws --profile tiering --endpoint https://s3.cephlabs.com s3api restore-object --bucket databucket --key 2gb --restore-request Days=3

如果我们尝试获取仍在恢复的对象,我们会收到如下错误消息:

# aws --profile tiering --endpoint https://s3.cephlabs.com s3api  get-object --bucket databucket --key 2gb /tmp/2gb
An error occurred (RequestTimeout) when calling the GetObject operation (reached max retries: 2): restore is still in progress

使用 S3 API,我们可以发出 HeadObject 调用并检查 Restore 属性的状态。在此示例中,我们可以看到从 IBM COS 云端点到 Ceph 的恢复已完成,因为 ongoing-request 设置为 false。由于我们在 RestoreObject 调用中使用了 --restore-request days=30,因此对象有一个到期日期。从输出中还可以检查其他信息:本地 Ceph 集群中对象占用的大小为 2GB,恢复后符合预期。此外,存储类别为 ibm-cos。如前所述,对于临时迁移的对象,即使使用 Ceph RGW 的 STANDARD 存储类别,我们仍会保留 ibm-cos 存储类别。现在对象已恢复,我们可以从客户端发出 S3 GET API 调用来访问该对象。

# aws --profile tiering --endpoint https://s3.cephlabs.com s3api  head-object --bucket databucket --key 2gb
{
    "AcceptRanges": "bytes",
    "Restore": "ongoing-request=\"false\", expiry-date=\"Thu, 28 Nov 2024 08:46:36 GMT\"",
    "LastModified": "2024-11-27T08:36:39+00:00",
    "ContentLength": 2000000000,
    "ETag": "\"\"0c4b59490637f76144bb9179d1f1db16-382\"\"",
    "ContentType": "binary/octet-stream",
    "Metadata": {},
    "StorageClass": "ibm-cos"
}
# aws --profile tiering --endpoint https://s3.cephlabs.com s3api  get-object --bucket databucket --key 2gb /tmp/2gb

S3 RestoreObject 永久恢复

在永久恢复中,恢复的数据将无限期保留在 Ceph 集群中,使其可以作为常规对象访问。与临时恢复不同,永久恢复不定义到期时间,对象在检索后不会恢复为存根。这适用于需要长期访问对象而无需额外重新恢复步骤的场景。

重新应用生命周期迁移规则

一旦永久恢复,对象将被视为 Ceph 集群中的常规对象。所有生命周期规则(例如迁移到云存储或过期策略)将重新应用,恢复的对象将完全集成到存储桶的数据生命周期工作流中。

恢复数据的默认存储类别

默认情况下,永久恢复的对象会写入 Ceph 集群中的STANDARD存储类别。与临时恢复不同,对象的x-amz-storage-class标头将反映STANDARD存储类别,表明其在集群中的永久驻留状态。

S3 RestoreObject API 永久恢复操作示例

通过不为--restore-request参数提供天数来永久恢复对象:

# aws --profile tiering --endpoint https://s3.cephlabs.com s3api restore-object --bucket databucket --key hosts2 --restore-request {}

验证恢复的对象:它是STANDARD存储类的一部分。

# aws --profile tiering --endpoint https://s3.cephlabs.com s3api head-object --bucket databucket --key hosts2
{
    "AcceptRanges": "bytes",
    "LastModified": "2024-11-27T08:28:55+00:00",
    "ContentLength": 304,
    "ETag": "\"01a72b8a9d073d6bcae565bd523a76c5\"",
    "ContentType": "binary/octet-stream",
    "Metadata": {},
    "StorageClass": "STANDARD"
}

对象直读(/GET)模式

通过 Read-Through Restore 机制访问的对象会暂时恢复到 Ceph 集群中。当对云转换对象发出GET请求时,系统会从云层异步检索该对象。它使其在read_through_restore_days值定义的指定持续时间内可用。过期后,恢复的数据将被删除,对象将恢复到其存根状态,保留元数据和转换配置。

对象直读 (/GET) 模式测试

在启用直读模式之前,如果我们尝试访问本地 Ceph 集群中已通过基于策略的归档转换到远程 S3 端点的存根对象,我们将收到以下错误消息:

# aws --profile tiering --endpoint https://s3.cephlabs.com s3api get-object --bucket databucket --key 2gb6 /tmp/2gb6
An error occurred (InvalidObjectState) when calling the GetObject operation: Read through is not enabled for this config

因此,我们首先启用直读模式。作为 Ceph 管理员,我们需要修改当前的ibm-cos云层存储类并添加两个新的层配置参数: --tier-config=allow_read_through=true,read_through_restore_days=3 :

# radosgw-admin zonegroup placement modify --rgw-zonegroup default \
  --placement-id default-placement --storage-class ibm-cos \
  --tier-config=allow_read_through=true,read_through_restore_days=3

如果之前未执行任何多站点配置,则会创建默认区域和区域组,并且对区域/区域组的更改只有在 Ceph 对象网关(RGW 守护进程)重新启动后才会生效。如果已为多站点创建了领域,则区域/区域组更改将在提交更改后生效 radosgw-admin period update --commit 。在我们的例子中,重新启动 RGW 守护进程以应用更改就足够了:

# ceph orch restart rgw.default
Scheduled to restart rgw.default.ceph02.fvqogr on host 'ceph02'
Scheduled to restart rgw.default.ceph03.ypphif on host 'ceph03'
Scheduled to restart rgw.default.ceph04.qinihj on host 'ceph04'
Scheduled to restart rgw.default.ceph06.rktjon on host 'ceph06'

一旦启用直读模式,并且当对云层中的对象发出GET请求时重新声明 RGW 服务,该对象将自动恢复到 Ceph 集群并提供给用户。

# aws --profile tiering --endpoint https://s3.cephlabs.com s3api  get-object --bucket databucket --key 2gb6 /tmp/2gb6
{
    "AcceptRanges": "bytes",
    "Restore": "ongoing-request=\"false\", expiry-date=\"Thu, 28 Nov 2024 08:46:36 GMT\"",
    "LastModified": "2024-11-27T08:36:39+00:00",
    "ContentLength": 2000000000,
    "ETag": "\"\"0c4b59490637f76144bb9179d1f1db16-382\"\"",
    "ContentType": "binary/octet-stream",
    "Metadata": {},
    "StorageClass": "ibm-cos"
}

未来工作

Ceph 社区正在通过以下即将推出的增强功能改进基于策略的数据检索特性:

  1. 磁带/DiamondBack 支持:使用 RestoreObject API 从使用 Glacier API 的 S3 端点获取对象,而不是通过 GET 请求。

  2. 增强监控的管理命令:包括恢复状态、列出已恢复/进行中的对象,以及为失败操作重新触发恢复。

  3. 压缩和加密支持:有效恢复压缩或加密的对象。

结 论

Ceph 存储的基于策略的数据检索功能是一项重要的补充,增强了当前对象存储分层的能力。

如有相关问题,请在文章后面给小编留言,小编安排作者第一时间和您联系,为您答疑解惑。

原文: https://ceph.io/en/news/blog/2025/rgw-tiering-enhancements-part2/

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
特朗普没想到,中俄动作这么快!不到24小时,接连坏美国两件大事

特朗普没想到,中俄动作这么快!不到24小时,接连坏美国两件大事

小俎娱乐
2026-04-15 05:44:00
意大利站队了,向全世界宣布:以色列若继续屠杀平民,会让他好看

意大利站队了,向全世界宣布:以色列若继续屠杀平民,会让他好看

云舟史策
2026-04-15 07:40:35
齐沃若夺冠将致敬两位恩师:用穆帅的策略 完成卡佩罗的奇迹

齐沃若夺冠将致敬两位恩师:用穆帅的策略 完成卡佩罗的奇迹

国际足球冷雪
2026-04-15 07:15:10
震惊!一女孩求职不顺焦虑,父亲转来4.8万,按月4000元当作工资

震惊!一女孩求职不顺焦虑,父亲转来4.8万,按月4000元当作工资

火山詩话
2026-04-14 07:33:54
白天作陪晚上同宿?明码标价8000一回!高端伴游沦为色情交易窝点

白天作陪晚上同宿?明码标价8000一回!高端伴游沦为色情交易窝点

网络易不易
2026-01-20 10:17:46
19岁男子KTV上班,三名女孩来喝酒,男子下体过度使用成永久创伤

19岁男子KTV上班,三名女孩来喝酒,男子下体过度使用成永久创伤

丫头舫
2025-09-22 20:39:00
拜仁主席严厉反驳卡恩的要求

拜仁主席严厉反驳卡恩的要求

绿茵情报局
2026-04-14 19:53:27
医生告诫:每天睡前玩手机的人,不用半年时间,睡眠或有这6变化

医生告诫:每天睡前玩手机的人,不用半年时间,睡眠或有这6变化

白话电影院
2026-04-05 15:34:47
输球又伤核心!刘维伟仰天长叹,丢CBA关键战!国内球员令人愤怒

输球又伤核心!刘维伟仰天长叹,丢CBA关键战!国内球员令人愤怒

话体坛
2026-04-14 22:07:31
色情露骨!声称“可手搓让自己满意的大尺度视频”“日入5位数”!央视曝光

色情露骨!声称“可手搓让自己满意的大尺度视频”“日入5位数”!央视曝光

南方都市报
2026-04-13 11:11:51
徐杰封神一夜!不愧是黑山名帅!重用4人导演15分逆转,复仇宁波

徐杰封神一夜!不愧是黑山名帅!重用4人导演15分逆转,复仇宁波

后仰大风车
2026-04-14 21:49:57
许家印当庭认罪:一个人不可能制造2.4万亿的窟窿

许家印当庭认罪:一个人不可能制造2.4万亿的窟窿

次元君情感
2026-04-14 17:59:17
古力娜扎:真空上阵是放飞自我还是资本博弈?

古力娜扎:真空上阵是放飞自我还是资本博弈?

娱乐领航家
2026-04-02 21:00:03
存款大局已定!不出意外的话,2026年存款利率或将迎来4大变化

存款大局已定!不出意外的话,2026年存款利率或将迎来4大变化

混沌录
2026-04-14 20:16:16
49岁翁帆高调露面!换造型惊艳全场,一句话让英国定居传闻破灭

49岁翁帆高调露面!换造型惊艳全场,一句话让英国定居传闻破灭

一盅情怀
2026-03-16 16:58:07
巴黎连斩利物浦:欧冠新贵的战术密码

巴黎连斩利物浦:欧冠新贵的战术密码

固件更新中
2026-04-15 08:02:06
阿里字节“围猎”智谱、MiniMax:Token到底该由谁来定价?

阿里字节“围猎”智谱、MiniMax:Token到底该由谁来定价?

新立场NewPosition
2026-04-14 19:32:15
深圳坪山比亚迪突发大火 官方通报:已扑灭,无人员伤亡

深圳坪山比亚迪突发大火 官方通报:已扑灭,无人员伤亡

南方都市报
2026-04-14 09:22:33
大量新功能来了!特斯拉官宣 2026 春季大更新

大量新功能来了!特斯拉官宣 2026 春季大更新

XCiOS俱乐部
2026-04-14 19:42:37
43年,上海姑娘嫁一普通干部,7年后才知:丈夫和主席渊源不一般

43年,上海姑娘嫁一普通干部,7年后才知:丈夫和主席渊源不一般

大运河时空
2026-04-14 06:00:03
2026-04-15 08:12:49
新钛云服
新钛云服
云管理服务专家
466文章数 30关注度
往期回顾 全部

科技要闻

离职同事"炼化"成AI?这届公司不需要活人了

头条要闻

与伊朗谈判破裂后 特朗普最新表态

头条要闻

与伊朗谈判破裂后 特朗普最新表态

体育要闻

带出中超最大黑马!他让球迷们“排队道歉”

娱乐要闻

网曝钟丽缇代孕要了个男孩 备孕近10年

财经要闻

许家印认罪,他和恒大还有多少欠债?

汽车要闻

售12.99万起/续航2000km 风云T9L上市

态度原创

房产
旅游
亲子
时尚
数码

房产要闻

改善标杆,1.5w+起横扫国兴!海口楼市,打出最猛一张牌!

旅游要闻

“零容忍”,香港严惩“宰客”旅行社

亲子要闻

盘点人类幼崽的狠人行为

坏事做尽的疯女人,集体翻红了

数码要闻

小米REDMI Buds 8无线耳机官方超前开箱,新增防丢查找功能

无障碍浏览 进入关怀版