v14.2.12 Nautilus 发布
这是 Nautilus 系列的第12个反向移植版本。此版本为 Ceph 的所有主要组件带来了一些错误修复。我们建议所有 Nautilus 用户升级到此版本。
重要变更 ¶
ceph df命令现在列出每个存储池中的 pg 数量。监视器现在有一个配置选项
mon_osd_warn_num_repaired,默认为 10。如果任何 OSD 在存储数据中修复的 I/O 错误数量超过此值,则会生成OSD_TOO_MANY_REPAIRS健康警告。为了清除警告,添加了一个新命令ceph tell osd.# clear_shards_repaired [count]。默认情况下,它将修复计数设置为 0。如果您希望在执行更多修复时再次收到警告,可以为命令提供一个值,并指定mon_osd_warn_num_repaired的值。此命令将在未来版本中被健康静音/取消静音功能取代。现在可以使用
mon_host_override配置选项或--mon-host-override <ip>命令行开关指定 Ceph 工具和守护程序最初联系的监视器。这通常只应用于调试,并且只影响与 Ceph 监视器集群的初始通信。
变更日志 ¶
bluestore/bluefs: 使 accounting 能够抵抗 unlock() (pr#36909, Adam Kupczyk)
bluestore: 针对超大 bluefs 日志的救援程序 (pr#36930, Adam Kupczyk)
bluestore: 转储具有过多跨越 blob 的 onode (pr#36756, Igor Fedotov)
bluestore: 默认启用更灵活的 bluefs 空间管理 (pr#37091, Igor Fedotov)
bluestore: 修复 collection_list 排序 (pr#37051, Mykola Golub)
ceph-iscsi: selinux 修复 (pr#36304, Mike Christie)
ceph-volume: 为运行 LVM 命令的新函数添加测试 (pr#36615, Rishabh Dave)
ceph-volume: 不在 api/lvm.py 中使用容器类 (pr#35878, Guillaume Abrioux, Rishabh Dave’)
ceph-volume: 修复日志大小参数不生效的问题 (pr#37377, wanghongxu)
ceph-volume: 修复简单激活旧 OSD 的问题 (pr#37195, Guillaume Abrioux)
ceph-volume: 修复 test_lvm.TestVolume.test_is_not_ceph_device (pr#36493, Jan Fajerski)
ceph-volume: 处理批处理和显式场景下的幂等性 (pr#35881, Andrew Schoen)
ceph-volume: 从 api/lvm.py 中删除容器类 (pr#36610, Rishabh Dave)
ceph-volume: 删除对 get_devices() 不必要的调用 (pr#37413, Marc Gariepy)
ceph-volume: 如果设备类型无效,则在清单中报告正确的拒绝原因 (pr#36453, Satoru Takeuchi)
ceph-volume: 获取锁失败时重试 (pr#36926, Sxc3xa9bastien Han)
ceph-volume: 简单扫描应忽略 tmpfs (pr#36952, Andrew Schoen)
ceph.spec.in, debian/control: 添加 smartmontools 和 nvme-cli 依赖项xe2x80xa6 (pr#37288, Yaarit Hatuka)
cephfs-journal-tool: 修复查找丢失对象时不正确的 read_offset (pr#37479, Xue Yantao)
cephfs: client: 修复额外的 open 引用减少 (pr#36966, Xiubo Li)
cephfs: client: 使 Client::open() 将正确的 cap mask 传递给 path_walk (pr#37231, “Yan, Zheng”)
cephfs: mds/CInode: 优化仅由子树固定的检查 (pr#36965, Mark Nelson)
cephfs: mds: 重新启动 mds 后,其 standy-replay mds 仍处于“resolve”状态 (pr#37179, Wei Qiaomiao)
cephfs: mds: mds 滞后时不要推迟传入的 mgrmap (issue#44638, pr#36168, Nathan Cutler, Venky Shankar)
cephfs: mds: 修复 dirfrag 是否正在碎片化检查不正确的问题 (pr#37035, “Yan, Zheng”)
cephfs: mds: 修复 mds 转发请求 no_available_op_found (pr#36963, Yanhu Cao’)
cephfs: mds: 修复 purge_queues _calculate_ops 不准确的问题 (pr#37481, Yanhu Cao’)
cephfs: mds: kcephfs 解析 dirfrags ndist 始终为 0 (pr#37177, Yanhu Cao’)
cephfs: mds: 将 MDSGatherBuilder 放在堆栈上 (pr#36967, Patrick Donnelly)
cephfs: mds: 正常会话关闭后恢复文件 (pr#37178, “Yan, Zheng”)
cephfs: mds: 解决等待未提交碎片时的 SIGSEGV (pr#36968, Patrick Donnelly)
cephfs: osdc/Journaler: 如果 onsafe 为 0,则不调用 onsafe->complete() (pr#37229, Xiubo Li)
client: 处理没有 Fs cap 的 readdir 回复 (pr#37232, “Yan, Zheng”)
common, osd: 添加 osd_scrub_max_preemptions 周围的健全性检查 (pr#37470, xie xingguo)
common/config: 减少关于我们无法应用的 mon 配置的噪音 (pr#36289, Sage Weil’)
common: fork 之前忽略 SIGHUP (issue#46269, pr#36181, Willem Jan Withagen, hzwuhongsong)
compressor: 添加一个配置选项来指定 Zstd 压缩级别 (pr#37254, Bryan Stillwell)
core: include/encoding: 修复大端系统上的浮点类型编码/解码 (pr#37033, Ulrich Weigand)
doc/rados: 修复 osd_op_queue 默认值 (pr#36354, Benoxc3xaet Knecht)
doc/rados: 修复 osd_scrub_during_recovery 默认值 (pr#37472, Benoxc3xaet Knecht)
doc/rbd: 添加 rbd-target-gw enable 和 start (pr#36415, Zac Dover)
doc: 启用 Read the Docs (pr#37204, Kefu Chai)
krbd: 可选跳过等待 udev 事件 (pr#37284, Ilya Dryomov)
kv/RocksDBStore: 使选项 compaction_threads/disableWAL/flusher_txe2x80xa6 (pr#37055, Jianpeng Ma)
librados: 添加 LIBRADOS_SUPPORTS_GETADDRS 支持 (pr#36853, Xiubo Li, Jason Dillaman, Kaleb S. KEITHLEY, Kefu Chai)
messages,mds: 修复大端系统上的枚举类型解码 (pr#36814, Ulrich Weigand)
mgr/balancer: 使用 “==” 和 “!=” 比较 str (pr#37471, Kefu Chai)
mgr/dashboard/api: 增加 API 健康超时 (pr#36607, Ernesto Puerta)
mgr/dashboard: 允许编辑有登录发起程序的 iSCSI 目标 (pr#37278, Tiago Melo)
mgr/dashboard: 禁用 read_only 模态框的表单输入 (pr#37241, Nizamudeen)
mgr/dashboard: 构建默认语言时不要使用任何 xlf 文件 (pr#37550, Sebastian Krah’)
mgr/dashboard: 修复 host-details Grafana 仪表板中的多对多问题 (pr#37306, Patrick Seidensal)
mgr/dashboard: 修复存储池重命名功能 (pr#37510, Stephan Mxc3xbcller, Ernesto Puerta)
mgr/dashboard: 如果 limit=0,则隐藏表操作输入字段 (pr#36783, Volker Theile)
mgr/dashboard: Monitoring: 修复无限加载条操作 (pr#37161, Nizamudeen A)
mgr/dashboard: 未指定 Content-Type 时 REST API 返回 500 (pr#37307, Avan Thakkar)
mgr/dashboard: 无法编辑已登录的 iSCSI 客户端 (pr#36613, Ricardo Marques)
mgr/dashboard: cpu 统计信息显示不正确 (pr#37295, Avan Thakkar)
mgr/dashboard: 文档 Prometheus 安全模型 (pr#36920, Patrick Seidensal)
mgr/dashboard: 修复损坏的反向移植 (pr#37505, Ernesto Puerta)
mgr/dashboard: 修复列出大量存储桶时的性能问题 (pr#37280, Alfonso Martxc3xadnez)
mgr/dashboard: 修复存储池使用率计算 (pr#37309, Ernesto Puerta)
mgr/dashboard: 删除“本周/月/年”和“今天”时间戳 (pr#36790, Avan Thakkar)
mgr/dashboard: 表格详细行溢出 (pr#37324, Aashish Sharma)
mgr/dashboard: 等待更长时间以清除健康状态 (pr#36784, Tatjana Dehler)
mgr/devicehealth: 修复抓取设备前的守护程序过滤 (pr#36741, Yaarit Hatuka)
mgr/diskprediction_local: 修复数组大小错误 (pr#36578, Benoxc3xaet Knecht)
mgr/prometheus: 自动发现用于统计信息收集的 RBD 存储池 (pr#36412, Jason Dillaman)
mgr/restful: 使用 dict.items() 兼容 py3 (pr#36670, Kefu Chai)
mgr/status: 元数据异步获取 (pr#37558, Michael Fritch)
mgr/telemetry: 修复匿名化序列号时设备 ID 拆分的问题 (pr#37318, Yaarit Hatuka)
mgr/volumes: 添加全局锁调试 (pr#36828, Patrick Donnelly)
mgr: 为 mgr_module.py 中的 PG_STATES 添加缺少的状态 (pr#36785, Harley Gorrell)
mgr: 如果 pg 被删除,则减少存储池统计信息 (pr#37476, Aleksei Gutikov)
mgr: 收到来自 mon 的 map 时不要更新 pending service map epoch (pr#37181, Mykola Golub’)
minor tweaks to fix compile issues under latest Fedora (pr#36726, Willem Jan Withagen, Kaleb S. KEITHLEY, Kefu Chai)
mon/OSDMonitor: 仅在修剪 osdxe2x80xa6 时考虑 osd (pr#36982, Kefu Chai)
mon/PGMap: 在 ceph df 命令中为存储池添加 pg 计数 (pr#36944, Vikhyat Umrao)
mon: OSD 上修复过多读取时发出警告 (pr#36379, David Zafman)
mon: 修复 conf “osd_objectstore” 为 filestore 时 Error ERANGEmessage 的问题 (pr#37474, wangyunqing’)
mon: 在 preprocess_xe2x80xa6 中更一致地将 pgtemp 消息标记为 no_reply (pr#37171, Greg Farnum)
mon: 在 ceph context 中存储 mon 更新以供未来 MonMap 实例化 (pr#36704, Patrick Donnelly, Shyamsundar Ranganathan)
monclient: 使用 mon_client_hunt_interval 安排第一次 tick (pr#36634, Mykola Golub)
msg/async/ProtocolV2: 允许 rxbuf/txbuf 在测试中变大 (pr#37081, Ilya Dryomov)
osd/OSDCap: rbd 配置文件允许使用“rbd_info” (pr#36413, Florian Florensa)
osd/PeeringState: 防止 peers num_objects 变为负数 (pr#37473, xie xingguo’)
prometheus: 正确拆分 IPv6 地址的端口 (pr#36984, Matthew Oliver)
rbd: 在 krbd 符号链接中包含 RADOS 命名空间 (pr#37468, Ilya Dryomov)
rbd: librbd: 对齐 rbd_write_zeroes 声明 (pr#36712, Corey Bryant)
rbd: librbd: 如果 watcher 未注册,则不要重新发送 async_complete (pr#37040, Mykola Golub’)
rbd: librbd: 全局和池级配置覆盖需要映像刷新才能应用 (pr#36725, Jason Dillaman)
rbd: librbd: 使用迁移中止可能导致数据丢失 (pr#37165, Jason Dillaman)
rbd: 使通用选项覆盖 krbd 特定选项 (pr#37407, Ilya Dryomov)
rgw/cls: 在最后一次 unlink 时保留 olh entrys name (pr#37462, Casey Bodley’)
rgw: 将存储桶名称添加到存储桶 stats 错误日志记录 (pr#37378, Seena Fallah)
rgw: 在 unregistered_reqs 之前清空 reqs_change_state 队列 (pr#37461, Soumya Koduri)
rgw: Expiration days 不能为零,transition days 可以为零 (pr#37465, zhang Shaowen’)
rgw: RGWObjVersionTracker 跟踪增量上的版本 (pr#37459, Casey Bodley)
rgw: Swift API 匿名访问应为 401 (pr#37438, Matthew Oliver)
rgw: 为 beast frontend 添加访问日志 (pr#36727, Mark Kogan)
rgw: 为系统对象添加负缓存 (pr#37460, Or Friedmann)
rgw: append obj: 防止 tail 被 GC (pr#36390, Abhishek Lekshmanan’)
rgw: 在 RGWLifecycleConfiguration::dump() 中转储 transitions (pr#36880, Shengming Zhang)
rgw: 尝试对不存在的xe2x80xa6执行 get/set-bucket-versioning 时失败 (pr#36188, Matt Benjamin)
rgw: 修复 boost::asio::async_write() 不返回错误的问题 (pr#37157, Mark Kogan)
rgw: 修复双斜杠 (//) 导致网关崩溃的问题 (pr#36682, Theofilos Mouratidis)
rgw: 修复 RGWAsyncReadMDLogEntries 中的关机崩溃 (pr#37463, Casey Bodley)
rgw: 使用 unique_ptr 保存 reloader (pr#36770, Kefu Chai)
rgw: 以级别 1 (以前为 20) 记录 resharding 事件 (pr#36843, Or Friedmann)
rgw: 有序存储桶列表代码清理 (pr#37169, J. Eric Ivancich)
rgw: policy: 重用 eval_principal 来评估策略主体 (pr#36637, Abhishek Lekshmanan)
rgw: radosgw-admin: period pull 命令并不总是 raw_storage_op (pr#37464, Casey Bodley)
rgw: 在 s3 v4 auth 的规范查询字符串中将 +替换为 “%20” (pr#37467, yuliyang_yewu’)
rgw: 转发请求时对存储桶名称进行 urlencode (pr#37435, caolei)
run-make-check.sh: 提取 run-make.sh + 使用绝对路径运行 sudo (pr#36494, Kefu Chai, Ernesto Puerta)
systemd: 支持 AIO 节点优雅重启 (pr#37301, Wong Hoi Sing Edison)
tools/osdmaptool.cc: 添加 clean_temps 能力 (pr#37477, Neha Ojha)
tools/rados: 导出或导入存储池时设置 locator key (pr#37475, Iain Buclaw)