v17.2.0 Quincy 发布
Quincy 是 Ceph 的第 17 个稳定版本。它以《海绵宝宝》中的 Squidward Quincy Tentacles 命名。
这是 Ceph Quincy 的第一个稳定版本。
目录
与 Pacific 的主要变更 ¶
通用 ¶
Filestore 在 Quincy 中已被弃用。BlueStore 是 Ceph 的默认对象存储。
ceph-mgr-modules-coredebian 包不再推荐ceph-mgr-rook。ceph-mgr-rook依赖于python3-numpy,当python3-numpy的版本低于 1.19 时,无法在不同的 Python 子解释器中多次导入。由于apt-get默认安装Recommends包,因此ceph-mgr-rook总是与ceph-mgrdebian 包一起作为间接依赖项安装。如果您的工作流程依赖于此行为,您可能需要单独安装ceph-mgr-rook。device_health_metrics池已重命名为.mgr。现在它用作所有ceph-mgr模块的通用存储。升级到 Quincy 后,现有的集群上的device_health_metrics池将被重命名为.mgr。ceph pg dump命令现在打印三列附加列:LAST_SCRUB_DURATION显示上次完成 scrub 的持续时间(以秒为单位);SCRUB_SCHEDULING传达 PG 是否计划在指定时间进行 scrub,是否排队进行 scrub,或者是否正在进行 scrub;OBJECTS_SCRUBBED显示在 scrub 开始后 PG 中 scrub 的对象数量。现在如果集群升级后未将
require-osd-release标志设置为适当的版本,则会报告健康警告。已删除 LevelDB 支持。
WITH_LEVELDB不再是受支持的构建选项。用户应在升级到 Quincy 之前将他们的监视器和 OSD 迁移到 RocksDB。Cephadm:默认启用
osd_memory_target_autotune,这将mgr/cephadm/autotune_memory_target_ratio设置为总 RAM 的0.7。这不适合超融合基础设施。对于超融合 Ceph,请参阅文档或将mgr/cephadm/autotune_memory_target_ratio设置为0.2。遥测:改进了选择加入流程,以便用户可以继续共享相同的数据,即使有新的数据收集可用。现在可以使用以下命令选择加入新的“perf”通道,该通道收集各种性能指标:
ceph telemetry onceph telemetry enable channel perf使用ceph telemetry preview查看示例报告。请注意,在大型集群中生成带有“perf”通道数据的遥测报告可能需要一些时间。有关更多详细信息,请参见:https://docs.ceph.net.cn/en/quincy/mgr/telemetry/MGR:进度模块默认禁用 pg 恢复事件,因为该事件代价高昂,并且在集群中标记进出 OSD 时中断了其他服务。但是,用户可以随时随时启用此事件。有关更多详细信息,请参见 https://docs.ceph.net.cn/en/quincy/mgr/progress/
https://tracker.ceph.com/issues/55383 是一个已知问题。当
mon_cluster_log_to_file设置为 true 时,需要将mon_cluster_log_to_journald设置为 false,才能在日志轮换后继续将集群日志消息记录到文件。
Cephadm ¶
SNMP 支持
守护进程的共置(mgr、mds、rgw)
osd 内存自动调整
与新的 NFS mgr 模块集成
在删除它们时 zap osd 的能力
cephadm 代理,以提高性能/可扩展性
Dashboard ¶
第一天:新的“集群扩展向导”将引导用户完成安装后步骤:添加新的主机、存储设备或服务。
NFS:仪表板现在允许用户从单个位置完全管理所有 NFS 导出。
新的 mgr 模块(反馈):用户可以直接从仪表板或 CLI 报告 Ceph 跟踪器问题或建议。
新的“每日消息”:集群管理员可以在横幅中发布自定义消息。
Cephadm 集成改进
- 主机管理:维护、规格和标签
- 服务管理:编辑和显示日志
- 守护进程管理(启动、停止、重启、重新加载)
- 支持的新服务:ingress(HAProxy)和 SNMP 网关。
监控和告警
- 已添加 43 个新告警(总计 68 个),从而提高了对影响集群健康、监视器、存储设备、PG 和 CephFS 事件的可观察性。
- 现在可以通过新的 SNMP 网关服务将告警作为 SNMP 陷阱发送到外部(提供了 MIB)。
- 改进了集成完整/近满事件通知。
- Grafana 仪表板现在使用 grafonnet 格式(尽管它们仍然以 JSON 格式提供)。
- 堆栈更新:已更新监控容器的镜像。Grafana 8.3.5、Prometheus 2.33.4、Alertmanager 0.23.0 和 Node Exporter 1.3.1。这减少了暴露于多个 Grafana 漏洞(CVE-2021-43798、CVE-2021-39226、CVE-2021-43798、CVE-2020-29510、CVE-2020-29511)的风险。
RADOS ¶
OSD:Ceph 现在使用
mclock_scheduler作为 BlueStore OSD 的默认osd_op_queue,以提供 QoS。'mclock_scheduler' 不支持 Filestore OSD。因此,即使用户尝试更改它,默认的 'osd_op_queue' 也设置为wpq用于 Filestore OSD 并强制执行。有关配置 mclock 的更多详细信息,请参见https://docs.ceph.net.cn/en/quincy/rados/configuration/mclock-config-ref/
运行时存在一个未解决的问题,即在切换到
custommclock 配置文件后,使用ceph config set ...命令无法修改与保留、权重和限制相关的 mclock 配置选项。此问题由 https://tracker.ceph.com/issues/55153 跟踪。在问题解决之前,建议用户避免使用“custom”配置文件或使用跟踪器中提到的解决方法。MGR:pg_autoscaler 现在可以通过
noautoscale标志全局启用和关闭。默认情况下,它设置为on,但此标志在集群升级和维护期间可以防止由自动缩放触发的重新平衡。现在可以使用--bulk标志创建池,该标志允许自动缩放器为这些池分配更多的 PG。这对于开箱即用性能更好的数据密集型池非常有用。有关自动缩放的更多详细信息,请参见:https://docs.ceph.net.cn/en/quincy/rados/operations/placement-groups/
OSD:支持 osd-osd 通信的链上压缩,默认情况下关闭。
有关压缩模式的更多详细信息,请参见:https://docs.ceph.net.cn/en/quincy/rados/configuration/msgr2/#compression-modes
OSD:集群日志中慢速操作的简洁报告。可以通过将
osd_aggregated_slow_ops_logging设置为 false 来恢复旧的更详细的日志记录行为。“kvs” Ceph 对象类不再打包。 “kvs” Ceph 对象类提供了一个分布式扁平 b 树键值存储,该存储是在 librados 对象 omap 之上实现的。由于没有内部用户使用此对象类,因此不再打包。
RBD 块存储 ¶
rbd-nbd:添加了
rbd device attach和rbd device detach命令,这些命令允许在 Linux 内核 5.14 之后安全地重新连接rbd-nbd守护进程重启后的设备。rbd-nbd:添加了
notrim映射选项以支持厚置备镜像,类似于 krbd。对 SSD 设备上的客户端持久缓存进行了大量的稳定工作,也适用于 16.2.8。有关用法详细信息,请参见 https://docs.ceph.net.cn/en/quincy/rbd/rbd-persistent-write-log-cache/
在使用快速差异镜像功能 + 整个对象(不精确)模式时,差异计算中的几个错误修复。在某些罕见情况下,这些长期存在的问题可能导致不正确的
rbd export。也已在 15.2.16 和 16.2.8 中修复。修复了在 Windows VM 上运行 krbd 时可能出现的性能下降问题。有关详细信息,请参见
rxbounce映射选项说明:https://docs.ceph.net.cn/en/quincy/man/8/rbd/#kernel-rbd-krbd-options
RGW 对象存储 ¶
RGW 现在支持按用户和/或按存储桶限制速率。使用此功能,可以限制用户和/或存储桶,可以传递的总操作数和/或字节数/分钟。此功能允许管理员仅限制 READ 操作和/或 WRITE 操作。速率限制配置可以通过使用全局配置应用于所有用户和所有存储桶。
radosgw-admin realm delete已重命名为radosgw-admin realm rm。这与帮助消息一致。S3 存储桶通知事件现在包含一个
eTag键而不是etag,并且事件名称值不再带有s3:前缀,从而修复了与在 AWS 上观察到的消息格式的偏差。现在可以为 beast 前端指定 ssl 选项和密码。默认 ssl 选项设置为“no_sslv2:no_sslv3:no_tlsv1:no_tlsv1_1”。如果您想恢复到旧行为,请将 'ssl_options='(为空)添加到
rgw frontends配置中。修改了多部分上传的行为,以便仅在多部分上传结束时发送 CompleteMultipartUpload 通知。在上传开始时发送的 POST 通知和在每个部分上发送的 PUT 通知不再发送。
CephFS 分布式文件系统 ¶
fs:可以使用特定的 ID(“fscid”)创建文件系统。这在某些恢复场景中很有用(例如,当监视器数据库丢失并重建时,并且恢复的文件系统预计与之前具有相同的 ID)。
fs:可以使用
fs rename命令重命名文件系统。授权于旧文件系统名称的所有 cephx 凭据需要重新授权于新文件系统名称。由于使用这些重新授权的 ID 的客户端的操作可能会中断,因此此命令需要 "--yes-i-really-mean-it" 标志。此外,预计镜像将被禁用在文件系统上。MDS 升级不再要求在升级文件系统的唯一活动 MDS 之前停止所有待机 MDS 守护进程。
CephFS:待机重放守护进程无法重放日志现在会导致该 rank 被标记为“损坏”。
从 Octopus 或 Pacific 升级 ¶
Quincy 不支持 LevelDB。请在升级到 Quincy 之前将您的 OSD 和监视器迁移到 RocksDB。
在开始之前,请确保您的集群稳定且正常(没有关闭或恢复的 OSD)。(这是可选的,但建议这样做。)您可以使用 noautoscale 标志在升级期间禁用所有池的自动缩放器。
注意:您可以使用 ceph versions 命令在每个阶段监控升级进度,该命令将告诉您正在运行的 ceph 版本。
升级 cephadm 集群 ¶
如果您的集群使用 cephadm 部署(首次在 Octopus 中引入),则升级过程完全自动化。要启动升级,
ceph orch upgrade start --ceph-version 17.2.0
使用相同过程升级到未来的次要版本。
可以使用 ceph -s(提供一个简单的进度条)或更详细地使用以下命令监控升级进度
ceph -W cephadm
可以使用以下命令暂停或恢复升级
ceph orch upgrade pause # 暂停 ceph orch upgrade resume # 恢复
或使用以下命令取消
ceph orch upgrade stop
请注意,取消升级只会停止该过程;无法降级回 Octopus 或 Pacific。
升级非 cephadm 集群 ¶
注意:如果您的集群正在运行 Octopus(15.2.x)或更高版本,您可能会选择首先将其转换为使用 cephadm,以便 Quincy 的升级是自动化的(见上文)。有关更多信息,请参见 https://docs.ceph.net.cn/en/quincy/cephadm/adoption/。
在升级期间设置
noout标志。(可选,但建议这样做。)ceph osd set noout
通过安装新软件包并重新启动监视器守护程序来升级监视器。例如,在每个监视器主机上,
systemctl restart ceph-mon.target
完成所有监视器启动后,通过查看 mon 地图中
quincy字符串来验证监视器升级是否完成。该命令ceph mon dump | grep min_mon_release
应报告
min_mon_release 17 (quincy)
如果未找到,则表示一个或多个监视器尚未升级和重新启动和/或仲裁不包括所有监视器。
通过安装新软件包并重新启动所有管理器守护程序来升级
ceph-mgr守护程序。例如,在每个管理器主机上,systemctl restart ceph-mgr.target
通过检查
ceph -s验证ceph-mgr守护程序是否正在运行ceph -s
... services: mon: 3 daemons, quorum foo,bar,baz mgr: foo(active), standbys: bar, baz ...
通过安装新软件包并在所有 OSD 主机上重新启动 ceph-osd 守护程序来升级所有 OSD
systemctl restart ceph-osd.target
升级所有 CephFS MDS 守护程序。对于每个 CephFS 文件系统,
禁用 standby_replay
ceph fs set <fs_name> allow_standby_replay false
将 ranks 数量减少到 1。(如果您计划稍后恢复它,请先记下原始 MDS 守护程序数量。)
ceph status # ceph fs set <fs_name> max_mds 1
定期检查状态,等待集群停用任何非零 ranks
ceph status
使用以下命令在适当的主机上关闭所有 standby MDS 守护程序
systemctl stop ceph-mds@<daemon_name>
确认只有一个 MDS 在线,并且它是您的 FS 的 rank 0
ceph status
通过安装新软件包并重新启动守护程序来升级最后一个剩余的 MDS 守护程序
systemctl restart ceph-mds.target
重新启动所有已关闭的 standby MDS 守护程序
systemctl start ceph-mds.target
恢复卷的原始
max_mds值ceph fs set <fs_name> max_mds <original_max_mds>
通过升级软件包并在所有主机上重新启动守护程序来升级所有 radosgw 守护程序
systemctl restart ceph-radosgw.target
完成升级,禁止使用低于 Quincy 的 OSD 并启用所有新的 Quincy 专用功能
ceph osd require-osd-release quincy
如果您在开始时设置了
noout,请务必使用以下命令清除它ceph osd unset noout
考虑将您的集群转换为使用 cephadm 部署和编排框架,以简化集群管理和未来的升级。有关将现有集群转换为 cephadm 的更多信息,请参见 https://docs.ceph.net.cn/en/quincy/cephadm/adoption/。
升级后 ¶
使用
ceph health验证集群是否正常。如果您的集群正在运行 Filestore,则预计会出现弃用警告。可以使用以下命令暂时静音此警告ceph health mute OSD_FILESTORE
如果您是从 Mimic 升级而来,或者在升级到 Nautilus 时尚未这样做,我们建议您启用新的 v2 网络协议 <msgr2>,并发出以下命令
ceph mon enable-msgr2
这将指示绑定到旧默认端口 6789 以进行旧 v1 协议的所有监视器也绑定到新的 3300 v2 协议端口。要查看是否已更新所有监视器,
ceph mon dump
并验证每个监视器是否都列出了
v2:和v1:地址。考虑启用 遥测模块,将匿名化的使用统计信息和崩溃信息发送给 Ceph 上游开发者。要查看将报告什么(无需实际向任何人发送任何信息),
ceph telemetry preview-all
如果您对报告的数据感到满意,可以使用以下命令选择自动报告高级集群元数据
ceph telemetry on
可以在 https://telemetry-public.ceph.com/ 找到聚合 Ceph 遥测的公共仪表板。
从 Octopus 之前的版本升级(例如 Nautilus) ¶
您必须先升级到 Octopus (15.2.z) 或 Pacific (16.2.z),然后再升级到 Quincy。
感谢我们的贡献者 ¶
Quincy 版本的发布离不开社区的贡献
Kefu Chai ▪ Sage Weil ▪ Sebastian Wagner ▪ Yingxin Cheng ▪ Samuel Just ▪ Radoslaw Zarzynski ▪ Patrick Donnelly ▪ Ilya Dryomov ▪ Michael Fritch ▪ Xiubo Li ▪ Casey Bodley ▪ Myoungwon Oh ▪ Adam King ▪ Zac Dover ▪ Venky Shankar ▪ Xuehan Xu ▪ Laura Flores ▪ Adam Kupczyk ▪ Varsha Rao ▪ Paul Cuzner ▪ Ronen Friedman ▪ Joseph Sawaya ▪ Igor Fedotov ▪ Nizamudeen A ▪ Neha Ojha ▪ Yehuda Sadeh ▪ Adam C. Emerson ▪ Daniel Gryniewicz ▪ Deepika Upadhyay ▪ Sridhar Seshasayee ▪ Guillaume Abrioux ▪ Rishabh Dave ▪ J. Eric Ivancich ▪ Soumya Koduri ▪ Alfonso Martínez ▪ Pere Diaz Bou ▪ Jason Dillaman ▪ Lucian Petrut ▪ Amnon Hanuhov ▪ chunmei-liu ▪ Greg Farnum ▪ Mykola Golub ▪ Josh Durgin ▪ Daniel Pivonka ▪ Marcus Watts ▪ Kotresh HR ▪ Yuval Lifshitz ▪ Matt Benjamin ▪ Ken Iizawa ▪ Ernesto Puerta ▪ Aashish Sharma ▪ Or Ozeri ▪ Pritha Srivastava ▪ Jeff Layton ▪ Igor Fedotov ▪ Yin Congmin ▪ Dimitri Savineau ▪ Avan Thakkar ▪ Yuri Weinstein ▪ Yaarit Hatuka ▪ Kamoltat ▪ David Galloway ▪ Abutalib Aghayev ▪ Patrick Seidensal ▪ Arthur Outhenin-Chalandre ▪ Willem Jan Withagen ▪ Kalpesh Pandya ▪ Avan Thakkar ▪ Nathan Cutler ▪ 胡玮文 ▪ Jos Collin ▪ Melissa ▪ Ma Jianpeng ▪ Brad Hubbard ▪ Juan Miguel Olmo Martínez ▪ Dan van der Ster ▪ wangyunqing ▪ Prasanna Kumar Kalever ▪ Chunsong Feng ▪ Mark Kogan ▪ Sébastien Han ▪ Ken Dreyer ▪ John Mulligan ▪ Jinyong Ha ▪ galsalomon66 ▪ Anthony D'Atri ▪ Ramana Raja ▪ Navin Barnwal ▪ Huber-ming ▪ Gabriel BenHanokh ▪ Omri Zeneva ▪ Melissa Li ▪ haoyixing ▪ Cory Snyder ▪ Yongseok Oh ▪ Prashant D ▪ Matan Breizman ▪ Dan Mick ▪ Benoît Knecht ▪ Sunny Kumar ▪ Milind Changire ▪ Melissa Li ▪ Jonas Pfefferle ▪ jianglong01 ▪ Feng Hualong ▪ Duncan Bellamy ▪ cao.leilc ▪ Aishwarya Mathuria ▪ Aaryan Porwal ▪ Yan, Zheng ▪ Xiaoyan Li ▪ wangyingbin ▪ Volker Theile ▪ Satoru Takeuchi ▪ Jiffin Tony Thottan ▪ Boris Ranto ▪ yuliyang_yewu ▪ XueYu Bai ▪ Mykola Golub ▪ Michael Wodniok ▪ Mark Nelson ▪ Jonas Jelten ▪ Etienne Menguy ▪ dependabot[bot] ▪ David Zafman ▪ Christopher Hoffman ▪ Ali Maredia ▪ YuanXin ▪ Waad AlKhoury ▪ Nikhilkumar Shelke ▪ Miaomiao Liu ▪ Luo Runbing ▪ Jan Fajerski ▪ Igor Fedotov ▪ gal salomon ▪ Aran85 ▪ zhipeng li ▪ Yuxiang Zhu ▪ yuval Lifshitz ▪ Yanhu Cao ▪ wangxinyu ▪ Tom Schoonjans ▪ Tatjana Dehler ▪ Simon Gao ▪ Sarthak Gupta ▪ Sandro Bonazzola ▪ Paul Reece ▪ Or Friedmann ▪ Misono Tomohiro ▪ Misono Tomohiro ▪ Matan Breizman ▪ Mahati Chamarthy ▪ Kyle ▪ Kalpesh ▪ João Eduardo Luís ▪ jhonxue ▪ Javier Cacheiro ▪ Hardik Vyas ▪ Deepika ▪ Danny Abukalam ▪ Dai Zhi Wei ▪ Curt Bruns ▪ Clément Péron ▪ Chunmei Liu ▪ Andrew Schoen ▪ Amnon Hanuhov ▪ 靳登科 ▪ Zulai Wang ▪ Yaakov Selkowitz ▪ Xinyu Huang ▪ weixinwei ▪ wanwencong ▪ wangzhong ▪ wangfei ▪ Waad Alkhoury ▪ Tongliang Deng ▪ Tim Serong ▪ Tao Dong Dong ▪ Sven Anderson ▪ Rafał Wądołowski ▪ Rachana Patel ▪ Paul Reece ▪ mengxiangrui ▪ Maya Gilad ▪ Mauricio Faria de Oliveira ▪ Manasvi Goyal ▪ luo rixin ▪ locallocal ▪ Liu Shi ▪ Kyr Shatskyy ▪ krunerge ▪ Kevin Zhao ▪ Kaleb S. Keithley ▪ Jianwei Zhang ▪ Jenkins ▪ Jeegn Chen ▪ Jan Fajerski ▪ Huang Jun ▪ Hualong Feng ▪ Gokcen Iskender ▪ Gerald Yang ▪ Eunice Lee ▪ Dimitri Papadopoulos ▪ dengchl01 ▪ Daniel-Pivonka ▪ cypherean ▪ Blaine Gardner ▪ Alex Wang ▪ Zulai Wang ▪ Zhi Zhang ▪ ZhenLiu94 ▪ Zhao Cuicui ▪ zhangmengqian_yw ▪ Zack Cerza ▪ Yunfei Guan ▪ yuliyang ▪ yaohui.zhou ▪ Yao guotao ▪ yanqiang-ux ▪ Yang Honggang ▪ wzbxqt ▪ Wong Hoi Sing Edison ▪ Will Smith ▪ weixinwei ▪ WeiGuo Ren ▪ wangyingbin ▪ wangtengfei ▪ Wang ShuaiChao ▪ wangbo-yw ▪ Vladimir Bashkirtsev ▪ VasishtaShastry ▪ Ushitora Anqou ▪ usageek1266 ▪ Thomas Lamprecht ▪ tancz1 ▪ Taha Jahangir ▪ Sven Wegener ▪ sunilkumarn417 ▪ Stephan Müller ▪ Stanislav Datskevych ▪ Srishti Guleria ▪ songtongshuai_yewu ▪ singuliere ▪ Sidharth Anupkrishnan ▪ Sheng Mao ▪ Sharuzzaman Ahmat Raslan ▪ Seongyeop Jeong ▪ Seena Fallah ▪ Sebastian Schmid ▪ Scott Shambarger ▪ Sandy Kaur ▪ Ruben Kerkhof ▪ Roland Sommer ▪ Rok Jaklič ▪ Roaa Sakr ▪ Rishabh Chawla ▪ Rahul Dev Parashar ▪ Rahul Dev Parashar ▪ Rachanaben Patel ▪ Pulkit Mittal ▪ Ponnuvel Palaniyappan ▪ Piotr Kubaj ▪ Pere Diaz Bou ▪ Peng Zhang ▪ Oleander Reis ▪ Niklas Hambüchen ▪ Ngwa Sedrick Meh ▪ Mumuni Mohammed ▪ Mitsumasa KONDO ▪ Mingxin Liu ▪ Mike Perez ▪ Mike Perez ▪ Michał Nasiadka ▪ mflehmig ▪ Matthew Vernon ▪ Matthew Cengia ▪ mark15213 ▪ Mara Sophie Grosch ▪ ManasviGoyal ▪ Malcolm Holmes ▪ Madhu Rajanna ▪ Lukas Stockner ▪ Ludwig Nussel ▪ Lorenz Bausch ▪ Loic Dachary ▪ Liyan Wang ▪ Liu Yang ▪ Liu Lan ▪ Lee Yarwood ▪ Kyle ▪ krafZLorG ▪ Kefu Chai ▪ karmab ▪ Kai Kang ▪ jshen28 ▪ Josh Salomon ▪ Josh ▪ Jonas Zeiger ▪ John Fulton ▪ John Bent ▪ Jinyong Ha ▪ Jingya Su ▪ jiawd ▪ jerryluo ▪ Jan "Yenya" Kasprzak ▪ Jan Horáček ▪ James Mcclune ▪ Injae Kang ▪ Ilsoo Byun ▪ hoamer ▪ Hargun Kaur ▪ haoyixing ▪ Grzegorz Wieczorek ▪ Girjesh Rajoria ▪ Gaurav Sitlani ▪ Francesco Pantano ▪ Foad Lind ▪ FengJiankui ▪ Felix Hüttner ▪ Erqi Chen ▪ Elena Chernikova ▪ Dmitriy Rabotyagov ▪ dheart ▪ Dennis Körner ▪ dengchl01 ▪ David Caro ▪ David Caro ▪ crossbears ▪ Chen Fan ▪ chenerqi ▪ chencan ▪ Burt Holzman ▪ Brian_P ▪ Bobby Alex Philip ▪ Aswin Toni ▪ Asbjørn Sannes ▪ Arunagirinadan Sudharshan ▪ Arjun Sharma ▪ Anuradha Kulkarni ▪ AndrewSharapov ▪ Anamika ▪ Almen Ng ▪ Alin Gabriel Serdean ▪ Alex Wu ▪ Akanksha Chaudhari ▪ Abutalib Aghayev ▪