v14.2.17 Nautilus 发布
这是 Nautilus 系列的第17个反向移植版本。我们建议用户更新到此版本
重要变更 ¶
$pid 在配置路径中(例如
admin_socket)现在将正确扩展为守护进程的 pid,适用于ceph-mds或ceph-osd等命令。以前只有ceph-fuse/rbd-nbd会使用实际的守护进程 pid 扩展$pid。RADOS: PG 删除在此版本中得到优化。
RADOS: BlueStore 中的内存分配被更精细地跟踪,并作为
dump_mempools命令的一部分显示。cephfs: 客户端获取 capability 过于迅速时会受到限制,以防止不稳定。请参阅新的配置选项
mds_session_cap_acquisition_throttle来控制此行为。
变更日志 ¶
不要在 Ceph 日志文件中添加敏感信息 (pr#38614, Neha Ojha)
bluestore: 添加保护措施以防止 bluefs 日志文件增长 (pr#37948, Adam Kupczyk)
bluestore: 为回退分配器提供不同的名称 (pr#37793, Igor Fedotov)
build-integration-branch: 按时间顺序处理 PR (pr#37693, Nathan Cutler)
build/ops: install-deps.sh,deb,rpm: 将 python-saml 依赖项移到 debian/control 和 ceph.spec.in 中 (pr#39184, Kefu Chai)
ceph-volume batch: 在 argparser 中拒绝分区 (pr#38279, Jan Fajerski)
ceph-volume: 修复 is_lv 的用法 (pr#39221, Michał Nasiadka)
ceph-volume: 为 zap 添加 no-systemd 参数 (pr#37723, wanghongxu)
ceph-volume: 为 bytes_to_extents 添加一些灵活性 (pr#39270, Jan Fajerski)
ceph-volume: 在 simple activate 中使用 mount opt (pr#38015, Dimitri Savineau)
ceph-volume: 实现 --log-level 标志 (pr#38372, Andrew Schoen)
ceph-volume: 从文档和帮助文本中删除对 dmcache 的提及 (pr#38048, Dimitri Savineau, Andrew Schoen)
cephfs: client: 在 truncate 时检查 rdonly 文件句柄 (pr#39129, Patrick Donnelly)
cephfs: client: 针对多文件系统,转储客户端使用的文件系统 (pr#38552, Zhi Zhang)
cephfs: client: 确保在从缓存的 inode 获取目录链接计数时获取 Fs caps (pr#38950, Jeff Layton)
cephfs: client: 修复 inode ll_ref 引用计数泄漏 (pr#37838, sepia-liu)
cephfs: client: 在 eof 附近_read_sync 时增加文件位置 (pr#37991, Patrick Donnelly)
cephfs: client: 在 readdir_r_cb 中为 dir 设置 CEPH_STAT_RSTAT mask (pr#38948, chencan)
cephfs: mds: 通过 readdir 限制 cap acquisition (pr#38101, Kotresh HR)
cephfs: mount.ceph: 为非传统 ms_mode 选项收集 v2 地址 (pr#39133, Jeff Layton)
cephfs: osdc: 在 truncate/discard 时重启读取 (pr#37988, Patrick Donnelly)
cephfs: 在向 mds 发送 caps release 之前释放 client dentry_lease (pr#39127, Wei Qiaomiao)
client: 添加 ceph.{cluster_fsid/client_id} vxattrs 支持 (pr#39001, Xiubo Li)
client: 不要在 libcephfs 中使用 g_conf().get_val<>() (pr#38467, Xiubo Li)
cmake: 为 Boost.Asio 用户定义 BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT (pr#38760, Kefu Chai)
cmake: 检测并使用 sigdescr_np()(如果可用) (pr#38952, David Disseldorp)
common/mempool: 改进 mempool shard 选择 (pr#39651, Nathan Cutler, Adam Kupczyk)
common: 修复 logfile 创建权限 (issue#7849, pr#38558, Kefu Chai, Roman Penyaev)
common: 在 find_ipv{4,6}_in_subnet() 中跳过以 "lo" 开头的接口 (pr#39342, Thomas Goirand, Jiawei Li)
core: osd: 空桶或 OSD 不是错误 (pr#39126, Brad Hubbard)
crush/CrushWrapper: 在重建 crush map 后重建反向映射 (pr#39197, Jason Dillaman)
krbd: 添加对 msgr2 的支持 (kernel 5.11) (pr#39202, Ilya Dryomov)
librados, tests: 允许列出名称中带有 NUL 字符的对象 (pr#39324, Radoslaw Zarzynski)
librbd: 创建镜像时清除隐式启用的 feature 位 (pr#39121, Jason Dillaman)
log: 修复日志时间戳精度无法设置为毫秒的问题 (pr#37659, Guan yunfei)
lvm/create.py: 修复帮助信息中的拼写错误 (pr#38371, ZhenLiu94)
mds: 将 start_files_to_recover() 移至 recovery_done (pr#37986, Simon Gao)
mds: 在 hit_session 中考虑关闭会话 (pr#37820, Dan van der Ster)
mds: 避免虚假休眠 (pr#39130, Patrick Donnelly)
mds: dir->mark_new() 应与 dir->mark_dirty() 一起使用 (pr#39128, "Yan, Zheng")
mds: 更新 recall 配置的默认值 (pr#39134, Patrick Donnelly)
mgr/PyModule: 正确移除配置选项 (pr#38803, Tim Serong)
mgr/crash: 序列化命令处理 (pr#39338, Boris Ranto)
mgr/dashboard: CLI commands: 从文件读取密码 (pr#38832, Ernesto Puerta, Alfonso Martínez, Juan Miguel Olmo Martínez)
mgr/dashboard: Datatable 捕获来自其他 datatable 的 select 事件 (pr#37756, Volker Theile, Tiago Melo)
mgr/dashboard: 禁用 TLS 1.0 和 1.1 (pr#38332, Volker Theile)
mgr/dashboard: 如果没有 python3-saml 则禁用 sso (pr#38404, Kevin Meijer)
mgr/dashboard: 在启用调试模式时在 Dashboard 中显示警告消息 (pr#38799, Volker Theile)
mgr/dashboard: 显示用户当前的 bucket quota 使用情况 (pr#38024, Avan Thakkar)
mgr/dashboard: 删除无效的 RGW 客户端实例,改进日志记录 (pr#38584, Volker Theile)
mgr/dashboard: 修复 'ceph dashboard iscsi-gateway-add' (pr#39175, Alfonso Martínez)
mgr/dashboard: 修复 datatable item 被选中后不显示详细信息的问题 (pr#38813, Nizamudeen A)
mgr/dashboard: 修复 rgw 用户表单中不正确的验证 (pr#39117, Nizamudeen A)
mgr/dashboard: RGW 用户表单正在验证禁用的字段 (pr#39543, Aashish Sharma)
mgr/dashboard: /rgw/status 端点不检查正在运行的服务 (pr#38771, Volker Theile)
mgr/dashboard: 更新内置 ssl providers 错误 (pr#38509, Nizamudeen A)
mgr/dashboard: 使用安全 cookie 存储 JWT Token (pr#38839, Avan Thakkar, Aashish Sharma)
mgr/dashboard: 为 `ng serve` 添加 `--ssl` (pr#38972, Tatjana Dehler)
mgr/dashboard: 避免使用 document.write() (pr#39526, Avan Thakkar)
mgr/dashboard: 自定义 CherryPy Server Header (pr#39419, anurag)
mgr/dashboard: 从文件读取密码时删除 EOF (pr#39438, Alfonso Martínez)
mgr/dashboard: 在 NFS export 编辑表单中禁用集群选择 (pr#37995, Kiefer Chang)
mgr/dashboard: 为 Grafana 的浏览器用户启用不同的 URL (pr#39136, Patrick Seidensal)
mgr/dashboard: 修复 MTU Mismatch alert (pr#39518, Aashish Sharma)
mgr/dashboard: 修复与 PyJWT 版本 >=2.0.0 相关的问题 (pr#39837, Alfonso Martínez)
mgr/dashboard: 修复某些 NFS-Ganesha 端点的安全范围 (pr#37961, Kiefer Chang)
mgr/dashboard: 修复 Provisioned/Total Provisioned 字段的工具提示 (pr#39646, Avan Thakkar)
mgr/dashboard: 最小化 Ceph 后端 API 测试的控制台日志跟踪 (pr#39544, Aashish Sharma)
mgr/dashboard: prometheus alerting: 为数据包丢失和错误添加一些余量 (pr#39509, Patrick Seidensal)
mgr/dashboard: python 2: 设置非 ASCII 密码时出错 (pr#39441, Alfonso Martínez)
mgr/dashboard: 删除 pyOpenSSL 版本限制 (pr#38504, Kiefer Chang)
mgr/dashboard: 设置安全标头 (pr#39626, Avan Thakkar)
mgr/dashboard: test_standby\* (tasks.mgr.test_dashboard.TestDashboard) 在本地失败 (pr#38527, Volker Theile)
mgr/dashboard: 如果某些节点的 MTU 与中值不同,则触发警报 (pr#39104, Aashish Sharma)
mgr/insights: 测试环境需要 'six' (pr#38382, Brad Hubbard)
mgr/progress: 通过网络删除所有事件 (pr#38416, Sage Weil)
mgr/progress: 使进度条不会永远卡住 (issue#40618, pr#37589, Kamoltat (Junior) Sirivadhna, Kamoltat)
mgr/prometheus: 添加 SLOW_OPS healthcheck 作为度量标准 (pr#39747, Paul Cuzner)
mgr/prometheus: 修复使用率 >50% 时 'pool filling up' 的问题 (pr#39076, Daniël Vos)
mgr/prometheus: 使模块更稳定 (pr#38334, Boris Ranto, Ken Dreyer)
mgr/restful: 修复 _gather_osds() 中发生的 TypeError (issue#48488, pr#39339, Jerry Pu)
mgr/telemetry: 修复代理用法 (pr#38816, Nathan Cutler)
mgr/volume: subvolume auth_id 管理和一些 bug 修复 (pr#39292, Rishabh Dave, Patrick Donnelly, Kotresh HR, Ramana Raja)
mgr/volumes: 使克隆线程数可配置 (pr#37936, Kotresh HR)
mgr: 限制 importlib_metadata 版本为 2.1.0 (pr#38296, Brad Hubbard)
mgr: 不更新已退出的 osd stat (pr#38354, Zhi Zhang)
mgr: 修复 ActivePyModules::get_osdmap() 中的死锁 (pr#39340, peng jiaqi)
mgr: 在 monmap 更新时更新 mon metadata (pr#39075, Kefu Chai)
mon scrub 测试 (pr#38362, Brad Hubbard)
mon/MDSMonitor 不忽略 mds 的 down:dne 请求 (pr#37822, chencan)
mon/MDSMonitor: 使用点分隔 mds 标识符和 mds 真实名称 (pr#37821, Zhi Zhang)
mon: 定期在集群日志中记录 "ceph health detail" (pr#38118, Prashant Dhange)
mon: 使 'mon stat' 也能输出 json (pr#37706, Joao Eduardo Luis, Sage Weil)
mon: paxos: 在析构函数中删除 logger (pr#39160, Brad Hubbard)
mon: 验证 crush-failure-domain (pr#39124, Prashant Dhange)
monitoring: 对 OSD read latency 使用 null yaxes min (pr#37959, Seena Fallah)
msg/async/ProtocolV2: 再次允许 rxbuf/txbuf 在测试中变大 (pr#38268, Ilya Dryomov)
ocf: 添加对 RBD namespace 内映射镜像的支持 (pr#39047, Jason Dillaman)
os/bluestore: 添加检查 BlueFS 读取的选项 (pr#39756, Adam Kupczyk)
os/bluestore: 使用 fsck 检测并修复 "zombie" spanning blobs (pr#39255, Igor Fedotov)
os/bluestore: 修复 BlueFS 中的巨大读/写 (pr#39698, Jianpeng Ma, Kefu Chai, Igor Fedotov)
os/bluestore: 修复 avl/hybrid allocator 不适当的 ENOSPC (pr#38475, Igor Fedotov)
os/bluestore: 修复提供给 claim\_… 的偏移量越界导致的段错误 (pr#38637, Igor Fedotov)
os/bluestore: 在修剪缓存时超越 pinned onodes (pr#39720, Igor Fedotov)
os/bluestore: mempool 的更精细粒度 + 添加遗漏的结构体 (pr#38310, Deepika Upadhyay, Igor Fedotov, Adam Kupczyk)
osd: 在块之间检查 nosrub/nodeep-scrub,以避免竞争 (pr#38411, David Zafman)
osd: 修复 bluestore bitmap allocator 计算 hint 时错误的 last_pos (pr#39708, Xue Yantao)
osd: 优化 PG 删除 (part1) (pr#38478, Neha Ojha, Igor Fedotov)
pybind/ceph_volume_client: 将 auth-metadata 文件中的 'volumes' key 更新为 'subvolumes' (pr#39658, Kotresh HR, Michael Fritch)
pybind/cephfs: 为不读取 conffile 添加特殊值 (pr#37725, Kefu Chai)
pybind/cephfs: 修复 readlink() 的 C 字符串中缺少终止 NULL 字符 (pr#38894, Tuan Hoang)
pybind/mgr/rbd_support: 延迟创建 progress module 事件 (pr#38833, Jason Dillaman)
qa/cephfs: 添加 session_timeout 选项支持 (pr#37840, Xiubo Li)
qa/distros: 添加 rhel 7.9 (pr#38188, rakeshgm)
qa/tasks/ceph_manager.py: 不要在 raw_cluster_cmd 中使用 log-early (pr#39960, Neha Ojha)
qa/tasks/{ceph,ceph_manager}: 删除 py2 支持 (pr#37906, Rishabh Dave, Deepika Upadhyay, Kefu Chai)
qa: 修复 tox 失败 (pr#38627, Patrick Donnelly)
qa: krbd_stable_pages_required.sh: 移至 stable_writes 属性 (pr#38834, Ilya Dryomov)
qa: 恢复文件名 (pr#38772, Patrick Donnelly)
qa: 在删除卷之前卸载卷 (pr#38690, Patrick Donnelly)
qa: 对 valgrind 使用正常构建 (pr#39584, Sage Weil)
rados/upgrade/nautilus-x-singleton 失败,因为集群 [WRN] 驱逐无响应的客户端 (pr#39706, Patrick Donnelly)
rbd-nbd: 在子进程中重新扩展 conf meta (pr#38830, Xiubo Li)
rbd/bench: 包含使用的头文件 (pr#39123, Kefu Chai)
rbd: librbd: 确保在处理受限 IO 时持有线程池锁 (pr#37895, Jason Dillaman)
rbd: librbd: 删除池配置覆盖时更新隐藏的全局配置 (pr#38831, Jason Dillaman)
rgw: 在带有 range header 的 GET 请求时禁用预取整个 head object (pr#38556, Or Friedmann)
rgw: S3 Put Bucket Policy 成功时应返回 204 (pr#38623, Matthew Oliver)
rgw: 避免由溢出导致的 expiration 提前触发 (pr#38823, jiahuizeng)
rgw: cls/rgw/cls_rgw.cc: 修复多个最新版本问题 (pr#38085, Yang Honggang, Ruan Zitao)
rgw: cls/user: 为 reset stats 调用设置 from_index (pr#38822, Mykola Golub, Abhishek Lekshmanan)
rgw: 为 exclusive put 分发缓存 (pr#38827, Or Friedmann)
rgw: 修复 bucket limit check fill_status warnings (issue#40255, pr#38825, Paul Emmerich)
rgw: 修复提供 s3website 错误页面时无效的 payload 问题 (pr#38590, Ilsoo Byun)
rgw: 修复 multipart reuploads 对象名称中的尾随 null (pr#39276, Casey Bodley)
rgw: 在有序 bucket listing 中尽可能在内部跳过命名空间条目 (pr#38493, J. Eric Ivancich)
rgw: 复制 bucket shard headers 时保留 syncstopped 标志 (pr#38589, Ilsoo Byun)
rgw: multisite: 验证同步的对象是否与源对象相同 (pr#38885, Prasad Krishnan, Yang Honggang, Casey Bodley)
rgw: radosgw-admin: 澄清电子邮件地址已被使用时的错误 (pr#39661, Matthew Vernon)
rgw: rgw-admin: 修复缺少 bucket 时的 BucketInfo (pr#38588, Nick Janus, caolei)
rgw_file: 按字典顺序返回 common_prefixes (pr#38828, Matt Benjamin)
rpm,deb: 将 sudoers 文件模式更改为 440 (pr#39090, David Turner)
rpm: ceph-mgr-dashboard 在 SUSE 上推荐 python3-saml (pr#38818, Nathan Cutler)
run-make-check.sh: 如果构建失败,则不运行测试 (pr#38295, Brad Hubbard)
test/librados: 修复 checksum test cases 中的 endian bugs (pr#37605, Ulrich Weigand)
test/rbd-mirror: 修复 broken ceph_test_rbd_mirror_random_write (pr#39650, Jason Dillaman)
test/run-cli-tests: 使用来自 github 的 cram (pr#39072, Kefu Chai)
tests: 取消 noscrub *和* nodeep-scrub (pr#39125, Ronen Friedman)
tools/rados: 在 rados CLI 中添加对二进制对象名称的支持 (pr#39329, Radoslaw Zarzynski, Kefu Chai)
tools/rados: 在 "rados ls" 的 json 输出期间定期刷新格式化程序 (pr#37834, J. Eric Ivancich)