v16.2.6 Pacific 发布
这是 Pacific 系列中的第六个回溯移植版本。我们建议所有用户更新到此版本。
重要变更 ¶
MGR:pg_autoscaler 有一个新的默认“scale-down”(缩减)配置文件,为新池(新创建的集群)提供了更高的启动性能。现有集群将保留旧的行为,现在称为“scale-up”(扩容)配置文件。有关更多详细信息,请参阅:https://docs.ceph.net.cn/en/latest/rados/operations/placement-groups/
CephFS:CephFS 的升级过程现在更简单了。不再需要在升级唯一活动的 MDS 之前停止所有 MDS。在禁用 standby-replay,将 max_mds 减少到 1,并等待文件系统稳定(每个文件系统有 1 个活动的和 0 个停止的守护进程)之后,可以执行所有 MDS 守护进程的滚动升级。
Dashboard:现在允许用户设置并显示自定义消息(MOTD、警告等)在页面顶部的固定横幅中。有关更多详细信息,请参阅:https://docs.ceph.net.cn/en/pacific/mgr/dashboard/#message-of-the-day-motd
BlueStore 中的几处修复,包括对延迟写入回归的修复,该回归导致 RocksDB 刷新和压缩过多。以前,当 bluestore_prefer_deferred_size_hdd 等于或大于 bluestore_max_blob_size_hdd(均设置为 64K)时,所有数据都会被延迟,这导致 RocksDB 中用于存储延迟写入的列族消耗增加。现在,bluestore_prefer_deferred_size 参数独立控制延迟写入,并且只有小于此大小的写入才会使用延迟写入路径。
osd_client_message_cap 的默认值已设置为 256,通过限制正在进行的客户端请求的最大数量来提供更好的流量控制。
当 osd_scrub_auto_repair 设置为 true 时,对于不需要修复的常规深度擦洗,PG 不再显示 active+clean+scrubbing+deep+repair 状态。
ceph-mgr-modules-core debian 包不再推荐 ceph-mgr-rook。因为后者依赖 python3-numpy,如果 python3-numpy 的版本低于 1.19,则无法在不同的 Python 子解释器中多次导入。由于 apt-get 默认安装 Recommends 包,ceph-mgr-rook 总是作为间接依赖项与 ceph-mgr debian 包一起安装。如果您的工作流程依赖此行为,您可能需要单独安装 ceph-mgr-rook。
这是为 Debian Bullseye 构建的第一个版本。
变更日志 ¶
如果没有其他可用地址,则绑定到环回地址 (pr#42477, Kefu Chai)
ceph-monstore-tool: 使用足够大的 paxos/{first,last}_committed (issue#38219, pr#42411, Kefu Chai)
ceph-volume/tests: 销毁 osd 时重试 (pr#42546, Guillaume Abrioux)
ceph-volume/tests: 更新 tox 中的 ansible 环境变量 (pr#42490, Dimitri Savineau)
ceph-volume: 考虑 /dev/root 为已挂载 (pr#42755, David Caro)
ceph-volume: 修复 lvm activate 参数 (pr#43116, Dimitri Savineau)
ceph-volume: 修复 lvm migrate without args (pr#43110, Dimitri Savineau)
ceph-volume: 修复带逻辑分区的原始列表 (pr#43087, Guillaume Abrioux, Dimitri Savineau)
ceph-volume: 实现 bluefs 卷迁移 (pr#42219, Kefu Chai, Igor Fedotov)
ceph-volume: lvm batch: fast_allocations(): 避免 ZeroDivisionError (pr#42493, Jonas Zeiger)
ceph-volume: pvs --noheadings 替换 pvs --no-heading (pr#43076, FengJiankui)
ceph-volume: 从 deactivate help 中删除 --all 引用 (pr#43098, Dimitri Savineau)
ceph-volume: 支持 lvm migrate 使用 no_systemd (pr#43091, Dimitri Savineau)
ceph-volume: 解决幻象 atari 分区问题 (pr#42753, Blaine Gardner)
ceph.spec.in: 从构建依赖中删除 gdbm (pr#43000, Kefu Chai)
cephadm: August batch 1 (pr#42736, Sage Weil, Dimitri Savineau, Guillaume Abrioux, Sebastian Wagner, Varsha Rao, Zac Dover, Adam King, Cory Snyder, Michael Fritch, Asbjørn Sannes, "Wang,Fei", Javier Cacheiro, 胡玮文, Daniel Pivonka)
cephadm: September batch 1 (issue#52038, pr#43029, Sebastian Wagner, Dimitri Savineau, Paul Cuzner, Oleander Reis, Adam King, Yuxiang Zhu, Zac Dover, Alfonso Martínez, Sage Weil, Daniel Pivonka)
cephadm: 使用 quay,而不是 docker (pr#42534, Sage Weil)
cephfs-mirror: 在 DirRegistry 中记录目录路径取消 (issue#51666, pr#42458, Venky Shankar)
client: 仅在不安全请求的相关和 auth MDSes 中刷新 mdlog (pr#42925, Xiubo Li)
client: 确保只从 auth mds 更新 dir dist (pr#42937, Xue Yantao)
cls/cmpomap: 在 U64 比较中,空值为 0 (pr#42908, Casey Bodley)
cmake, ceph.spec.in: 在 RHEL 上使用 header only fmt 构建 (pr#42472, Kefu Chai)
cmake: 如果是内部库,则构建静态库 (pr#39902, Kefu Chai)
cmake: 从 "all" 中排除 "grafonnet-lib" 目标 (pr#42898, Kefu Chai)
cmake: 静态链接捆绑的 fmt (pr#42692, Kefu Chai)
cmake: 替换 boost 下载 URL (pr#42693, Rafał Wądołowski)
common/buffer: 修复 rebuild_aligned_size_and_memory 中的 SIGABRT (pr#42976, Yin Congmin)
common/Formatter: 包含使用的头文件 (pr#42233, Kefu Chai)
common/options: 将 osd_client_message_cap 设置为 256 (pr#42615, Mark Nelson)
compression/snappy: 使用 uint32_t 以兼容 1.1.9 (pr#42542, Kefu Chai, Nathan Cutler)
debian/control: ceph-mgr-modules-core 不推荐 ceph-mgr-roo... (pr#42300, Kefu Chai)
debian/control: dh-systemd 现在是 debhelper 的一部分 (pr#43151, David Galloway)
debian/control: 从 Build-Depends 中删除 cython (pr#43131, Kefu Chai)
doc/ceph-volume: 添加 lvm migrate/new-db/new-wal (pr#43089, Dimitri Savineau)
doc/rados/operations: s/max_misplaced/target_max_misplaced_ratio/ (pr#42250, Paul Reece, Kefu Chai)
doc/releases/pacific.rst: 删除有关 autoscaler 的说明 (pr#42265, Neha Ojha)
不保留报告数据 (pr#42888, Brad Hubbard)
krbd: 转义 udev_enumerate_add_match_sysattr 值 (pr#42969, Ilya Dryomov)
kv/RocksDBStore: 为 resharding 添加 block_cache 选项处理 (pr#42844, Adam Kupczyk)
kv/RocksDBStore: 丰富调试消息 (pr#42544, Toshikuni Fukaya, Satoru Takeuchi)
librgw/notifications: 初始化 kafka 和 amqp (pr#42648, Yuval Lifshitz)
mds: 拒绝带 EPERM 的 mksnap 时添加调试信息 (pr#42935, Patrick Donnelly)
mds: 使用特定 ID 创建文件系统 (pr#42900, Ramana Raja)
mds: MDCache.cc:5319 FAILED ceph_assert(rejoin_ack_gather.count(mds->get_nodeid())) (pr#42938, chencan)
mds: META_POP_READDIR, META_POP_FETCH, META_POP_STORE 和 cache_hit_rate 未更新 (pr#42939, Yongseok Oh)
mds: 打印未知类型值 (pr#42088, Xiubo Li, Jos Collin)
MDSMonitor: 从 ceph 15.2.13 升级到 16.2.4 后监视器崩溃 (pr#42536, Patrick Donnelly)
mgr/DaemonServer: 跳过 pgp_num_actual 的冗余更新 (pr#42223, Dan van der Ster)
mgr/dashboard/api: 运行 pip 时设置 UTF-8 区域设置 (pr#42829, Kefu Chai)
mgr/dashboard: 添加可配置的 MOTD 或墙通知 (pr#42414, Volker Theile)
mgr/dashboard: cephadm e2e 启动脚本: 添加 --expanded 选项 (pr#42789, Alfonso Martínez)
mgr/dashboard: cephadm-e2e job script: 改进 (pr#42585, Alfonso Martínez)
mgr/dashboard: 禁用子卷创建快照 (pr#42819, Pere Diaz Bou)
mgr/dashboard: 不通知被抑制的警报 (pr#42974, Tatjana Dehler)
mgr/dashboard: 修复 Accept-Language 头解析 (pr#42297, 胡玮文)
mgr/dashboard: 修复将 inventory 重命名为 disks (pr#42810, Navin Barnwal)
mgr/dashboard: 修复 rgw 服务创建的 ssl 证书验证 (pr#42628, Avan Thakkar)
mgr/dashboard: 修复 test_error force maintenance dashboard 检查 (pr#42354, Nizamudeen A)
mgr/dashboard: monitoring: 使用基于 Grafonnet 的代码替换 Grafana JSON (pr#42812, Aashish Sharma)
mgr/dashboard: iscsi 目标页面上的刷新按钮 (pr#42817, Nizamudeen A)
mgr/dashboard: 删除 'rgw_frontend_ssl_key' 的使用 (pr#42316, Avan Thakkar)
mgr/dashboard: 在 Cluster > Hosts 上显示 rgw svc 的性能计数器 (pr#42629, Alfonso Martínez)
mgr/dashboard: 列出存储桶时 stats=false 不起作用 (pr#42889, Avan Thakkar)
mgr/dashboard: tox.ini: 删除无用的 env. 'apidocs' (pr#42788, Alfonso Martínez)
mgr/dashboard: 更新 pacific 的翻译 (pr#42606, Tatjana Dehler)
mgr/mgr_util: 尽可能切换使用非共享 cephfs 连接 (issue#51256, pr#42083, Venky Shankar)
mgr/pg_autoscaler: 引入 autoscaler scale-down 功能 (pr#42428, Kamoltat, Kefu Chai)
mgr/rook: 添加时区信息 (pr#39834, Varsha Rao, Sebastian Wagner)
mgr/telemetry: 即使没有 ident 也传递 leaderboard 标志 (pr#42228, Sage Weil)
mgr/volumes: 添加配置以在克隆开始时插入延迟 (pr#42086, Kotresh HR)
mgr/volumes: 为子卷调用使用专用的 libcephfs 句柄... (issue#51271, pr#42914, Venky Shankar)
mgr: 设置 debug_mgr=2/5(以便 INFO 默认转到 mgr 日志)(pr#42225, Sage Weil)
mon/MDSMonitor: 不要无谓地杀死与当前 CompatSet 不兼容的备用节点 (pr#42578, Patrick Donnelly, Zhi Zhang)
mon/OSDMonitor: 在 PG 合并后调整过大的 Lec::epoch_by_pg 大小,防止 osdmap 修剪 (pr#42224, Dan van der Ster)
mon/PGMap: 当未使用缓存分层时,在 ceph df detail 中删除 DIRTY 字段 (pr#42860, Deepika Upadhyay)
mon: 在 'ceph osd pool get' 中处理未知选项时返回 -EINVAL (pr#42229, Zhao Cuicui)
mon: 在 stretch… 中创建池时合理设置默认 CRUSH 规则 (pr#42909, Greg Farnum)
monitoring/grafana/build/Makefile: 针对 arm64 构建、推送到 docker 和 quay、jenkins 进行改进 (pr#42211, Dan Mick)
monitoring/grafana/cluster: 使用每单位最大值和限制值 (pr#42679, David Caro)
monitoring: 清理 Grafana 仪表板 (pr#42299, Patrick Seidensal)
monitoring: 修复 Physical Device Latency 单位 (pr#42298, Seena Fallah)
msg: active_connections 回归 (pr#42936, Sage Weil)
nfs backport June (pr#42096, Varsha Rao)
os/bluestore: 接受日志中不可解码的多块 bluefs 事务 (pr#43023, Igor Fedotov)
os/bluestore: 限制 omap 命名方案升级事务 (pr#42956, Igor Fedotov)
os/bluestore: 在批量 omap 命名升级后压缩 db (pr#42426, Igor Fedotov)
os/bluestore: 修复 bluefs migrate 命令 (pr#43100, Igor Fedotov)
os/bluestore: 修复修复期间错误的 SharedBlob 记录删除 (pr#42423, Igor Fedotov)
os/bluestore: 修复转储 bluefs 日志时使用不完整的日志 (pr#43007, Igor Fedotov)
os/bluestore: 减少大写入的延迟写入侵入性 (pr#42773, Igor Fedotov, Adam Kupczyk)
os/bluestore: 移除重放日志和文件不一致的可能性 (pr#42424, Adam Kupczyk)
os/bluestore: 遵守 bluestore_warn_on_spurious_read_errors 设置 (pr#42897, Igor Fedotov)
osd/scrub: 将 PG 状态标志与内部擦洗器操作分开 (pr#42398, Ronen Friedman)
osd: 将 snaptrim 消息记录到 dout (pr#42482, Arthur Outhenin-Chalandre)
osd: 将 down peers 从 peer_purged 中移出 (pr#42238, Mykola Golub)
pybind/mgr/stats: 验证 cmdtag (pr#42702, Jos Collin)
pybind/mgr: 修复 IPv6 URL 生成 (pr#42990, Sebastian Wagner)
pybind/rbd: 修复 mirror_image_get_status (pr#42972, Ilya Dryomov, Will Smith)
qa/*/test_envlibrados_for_rocksdb.sh: 安装 libarchive-3.3.3 (pr#42344, Neha Ojha)
qa/cephadm: centos_8.x_container_tools_3.0.yaml (pr#42868, Sebastian Wagner)
qa/rgw: 将 ignore-pg-availability.yaml 移出 suites/rgw (pr#40694, Casey Bodley)
qa/standalone: 在完成部分 osd 和 scrub 测试后添加缺少的清理操作 (pr#42258, Sridhar Seshasayee)
qa/tests: 将 pacific 版本提前以反映最新的 16.2.5 点版本 (pr#42264, Yuri Weinstein)
qa/workunits/mon/test_mon_config_key: 使用 subprocess.run() 而不是 proc.communicate() (pr#42221, Kefu Chai)
qa: FileNotFoundError: [Errno 2] No such file or directory: '/sys/kernel/debug/ceph/3fab6bea-f243-47a4-a956-8c03a62b61b5.client4721/mds_sessions' (pr#42165, Patrick Donnelly)
qa: 增加 cephfs_data/metadata 池的 pg_num (pr#42923, Xiubo Li)
qa: test_ls_H_prints_human_readable_file_size 失败 (pr#42166, Patrick Donnelly)
radosgw-admin: 在只读管理操作上跳过 GC 初始化 (pr#42655, Mark Kogan)
radosgw: 在服务映射中包含 realm\_{id,name} (pr#42213, Sage Weil)
rbd-mirror: 为快照重放器添加 perf counters (pr#42987, Arthur Outhenin-Chalandre)
rbd-mirror: 修复 start_image_replayers 中潜在的 async op tracker 内存泄漏 (pr#42979, Mykola Golub)
rbd: 修复 nbd map/unmap 的默认池处理 (pr#42980, Sunny Kumar)
移除对 lsb_release 的依赖 (pr#43001, Ken Dreyer)
RGW - Bucket Remove Op: 传入 user (pr#42135, Daniel Gryniewicz)
RGW - 不要在设置 attrs 之前移动它们 (pr#42320, Daniel Gryniewicz)
rgw: 为 sync url 添加空检查 (pr#42653, caolei)
rgw: 为 RGWCreateRole 中提供的租户添加检查 (pr#42637, caolei)
rgw: 修改 deleterole 的错误 XML (pr#42639, caolei)
rgw multisite: 元数据同步将所有错误视为“transient”以便重试 (pr#42656, Casey Bodley)
RGW Zipper - 确保 bucket list 进度 (pr#42625, Daniel Gryniewicz)
rgw/amqp/test: 修复 librabbitmq-0.11.0 的模拟原型 (pr#42649, Yuval Lifshitz)
rgw/http/notifications: 支持 HTTP POST 消息中的 content type (pr#42644, Yuval Lifshitz)
rgw/multisite: 当 op 失败时返回正确的错误代码 (pr#42646, Yuval Lifshitz)
rgw/notification: 为 persistent notification 线程添加异常处理 (pr#42647, Yuval Lifshitz)
rgw/notification: 修复 ack-level=none 时 persistent notification 挂起 (pr#40696, Yuval Lifshitz)
rgw/notification: 修复 "persistent=false" 标志 (pr#40695, Yuval Lifshitz)
rgw/notifications: 当 bucket notification 对象为空时删除它 (pr#42631, Yuval Lifshitz)
rgw/notifications: 在 CompleteMultipartUpload 和 Copy 事件中支持元数据过滤 (pr#42321, Yuval Lifshitz)
rgw/notifications: 在 CompleteMultipartUploa... 中支持元数据过滤 (pr#42566, Yuval Lifshitz)
rgw/rgw_file: 修复 read() 和 readlink() 的返回值 (pr#42654, Dai zhiwei, luo rixin)
rgw/sts: 纠正会话策略的评估 (pr#42632, Pritha Srivastava)
rgw/sts: read_obj_policy() 在 ENOENT 时查询 iam_user_policies (pr#42650, Casey Bodley)
rgw: 允许 rgw-orphan-list 处理多个数据池 (pr#42635, J. Eric Ivancich)
rgw: 允许为 beast frontend 设置 ssl options 和 ciphers (pr#42363, Mykola Golub)
rgw: 避免删除存储桶时发生无限循环 (issue#49206, pr#42230, Jeegn Chen)
rgw: 避免访问条件...时发生 radosgw 守护进程崩溃 (pr#42626, xiangrui meng, yupeng chen)
rgw: Pacific 的 51674 回溯移植 (pr#42346, Adam C. Emerson)
rgw: 弃用 civetweb frontend (pr#41367, Casey Bodley)
rgw: datalog trim 时不发生段错误 (pr#42336, Adam C. Emerson)
rgw: 在 reshard 锁争用期间,调整日志记录 (pr#42641, J. Eric Ivancich)
rgw: 扩展 vault KMS 的现有 ssl 支持 (pr#42093, Jiffin Tony Thottan)
rgw: 当对不存在的...尝试 set/delete-bucket-website 时按预期失败 (pr#42642, xiangrui meng)
rgw: 修复当 marker 匹配 prefix 时 bucket object listing 的问题 (pr#42638, J. Eric Ivancich)
rgw: 修复 mfa resync 崩溃,当只提供一个 totp_pin 时 (pr#42652, Pritha Srivastava)
rgw: 修复与显式对象清单处理相关的段错误 (pr#42633, Mark Kogan)
rgw: 改进 email id 重用时的错误消息 (pr#41783, Ponnuvel Palaniyappan)
rgw: objectlock: 改进客户端错误消息 (pr#40693, Matt Benjamin)
rgw: 从 rgwx-bucket-instance 中解析租户名称 (pr#42231, Casey Bodley)
rgw: 如果在 data/mdlog trim 时未指定 marker,radosgw-admin 会出错 (pr#42640, Adam C. Emerson)
rgw: 移除配额软阈值 (pr#42634, Zulai Wang)
rgw: 在 bucket chown 中需要 bucket 名称 (pr#42323, Zulai Wang)
rgw: 在版本化存储桶中删除 obj 时,添加额外的 del-marker (pr#42645, J. Eric Ivancich)
rpm/luarocks: 简化条件并支持 Leap 15.3 (pr#42561, Nathan Cutler)
rpm: 在 ceph-immutable-object-cache 中删除对 $FIRST_ARG 的使用 (pr#42480, Nathan Cutler)
run-make-check.sh: 增加失败输出日志大小 (pr#42850, David Galloway)
SimpleRADOSStriper: 使用 debug_cephsqlite (pr#42659, Patrick Donnelly)
src/pybind/mgr/mirroring/fs/snapshot_mirror.py: 不假设 cephf... (pr#42226, Sébastien Han)
test/rgw: 修复 unittest_rgw_dmclock_scheduler 中 poll() 与计时器的使用 (pr#42651, Casey Bodley)
Warning Cleanup and Clang Compile Fix (pr#40692, Adam C. Emerson)
workunits/rgw: 分号终止 perl 语句 (pr#43168, Matt Benjamin)