注意

本文档适用于 Ceph 的开发版本。

Pacific

v16.2.15 Pacific

这是 Pacific 系列中的第十五个,也是预期中的最后一个回溯版本。

值得注意的变更

  • ceph config dump --format <json|xml> 输出将显示本地化的选项名称,而不是其规范化版本。例如,“mgr/prometheus/x/server_port”将取代“mgr/prometheus/server_port”显示。这与命令的非美观打印格式输出相符。

  • CephFS: MDS 会逐出未推进其请求 tid 的客户端,这会导致会话元数据大量堆积,从而使 MDS 因 RADOS 操作超出大小阈值而变为只读状态。mds_session_metadata_threshold 配置控制(编码的)会话元数据可以增长的最大大小。

  • RADOS: get_pool_is_selfmanaged_snaps_mode C++ API 已被弃用,因为它容易出现假阴性结果。其更安全的替代是 pool_is_in_selfmanaged_snaps_mode

  • RBD: 在快速差异模式下(whole_object == truefast-diff 镜像功能已启用并有效)与时间起点(fromsnapname == NULL)进行差异比较时,如果排他锁可用,差异迭代现在保证在本地执行。这为 QEMU 实时磁盘同步和备份用例带来了显著的性能提升。

变更日志

  • [CVE-2023-43040] rgw: 修复针对 POST 策略的 bucket 验证 (pr#53758, Joshua Baergen)

  • admin/doc-requirements: 将 Sphinx 升级到 5.0.2 (pr#55258, Nizamudeen A)

  • blk/kernel: 为块设备添加 O_EXCL (pr#53567, Adam Kupczyk)

  • Bluestore: 修复 bluestore collection_list 延迟性能计数器 (pr#52949, Wangwenjuan)

  • bluestore: 修复卷选择器问题 (pr#53587, Adam Kupczyk)

  • ceph-volume,python-common: 数据分配分数 (pr#53581, Jonas Pfefferle)

  • ceph-volume: 为 raw prepare 添加 --osd-id 选项 (pr#52928, Guillaume Abrioux)

  • ceph-volume: 修复 _check_generic_reject_reasons 中的一个 bug (pr#54707, Kim Minjong, Guillaume Abrioux, Michael English)

  • ceph-volume: 修复 lvm 设备的 raw list (pr#52981, Guillaume Abrioux)

  • ceph-volume: 修复 devices.lvm.zap 中的 zap_partitions() (pr#55658, Guillaume Abrioux)

  • ceph-volume: 修复 devices.lvm.zap 中的 zap_partitions() (pr#55481, Guillaume Abrioux)

  • ceph-volume: 修复 is_device 和 is_partition 中回退到 stat 的问题 (pr#54709, Guillaume Abrioux, Teoman ONAY)

  • ceph: 允许 xlock 状态在放置时为 LOCK_PREXLOCK (pr#53662, Xiubo Li)

  • cephadm: 将 tcmu-runner 添加到 logrotate 配置中 (pr#53975, Adam King)

  • cephadm: 添加对 public_network cfg 部分配置的支持 (pr#52411, Redouane Kachach)

  • cephadm: 允许在采用、重新配置、重新部署期间在防火墙中打开端口 (pr#52083, Adam King)

  • cephadm: 使 custom_configs 适用于 tcmu-runner 容器 (pr#53469, Adam King)

  • cephadm: 通过脚本运行 tcmu-runner 以在失败时重新启动 (pr#53977, Adam King, Raimund Sacherer)

  • cephfs-journal-tool: 消除工具帮助中 all 关键字的歧义 (pr#53645, Manish M Yathnalli)

  • cephfs-mirror: 不运行并发的 C_RestartMirroring 上下文 (issue#62072, pr#53640, Venky Shankar)

  • cephfs-top: 在 --dump 输出中包含缺失的字段 (pr#53453, Jos Collin)

  • cephfs: 在必要时升级 cephfs-shell 的路径 (pr#54144, Rishabh Dave)

  • cephfs_mirror: 正确设置顶级目录权限 (pr#53270, Milind Changire)

  • client: 在会话打开时始终刷新 mds 功能位 (issue#63188, pr#54245, Venky Shankar)

  • client: 修复 sync fs 以强制为所有会话刷新 mdlog (pr#53981, Xiubo Li)

  • client: 如果不存在 cap,立即发出 cap release (pr#52852, Xiubo Li)

  • client: 如果有脏 cap/snapcap,则排队延迟 cap 刷新 (pr#54472, Xiubo Li)

  • cmake/modules/BuildRocksDB.cmake: 继承父级的 CMAKE_CXX_FLAGS (pr#55500, Kefu Chai)

  • common/weighted_shuffle: 不要向 std::discrete_distribution 提供全零权重 (pr#55155, Radosław Zarzyński)

  • common: intrusive_lru 析构函数添加 (pr#54558, Ali Maredia)

  • doc/cephfs: 关于启动时间时区的注意事项 (pr#53576, Milind Changire)

  • doc/cephfs: 在文档中完整编写 cephfs 命令 (pr#53403, Rishabh Dave)

  • doc/rados/configuration/bluestore-config-ref: 修复小写错字 (pr#54696, Adam Kupczyk)

  • doc/rados: 更新 autoscaler 配置 (pr#55440, Zac Dover)

  • doc: 澄清 rados rm 命令的使用 (pr#51260, J. Eric Ivancich)

  • doc: 讨论标准多租户 CephFS 安全模型 (pr#53560, Greg Farnum)

  • 修复 BlueStore 重分片示例 (pr#54474, Adam Kupczyk)

  • isa-l: 合并 aarch64 文本重定位的修复 (pr#51314, luo rixin)

  • libcephsqlite: 在缓冲区的未读部分填充 0 (pr#53103, Patrick Donnelly)

  • librados: 使查询池以获取自管理快照变得可靠 (pr#55024, Ilya Dryomov)

  • librbd: 每个镜像请求附加一个 journal 事件 (pr#54820, Joshua Baergen)

  • librbd: 在与空洞差异比较时,不报告 HOLE_UPDATED (pr#54949, Ilya Dryomov)

  • librbd: 修复 ObjectListSnapsRequest 中的回归问题 (pr#54860, Ilya Dryomov)

  • librbd: 提高 rbd_diff_iterate2() 在 fast-diff 模式下的性能 (pr#55256, Ilya Dryomov)

  • librbd: 当等待锁定时,在客户端被列入黑名单时启动 ExclusiveLock 状态机 (pr#53295, Ramana Raja)

  • librbd: 使 CreatePrimaryRequest 删除任何未链接的镜像快照 (pr#53274, Ilya Dryomov)

  • log: 修复转储线程 ID 时的格式 (pr#53465, Radoslaw Zarzynski)

  • log: 再次使 log_max_recent 生效 (pr#48311, Joshua Baergen)

  • make-dist: 不使用 wget 的 --continue 选项 (pr#55090, Casey Bodley)

  • make-dist: 从 kernel.io 而不是 github 下载 liburing (pr#53197, Laura Flores)

  • MClientRequest: 正确处理 ext_num_retry、ext_num_fwd、owner_uid、owner_gid 的 ceph_mds_request_head_legacy (pr#54410, Alexander Mikhalitsyn)

  • mds,qa: 某些 balancer 调试消息 (<=5) 在 debug_mds >=5 时不打印 (pr#53552, Patrick Donnelly)

  • mds/Server: 在请求中标记 cap 获取限制事件 (pr#53169, Leonid Usov)

  • mds: 在 open 中获取 inode 快照锁 (pr#53185, Patrick Donnelly)

  • mds: 为批处理 getattr/lookup 添加事件 (pr#53556, Patrick Donnelly)

  • mds: 在修剪段时调整 MDLog 的 pre_segments_size (issue#59833, pr#54033, Venky Shankar)

  • mds: 将具有“ bloated ”会话元数据的客户端列入黑名单 (issue#61947, issue#62873, pr#53634, Venky Shankar)

  • mds: 当锁集改变时释放锁并重试 (pr#53243, Patrick Donnelly)

  • mds: 确保在请求删除时排队下一个重放 (pr#54314, Patrick Donnelly)

  • mds: 修复 unlink 和 linkmerge 之间的死锁 (pr#53495, Xiubo Li)

  • mds: 修复发出冗余 reintegrate/migrate_stray 请求的问题 (pr#54517, Xiubo Li)

  • mds: 因 asok 命令退出时记录消息 (pr#53550, Patrick Donnelly)

  • mds: 仅在处理客户端会话消息时替换引导会话 (pr#53362, Mer Xuanyi)

  • mds: 仅在检查任何 OSD 滞后之后才报告因 OSD 滞后而滞后的客户端 (pr#54120, Dhairya Parmar)

  • mds: 将 LOCK_EXCL_XSYN 的 loner 设置为 true (pr#54912, Xiubo Li)

  • mds: 在 MDSAuthCaps 中直接使用变量 g_ceph_context (pr#52821, Rishabh Dave)

  • mgr/BaseMgrModule: 优化 Finish 函数中的 CPython 调用 (pr#55109, Nitzan Mordechai)

  • mgr/cephadm: 向 orch apply rgw 添加“networks”参数 (pr#53974, Teoman ONAY)

  • mgr/cephadm: 当 ipv6 地址被方括号包围时,ceph orch add 失败 (pr#53978, Teoman ONAY)

  • mgr/dashboard: 为 dashboard api 'get rbd' 端点添加 'omit_usage' 查询参数 (pr#54192, Cory Snyder)

  • mgr/dashboard: 允许使用配置选项的 tls 1.2 (pr#53781, Nizamudeen A)

  • mgr/dashboard: 在 grafana 面板中将 null 值视为零 (pr#54542, Aashish Sharma)

  • mgr/dashboard: 修复 CephPGImbalance 警报 (pr#49478, Aashish Sharma)

  • mgr/dashboard: 修复 CephPoolGrowthWarning 警报 (pr#49477, Aashish Sharma)

  • mgr/dashboard: 修复 constraints.txt (pr#54652, Ernesto Puerta)

  • mgr/dashboard: 修复主机名无法解析时的 rgw 页面问题 (pr#53215, Nizamudeen A)

  • mgr/dashboard: 为未经授权的访问设置 CORS 标头 (pr#53202, Nizamudeen A)

  • mgr/prometheus: 避免 rbd_stats_pools 的重复和已删除条目 (pr#48524, Avan Thakkar)

  • mgr/prometheus: 将 pg_repaired_objects 名称更改为 pool_repaired_objects (pr#48439, Pere Diaz Bou)

  • mgr/prometheus: 修复 pool_objects_repaired 和 daemon_health_metrics 格式 (pr#51692, banuchka)

  • mgr/rbd_support: 修复 CreateSnapshotRequests 锁上的递归锁定 (pr#54293, Ramana Raja)

  • mgr/snap-schedule: 使用正确的方式检查…返回的结果 (pr#53355, Mer Xuanyi)

  • mgr/snap_schedule: 允许保留规范“n”由用户定义 (pr#52750, Milind Changire, Jakob Haufe)

  • mgr/volumes: 修复 volume info 中的 pending_subvolume_deletions (pr#53574, Kotresh HR)

  • mgr: 每个模块添加一个 finisher 线程 (pr#51045, Kotresh HR, Patrick Donnelly)

  • mgr: 为 DaemonServer 添加节流策略 (pr#54013, ericqzhao)

  • mgr: 不在持有 gil 时转储全局配置 (pr#50194, Mykola Golub)

  • mgr: 修复 DaemonServer::handle_report() 中的竞争条件 (pr#52993, Radoslaw Zarzynski)

  • mgr: 在 ms_handle_accept 中注册 OSD (pr#53189, Patrick Donnelly)

  • mgr: 从 mgr 守护进程中移除 out&down 的 osd (pr#54553, shimin)

  • mon/ConfigMonitor: 在“config dump --format json”输出中显示本地化名称 (pr#53984, Sridhar Seshasayee)

  • mon/MonClient: 恢复原始 client_mount_timeout 处理 (pr#52533, Ilya Dryomov)

  • mon/Monitor.cc: 如果 !osdmon()->is_writeable() && mon/OSDMonitor: 在 mon.go_recovery_stretch_mode() 之前添加额外检查,则退出函数 (pr#51414, Kamoltat)

  • mon/Monitor: 在关机期间不接受新的身份验证和创建… (pr#55113, Nitzan Mordechai)

  • mon: 为 ceph health mute 添加异常处理 (pr#55118, Daniel Radjenovic)

  • mon: 将代理添加到缓存分层选项 (pr#50552, tan changzhi)

  • mon: 修复健康存储大小无限增长的问题 (pr#55472, Wei Wang)

  • mon: 修复 PGMap::apply_incremental 中的迭代器错误处理 (pr#52555, Oliver Schmidt)

  • mon: 修复一种情况下 mds 元数据丢失的问题 (pr#54318, shimin)

  • msg/async: 在 RDMAStack::create_worker() 中初始化 worker 并删除 Stack::num_workers (pr#55443, Kefu Chai)

  • msg/AsyncMessenger: 在 'wait()' 中唤醒时重新评估停止条件 (pr#53716, Leonid Usov)

  • fstab 中的 nofail 选项不受支持 (pr#52987, Leonid Usov)

  • os/bluestore: 在附加新设备时不需要 bluestore_db_block_size (pr#52948, Igor Fedotov)

  • os/bluestore: 在分配器中消除结果 lba 对齐 (pr#54434, Igor Fedotov)

  • osd,bluestore: 优雅地处理元数据集合加载期间的失败 (pr#53135, Igor Fedotov)

  • osd/OpRequest: 在 osd 日志文件中为延迟操作添加详细描述 (pr#53693, Yite Gu)

  • osd/OSD: 引入 reset_purged_snaps_last (pr#53970, Matan Breizman)

  • osd/OSDMap: 在 stretch 模式后检查不均匀权重 & != 2 个 buckets (pr#52459, Kamoltat)

  • osd/scrub: 修复 scrub starts 消息泛滥集群日志的问题 (pr#53430, Prashant D)

  • osd: stat+write 操作不需要 RWEXCL 锁 (pr#54593, Alice Zhao)

  • osd: 确保异步恢复不会将 pg 降至 min_size 以下 (pr#54548, Samuel Just)

  • osd: 修复 shard-threads 无法唤醒的 bug (pr#51262, Jianwei Zhang)

  • osd: 修复 build_incremental_map_msg() 中的 use-after-move (pr#54268, Ronen Friedman)

  • osd: 记录稀疏读取的 extent 数量 (pr#54604, Xiubo Li)

  • pacifc: 恢复“mgr/dashboard: 在 datatables 中取消选择行” (pr#55415, Nizamudeen A)

  • pybind/mgr/autoscaler: 如果 autoscaler 未打开,则不显示 NEW PG_NUM 值 (pr#53464, Prashant D)

  • pybind/mgr/mgr_util: 修复 to_pretty_timedelta() (pr#51243, Sage Weil)

  • pybind/mgr/volumes: 记录互斥锁以帮助调试死锁 (pr#53916, Kotresh HR)

  • pybind/mgr: ceph osd status 因 ZeroDivisionError 而崩溃 (pr#46696, Nitzan Mordechai, Kefu Chai)

  • pybind/rados: 如果已关闭,则不在 dealloc 中关闭 watch (pr#51259, Tim Serong)

  • pybind/rados: 修复 PEP484 样式类型注解中遗漏的更改 (pr#54361, Igor Fedotov)

  • pybind/rbd: 在 aio_mirror_image_get_info() 中发生错误时,不生成信息 (pr#54053, Ilya Dryomov)

  • python-common/drive_group: 即使提供了“spec”,也处理“spec”之外的字段 (pr#52413, Adam King)

  • python-common/drive_selection: 降低限制策略消息的日志级别 (pr#52412, Adam King)

  • qa/distros: 从 rhel 8.4 -> 8.6 回溯更新 (pr#54901, Casey Bodley, David Galloway)

  • qa/suites/krbd: 针对从 watch 错误中恢复的压力测试 (pr#53784, Ilya Dryomov)

  • qa/suites/orch: 将测试环境中预期的警告列入白名单 (pr#55523, Laura Flores)

  • qa/suites/rbd: 添加测试以检查 rbd_support 模块恢复 (pr#54294, Ramana Raja)

  • qa/suites/upgrade/pacific-p2p: 从 pacific tip 运行 librbd python API 测试 (pr#55418, Yuri Weinstein)

  • qa/suites/upgrade/pacific-p2p: 跳过 TestClsRbd.mirror_snapshot 测试 (pr#53204, Ilya Dryomov)

  • qa/suites: 添加更多白名单 + 修复错字 (pr#55717, Kamoltat)

  • qa/tasks/cephadm: 启用 mon_cluster_log_to_file (pr#55429, Dan van der Ster)

  • qa/upgrade: 禁用失败的 ceph_test_cls_cmpomap 测试用例 (pr#55519, Casey Bodley)

  • qa/upgrade: 使用 ragweed 分支启动 ceph 版本 (pr#55382, Casey Bodley)

  • qa/workunits/rbd/cli_generic.sh: 缩小竞争窗口,以检查 rbd_support 模块命令在模块客户端被列入黑名单后是否失败 (pr#54771, Ramana Raja)

  • qa: 为替换的 MDS 分配文件系统亲和性 (issue#61764, pr#54039, Venky Shankar)

  • qa: 忽略损坏测试中预期的集群警告 (pr#53486, Patrick Donnelly)

  • qa: 延长被 thrash 的 MDS 的关机超时时间 (pr#53555, Patrick Donnelly)

  • qa: 将 arg 作为列表传递以修复测试用例失败 (pr#52763, Dhairya Parmar)

  • qa: 删除重复导入 (pr#53447, Patrick Donnelly)

  • qa: 使用较新的 tarball 运行 kernel_untar_build (pr#54713, Milind Changire)

  • qa: 等待文件具有正确的大小 (pr#52744, Patrick Donnelly)

  • rados: 当“WITH_MGR”关闭时,最小化构建 (pr#51250, J. Eric Ivancich)

  • rados: 将 osd_max_write_op_reply_len 默认值增加到 64 字节 (pr#53470, Matt Benjamin)

  • RadosGW API: 对 HEAD /{bucket}/?usage 的响应中桶配额不正确 (pr#53439, shreyanshjain7174)

  • radosgw-admin: 允许“bi purge”在 entrypoint 不存在时删除索引 (pr#54010, Casey Bodley)

  • radosgw-admin: 不因 --placement-id 而在没有 --storage-class 时崩溃 (pr#53474, Casey Bodley)

  • radosgw-admin: 修复在未指定源/目标区域时管道修改的段错误 (pr#51256, caisan)

  • rbd-nbd: 修复禁用请求时的卡顿 (pr#54256, Prasanna Kumar Kalever)

  • rgw - 修复 NoSuchTagSet 错误 (pr#50533, Daniel Gryniewicz)

  • rgw/auth: 忽略 HTTP OPTIONS 调用的签名 (pr#55550, Tobias Urdin)

  • rgw/beast: 添加 max_header_size 选项,默认 16k,从 4k 增加 (pr#52113, Casey Bodley)

  • rgw/keystone: EC2Engine 对 ERR_SIGNATURE_NO_MATCH 使用 reject() (pr#53764, Casey Bodley)

  • rgw/notification: 从 bucket 通知中删除非 x-amz-meta-* 属性 (pr#53376, Juan Zhu)

  • rgw/putobj: RadosWriter 对多分段使用分段头对象 (pr#55586, Casey Bodley)

  • rgw/s3: ListObjectsV2 返回正确的对象所有者 (pr#54160, Casey Bodley)

  • rgw/sts: AssumeRole 不再写入用户元数据 (pr#52051, Casey Bodley)

  • rgw/sts: 在 IAM 策略… 时返回错误的代码 (pr#44462, Pritha Srivastava)

  • rgw/sts: 使用 .well-known/openid-configuration URL 获取证书的代码 (pr#44464, Pritha Srivastava)

  • rgw/sts: createbucket op 应考虑 session_policies (pr#44476, Pritha Srivastava)

  • rgw/sts: 修复 read_obj_policy 权限评估 (pr#44471, Pritha Srivastava)

  • rgw/sts: 修复通过 LDAP 进行身份验证的 getsessiontoken (pr#44463, Pritha Srivastava)

  • rgw/swift: 检查 slo manifest 文件中第一个斜杠的位置 (pr#51600, Marcio Roberto Starke)

  • rgw/sync-policy: 纠正“sync status”和“sync group”命令 (pr#53410, Soumya Koduri)

  • rgw: 'bucket check' 在 multipart meta 的 pending_map 不为空时删除索引 (pr#54016, Huber-ming)

  • rgw: 添加 radosgw-admin bucket check olh/unlinked 命令 (pr#53808, Cory Snyder)

  • rgw: 启用 OPA 授权时避免段错误 (pr#46106, Benoît Knecht)

  • rgw: beast 前端检查 local_endpoint() 错误 (pr#54167, Casey Bodley)

  • rgw: 在关机期间清空 async_processor 请求队列 (pr#53472, Soumya Koduri)

  • rgw: 修复 convert_plain_entry_to_versioned 后 2 个 null versionID 的问题 (pr#53400, rui ma, zhuo li)

  • rgw: 修复 Browser POST content-length-range 最小值 (pr#52936, Robin H. Johnson)

  • rgw: 修复计算每个 bi shard 的条目时的 FP 错误 (pr#53593, J. Eric Ivancich)

  • rgw: 修复 unregister_watch() 错误后 rgw 缓存失效的问题 (pr#54014, lichaochao)

  • rgw: 修复当额外标头以 'x-amz' 开头时 SignatureDoesNotMatch 的问题 (pr#53772, rui ma)

  • rgw: 修复截断的 ListBuckets 响应 (pr#49526, Joshua Baergen)

  • rgw: 修复 radosgw 启动时 unwatch 崩溃的问题 (pr#53759, lichaochao)

  • rgw: 修复 UploadPartCopy 错误代码,当 src object 不存在且 src bucket 不存在时 (pr#53356, yuliyang)

  • rgw: 处理带有 v4 认证的 http options CORS (pr#53416, Tobias Urdin)

  • rgw: 改进 chunkupload 场景中的缓冲区列表利用率 (pr#53775, liubingrun)

  • rgw: multisite 数据日志标志未使用 (pr#52055, J. Eric Ivancich)

  • rgw: 在没有 http_x_amz_date 的情况下选择 http_date (pr#53443, Seena Fallah, Mohamed Awnallah)

  • rgw: 防止索引完成线程中的虚假/丢失通知 (pr#49093, Casey Bodley, Yuval Lifshitz)

  • rgw: 使用 INVALIDATE_OBJ 重试元数据缓存通知 (pr#52797, Casey Bodley)

  • rgw: s3 对象锁定避免保留日期溢出 (pr#52605, Casey Bodley)

  • rgw: s3website 不对 web_dir() 检查进行预取 (pr#53769, Casey Bodley)

  • rgw: 在 admin api 用户创建时从主区域设置密钥 (pr#51602, Ali Maredia)

  • rgw: 解决 Multipart 上传结果中 etag 未填充的问题 (pr#51445, Ali Masarwa)

  • rgw: swift: 在 POST 表单中检查有效密钥 (pr#52729, Abhishek Lekshmanan)

  • rgw: 更新“CEPH_RGW_DIR_SUGGEST_LOG_OP”以删除条目 (pr#50540, Soumya Koduri)

  • rgw: 在 BucketTrimWatche 中对 flat_map emplace 使用 unique_ptr (pr#52996, Vedansh Bhartia)

  • rgwlc: 防止一个桶的 lc 超出时间预算 (pr#53562, Matt Benjamin)

  • test/lazy-omap-stats: 各种增强功能 (pr#50518, Brad Hubbard)

  • test/librbd: 避免 DiscardWithPruneWriteOverlap 中的配置相关崩溃 (pr#54859, Ilya Dryomov)

  • test/store_test: 调整物理范围以注入错误 (pr#54782, Igor Fedotov)

  • tools/ceph_objectstore_tool: action_on_all_objects_in_pg 以跳过 pgmeta (pr#54691, Matan Breizman)

  • tools/ceph_objectstore_tool: 支持 get/set/superblock (pr#55013, Matan Breizman)

  • tools/osdmaptool: 修复在 osd down 时可能发生的段错误 (pr#52203, Mykola Golub)

  • Tools/rados: 改进对象名称解析的错误消息 (pr#55111, Nitzan Mordechai)

  • vstart_runner: 传递 --debug 时保持日志级别 (pr#52977, Rishabh Dave)

  • vstart_runner: 当 os.stat() 失败时使用 FileNotFoundError (pr#52978, Rishabh Dave)

  • win32_deps_build.sh: 更改 Boost URL (pr#55086, Lucian Petrut)

v16.2.14 Pacific

这是 Pacific 系列中的第十四个回溯版本。

值得注意的变更

  • CephFS: 在按照灾难恢复过程恢复 Ceph 文件系统后,现在可以删除 lost+found 目录下的恢复文件。

  • ceph mgr dump 命令现在在 active_clients 数组的元素中添加的 name 字段中显示注册 RADOS 客户端的 mgr 模块的名称。以前,active_clients 数组中只显示模块的 RADOS 客户端地址。

更改日志

  • 回溯 PR #39607 (pr#51344, Rishabh Dave)

  • blk/kernel: 修复 KernelDevice::read 中的错误代码映射 (pr#49263, Joshua Baergen)

  • blk/KernelDevice: 修改 rotational 和 discard check 的日志消息 (pr#50322, Vikhyat Umrao)

  • build: 在 install-deps 中删除 ceph-libboost* 包 (pr#52790, Nizamudeen A, Adam Emerson)

  • ceph-volume: 修复 get_lvm_fast_allocs() 中的一个 bug (batch) (pr#52063, Guillaume Abrioux)

  • ceph-volume: 修复 batch 重构问题 (pr#51207, Guillaume Abrioux)

  • ceph-volume: 修复 drive-group 问题,该问题预期 batch_args 为字符串 (pr#51209, Mohan Sharma)

  • ceph-volume: zap.py 中的快速修复 (pr#51196, Guillaume Abrioux)

  • ceph-volume: 为 mpath 类型设备设置 lvm 成员资格 (pr#52080, Guillaume Abrioux)

  • ceph_test_rados_api_watch_notify: 扩展 Watch3Timeout 测试 (pr#51261, Sage Weil)

  • ceph_volume: 支持 lvm new-db/new-wal/migrate 命令的加密卷 (pr#52873, Igor Fedotov)

  • cephadm: 消除重复的节 (pr#51433, Rongqi Sun)

  • cephadm: 在 podman 部署中为守护进程容器挂载主机 /etc/hosts (pr#51174, Adam King)

  • cephadm: 从离线主机重新调度 haproxy (pr#51214, Michael Fritch)

  • cephadm: 为 prometheus url 使用 ip 而不是短主机名 (pr#51212, Redouane Kachach)

  • cephfs-top: 检查最低兼容 python 版本 (pr#51353, Jos Collin)

  • cephfs-top: 将值转储到 stdout 并修复 -d [--delay] 选项 (pr#50715, Jos Collin, Neeraj Pratap Singh, wangxinyu, Rishabh Dave)

  • cephfs-top: 没有 fs 时导航到主屏幕 (pr#50737, Jos Collin)

  • cephfs-top: choose_field() 中排序的一些修复 (pr#50596, Neeraj Pratap Singh)

  • client: 在 fallocate 路径中清除 suid/sgid (pr#50988, Lucian Petrut, Xiubo Li, Sven Anderson)

  • client: 在 Inode::dump() 中不转储 mds 两次 (pr#51247, Xue Yantao)

  • client: 在 MDS 排名准备好之前不发送指标 (pr#52500, Xiubo Li)

  • client: 始终强制发送 cap revoke ack (pr#52506, Xiubo Li)

  • client: 仅在卸载时等待写入 MDS 操作 (pr#52304, Xiubo Li)

  • client: 在创建快照时触发刷新缓冲区 (pr#52499, Xiubo Li)

  • client: 在 make_request 期间设置权限时使用深拷贝 (pr#51487, Mer Xuanyi)

  • client: 等待重命名完成 (pr#52505, Xiubo Li)

  • cls/queue: 在 queue_list_entries 中使用更大的读取块 (pr#49903, Igor Fedotov)

  • common/crc32c_aarch64: 修复 crc32c unittest 在 aarch64 上失败的问题 (pr#51315, luo rixin)

  • common/TrackedOp: 修复 osd 重启 optracker coredump (pr#51249, yaohui.zhou)

  • common: 当 OutputDataSocket 达到最大积压时通知所有 (pr#47232, Shu Yu)

  • common: 使用 double 而不是 long double 来提高性能 (pr#51316, Chunsong Feng, luo rixin)

  • 在为 CephFS 自动创建数据池时,考虑设置“bulk”自动缩放池标志 (pr#52900, Leonid Usov)

  • debian: 安装 cephfs-mirror systemd 单元文件和手册页 (pr#52075, Jos Collin)

  • 如果 OSD 滞后,则不逐出客户端 (pr#52270, Laura Flores, Dhairya Parmar)

  • doc/cephadm: 恢复“doc/cephadm: 更新关于禁用 quincy 的日志记录到 journald” (pr#51882, Adam King)

  • doc/cephfs: 编辑 fs-volumes.rst (1 of x) (pr#51467, Zac Dover)

  • doc/cephfs: 解释 cephfs 数据和元数据集 (pr#51237, Zac Dover)

  • doc/cephfs: 修复 fs-volumes.rst 中的提示 (pr#51436, Zac Dover)

  • doc/cephfs: 行编辑“Mirroring Module” (pr#51544, Zac Dover)

  • doc/cephfs: 纠正 fs-volumes.rst 中的提示 (pr#51460, Zac Dover)

  • doc/cephfs: 修复无法访问的 FSes (pr#51373, Zac Dover)

  • doc/dev/encoding.txt: 根据 std::optional 更新 (pr#51399, Radoslaw Zarzynski)

  • doc/glossary: 更新 bluestore 条目 (pr#51695, Zac Dover)

  • doc/mgr: 编辑 telemetry.rst 中的“leaderboard” (pr#51722, Zac Dover)

  • doc/mgr: 更新 prometheus.rst 中的提示 (pr#51311, Zac Dover)

  • doc/rados/operations: Acting Set 问题 (pr#51741, Zac Dover)

  • doc/rados/operations: 修复 erasure-code-jerasure.rst 修复 (pr#51744, Anthony D’Atri)

  • doc/rados/ops: 编辑 user-management.rst (3 of x) (pr#51241, Zac Dover)

  • doc/rados: 编辑 balancer.rst (pr#51826, Zac Dover)

  • doc/rados: 编辑 bluestore-config-ref.rst (1 of x) (pr#51791, Zac Dover)

  • doc/rados: 编辑 bluestore-config-ref.rst (2 of x) (pr#51795, Zac Dover)

  • doc/rados: 编辑 data-placement.rst (pr#51597, Zac Dover)

  • doc/rados: 编辑 devices.rst (pr#51479, Zac Dover)

  • doc/rados: 编辑 filestore-config-ref.rst (pr#51753, Zac Dover)

  • doc/rados: 编辑 stretch-mode 过程 (pr#51291, Zac Dover)

  • doc/rados: 编辑 stretch-mode.rst (pr#51339, Zac Dover)

  • doc/rados: 编辑 stretch-mode.rst (pr#51304, Zac Dover)

  • doc/rados: 编辑 user-management (2 of x) (pr#51157, Zac Dover)

  • doc/rados: 修复 common.rst 中的链接 (pr#51757, Zac Dover)

  • doc/rados: 行编辑 devices.rst (pr#51578, Zac Dover)

  • doc/rados: m-config-ref: 编辑“background” (pr#51274, Zac Dover)

  • doc/rados: stretch-mode.rst (其他命令) (pr#51391, Zac Dover)

  • doc/rados: stretch-mode: stretch cluster 问题 (pr#51379, Zac Dover)

  • doc/radosgw: 解释多站点动态分片 (pr#51587, Zac Dover)

  • doc/radosgw: rabbitmq - push-endpoint 编辑 (pr#51307, Zac Dover)

  • doc/start/os-recommendations: 删除 4.14 内核并重新措辞指导 (pr#51491, Ilya Dryomov)

  • doc/start: 编辑 documenting-ceph 的前 150 行 (pr#51183, Zac Dover)

  • doc/start: 修复“Planet Ceph”链接 (pr#51421, Zac Dover)

  • doc/start: KRBD 功能标志支持说明 (pr#51504, Zac Dover)

  • doc/start: 重写介绍段落 (pr#51222, Zac Dover)

  • doc: 添加到 index.rst 的“documenting ceph”链接 (pr#51471, Zac Dover)

  • doc: 在文档部分 REPLACING A… (`pr#51621, Alexander Proschek) 中添加缺失的 ceph 命令

  • doc: 弃用缓存分层 (pr#51654, Radosław Zarzyński)

  • doc: 详细解释 mds_namespace 挂载选项的相关性 (pr#49688, Jos Collin)

  • doc: 详细解释 cephfs mirroring peer_add 步骤 (pr#51522, Venky Shankar)

  • doc: 更新 jerasure.org 引用 (pr#51727, Anthony D’Atri)

  • doc: 更新 multisite doc (pr#51402, parth-gr)

  • doc: 使用 ceph osd crush tree 命令显示权重集权重 (pr#51351, James Lakin)

  • kv/RocksDBStore: 添加 CompactOnDeletion 支持 (pr#50894, Radoslaw Zarzynski, Mark Nelson)

  • kv/RocksDBStore: rm_range_keys 及其周围的累积回溯 (pr#50637, Igor Fedotov)

  • kv/RocksDBStore: 不为带前缀的访问使用真实的 wholespace 迭代器 (pr#50496, Igor Fedotov)

  • librados: aio operate 函数可以设置时间 (pr#52117, Casey Bodley)

  • librbd/managed_lock/GetLockerRequest: 修复没有有效锁程序的情况 (pr#52287, Ilya Dryomov, Matan Breizman)

  • librbd: 避免在第一个元素之前递减迭代器 (pr#51856, Lucian Petrut)

  • librbd: 避免在 I/O 下拍摄的快照中对象映射损坏 (pr#52285, Ilya Dryomov)

  • librbd: 如果客户端被列入黑名单,则在 send_acquire_lock() 中不等待 watch (pr#50926, Ilya Dryomov, Christopher Hoffman)

  • librbd: 为镜像快照本地化 snap_remove 操作 (pr#51431, Christopher Hoffman)

  • librbd: 在成功创建新快照后删除之前不完整的 primary 快照 (pr#51429, Ilya Dryomov, Prasanna Kumar Kalever)

  • log: 写入 stderr (pipe) 可能不是原子性的 (pr#50778, Lucian Petrut, Patrick Donnelly)

  • MDS imported_inodes 指标未更新 (pr#51699, Yongseok Oh)

  • mds: 调整 cap 获取节流阀 (pr#52974, Patrick Donnelly)

  • mds: 允许从 lost+found 目录取消链接 (issue#59569, pr#51687, Venky Shankar)

  • mds: 为空功能位显示合理的十六进制值 (0x0) (pr#52125, Jos Collin)

  • mds: 不为 CEPH_SNAP_OP_UPDATE 消息发送 split_realms (pr#52848, Xiubo Li)

  • mds: 不使用已被使用的 ino (pr#51508, Xiubo Li)

  • mds: 修复 cpu_profiler asok 崩溃 (pr#52979, liu shi)

  • mds: 修复使用 scrub 的 stray 评估并引入新选项 (pr#50814, Dhairya Parmar)

  • mds: 修复 linkmerge 断言检查 (pr#52726, Kotresh HR)

  • mds: 强制重放 sessionmap 版本 (pr#50725, Xiubo Li)

  • mds: 将 num_fwd 和 num_retry 设为 __u32 (pr#50733, Xiubo Li)

  • mds: MDLog::_recovery_thread: 优雅地处理错误 (pr#52513, Jos Collin)

  • mds: rdlock_path_xlock_dentry 支持返回 auth 目标 inode (pr#51609, Zhansong Gao)

  • mds: 记录和转储完成请求 (或刷新) 的最后一个 tid 以进行修剪 (issue#57985, pr#50811, Venky Shankar)

  • mds: 如果会话已被删除,则跳过转发请求 (pr#52844, Xiubo Li)

  • mds: 在重放期间更新 mdlog 性能计数器 (pr#52682, Patrick Donnelly)

  • mds: 等待 unlink 操作完成 (pr#50986, Xiubo Li)

  • mds: 在 unlink 时等待 reintegrate 完成 (pr#51686, Xiubo Li)

  • mgr/cephadm: 添加 --storage.tsdb.retention.size prometheus 选项 (pr#51647, Redouane Kachach)

  • mgr/cephadm: 不尝试将客户端/os 调优配置文件写入已知离线主机 (pr#51346, Adam King)

  • mgr/cephadm: 支持守护进程的杂项配置文件 (pr#51517, Adam King)

  • mgr/dashboard: 允许 CORS 中的 PUT (pr#52704, Nizamudeen A)

  • mgr/dashboard: API 文档 UI 不适用于 Angular 开发服务器 (pr#51245, Volker Theile)

  • mgr/dashboard: 在服务表单中暴露更多 grafana 配置 (pr#51113, Nizamudeen A)

  • mgr/dashboard: 修复损坏的 Fedora 镜像 URL (pr#52477, Zack Cerza)

  • mgr/dashboard: 修复 rbd 快照创建 (pr#51075, Aashish Sharma)

  • mgr/dashboard: 修复 rbd 镜像配置检查 (pr#51324, Nizamudeen A)

  • mgr/dashboard: 将 cephadm e2e 清理移动到 jenkins job config (pr#52389, Nizamudeen A)

  • mgr/dashboard: rbd-mirror 强制提升 (pr#51056, Pedro Gonzalez Gomez)

  • mgr/dashboard: 在集群扩展中跳过创建 OSD 步骤 (pr#51150, Nizamudeen A)

  • mgr/dashboard: SSO 错误: AttributeError: 'str' object has no attribute 'decode' (pr#51950, Volker Theile)

  • mgr/nfs: 创建导出时禁止不存在的路径 (pr#50809, Dhairya Parmar)

  • mgr/orchestrator: 修复 orch device ls 输出中的设备大小 (pr#51211, Adam King)

  • mgr/rbd_support: 修复从 rados 客户端列入黑名单中恢复的相关问题 (pr#51464, Ramana Raja)

  • mgr/snap_schedule: 为快照创建失败的路径添加调试日志 (pr#51246, Milind Changire)

  • mgr/snap_schedule: 捕获 cli 的所有异常 (pr#52753, Milind Changire)

  • mgr/volumes: 避免将 -ESHUTDOWN 返回给 cli (issue#58651, pr#51039, Venky Shankar)

  • mgr: 在 MgrMap 中存储注册 RADOS 客户端的模块名称 (pr#52883, Ramana Raja)

  • MgrMonitor: 批量提交 OSDMap 和 MgrMap 突变 (pr#50980, Patrick Donnelly, Kefu Chai, Radosław Zarzyński)

  • mon/ConfigMonitor: 从 osd 实体更新 crush_location (pr#52468, Didier Gazen)

  • mon/MDSMonitor: 批量处理 pending 的 last_metadata 更新 (pr#52230, Patrick Donnelly)

  • mon/MDSMonitor: 检查 pending 中存在的 fscid 是否在 current 中 (pr#52233, Patrick Donnelly)

  • mon/MDSMonitor: 在 prepare_update 中出错时不提议 (pr#52240, Patrick Donnelly)

  • mon/MDSMonitor: 忽略多余的 up:boot 消息 (pr#52244, Patrick Donnelly)

  • mon/MonClient: 在错误完成认证之前,重新打开会话 (pr#52133, Nitzan Mordechai)

  • mon: 避免在将 require-osd-release 设置为高出 2 个版本以上时发生异常 (pr#51382, Igor Fedotov)

  • mon: 阻止 fs 池的 osd pool mksnap (pr#52397, Milind Changire)

  • Monitor: 将报告命令转发给领导者 (pr#51258, Dan van der Ster)

  • orchestrator: 为 ceph orch osd rm 添加 --no-destroy 参数 (pr#51213, Guillaume Abrioux)

  • os/bluestore: 分配器的累积回溯 (pr#50321, Igor Fedotov, Adam Kupczyk, Ronen Friedman)

  • os/bluestore: 允许单卷 osd 的“fit_to_fast”选择器 (pr#51418, Igor Fedotov)

  • os/bluestore: 累积 bluefs 回溯 (pr#52212, Igor Fedotov, Adam Kupczyk)

  • os/bluestore: 在查找 oid 时不需要单独的变量来标记命中 (pr#52943, locallocal)

  • os/bluestore: 修复 spillover 警报 (pr#50932, Igor Fedotov)

  • os/bluestore: 正确覆盖 rocksdb::WritableFile::Allocate (pr#51773, Igor Fedotov)

  • os/bluestore: 通过“ceph osd metadata”报告 min_alloc_size (pr#50506, Igor Fedotov)

  • osd/OSDCap: 允许 rbd-read-only 配置文件下的 rbd.metadata_list 方法 (pr#51876, Ilya Dryomov)

  • OSD: 修复 check_past_interval_bounds() (pr#51510, Matan Breizman, Samuel Just)

  • pybind/argparse: 列入黑名单的 ip 验证 (pr#51812, Nitzan Mordechai)

  • pybind/mgr/pg_autoscaler: 重新排序 func: _maybe_adjust 的 if 语句 (pr#50694, Kamoltat)

  • pybind: 在库调用期间释放 GIL (pr#52323, Ilya Dryomov, Patrick Donnelly)

  • python-common: drive_selection: 修复 osdspec_affinity 未设置时的 KeyError (pr#53157, Guillaume Abrioux)

  • qa/rgw: 将 POOL_APP_NOT_ENABLED 添加到 log-ignorelist (pr#52048, Casey Bodley)

  • qa/suites/rados: 从 rados 套件中删除 rook 覆盖范围 (pr#52017, Laura Flores)

  • qa/suites/rbd: 在 Ubuntu 上安装 qemu-utils 以及 qemu-block-extra (pr#51059, Ilya Dryomov)

  • qa/suites/upgrade/octopus-x: 跳过 TestClsRbd.mirror_snapshot 测试 (pr#53002, Ilya Dryomov)

  • qa: 检查每个 fs 的健康状况 (pr#51232, Patrick Donnelly)

  • qa: data-scan/journal-tool 在上游测试中不输出调试信息 (pr#50773, Patrick Donnelly)

  • qa: 修复 cephfs-mirror 回卷和“fs volume create/rm”顺序 (pr#52654, Jos Collin)

  • qa: 镜像测试应在回卷期间清理 fs (pr#50765, Patrick Donnelly)

  • qa: 文件系统恢复后运行 scrub (issue#59527, pr#51610, Venky Shankar)

  • qa: test_simple 失败 (pr#50756, Patrick Donnelly)

  • qa: 使用并行 gzip 压缩日志 (pr#52953, Patrick Donnelly)

  • qa: 等待 MDSMonitor 滴答以替换守护进程 (pr#52237, Patrick Donnelly)

  • radosgw-admin: 即使 bucket 正在重分片,也尝试重分片 (pr#51836, Casey Bodley)

  • rbd-mirror: 修复在强制提升时镜像重放器关闭描述的问题 (pr#52878, Prasanna Kumar Kalever)

  • rbd-mirror: 修复阻止本地镜像删除的竞争条件 (pr#52625, N Balachandran)

  • rgw/rados: check_quota() 使用真实的 bucket 所有者 (pr#51330, Mykola Golub, Casey Bodley)

  • rgw/s3: 即使为空,也在 Error 响应中转储 Message 字段 (pr#51200, Casey Bodley)

  • rgw: 避免 RGWBulkUploadOp 中 string_view 到临时变量的问题 (pr#52159, Casey Bodley)

  • rgw: 修复 OLH 对象的一致性 bug (pr#52552, Cory Snyder)

  • rgw: LDAP 修复错误凭据时的资源泄漏 (pr#50560, Johannes Liebl, Johannes)

  • rgw: 在 fips & openssl 3.x 下,允许在选定的 rgw 操作中使用 md5 (pr#51266, Mark Kogan)

  • src/valgrind.supp: 添加与 ceph 无关的已知泄漏 (pr#49521, Nitzan Mordechai)

  • src/valgrind.supp: 添加与 ceph 无关的已知泄漏 (pr#51341, Nitzan Mordechai)

  • test: 纠正 osd pool 默认大小 (pr#51803, Nitzan Mordechai)

  • test: 监控 thrashers 等待仲裁 (pr#51799, Nitzan Mordechai)

  • tests: 从 multisite 中删除 pubsub 测试 (pr#48928, Yuval Lifshitz)

  • tools/ceph-dencoder: 修复 trash_watcher 的不正确类型定义 (pr#51778, Chen Yuanrun)

  • tools/ceph-kvstore-tool: 修复修复 rocksdb 时的段错误 (pr#51254, huangjun)

  • tools/cephfs-data-scan: 支持多数据池 (pr#50523, Mykola Golub)

  • vstart: 启动 mgr 后检查 mgr 状态 (pr#51604, Rongqi Sun)

  • Wip nitzan 修复了几个 rados/test.sh (pr#49943, Nitzan Mordechai)

  • qa: 添加 subvolume 选项类型 (pr#51509, Milind Changire, Venky Shankar)

v16.2.13 Pacific

这是 Pacific 系列中的第十三个回溯版本。

值得注意的变更

  • CephFS: 将 mds_max_retries_on_remount_failure 选项重命名为 client_max_retries_on_remount_failure,并将其从 mds.yaml.in 移动到 mds-client.yaml.in,因为此选项从一开始就只被 MDS 客户端使用。

  • ceph mgr dump 命令现在在顶层输出 last_failure_osd_epochactive_clients 字段。以前,这些字段在 always_on_modules 字段下输出。

更改日志

  • 回溯 PR #39607 (pr#51344, Rishabh Dave)

  • ceph-crash: 降低权限以“ceph”用户而不是 root 运行 (CVE-2022-3650) (pr#48804, Tim Serong, Guillaume Abrioux)

  • ceph-mixing: 修复 ceph_hosts 变量 (pr#48933, Tatjana Dehler)

  • ceph-volume/tests: 将 allowlist_externals 添加到 tox.ini (pr#49789, Guillaume Abrioux)

  • ceph-volume: 不要在 util.lsblk 中抛出 RuntimeError (pr#50145, Guillaume Abrioux)

  • ceph-volume: 修复 get_all_devices_vgs() 中的一个 bug (pr#49454, Guillaume Abrioux)

  • ceph-volume: 修复 lsblk_all() 中的一个 bug (pr#49869, Guillaume Abrioux)

  • ceph-volume: 修复每个 VG 有多个 PV 时快速设备分配的问题 (pr#50878, Cory Snyder)

  • ceph-volume: 修复 activate 中的回归问题 (pr#49972, Guillaume Abrioux)

  • ceph-volume: 当设备是 'tmpfs' 时,legacy_encrypted() 不应调用 lsblk() (pr#50162, Guillaume Abrioux)

  • ceph-volume: 在部署 Ceph (pacific) 之前更新操作系统 (pr#50996, Guillaume Abrioux)

  • ceph.spec.in: 将 %usrmerged 宏替换为常规版本检查 (pr#49830, Tim Serong)

  • ceph_fuse: 如果 test_dentry_handling 失败则重试 (pr#49944, Xiubo Li)

  • cephadm: 添加 poststop 动作并将 TimeoutStartSec 设置为 200s (pr#50514, Redouane Kachach)

  • cephadm: 不要覆盖集群 logrotate 文件 (pr#49927, Adam King)

  • cephadm: 为所有 ceph 守护进程设置 pids-limit unlimited (pr#50512, Adam King, Teoman ONAY)

  • cephfs-top: 添加排序功能和限制选项 (pr#49303, Neeraj Pratap Singh, Jos Collin)

  • cephfs-top: 删除 curses.A_ITALIC (pr#50029, Jos Collin)

  • cephfs-top: 处理用于排序的 METRIC_TYPE_NONE 字段 (pr#50597, Neeraj Pratap Singh)

  • cls/rgw: 取消最后一个竞争性删除操作后删除索引条目 (pr#50243, Casey Bodley)

  • doc/ceph-volume: 修复 cephadm 引用 (pr#50116, Piotr Parczewski)

  • doc/ceph-volume: 完善 encryption.rst (pr#49793, Zac Dover)

  • doc/ceph-volume: 更新 LUKS 文档 (pr#49758, Zac Dover)

  • doc/cephadm/host-management: 添加服务规范链接 (pr#50255, thomas)

  • doc/cephadm/troubleshooting: 删除重复的单词 (pr#50223, thomas)

  • doc/cephadm: 修正 install.rst 中的语法/句法 (pr#49949, Piotr Parczewski)

  • doc/cephadm: 整理 compatibility.rst (pr#50368, Anthony D’Atri)

  • doc/cephadm: 更新 cephadm 兼容性和稳定性页面 (pr#50337, Adam King)

  • doc/cephfs: 添加关于 CephFS 扩展属性和 getfattr 的说明 (pr#50069, Zac Dover)

  • doc/cephfs: 在 quota 文档中描述配置选项 "client quota df" (pr#50253, Rishabh Dave)

  • doc/cephfs: 改进 fs-volumes.rst (pr#50832, Anthony D’Atri)

  • doc/dev: 在 basic-wo 的句子中添加句号 (pr#50401, Zac Dover)

  • doc/dev: 添加 git 分支管理命令 (pr#49739, Zac Dover)

  • doc/dev: 将 Slack 添加到开发指南要点 (pr#49875, Zac Dover)

  • doc/dev: 将 49908 反向移植到 P (升级测试文档) (pr#49911, Zac Dover)

  • doc/dev: 格式化 cephfs-mirroring 中的命令 (pr#51109, Zac Dover)

  • doc/dev: 在配置变量中使用下划线 (pr#49893, Ville Ojamo)

  • doc/glossary: 将“application”添加到词汇表 (pr#50259, Zac Dover)

  • doc/glossary: 添加“Bucket” (pr#50225, Zac Dover)

  • doc/glossary: 将“client”添加到词汇表 (pr#50263, Zac Dover)

  • doc/glossary: 添加“Hybrid Storage” (pr#51098, Zac Dover)

  • doc/glossary: 将“Period”添加到词汇表 (pr#50156, Zac Dover)

  • doc/glossary: 添加“Placement Groups”定义 (pr#51186, Zac Dover)

  • doc/glossary: 将“realm”添加到词汇表 (pr#50135, Zac Dover)

  • doc/glossary: 添加“Scrubbing” (pr#50703, Zac Dover)

  • doc/glossary: 添加“User” (pr#50673, Zac Dover)

  • doc/glossary: 将“zone”添加到 glossary.rst (pr#50272, Zac Dover)

  • doc/glossary: 添加 AWS/OpenStack 存储桶信息 (pr#50248, Zac Dover)

  • doc/glossary: 改进“CephX”条目 (pr#51065, Zac Dover)

  • doc/glossary: 链接到 CephX 配置参考 (pr#50709, Zac Dover)

  • doc/index: 从登陆页面删除“uniquely” (pr#50478, Zac Dover)

  • doc/install: 链接到“cephadm installing ceph” (pr#49782, Zac Dover)

  • doc/install: 完善 index.rst (pr#50436, Zac Dover)

  • doc/install: 更新 index.rst (pr#50433, Zac Dover)

  • doc/mgr/prometheus: 修复 confval 引用 (pr#51094, Piotr Parczewski)

  • doc/msgr2: 更新双栈状态 (pr#50801, Dan van der Ster)

  • doc/operations: 修复 bluestore-migration 中的提示符 (pr#50663, Zac Dover)

  • doc/rados/config: 编辑 auth-config-ref (pr#50951, Zac Dover)

  • doc/rados/operations: 编辑 monitoring.rst (pr#51037, Zac Dover)

  • doc/rados/operations: 修复双重提示符 (pr#49899, Ville Ojamo)

  • doc/rados/operations: 修复缩进 (pr#49896, Ville Ojamo)

  • doc/rados/operations: 修复 erasure-code.rst 中的拼写错误 (pr#50753, Sainithin Artham)

  • doc/rados/operations: 改进措辞、大小写、格式 (pr#50454, Anthony D’Atri)

  • doc/rados/ops: 添加 ceph-medic 文档 (pr#50854, Zac Dover)

  • doc/rados/ops: 在 mon-osd-pg.rst 中添加连字符 (pr#50961, Zac Dover)

  • doc/rados/ops: 编辑 health checks.rst (5 of x) (pr#50968, Zac Dover)

  • doc/rados/ops: 编辑 health-checks.rst (1 of x) (pr#50798, Zac Dover)

  • doc/rados/ops: 编辑 health-checks.rst (2 of x) (pr#50913, Zac Dover)

  • doc/rados/ops: 编辑 health-checks.rst (3 of x) (pr#50954, Zac Dover)

  • doc/rados/ops: 编辑 health-checks.rst (4 of x) (pr#50957, Zac Dover)

  • doc/rados/ops: 编辑 health-checks.rst (6 of x) (pr#50971, Zac Dover)

  • doc/rados/ops: 编辑 monitoring-osd-pg.rst (1 of x) (pr#50866, Zac Dover)

  • doc/rados/ops: 编辑 monitoring-osd-pg.rst (2 of x) (pr#50947, Zac Dover)

  • doc/rados/ops: 行编辑 operating.rst (pr#50935, Zac Dover)

  • doc/rados/ops: 从监控中移除 ceph-medic (pr#51089, Zac Dover)

  • doc/rados: 添加 ops/health-checks.rst 链接 (pr#50763, Zac Dover)

  • doc/rados: 清理 ops/bluestore-migration.rst (pr#50679, Zac Dover)

  • doc/rados: 编辑 operations/bs-migration (1 of x) (pr#50588, Zac Dover)

  • doc/rados: 编辑 operations/bs-migration (2 of x) (pr#50591, Zac Dover)

  • doc/rados: 编辑 ops/monitoring.rst (1 of 3) (pr#50824, Zac Dover)

  • doc/rados: 编辑 ops/monitoring.rst (2 of 3) (pr#50850, Zac Dover)

  • doc/rados: 编辑 user-management.rst (1 of x) (pr#50642, Zac Dover)

  • doc/rados: 行编辑 mon-lookup-dns 顶部内容 (pr#50583, Zac Dover)

  • doc/rados: 行编辑 common.rst (pr#50944, Zac Dover)

  • doc/rados: 行编辑 erasure-code.rst (pr#50620, Zac Dover)

  • doc/rados: 行编辑 pg-repair.rst (pr#50804, Zac Dover)

  • doc/rados: 行编辑 upmap.rst (pr#50567, Zac Dover)

  • doc/rados: 完善 ceph-conf.rst (pr#49833, Zac Dover)

  • doc/rados: 完善 pool-pg-config-ref.rst (pr#49822, Zac Dover)

  • doc/rados: 更新 OSD_BACKFILLFULL 描述 (pr#50219, Ponnuvel Palaniyappan)

  • doc/radosgw: 格式化通知 (pr#50357, Zac Dover)

  • doc/radosgw: 格式化 s3select 的一部分 (pr#51118, Cole Mitchell)

  • doc/radosgw: 格式化 s3select 的一部分 (pr#51106, Cole Mitchell)

  • doc/radosgw: multisite - 编辑“functional changes” (pr#50278, Zac Dover)

  • doc/radosgw: 完善 multisite.rst 中的“Maintenance” (pr#50026, Zac Dover)

  • doc/radosgw: multisite.rst 中 s/execute/run/ (pr#50174, Zac Dover)

  • doc/radosgw: s/zone group/zonegroup/g 等 (pr#50298, Zac Dover)

  • doc/rbd/rbd-exclusive-locks: 警告自动锁转换 (pr#49805, Ilya Dryomov)

  • doc/rbd: 更好地格式化 iscsi-initiator-linux.rbd (pr#49750, Zac Dover)

  • doc/rgw - 修复 s3.rst 表格中的语法错误 (pr#50389, Zac Dover)

  • doc/rgw: “Migrating Single Site to Multi-Site” (pr#50094, Zac Dover)

  • doc/rgw: 为图表添加标题 (pr#50294, Zac Dover)

  • doc/rgw: 澄清 multisite.rst 顶部内容 (pr#50205, Zac Dover)

  • doc/rgw: 清理 zone-sync.svg (pr#50363, Zac Dover)

  • doc/rgw: 修复标题 (pr#50396, Zac Dover)

  • doc/rgw: 改进图表标题 (pr#50332, Zac Dover)

  • doc/rgw: multisite 参考。顶部内容清理 (pr#50190, Zac Dover)

  • doc/rgw: 完善“Configuring Secondary Zones” (pr#50075, Zac Dover)

  • doc/rgw: 完善“Failover and Disaster Recovery” (pr#50079, Zac Dover)

  • doc/rgw: 完善“Multi-site Config Ref” (1 of x) (pr#50118, Zac Dover)

  • doc/rgw: 完善“Realms”部分 (pr#50140, Zac Dover)

  • doc/rgw: 完善“Setting a Zonegroup” (pr#51073, Zac Dover)

  • doc/rgw: 完善 multisite.rst 中的“Zones” (pr#49983, Zac Dover)

  • doc/rgw: 完善 multisite.rst 的 1-50 行 (pr#49996, Zac Dover)

  • doc/rgw: 完善 keycloak.rst (pr#50379, Zac Dover)

  • doc/rgw: 将 multisite 完善为“config 2ndary zones” (pr#50032, Zac Dover)

  • doc/rgw: 完善 multisite.rst 的 ~50-~140 行 (pr#50009, Zac Dover)

  • doc/rgw: 删除“tertiary”,链接到步骤 (pr#50288, Zac Dover)

  • doc/rgw: s/[Zz]one [Gg]roup/zonegroup/g (pr#50137, Zac Dover)

  • doc/rgw: session-tags.rst - 修复 keycloak 链接 (pr#50188, Zac Dover)

  • doc/start: 添加 RST 粗体转义字符规则 (pr#49752, Zac Dover)

  • doc/start: documenting-ceph - 添加 squash 过程 (pr#50741, Zac Dover)

  • doc/start: 编辑 documenting-ceph 的前 150 行 (pr#51183, Zac Dover)

  • doc/start: 格式化 documenting-ceph 中的过程 (pr#50789, Zac Dover)

  • doc/start: 更新“notify us”部分 (pr#50771, Zac Dover)

  • doc: 文档中添加 scrub 可以修复的损坏类型 (pr#49933, Neeraj Pratap Singh)

  • doc: 文档中添加 libcephsqlite 的调试信息 (pr#50034, Patrick Donnelly)

  • doc: 清理 cephadm/troubleshooting.rst 和 radosgw/placement.rst (pr#50229, Anthony D’Atri)

  • drive_group: 修复 drive_selection.selector 中的 limit 过滤器 (pr#50371, Guillaume Abrioux)

  • kv/RocksDBStore: 添加 CompactOnDeletion 支持 (pr#50894, Radoslaw Zarzynski, Mark Nelson)

  • libcephsqlite: CheckReservedLock 的结果始终为零 (pr#50036, Shuai Wang)

  • librbd/crypto: 修复 libcryptsetup 的错误返回检查 (pr#49413, Or Ozeri)

  • librbd: 避免在“rbd rm”被中断后出现 EUCLEAN 错误 (pr#50129, weixinwei)

  • librbd: 设置 librados_thread_count 后调用 apply_changes() (pr#50289, Ilya Dryomov)

  • librbd: 修复本地 rbd 镜像日志无限增长的问题 (pr#50158, Ilya Dryomov, Josef Johansson)

  • librbd: 修复 rbd_quiesce_complete API 的错误属性 (pr#50872, Dongsheng Yang)

  • librbd: 镜像图像启用失败时报告更好的错误信息 (pr#50836, Prasanna Kumar Kalever)

  • mds/PurgeQueue: _calculate_ops 时不考虑 filer_max_purge_ops (pr#49656, haoyixing)

  • mds/Server: 不允许 -ve 回收标志导致客户端驱逐 (pr#49956, Dhairya Parmar)

  • mds: 在决定拆分或合并目录时考虑快照项目 (issue#55215, pr#49867, Venky Shankar)

  • mds: 避免 ~mdsdir 的清理和报告损坏健康状态 (pr#49440, Neeraj Pratap Singh)

  • mds: 在持久化之前捕获 CDentry 的第一个成员的损坏 (issue#58482, pr#50781, Patrick Donnelly)

  • mds: 在 xlockdone 状态下不获取 xlock (pr#49538, Igor Fedotov)

  • mds: 修复并跳过提交无效的 osd 请求 (pr#49941, Xiubo Li)

  • mds: 修复 scan_stray_dir 在每次运行 stray inode 时不重置 next.frag 的问题 (pr#49669, ethanwu)

  • mds: md_log_replay 线程阻塞等待唤醒 (pr#49671, zhikuodu)

  • mds: 将 submit_mutex 切换为 MDLog 的公平互斥锁 (pr#49632, Xiubo Li)

  • mgr/cephadm: 为 ssl rgw 服务添加 ingress 支持 (pr#49917, Frank Ederveen)

  • mgr/cephadm: 了解主机的简称和 FQDN (pr#50516, Adam King)

  • mgr/cephadm: 从服务循环中调用 iscsi post_remove (pr#49928, Adam King)

  • mgr/cephadm: 如果 mgr 已经在 iscsi trusted_ip_list 中,则不添加它 (pr#50515, Mykola Golub)

  • mgr/cephadm: 如果迁移当前值 > 迁移上次值,则不表示迁移正在进行中 (pr#49919, Adam King)

  • mgr/cephadm: 修复 haproxy 配置中具有相同级别的多个 nfs 时后端服务的问题 (pr#50511, Adam King)

  • mgr/cephadm: 修复检查设备是否已更改的问题 (pr#49916, Adam King)

  • mgr/cephadm: 修复具有 3 个或更多 mgrs 的 mgr 升级处理问题 (pr#49921, Adam King)

  • mgr/cephadm: 修复我们检查主机是否属于公共网络的方式 (pr#50007, Redouane Kachach)

  • mgr/cephadm: 修复删除带有 ingress 守护进程的离线主机的问题 (pr#49926, Adam King)

  • mgr/cephadm: 增加 ingress 超时值 (pr#49923, Frank Ederveen)

  • mgr/cephadm: iscsi 用户名和密码默认为 admin (pr#49310, Nizamudeen A)

  • mgr/cephadm: 一些 master -> main 清理工作 (pr#49285, Adam King)

  • mgr/cephadm: 为 iscsi 指定端口 (pr#49918, Adam King)

  • mgr/cephadm: 支持额外的 entrypoint 参数 (pr#49925, Adam King)

  • mgr/cephadm: 获取容器图像信息时尝试避免拉取 (pr#50513, Mykola Golub, Adam King)

  • mgr/cephadm: 应用服务后写入客户端文件 (pr#49920, Adam King)

  • mgr/dashboard: 在镜像池表中添加 tooltip (pr#49503, Pedro Gonzalez Gomez)

  • mgr/dashboard: 为表单输入添加了模式验证 (pr#47330, Pedro Gonzalez Gomez)

  • mgr/dashboard: kcli 引导脚本的自定义图像 (pr#50917, Nizamudeen A)

  • mgr/dashboard: 修复“无法读取 .ssh/known_hosts: No such file or directory” (pr#50123, Nizamudeen A)

  • mgr/dashboard: 修复 cephadm e2e 表达式更改错误 (pr#51081, Nizamudeen A)

  • mgr/dashboard: 修复创建 osd 默认选择推荐项不工作的问题 (pr#51038, Nizamudeen A)

  • mgr/dashboard: 修复显示镜像图像进度的问题 (pr#50870, Pere Diaz Bou)

  • mgr/dashboard: 修复所有 FS 客户端的驱逐问题 (pr#51009, Pere Diaz Bou)

  • mgr/dashboard: 修复 osd 详细信息中的奇怪数据 (pr#50121, Pedro Gonzalez Gomez, Nizamudeen A)

  • mgr/dashboard: 强制使用 TLS 1.3 (pr#50527, Ernesto Puerta)

  • mgr/dashboard: 在扩展集群时隐藏维护选项 (pr#47725, Nizamudeen A)

  • mgr/dashboard: 忽略 dashboard kcli e2e 中的规则 400 错误 (pr#50914, Nizamudeen A)

  • mgr/dashboard: osd 表单预选 db/wal 设备过滤器 (pr#50122, Nizamudeen A)

  • mgr/dashboard: 将 vonage-status-panel 替换为原生 grafana 统计面板 (pr#50044, Aashish Sharma)

  • mgr/nfs: 添加 sectype 选项 (pr#49929, John Mulligan)

  • mgr/orchestrator: 修复升级状态帮助消息 (pr#49922, Adam King)

  • mgr/prometheus: 导出零值 pg 状态指标 (pr#49786, Avan Thakkar)

  • mgr/prometheus: 暴露守护进程健康指标 (pr#49520, Pere Diaz Bou)

  • mgr/prometheus: 修复模块在尝试收集 OSDs 指标时崩溃的问题 (pr#49931, Redouane Kachach)

  • mgr/rbd_support: 在模块启动期间删除本地化调度选项 (pr#49650, Ramana Raja)

  • mgr/snap_schedule: 将 .snap 替换为客户端配置的快照目录名称 (pr#47726, Neeraj Pratap Singh)

  • mon/MgrMap: 在顶层转储 last_failure_osd_epoch 和 active_clients (pr#50305, Ilya Dryomov)

  • mon/MonCommands: 支持 dump_historic_slow_ops (pr#49233, Matan Breizman)

  • mon: 如果 _generate_command_map() 失败则从 handle_command() 中退出 (pr#48846, Nikhil Kshirsagar)

  • mon: 禁用 fsmap 池的快照 ID 分配 (pr#50050, Milind Changire)

  • mon: 修复检查 ceph 版本不匹配的条件 (pr#49988, Prashant D)

  • os/bluestore: 修复 onode 引用计数 (pr#50072, Igor Fedotov)

  • os/memstore: 修复内存泄漏 (pr#50092, Adam Kupczyk)

  • pybind/mgr: 检查空的元数据 mgr_module:get_metadata() (issue#57072, pr#49966, Venky Shankar)

  • qa/rgw: 使用符号链接指定发行版 (pr#50940, Casey Bodley)

  • qa/suites/rbd: 修复偶尔出现的“rx-only direction”测试失败 (pr#50112, Ilya Dryomov)

  • qa/suites/rgw: 修复并更新 tempest 和 barbican 测试 (pr#50000, Tobias Urdin)

  • qa/tasks/cephadm.py: 修复从 git.ceph.com 拉取 cephadm 的问题 (pr#49915, Adam King)

  • qa/tests: 添加 pacific 客户端升级 => reef (pr#50352, Yuri Weinstein)

  • qa: 检查每个 fs 的健康状况 (pr#51232, Patrick Donnelly)

  • qa: 忽略预期的 scrub 错误 (pr#50775, Patrick Donnelly)

  • qa: 在 osd 抖动时忽略 MDS_TRIM 警告 (pr#50757, Patrick Donnelly)

  • qa: 延长健康警告等待时间 (pr#50760, Patrick Donnelly)

  • qa: 如果未创建文件系统信息,则加载它 (pr#50923, Patrick Donnelly)

  • qa: 在 kclient 工作流中测试“ms_mode”选项 (pr#50712, Jeff Layton)

  • qa: test_recovery_pool 使用错误的恢复过程 (pr#50860, Patrick Donnelly)

  • qa: 等待 scrub 完成 (pr#49458, Milind Changire)

  • rbd-mirror: 在图像状态中添加关于上次快照同步的信息 (pr#50265, Divyansh Kamboj)

  • rbd-mirror: 修复 get_replay_status() 中的 syncing_percent 计算逻辑 (pr#50181, N Balachandran)

  • rgw/beast: 修复 keepalive 和 100-continue 之间的交互 (pr#49841, Casey Bodley, Yixin Jin)

  • rgw/coroutine: 唤醒时检查空栈 (pr#49097, Casey Bodley)

  • rgw/s3: 即使为空,也在 Error 响应中转储 Message 字段 (pr#51200, Casey Bodley)

  • rgw: “reshard cancel”因“invalid argument”而报错 (pr#49091, J. Eric Ivancich)

  • rgw: 为 (pr#49095, Pritha Srivastava) 添加 BUCKET_REWRITE 和 OBJECT_REWRITE OPS

  • rgw: S3 允许空标签集 (pr#49809, Volker Theile, Liu Lan)

  • rgw: 问题 57562 反向移植到 Pacific (pr#49682, Adam C. Emerson)

  • rgw: 特殊场景下桶列表操作速度慢 (pr#49086, zealot)

  • rgw: 多对象删除的并发性 (pr#49327, Casey Bodley, Cory Snyder)

  • rgw: 修复 bi list 时重复 idx 的问题 (pr#49829, wangtengfei)

  • rgw: 优化处理 get_obj_state 中 ECANCELED 错误 (pr#50886, Cory Snyder)

  • rgw: rgw_parse_url_bucket() 在“tenant:”之后拒绝空桶名称 (pr#50624, Casey Bodley)

  • rgw: RGWPutLC 不需要 Content-MD5 (pr#49089, Casey Bodley)

  • tools/cephfs: 在 scan_links 中包含 lost+found (pr#50784, Patrick Donnelly)

  • Wip nitzan pglog ec getattr 错误 (pr#49937, Nitzan Mordechai)

v16.2.12 Pacific

这是一个热修复版本,解决了 ceph-volume 中的一些性能缺陷,特别是在 osd 激活期间 (https://tracker.ceph.com/issues/57627)

显著更改

更新日志

  • ceph-volume: 添加测试用例以重现 get_physical_fast_allocs 中的 bug (pr#50878, Cory Snyder)

  • ceph-volume: 不要在 util.lsblk 中抛出 RuntimeError (pr#50145, Guillaume Abrioux)

  • ceph-volume: 修复 get_all_devices_vgs() 中的一个 bug (pr#49454, Guillaume Abrioux)

  • ceph-volume: 修复 lsblk_all() 中的一个 bug (pr#49869, Guillaume Abrioux)

  • ceph-volume: 修复每个 VG 有多个 PV 时快速设备分配的问题 (pr#50279, Cory Snyder)

  • ceph-volume: 修复 activate 中的回归问题 (pr#49972, Guillaume Abrioux)

  • ceph-volume: 当设备是 'tmpfs' 时,legacy_encrypted() 不应调用 lsblk() (pr#50162, Guillaume Abrioux)

  • ceph-volume: 在部署 Ceph (pacific) 之前更新操作系统 (pr#50996, Guillaume Abrioux)

v16.2.11 Pacific

这是 Pacific 系列中的第十一个反向移植版本。

重要变更

  • Cephfs: “AT_NO_ATTR_SYNC”宏已弃用,请使用标准“AT_STATX_DONT_SYNC”宏。“AT_NO_ATTR_SYNC”宏将在未来版本中删除。

  • PGLog 重复项的修剪现在由大小而不是版本控制。这解决了在线 (在 OSD 中) 修剪在 PG 分割操作后卡住时发生的 PGLog 膨胀问题。此外,还添加了一个新的离线机制:ceph-objectstore-tool 有了 trim-pg-log-dups 操作,旨在解决 OSD 因这些膨胀的重复项而无法启动的情况。如果发生这种情况,OSD 日志中将显示“You can be hit by THE DUPS BUG”警告。相关跟踪器:https://tracker.ceph.com/issues/53729

  • RBD: rbd device unmap 命令增加了 --namespace 选项。RBD 在 Nautilus 14.2.0 中添加了对命名空间的支持,此后可以使用 image-spec 语法映射和取消映射命名空间中的图像,但大多数其他命令中缺少相应的选项。

更新日志

  • .github/CODEOWNERS: 在核心 PR 上标记核心开发者 (pr#46520, Neha Ojha)

  • .github: 错误时继续并重新排序里程碑步骤 (pr#46448, Ernesto Puerta)

  • .readthedocs.yml: 始终构建最新的 doc/releases 页面 (pr#47443, David Galloway)

  • mgr/alerts: 向发送的电子邮件添加 Message-Id 和 Date 标头 (pr#46312, Lorenz Bausch)

  • 添加 ernno:13 映射并在 opendir()/cephfs.pyx 中添加路径到错误消息 (pr#46646, Sarthak0702)

  • cephadm 的反向移植:修复自定义集群名称的 osd 采用 (pr#46552, Adam King)

  • bluestore: 改进延迟写入决策 (pr#49170, Adam Kupczyk, Igor Fedotov)

  • 捕获 __generate_command_map() 抛出的异常 (pr#45893, Nikhil Kshirsagar)

  • ceph-fuse: 为每个目录添加专用的快照标记映射 (pr#46949, Xiubo Li)

  • ceph-mixin: 最近清理的反向移植 (pr#46549, Arthur Outhenin-Chalandre)

  • ceph mixin: 反向移植 (pr#47868, Aswin Toni, Kefu Chai, Anthony D’Atri)

  • ceph-volume/tests: 修复 lvm centos8-filestore-create 作业 (pr#48123, Guillaume Abrioux)

  • ceph-volume: 在 util.disk.remove_partition 中添加重试 (pr#47990, Guillaume Abrioux)

  • ceph-volume: 允许按 OSD ID 列出设备 (pr#47018, Rishabh Dave)

  • ceph-volume: 避免不必要的子进程调用 (pr#46969, Guillaume Abrioux)

  • ceph-volume: 减少 lvm listpvs 的调用次数 (pr#46967, Guillaume Abrioux)

  • ceph-volume: 不记录敏感细节 (pr#46729, Guillaume Abrioux)

  • ceph-volume: 修复激活 (pr#46511, Guillaume Abrioux, Sage Weil)

  • ceph-volume: 修复带有 device arg 的库存 (pr#48126, Guillaume Abrioux)

  • ceph-volume: 使 is_valid() 可选 (pr#46731, Guillaume Abrioux)

  • ceph-volume: 仅在找不到配置文件时发出警告 (pr#46069, Guillaume Abrioux)

  • ceph-volume: Pacific 反向移植 (pr#47413, Guillaume Abrioux, Zack Cerza, Arthur Outhenin-Chalandre)

  • ceph-volume: system.get_mounts() 重构 (pr#47535, Guillaume Abrioux)

  • ceph-volume: 在 rollback_osd() 中 zap osds (pr#44769, Guillaume Abrioux)

  • ceph.spec.in: 如果使用 gcc-toolset 编译,则禁用 annobin 插件 (pr#46368, Kefu Chai)

  • ceph.spec.in: 在 %install 结束时删除构建目录 (pr#45698, Tim Serong)

  • ceph_test_librados_service: 等待更长时间以更新 servicemap (pr#46677, Sage Weil)

  • cephadm 批量反向移植 5 月份 (pr#46327, Adam King, Redouane Kachach, Moritz Röhrich)

  • cephadm/ceph-volume: 修复 rm-cluster --zap (pr#47627, Guillaume Abrioux)

  • cephadm: 向 cephadm.log logrotate 配置添加“su root root” (pr#47319, Adam King)

  • cephadm: 在 orch status 输出中添加“is_paused”字段 (pr#46570, Guillaume Abrioux)

  • cephadm: 向 haproxy 部署添加 ip_nonlocal_bind (pr#48212, Michael Fritch)

  • Cephadm: 允许 keepalived 和 haproxy 使用多个虚拟 IP 地址 (pr#47611, Luis Domingues)

  • cephadm: 考虑 stdout 获取容器版本 (pr#48210, Tatjana Dehler)

  • cephadm: 修复磁盘大小计算 (pr#48098, Paul Cuzner)

  • cephadm: 修复 repo_gpgkey 应返回 2 个变量 (pr#47376, Laurent Barbe)

  • cephadm: 改进引导期间的网络处理 (pr#46309, Redouane Kachach)

  • cephadm: 将 flake8 固定到 5.0.4 (pr#49058, Kefu Chai)

  • cephadm: 在 RPM 升级期间保留 cephadm 用户 (pr#46553, Scott Shambarger)

  • cephadm: prometheus: alerts 中的 generatorURL 仅使用主机名 (pr#46352, Volker Theile)

  • cephadm: 当在引导中应用 spec 失败时返回非零退出代码 (pr#48102, Adam King)

  • cephadm: 以 root 身份运行测试 (pr#48470, Kefu Chai)

  • cephadm: 支持 Oracle Linux 8 (pr#47661, Adam King)

  • cephadm: 支持引导时传递给配置的公共/集群网络中的引号 (pr#47664, Adam King)

  • cephfs-data-scan: 使 scan_links 更详细 (pr#48443, Mykola Golub)

  • cephfs-shell: 修复 put 和 get 命令 (pr#46297, Dhairya Parmar, dparmar18)

  • cephfs-shell: 将源移动到单独的子目录 (pr#47401, Tim Serong)

  • cephfs-top: 添加文件系统菜单选项 (pr#47998, Neeraj Pratap Singh)

  • cephfs-top: 显示平均读/写/元数据延迟 (issue#48619, pr#47978, Venky Shankar)

  • cephfs-top: 修复 rsp/wsp 显示 (pr#47647, Jos Collin)

  • cephfs-top: 使 cephfs-top 显示可滚动 (pr#48734, Jos Collin)

  • cephfs-top: 多文件系统支持 (pr#46146, Neeraj Pratap Singh)

  • client: 在 handle_reply 中始终直接返回 ESTALE (pr#46557, Xiubo Li)

  • client: 超过 256 次时停止转发请求 (pr#46179, Xiubo Li)

  • client: 将 AT_NO_ATTR_SYNC 切换到 AT_STATX_DONT_SYNC (pr#46679, Xiubo Li)

  • client/fuse: 修复根目录 DAC 覆盖问题 (pr#46596, Kotresh HR)

  • client: 如果无法使 dentry 缓存失效,则中止客户端 (pr#48109, Xiubo Li)

  • client: 添加禁用收集和发送指标的选项 (pr#46798, Xiubo Li)

  • client: 允许覆盖大小大于 max_file_size 的文件 (pr#47972, Tamar Shacked)

  • client: 如果有 Fx caps,则缓冲截断 (pr#45792, Xiubo Li)

  • client: 为具有 Xs caps 的 getxattr 选择 auth MDS (pr#46799, Xiubo Li)

  • client: 不为读取取消数据内联 (pr#48133, Xiubo Li)

  • client: 修复 stat 错误显示 .snap 大小的问题 (pr#48413, Xiubo Li)

  • client: Inode::hold_caps_until 是单调时钟的当前时间 (pr#46626, Laura Flores, Neeraj Pratap Singh)

  • client: 在 Client::unmount() 中停止 remount_finisher 线程 (pr#48108, Xiubo Li)

  • client: 对快照目录使用父目录 POSIX ACLs (issue#57084, pr#48553, Venky Shankar)

  • cls/rbd: 在 group::snap_list 中更新 last_read (pr#49195, Ilya Dryomov, Prasanna Kumar Kalever)

  • cls/rgw: rgw_dir_suggest_changes 检测到与完成的竞争 (pr#45900, Casey Bodley)

  • cmake: 在构建 boost 时检查 python(d).(d+) (pr#46365, Kefu Chai)

  • cmake: 删除用于编译 cython 代码的宏中的空格 (pr#47484, Kefu Chai)

  • CODEOWNERS: 添加 RBD 团队 (pr#46541, Ilya Dryomov)

  • common: 在 Windows 上使用 boost::shared_mutex (pr#47492, Lucian Petrut)

  • crash: pthread_mutex_lock() (pr#47684, Patrick Donnelly)

  • doc/cephadm: 向 host-management.rst 添加提示符 (pr#48590, Zac Dover)

  • doc/rados: 向 placement-groups.rst 添加提示符 (pr#49272, Zac Dover)

  • doc: Wip pr 46109 反向移植到 pacific (pr#46117, Ville Ojamo)

  • doc: Wip min hardware typo pacific 反向移植 2022 05 19 (pr#46347, Zac Dover)

  • doc/_static: 向 custom.css 添加 scroll-margin-top (pr#49645, Zac Dover)

  • doc/architecture: 更正 PDF 链接 (pr#48796, Zac Dover)

  • doc/ceph-volume: 添加 A. D’Atri 的建议 (pr#48646, Zac Dover)

  • doc/ceph-volume: 改进 prepare.rst (pr#48669, Zac Dover)

  • doc/ceph-volume: 完善“bluestore”部分 (pr#48635, Zac Dover)

  • doc/ceph-volume: 完善“filestore”部分 (pr#48637, Zac Dover)

  • doc/ceph-volume: 完善“prepare”顶部内容 (pr#48652, Zac Dover)

  • doc/ceph-volume: 完善 Filestore 文档 (pr#48671, Zac Dover)

  • doc/cephadm/services: 修复指定 rgw 放置的示例 (pr#47948, Redouane Kachach)

  • doc/cephadm/services: 服务规范的 config 部分 (pr#47321, Redouane Kachach)

  • doc/cephadm: 添加 airgapped 安装过程 (pr#49146, Zac Dover)

  • doc/cephadm: 在 OSD 删除部分添加关于 OSD 将被重新创建的说明 (pr#47103, Adam King)

  • doc/cephadm: 添加升级后部分 (pr#46977, Redouane Kachach)

  • doc/cephadm: 按字母顺序排列外部工具列表 (pr#48726, Zac Dover)

  • doc/cephadm: 整理“listing hosts”部分 (pr#48724, Zac Dover)

  • doc/cephadm: 清理 host-management.rst 中的冒号 (pr#48604, Zac Dover)

  • doc/cephadm: 修正 pacific 中版本交错升级的问题 (pr#48056, Adam King)

  • doc/cephadm: 文档中建议使用 ECA 挂载文件的语法 (pr#48069, Adam King)

  • doc/cephadm: 增强守护进程操作文档 (pr#46976, Redouane Kachach)

  • doc/cephadm: 修复为 rgw 指定网络的示例 (pr#47807, Adam King)

  • doc/cephadm: 修复 compatibility.rst 中的语法 (pr#48715, Zac Dover)

  • doc/cephadm: 格式化 airgap 安装过程 (pr#49149, Zac Dover)

  • doc/cephadm: 改进 airgapping 过程语法 (pr#49158, Zac Dover)

  • doc/cephadm: 改进前言部分 (pr#48607, Zac Dover)

  • doc/cephadm: 改进“listing hosts”中的语法 (pr#49165, Zac Dover)

  • doc/cephadm: 改进单个句子 (pr#48738, Zac Dover)

  • doc/cephadm: 完善“Removing Hosts” (pr#49707, Zac Dover)

  • doc/cephadm: 在适当的地方 s/osd/OSD/ (pr#49718, Zac Dover)

  • doc/cephadm: 在 doc/cephadm (完整) 中 s/ssh/SSH/ (pr#48612, Zac Dover)

  • doc/cephadm: 在 troubleshooting.rst 中 s/ssh/SSH/ (pr#48602, Zac Dover)

  • doc/cephadm: 更新 install.rst (pr#48595, Zac Dover)

  • doc/cephfs - s/yet to here/yet to hear/ posix.rst (pr#49449, Zac Dover)

  • doc/cephfs/add-remove-mds: 添加 cephadm 备注,完善“Adding an MDS” (pr#45878, Dhairya Parmar)

  • doc/cephfs: 修复 posix.rst 中的“e.g.” (pr#49451, Zac Dover)

  • doc/cephfs: s/all of there are/all of these are/ (pr#49447, Zac Dover)

  • doc/conf.py: 使用 java 运行 ditaa (pr#48906, Kefu Chai)

  • doc/css: 向 custom.css 添加“span”填充 (pr#49694, Zac Dover)

  • doc/css: 向 dt 元素添加 scroll-margin-top (pr#49640, Zac Dover)

  • doc/css: 向 h2 html 元素添加 scroll-margin-top (pr#49662, Zac Dover)

  • doc/css: 为 h3 html 元素添加 top-bar 填充 (pr#49702, Zac Dover)

  • doc/dev/cephadm: 修复主机维护进入/退出语法 (pr#49647, Ranjini Mandyam Narasiodeyar)

  • doc/dev/developer_guide/tests-unit-tests: 添加单元测试注意事项 (pr#49013, Matan Breizman)

  • doc/dev: 向 dev guide 配置添加上下文说明 (pr#46817, Zac Dover)

  • doc/dev: 向 essentials.rst 添加 Dependabot 部分 (pr#47043, Zac Dover)

  • doc/dev: 添加如何使用重复数据删除的说明 (pr#48568, Myoungwon Oh)

  • doc/dev: 添加 IRC 注册说明 (pr#46939, Zac Dover)

  • doc/dev: 向 dev guide 添加 submodule-update 链接 (pr#48480, Zac Dover)

  • doc/dev: 按字母顺序排列 EC 词汇表 (pr#48686, Zac Dover)

  • doc/dev: 编辑 delayed-delete.rst (pr#47050, Zac Dover)

  • doc/dev: 详细阐述 boost .deb 创建 (pr#47416, David Galloway)

  • doc/dev: 修复 graphviz 图表 (pr#48923, Zac Dover)

  • doc/dev: 改进基本工作流措辞 (pr#49078, Zac Dover)

  • doc/dev: 改进 EC 词汇表 (pr#48676, Zac Dover)

  • doc/dev: 改进单个句子 (pr#48741, Zac Dover)

  • doc/dev: 改进注释的呈现 (git remote) (pr#48236, Zac Dover)

  • doc/dev: 链接到 Dot 用户手册 (pr#48926, Zac Dover)

  • doc/dev: 完善 erasure_coding.rst (pr#48701, Zac Dover)

  • doc/dev: 从 pacific 中删除 deduplication.rst (pr#48571, Zac Dover)

  • doc/dev: 在 essentials.rst 中 s/github/GitHub/ (pr#47049, Zac Dover)

  • doc/dev: essentials.rst dev guide 中 s/master/main (pr#46662, Zac Dover)

  • doc/dev: 在 basic workflow 中 s/master/main/ (pr#46704, Zac Dover)

  • doc/dev: 在标题中 s/master/main/ (pr#46722, Zac Dover)

  • doc/dev: 在 basic-workflow.rst 中 s/the the/the/ (pr#46934, Zac Dover)

  • doc/dev: 更新 basic-workflow.rst (pr#46288, Zac Dover)

  • doc/dev_guide: 在 merging.rst 中 s/master/main (pr#46710, Zac Dover)

  • doc/glosary.rst: 添加“Ceph Block Device”术语 (pr#48745, Zac Dover)

  • doc/glossary - 添加“secrets” (pr#49398, Zac Dover)

  • doc/glossary.rst: 添加“Ceph Dashboard”术语 (pr#48749, Zac Dover)

  • doc/glossary.rst: 按字母顺序排列词汇表术语 (pr#48339, Zac Dover)

  • doc/glossary.rst: 定义“Ceph Manager” (pr#48765, Zac Dover)

  • doc/glossary.rst: 删除重复项 (pr#48358, Zac Dover)

  • doc/glossary.rst: 删除旧前言内容 (pr#48755, Zac Dover)

  • doc/glossary: 添加“BlueStore” (pr#48778, Zac Dover)

  • doc/glossary: 添加“ceph monitor”条目 (pr#48448, Zac Dover)

  • doc/glossary: 添加“Ceph Object Store” (pr#49031, Zac Dover)

  • doc/glossary: 添加“Dashboard Module” (pr#49138, Zac Dover)

  • doc/glossary: 添加“FQDN”条目 (pr#49425, Zac Dover)

  • doc/glossary: 添加“mds”术语 (pr#48872, Zac Dover)

  • doc/glossary: 添加“RADOS Cluster” (pr#49135, Zac Dover)

  • doc/glossary: 添加“RADOS”定义 (pr#48951, Zac Dover)

  • doc/glossary: 添加“SDS” (pr#48977, Zac Dover)

  • doc/glossary: 添加 DAS (pr#49255, Zac Dover)

  • doc/glossary: 向“RBD”添加内容 (pr#49266, Zac Dover)

  • doc/glossary: 为“Cluster Map”添加牛津逗号 (pr#48993, Zac Dover)

  • doc/glossary: 充实“Ceph Block Storage” (pr#48965, Zac Dover)

  • doc/glossary: 正确大写“DAS” (pr#49604, Zac Dover)

  • doc/glossary: 清理 OSD ID 相关条目 (pr#49590, Zac Dover)

  • doc/glossary: 清理“Ceph Object Storage” (pr#49668, Zac Dover)

  • doc/glossary: 整理“releases”条目 (pr#49601, Zac Dover)

  • doc/glossary: 定义“Ceph Node” (pr#48995, Zac Dover)

  • doc/glossary: 定义“Ceph Object Gateway” (pr#48902, Zac Dover)

  • doc/glossary: 定义“Ceph OSD” (pr#48771, Zac Dover)

  • doc/glossary: 定义“Ceph Storage Cluster” (pr#49003, Zac Dover)

  • doc/glossary: 定义“OSD” (pr#48760, Zac Dover)

  • doc/glossary: 定义“RGW” (pr#48961, Zac Dover)

  • doc/glossary: 消除“OSD”歧义 (pr#48791, Zac Dover)

  • doc/glossary: 消除子句歧义 (pr#49575, Zac Dover)

  • doc/glossary: 修复“Ceph Client” (pr#49033, Zac Dover)

  • doc/glossary: 改进“Ceph Manager Dashboard” (pr#48825, Zac Dover)

  • doc/glossary: 改进“Ceph Manager”术语 (pr#48812, Zac Dover)

  • doc/glossary: 改进“Ceph Point Release”条目 (pr#48891, Zac Dover)

  • doc/glossary: 改进“ceph”术语 (pr#48821, Zac Dover)

  • doc/glossary: 改进措辞 (pr#48752, Zac Dover)

  • doc/glossary: 链接到“Ceph Manager” (pr#49064, Zac Dover)

  • doc/glossary: 链接到 OSD 材料 (pr#48785, Zac Dover)

  • doc/glossary: 将条目重定向到“Ceph OSD” (pr#48834, Zac Dover)

  • doc/glossary: 删除“Ceph System” (pr#49073, Zac Dover)

  • doc/glossary: 删除“Ceph Test Framework” (pr#48842, Zac Dover)

  • doc/glossary: 重写“Ceph File System” (pr#48918, Zac Dover)

  • doc/glossary: 在需要的地方 s/an/each/ (pr#49596, Zac Dover)

  • doc/glossary: s/Ceph System/Ceph Cluster/ (pr#49081, Zac Dover)

  • doc/glossary: s/comprising/consisting of/ (pr#49019, Zac Dover)

  • doc/glossary: 更新“Cluster Map” (pr#48798, Zac Dover)

  • doc/glossary: 更新“pool/pools” (pr#48858, Zac Dover)

  • doc/index.rst: 添加到 Dev Guide 基本工作流的链接 (pr#46903, Zac Dover)

  • doc/install: clone-source.rst 中 s/master/main (pr#48381, Zac Dover)

  • doc/install: 改进更新子模块过程 (pr#48465, Zac Dover)

  • doc/install: 更新“官方发布”来源 (pr#49039, Zac Dover)

  • doc/install: 更新 clone-source.rst (pr#49378, Zac Dover)

  • doc/man/ceph-rbdnamer: 删除过时的 udev 规则 (pr#49696, Ilya Dryomov)

  • doc/man/rbd: 提及更改的 bluestore_min_alloc_size (pr#47578, Niklas Hambüchen)

  • doc/man: 定义 --num-rep、--min-rep 和 --max-rep (pr#49660, Zac Dover)

  • doc/mgr: 向 dashboard.rst 添加提示符指令 (pr#47823, Zac Dover)

  • doc/mgr: 编辑 orchestrator.rst (pr#47781, Zac Dover)

  • doc/mgr: 在“Man Install & Config”中命名数据源 (pr#48371, Zac Dover)

  • doc/mgr: 更新 dboard.rst 包含中的提示符 (pr#47870, Zac Dover)

  • doc/monitoring: 在监控堆栈中添加应用程序的最低版本 (pr#48062, Zac Dover, Himadri Maheshwari)

  • doc/osd: 修复缓存层回写模式的介绍 (pr#48883, Mingyuan Liang)

  • doc/rados/operations: 向 operating.rst 添加提示符 (pr#47587, Zac Dover)

  • doc/rados: 向 monitoring-osd-pg.rst 添加提示符 (pr#49240, Zac Dover)

  • doc/rados: 向 add-or-remove-osds 添加提示符 (pr#49071, Zac Dover)

  • doc/rados: 向 add-or-rm-prompts.rst 添加提示符 (pr#48986, Zac Dover)

  • doc/rados: 向 add-or-rm-prompts.rst 添加提示符 (pr#48980, Zac Dover)

  • doc/rados: 向 auth-config-ref.rst 添加提示符 (pr#49516, Zac Dover)

  • doc/rados: 向 balancer.rst 添加提示符 (pr#49112, Zac Dover)

  • doc/rados: 向 bluestore-config-ref.rst 添加提示符 (pr#49536, Zac Dover)

  • doc/rados: 向 bluestore-migration.rst 添加提示符 (pr#49123, Zac Dover)

  • doc/rados: 向 cache-tiering.rst 添加提示符 (pr#49125, Zac Dover)

  • doc/rados: 向 ceph-conf.rst 添加提示符 (pr#49493, Zac Dover)

  • doc/rados: 向 change-mon-elections.rst 添加提示符 (pr#49130, Zac Dover)

  • doc/rados: 向 control.rst 添加提示符 (pr#49128, Zac Dover)

  • doc/rados: 向 crush-map.rst 添加提示符 (pr#49184, Zac Dover)

  • doc/rados: 向 devices.rst 添加提示符 (pr#49188, Zac Dover)

  • doc/rados: 向 erasure-code-clay.rst 添加提示符 (pr#49206, Zac Dover)

  • doc/rados: 向 erasure-code-isa 添加提示符 (pr#49208, Zac Dover)

  • doc/rados: 向 erasure-code-jerasure.rst 添加提示符 (pr#49210, Zac Dover)

  • doc/rados: 向 erasure-code-lrc.rst 添加提示符 (pr#49219, Zac Dover)

  • doc/rados: 向 erasure-code-shec.rst 添加提示符 (pr#49221, Zac Dover)

  • doc/rados: 向 health-checks (1 of 5) 添加提示符 (pr#49223, Zac Dover)

  • doc/rados: 向 health-checks (2 of 5) 添加提示符 (pr#49225, Zac Dover)

  • doc/rados: 向 health-checks (3 of 5) 添加提示符 (pr#49227, Zac Dover)

  • doc/rados: 向 health-checks (4 of 5) 添加提示符 (pr#49229, Zac Dover)

  • doc/rados: 向 health-checks (5 of 5) 添加提示符 (pr#49231, Zac Dover)

  • doc/rados: 向 librados-intro.rst 添加提示符 (pr#49552, Zac Dover)

  • doc/rados: 向 monitoring.rst 添加提示符 (pr#49245, Zac Dover)

  • doc/rados: 向 msgr2.rst 添加提示符 (pr#49512, Zac Dover)

  • doc/rados: 向 pg-repair.rst 添加提示符 (pr#49247, Zac Dover)

  • doc/rados: 向 placement-groups.rst 添加提示符 (pr#49274, Zac Dover)

  • doc/rados: 向 placement-groups.rst (3) 添加提示符 (pr#49276, Zac Dover)

  • doc/rados: 向 pools.rst 添加提示符 (pr#48060, Zac Dover)

  • doc/rados: 向 stretch-mode.rst 添加提示符 (pr#49370, Zac Dover)

  • doc/rados: 向 upmap.rst 添加提示符 (pr#49372, Zac Dover)

  • doc/rados: 向 user-management.rst 添加提示符 (pr#49385, Zac Dover)

  • doc/rados: 澄清默认 EC 池的默认值 (pr#49469, Zac Dover)

  • doc/rados: 清理“擦除码配置文件” (pr#49051, Zac Dover)

  • doc/rados: 更正 python.rst 中的拼写错误 (pr#49560, Zac Dover)

  • doc/rados: 修正 configuration/index.rst 中的语法错误 (pr#48885, Zac Dover)

  • doc/rados: 修正 erasure-code.rst 中的提示符 (pr#48335, Zac Dover)

  • doc/rados: 改进 pools.rst (pr#48868, Zac Dover)

  • doc/rados: 链接到 cephadm 替换 OSD 部分 (pr#49681, Zac Dover)

  • doc/rados: 移动冒号 (pr#49705, Zac Dover)

  • doc/rados: 优化 crush-map-edits.rst 中的英文表达 (pr#48366, Zac Dover)

  • doc/rados: 删除 php.ini 行中的提示符 (pr#49562, Zac Dover)

  • doc/rados: 重写 cache-tiering.rst 的一部分 (pr#48888, Zac Dover)

  • doc/rados: 重写 EC 介绍 (pr#48324, Zac Dover)

  • doc/rados: s/backend/back end/ (pr#48782, Zac Dover)

  • doc/rados: 更新“存储池”材料 (pr#48856, Zac Dover)

  • doc/rados: 更新 bluestore-config-ref.rst (pr#46485, Zac Dover)

  • doc/rados: 更新 crush-map-edits.rst 中的提示符 (pr#48364, Zac Dover)

  • doc/rados: 更新 network-config-ref 中的提示符 (pr#48158, Zac Dover)

  • doc/radosgw: 在 multisite.rst 中添加提示符 (pr#48660, Zac Dover)

  • doc/radosgw: 为 rabbitmq 添加 push_endpoint (pr#48488, Zac Dover)

  • doc/radosgw: 改进“Ceph Object Gateway”文本 (pr#48864, Zac Dover)

  • doc/radosgw: 改进语法 - notifications.rst (pr#48495, Zac Dover)

  • doc/radosgw: 优化“桶通知” (pr#48562, Zac Dover)

  • doc/radosgw: 优化“通知可靠性” (pr#48530, Zac Dover)

  • doc/radosgw: 优化“通知”和“事件” (pr#48580, Zac Dover)

  • doc/radosgw: 优化 notifications.rst - 顶部部分 (pr#48503, Zac Dover)

  • doc/radosgw: 更新 notifications.rst - 语法 (pr#48500, Zac Dover)

  • doc/radosgw: S3 大写 (pr#47360, Anthony D’Atri)

  • doc/radosw: 改进 radosgw 文本 (pr#48967, Zac Dover)

  • doc/radowsgw: 在 notifications.rst 中添加提示符 (pr#48536, Zac Dover)

  • doc/rbd: 改进“不可变对象…”中的语法 (pr#48970, Zac Dover)

  • doc/rbd: 优化“创建块设备存储池” (pr#49308, Zac Dover)

  • doc/rbd: 优化“创建块设备用户” (pr#49319, Zac Dover)

  • doc/rbd: 优化“创建块设备用户” (pr#49301, Zac Dover)

  • doc/rbd: 优化“创建块设备镜像” (pr#49347, Zac Dover)

  • doc/rbd: 优化“列出块设备镜像” (pr#49349, Zac Dover)

  • doc/rbd: 优化“删除块设备镜像” (pr#49357, Zac Dover)

  • doc/rbd: 优化“调整块设备镜像大小” (pr#49353, Zac Dover)

  • doc/rbd: 优化“恢复块设备镜像” (pr#49355, Zac Dover)

  • doc/rbd: 优化“检索镜像信息” (pr#49351, Zac Dover)

  • doc/rbd: 优化 rbd-exclusive-locks.rst (pr#49598, Zac Dover)

  • doc/rbd: 优化 rbd-snapshot.rst (pr#49485, Zac Dover)

  • doc/rbd: 删除拼写错误和格式错误的命令 (pr#49366, Zac Dover)

  • doc/rbd: s/wuold/would/ in rados-rbd-cmds.rst (pr#49592, Zac Dover)

  • doc/rbd: 更新 iSCSI 网关信息 (pr#49069, Zac Dover)

  • doc/releases: 改进 pacific.rst 中的语法 (pr#48426, Zac Dover)

  • doc/releases: 更新 pacific 版本说明 (pr#48404, Zac Dover)

  • doc/security: 改进 CVE-2022-0670.rst 中的语法 (pr#48431, Zac Dover)

  • doc/start: 添加 Anthony D’Atri 的建议 (pr#49616, Zac Dover)

  • doc/start: 添加链接相关的元文档 (pr#49607, Zac Dover)

  • doc/start: 按字母顺序排列 hardware-recs 链接 (pr#46340, Zac Dover)

  • doc/start: 改进 documenting-ceph.rst (pr#49566, Zac Dover)

  • doc/start: 使 OSD 和 MDS 结构并行 (pr#46656, Zac Dover)

  • doc/start: 优化 hardware-recommendations.rst 的网络部分 (pr#46663, Anthony D’Atri)

  • doc/start: 优化“RST 的怪癖” (pr#49611, Zac Dover)

  • doc/start: 重写 CRUSH 段落 (pr#46657, Zac Dover)

  • doc/start: 重写硬件推荐网络部分 (pr#46653, Zac Dover)

  • doc/start: s/3/three/ in intro.rst (pr#46326, Zac Dover)

  • doc/start: 更新 documenting-ceph 分支名称 (pr#47956, Zac Dover)

  • doc/start: 更新 documenting-ceph.rst (pr#49571, Zac Dover)

  • doc/start: 更新硬件推荐 (pr#47122, Zac Dover)

  • doc/various: 更新 CRUSH pdf 链接 (pr#48403, Zac Dover)

  • doc: 添加磁盘基准测试和缓存建议 (pr#46348, Dan van der Ster)

  • doc: 将 pacific 版本说明反向移植到 pacific 分支 (pr#46484, Zac Dover, David Galloway)

  • doc: 将 doc/radosgw/layout.rst 中的“ReST”更改为“REST” (pr#48654, wangyingbin)

  • doc: 修正几个语法问题 (pr#49622, Brad Fitzpatrick)

  • doc: 修正一个拼写错误 (pr#49684, Brad Fitzpatrick)

  • doc: 安装 graphviz (pr#48905, David Galloway)

  • doc: 指向 main 分支以获取发布信息 (pr#48958, Patrick Donnelly)

  • doc: 更新发布过程文档以准确反映当前过程 (pr#47838, David Galloway)

  • docs/start: 修正硬件推荐中的拼写错误和空标题… (pr#48392, Sebastian Schmid)

  • docs: 更正将系统用户添加到主区域的命令 (pr#48656, Salar Nosrati-Ershad)

  • docs: 修正 dashboard.rst 中指向 master 的文档链接 (pr#47791, Nizamudeen A)

  • 修复 bluefs truncate() 中的数据损坏 (pr#45171, Adam Kupczyk)

  • fsmap: 切换到使用基于迭代器的循环 (pr#48269, Aliaksei Makarau)

  • 实现 CIDR 块列表 (pr#46470, Jos Collin, Greg Farnum)

  • include/buffer: 包含 <memory> (pr#47295, Kefu Chai, Duncan Bellamy)

  • include: 修复 Windows 上的 IS_ERR (pr#47923, Lucian Petrut)

  • libcephfs: 重新定义 AT_NO_ATTR_SYNC 以实现向后兼容性 (pr#47862, Xiubo Li)

  • libcephsqlite: ceph-mgr 在使用 gcc12 编译时崩溃 (pr#47271, Ganesh Maharaj Mahalingam)

  • librados/watch_notify: 套接字注入后重新连接 (pr#46499, Nitzan Mordechai)

  • librados: rados_ioctx_destroy 检查 ioctx 是否已初始化 (pr#47451, Nitzan Mordechai)

  • librbd/cache/pwl: 修复 clean 与 bytes_dirty 缓存状态不一致的问题 (pr#49054, Yin Congmin)

  • librbd/cache/pwl: 修复字节序问题 (pr#46815, Yin Congmin)

  • librbd/cache/pwl: 缩小 write_image_cache_state() 中 m_lock 的范围 (pr#47939, Ilya Dryomov, Yin Congmin)

  • librbd: 如果已经是锁所有者,则从 schedule_request_lock() 退出 (pr#47161, Christopher Hoffman)

  • librbd: 在 V2_REFRESH_PARENT 中也重试 ENOENT (pr#47995, Ilya Dryomov)

  • librbd: 调整误导性的“image is still primary”错误消息 (pr#47247, Ilya Dryomov)

  • librbd: 达到容量时取消链接最新镜像快照,并提高容量 (pr#46593, Ilya Dryomov)

  • librbd: 更新深度复制时不存在对象的进度 (pr#46909, Ilya Dryomov)

  • librbd: 在创建对等引导令牌时使用实际的监视器地址 (pr#47911, Ilya Dryomov)

  • make-dist: 修补 boost 源码以支持 python 3.10 … (pr#47027, Tim Serong, Kefu Chai)

  • mds: 将目录 inode 的更改属性增加 1 (pr#48521, Ramana Raja)

  • mds: 在恢复文件 inode 之前清除 MDCache::rejoin_*_q 队列 (pr#46682, Xiubo Li)

  • mds: 如果被锁定且仍有未满足的所需功能,则刷新 mdlog (pr#46423, Xiubo Li)

  • mds: 在获取或提交条目时重置心跳 (pr#46180, Xiubo Li)

  • mds: 在 handle_find_ino() 中触发刷新 mdlog (pr#46424, Xiubo Li)

  • mds/client: 如果对等 MDS 不支持 getvxattr 操作,则请求失败 (pr#47891, Xiubo Li, Zack Cerza)

  • mds/Server: 不要在未知消息上中止 MDS (pr#48253, Dhairya Parmar, Dhairy Parmar)

  • mds: 添加性能计数器以记录慢速回复 (pr#46138, haoyixing)

  • mds: damage table 每个 dirfrag 只存储一个 dentry (pr#48262, Patrick Donnelly)

  • mds: 在发出客户端租约时不要过早断言 (issue#54701, pr#46567, Venky Shankar)

  • mds: 不在任何重放状态下阻止客户端 (pr#47111, Kotresh HR)

  • mds: 修复导出未链接目录时崩溃的问题 (pr#47180, 胡玮文)

  • mds: 在向副本发送 dentry 取消链接消息时包含编码的孤立 inode (issue#54046, pr#46183, Venky Shankar)

  • mds: 将 xattr_version 通知副本 MDSes (pr#47056, Xiubo Li)

  • mds: 如果不是目录,则跳过获取 dirfrags (pr#47433, Xiubo Li)

  • mds: standby-replay daemon 始终在 MDSMonitor::prepare_beacon 中删除 (pr#47282, Patrick Donnelly)

  • mds: 切换到使用预测 inode (pr#47059, Xiubo Li)

  • mds: 等待取消链接完成以避免在创建相同条目时发生冲突 (pr#48453, Xiubo Li)

  • mgr, mgr/prometheus: 修复 prometheus 指标的回归 (pr#47693, Prashant D)

  • mgr, mgr/prometheus: 修复 prometheus 指标的回归 (pr#46429, Prashant D)

  • mgr, mon: 为 MONs 保持最新的 mgr 元数据 (pr#47692, Laura Flores, Prashant D)

  • mgr, mon: 为 MONs 保持最新的 mgr 元数据 (pr#46427, Prashant D)

  • mgr/ActivePyModules.cc: 修复在尝试锁定互斥体时 GIL 被持有的情况 (pr#46302, Cory Snyder)

  • mgr/cephadm: 向 Orchestrator 添加磁盘重新扫描功能 (pr#47372, Adam King, Paul Cuzner)

  • mgr/cephadm: 添加在删除守护进程时关闭端口的逻辑 (pr#46780, Redouane Kachach)

  • mgr/cephadm: 添加按节点存储 grafana 证书/密钥的逻辑 (pr#48103, Redouane Kachach)

  • mgr/cephadm: 允许设置 prometheus 保留时间 (pr#48100, Adam King)

  • mgr/cephadm: 无法列出升级标签时捕获异常 (pr#46776, Redouane Kachach)

  • mgr/cephadm: 在尝试重启服务之前检查服务是否存在 (pr#46779, Redouane Kachach)

  • mgr/cephadm: 恢复升级时清除错误消息 (pr#47375, Adam King)

  • mgr/cephadm: 如果 cephadm 知道原始列表中的 osds,则不重新部署它们 (pr#46545, Adam King)

  • mgr/cephadm: 修复调度器一致性哈希 (pr#46975, Redouane Kachach)

  • mgr/cephadm: 原始 OSD 支持 (pr#45964, Guillaume Abrioux, Adam King, Sage Weil)

  • mgr/cephadm: 如果 trusted_ip_list 更改,则重新配置 iscsi 守护进程 (pr#48096, Adam King)

  • mgr/cephadm: 重新部署/重新配置时重新创建 osd 配置 (pr#47663, Adam King)

  • mgr/cephadm: 用户提供时设置 dashboard grafana-api-password (pr#47662, Adam King)

  • mgr/cephadm: 交错升级 (pr#46359, Adam King)

  • mgr/cephadm: 尝试获取活动实例的 FQDN (pr#46775, Tatjana Dehler)

  • mgr/cephadm: 使用主机短名称进行 osd 内存自动调优 (pr#46556, Adam King)

  • mgr/dashboard: 不将 3xx 记录为错误 (pr#46461, Ernesto Puerta)

  • mgr/dashboard: WDC 多路径错误修复 (pr#46456, Nizamudeen A)

  • mgr/dashboard: 向显示 safe-to-d… (pr#48176, Francesco Torchia) 的模态框添加详细信息

  • mgr/dashboard: 添加解析 IP 地址的选项 (pr#48220, Tatjana Dehler)

  • mgr/dashboard: 添加前端和监视器端口的必要验证 (pr#47357, Avan Thakkar)

  • mgr/dashboard: 向空的预期寿命列添加文本 (pr#48276, Francesco Torchia)

  • mgr/dashboard: 允许在设置 URL 时进行跨域 (pr#49151, Nizamudeen A)

  • mgr/dashboard: 如果配置中存在,则允许 CORS 的 Origin URL (pr#49429, Avan Thakkar)

  • mgr/dashboard: 批量 rbd-mirror 反向移植 (pr#46531, Pere Diaz Bou, Pedro Gonzalez Gomez, Nizamudeen A, Melissa Li, Sarthak0702, Avan Thakkar, Aashish Sharma)

  • mgr/dashboard: 仪表板 cephadm e2e 的 BDD 方法 (pr#46529, Nizamudeen A)

  • mgr/dashboard: rbd 镜像编辑和提升/降级时的错误修复 (pr#48806, Pedro Gonzalez Gomez)

  • mgr/dashboard: 将 moment 从 2.29.1 升级到 2.29.3 在 /src/pybind/mgr/dashboard/frontend (pr#46717, dependabot[bot])

  • mgr/dashboard: 提升 teuthology 版本 (pr#47497, Kefu Chai)

  • mgr/dashboard: 创建和编辑 Prometheus AlertManager 静默存在错误 (pr#46277, Volker Theile)

  • mgr/dashboard: 可自定义的登录页面文本/横幅 (pr#46343, Sarthak0702)

  • mgr/dashboard: 仪表板帮助命令显示 login-banner 的错误语法 (pr#46810, Sarthak0702)

  • mgr/dashboard: 当 iframe 嵌入的 Grafana 仪表板加载失败时显示有用的消息 (pr#47008, Ngwa Sedrick Meh)

  • mgr/dashboard: 不推荐仅 SSD 集群的吞吐量 (pr#47155, Nizamudeen A)

  • mgr/dashboard: 不在 404s 上记录回溯 (pr#47093, Ernesto Puerta)

  • mgr/dashboard: 启用自定义 Prometheus 警报的添加 (pr#48099, Patrick Seidensal)

  • mgr/dashboard: 确保 limit 0 返回 0 个镜像 (pr#47888, Pere Diaz Bou)

  • mgr/dashboard: 功能 54330 osd 创建工作流 (pr#46690, Pere Diaz Bou, Nizamudeen A, Sarthak0702)

  • mgr/dashboard: 修复 _rbd_image_refs 缓存 (pr#47636, Pere Diaz Bou)

  • mgr/dashboard: 修复 Expected to find element: cd-modal .badge but never found it (pr#48142, Nizamudeen A)

  • mgr/dashboard: 修复 nfs 导出表单与 squash 字段相关的问题 (pr#47960, Nizamudeen A)

  • mgr/dashboard: 修复 openapi-check (pr#48045, Pere Diaz Bou)

  • mgr/dashboard: 修复使用 ssl 时 rgw 连接问题 (issue#56970, pr#48189, Henry Hirsch)

  • mgr/dashboard: 修复同名快照创建问题 (pr#48048, Aashish Sharma)

  • mgr/dashboard: 修复 ingress 服务创建时的 ssl 证书验证问题 (pr#46204, Avan Thakkar)

  • mgr/dashboard: 修复未管理服务的创建 (pr#48026, Nizamudeen A)

  • mgr/dashboard: 修复错误的 pg 状态处理 (pr#46228, Ernesto Puerta)

  • mgr/dashboard: 表单字段验证图标与其他图标重叠 (pr#46379, Sarthak0702)

  • mgr/dashboard: grafana 前端 e2e 测试和 cypress 更新 (pr#47721, Nizamudeen A)

  • mgr/dashboard: 处理 nfs 导出中的 cephfs 权限问题 (pr#48316, Nizamudeen A)

  • mgr/dashboard: 主机列表表不显示所有部署的服务 (pr#47454, Avan Thakkar)

  • mgr/dashboard: ingress 后端服务应列出所有支持的服务 (pr#47084, Avan Thakkar)

  • mgr/dashboard: 引入守护进程的内存和 CPU 使用率 (pr#46459, Aashish Sharma, Avan Thakkar)

  • mgr/dashboard: 启用 IOPS 优化选项 (pr#46737, Pere Diaz Bou)

  • mgr/dashboard: 遍历项目副本 (pr#46870, Pedro Gonzalez Gomez)

  • mgr/dashboard: 阻止警报重定向 (pr#47145, Tatjana Dehler)

  • mgr/dashboard: 从 Transifex 拉取最新语言 (pr#46695, Volker Theile)

  • mgr/dashboard: rbd 镜像分页 (pr#47105, Pere Diaz Bou, Nizamudeen A)

  • mgr/dashboard: rbd 条带设置预填充和弹出 (pr#47410, Vrushal Chaudhari)

  • mgr/dashboard: 删除令牌日志记录 (pr#47431, Pere Diaz Bou)

  • mgr/dashboard: 在创建具有重复服务 ID 的服务时显示错误 (pr#47404, Aashish Sharma)

  • mgr/dashboard: 页面不可见时停止轮询 (pr#46675, Sarthak0702)

  • mgr/dashboard: 取消选择数据表中的行 (pr#46322, Sarthak0702)

  • mgr/DaemonServer.cc: 修复输出 gap >= max_pg_num_change 中的拼写错误 (pr#47211, Kamoltat)

  • mgr/prometheus: 公开存储池中修复的对象数量 (pr#48205, Pere Diaz Bou)

  • mgr/prometheus: 改用 vendored “packaging” (pr#49695, Matan Breizman)

  • mgr/rbd_support: 如果存储池被删除,避免卡住任务队列 (pr#49056, Ilya Dryomov)

  • mgr/snap_schedule: 在快照目录名称中添加时区后缀 (pr#45968, Milind Changire, Venky Shankar)

  • mgr/snap_schedule: 将所有更新持久化到 RADOS (pr#46797, Milind Changire)

  • mgr/snap_schedule: 删除子卷接口 (pr#48221, Milind Changire)

  • mgr/stats: 对离线 MDS rank-0 具有弹性 (pr#45293, Jos Collin)

  • mgr/stats: perf_stats 输出结构变化 (pr#47851, Neeraj Pratap Singh)

  • mgr/stats: perf stats 命令输出中缺少客户端 (pr#47866, Neeraj Pratap Singh)

  • mgr/telemetry: 重新选择加入后重置健康警告 (pr#47307, Yaarit Hatuka)

  • mgr/volumes: 几个依赖的 mgr volumes PRs (pr#47112, Rishabh Dave, Kotresh HR, John Mulligan, Nikhilkumar Shelke)

  • mgr/volumes: 向 volume info 命令添加人类可读标志 (pr#48468, Neeraj Pratap Singh)

  • mgr/volumes: 添加接口以检查子卷组/子卷的存在 (pr#47460, Neeraj Pratap Singh)

  • mgr/volumes: 添加 volume info 命令 (pr#47769, Neeraj Pratap Singh)

  • mgr/volumes: 在“subvolumegroup ls”命令中过滤内部目录 (pr#47512, Nikhilkumar Shelke)

  • mgr/volumes: 修复幂等子卷 rm (pr#46139, Kotresh HR)

  • mgr/volumes: 修复 FIPS 启用系统中的子卷创建问题 (pr#47369, Kotresh HR)

  • mgr/volumes: 从“snapshot info”输出中删除不正确的“size” (pr#46803, Nikhilkumar Shelke)

  • mgr/volumes: 设置、获取、列出和删除快照元数据 (pr#46515, Nikhilkumar Shelke)

  • mgr/volumes: 设置、获取、列出和删除子卷元数据 (pr#45961, Nikhilkumar Shelke)

  • mgr/volumes: 在 clone status 命令中显示克隆失败原因 (pr#45928, Kotresh HR)

  • mgr/volumes: 如果组名为“_nogroup”,则 subvolume ls 命令崩溃 (pr#46806, Nikhilkumar Shelke)

  • mgr/volumes: 子卷组配额 (pr#46668, Kotresh HR)

  • mgr: 放宽“pending_service_map.epoch > service_map.epoch”断言 (pr#46688, Mykola Golub)

  • 镜像快照调度和垃圾桶清除调度修复 (pr#46778, Ilya Dryomov)

  • mon/ConfigMonitor: 修复带空格的 config get 键 (pr#47380, Nitzan Mordechai)

  • mon/Elector.cc: 将 peer >= rank_size 健全性检查压缩到 send_peer_ping 中 (pr#49444, Kamoltat)

  • mon/Elector: 在 ping 对等监视器时添加了健全性检查 (pr#48320, Kamoltat)

  • mon/Elector: 改变我们处理 removed_ranks 和 notify_rank_removed() 的方式 (pr#49312, Kamoltat)

  • mon/Elector: notify_rank_removed 为最高排名的 MON 从 live_pinging 和 dead_pinging 集中删除 rank (pr#47087, Kamoltat)

  • mon/MDSMonitor: 修复 standby-replay mds 意外地从 MDSMap 中删除的问题 (pr#48270, 胡玮文)

  • mon/OSDMonitor: 在 mon.go_recovery_stretch_mode() 之前添加额外检查 (pr#48803, Kamoltat)

  • mon/OSDMonitor: 确保 kvmon() 在处理“osd new”命令之前可写 (pr#46691, Sridhar Seshasayee)

  • mon/OSDMonitor: 在拉伸模式下正确设置 last_force_op_resend (pr#45870, Ilya Dryomov)

  • mon: 允许集群 mkfs 后有一个 MON_DOWN 宽限期 (pr#48558, Sage Weil)

  • monitoring/ceph-mixin: 将 RGW 主机添加到标签信息 (pr#48035, Tatjana Dehler)

  • monitoring/ceph-mixin: OSD 概述拼写修正 (pr#47386, Tatjana Dehler)

  • mount/conf: 修复 IPv6 解析 (pr#46112, Matan Breizman)

  • msg: 修复处理现有但已关闭的 v2 连接时的死锁 (pr#48254, Radosław Zarzyński)

  • msg: 修复 Windows IPv6 支持 (pr#47303, Lucian Petrut)

  • msg: 当 Throttle::get_or_fail() 失败时记录更高级别 (pr#47764, Brad Hubbard)

  • msg: 在适当的线程中重置 ProtocolV2 的帧汇编器 (pr#48255, Radoslaw Zarzynski)

  • os/bluestore: 为 Allocators 的 dump 方法正确加锁 (pr#48167, Igor Fedotov)

  • os/bluestore: 添加 bluefs-import 命令 (pr#47875, Adam Kupczyk, zhang daolong)

  • os/bluestore: 始终在 AVL 近似匹配搜索中更新游标位置 (pr#46642, Mark Nelson)

  • os/bluestore: 提高 perf 输出的可读性 (pr#47259, Adam Kupczyk)

  • os/bluestore: BlueFS: 协调日志读写模式 (pr#49431, Adam Kupczyk)

  • os/bluestore: 不向 bluefs 日志发送已删除脏文件的信号 (pr#48168, Igor Fedotov)

  • os/bluestore: 修复 bluestore_cache_other mempool 中的 AU 计数问题 (pr#47337, Igor Fedotov)

  • os/bluestore: 修复 BlueFS 和 BlueStore 延迟写入之间的冲突 (pr#47296, Adam Kupczyk)

  • os/bluestore: 修复卷选择器中不正确的 bluefs 日志大小跟踪 (pr#45408, Igor Fedotov)

  • os/bluestore: 摆脱 pinned entry 的虚假 onode nref 增量 (pr#47556, Igor Fedotov)

  • os/bluestore: bluefs 日志的增量更新模式 (pr#48915, Adam Kupczyk)

  • os/bluestore: 更新性能计数器优先级 (pr#47095, Laura Flores)

  • os/bluestore: 在 BlueStore::_write_bdev_label 中使用直接写入 (pr#48278, luo rixin)

  • osd, mds: 修复“heap”管理命令总是打印到错误流的问题 (pr#48106, Radoslaw Zarzynski)

  • osd, tools, kv: 累积重复项的非激进在线修剪 (pr#47701, Radoslaw Zarzynski, Nitzan Mordechai)

  • osd/PGLog.cc: 按条目数量修剪重复项 (pr#46252, Nitzan Mordechai)

  • osd/scrub: 将 PG 标记为正在 scrub,从 scrub 启动到 Inacti… (pr#46767, Ronen Friedman)

  • osd/scrub: 重新引入 scrub starts 消息 (pr#48070, Prashant D)

  • osd/scrub: 在请求副本时使用实际的活动集 (pr#48544, Ronen Friedman)

  • osd/SnapMapper: 修复 snapmapper 类中的旧键转换 (pr#47134, Manuel Lausch, Matan Breizman)

  • osd: 添加 created_at 元数据 (pr#49144, Alex Marangone)

  • osd: 修复调用 recover_object() 时错误的输入 (pr#46120, Myoungwon Oh)

  • osd: 记录 PG 日志中“dups”条目的数量 (pr#46608, Radoslaw Zarzynski)

  • osd: 删除消息上无效的 put 操作 (pr#47525, Nitzan Mordechai)

  • osd: 当 OSD 没有 PG 时将 per_pool_stats 设置为 true (pr#48250, jindengke, lmgdlmgd)

  • osd/scrub: 延迟到达的保留授权不是错误 (pr#46873, Ronen Friedman)

  • osd/scrubber/pg_scrubber.cc: 修复 scrub 机器卡住的错误 (pr#46845, Cory Snyder)

  • PendingReleaseNotes: 文档 PG Log 的在线和离线修剪… (pr#48020, Radoslaw Zarzynski)

  • pybind/cephfs: 修正语法 (pr#48982, Zac Dover)

  • pybind: 修正 cephfs.pyx 中的拼写错误 (pr#48953, Zac Dover)

  • pybind/mgr/cephadm/serve: 不删除导致 qa 失败的 ceph.conf (pr#46974, Dhairya Parmar)

  • pybind/mgr/dashboard: 将 pytest 移动到 requirements.txt 中 (pr#48081, Kefu Chai)

  • pybind/mgr/pg_autoscaler: 将重叠的根更改为警告 (pr#47522, Kamoltat)

  • pybind/mgr: 修复 flake8 (pr#47393, Avan Thakkar)

  • pybind/mgr: 升级 tox 版本后修复 (pr#49363, Adam King, Kefu Chai)

  • pybind/mgr: tox 和测试修复 (pr#49542, Kefu Chai)

  • pybind/rados: 通知回调重新连接 (pr#48112, Nitzan Mordechai)

  • pybind: 为 rados_write_op_omap_cmp 添加包装器 (pr#48376, Sandy Kaur)

  • python-common: 在 SizeMatcher 中添加“KB”到支持的后缀 (pr#48243, Tim Serong)

  • python-common: 允许从 osd 服务规范设置 crush 设备类 (pr#46555, Cory Snyder)

  • qa/cephadm: 在 test_cephadm.sh 中引导之前删除 fsid 目录 (pr#48101, Adam King)

  • qa/cephfs: 回退到旧的 get_op_read_count 方式 (pr#46901, Dhairya Parmar)

  • qa/import-legacy: 为 nautilus ceph 安装 python3 包 (pr#47528, Xiubo Li)

  • qa/suites/rados/thrash-erasure-code-big/thrashers: 向 mapgap 和 pggrow 添加 osd max backfills 设置 (pr#46391, Laura Flores)

  • qa/suites/rbd/pwl-cache: 确保恢复实际经过测试 (pr#47128, Ilya Dryomov, Yin Congmin)

  • qa/suites/rbd: 禁用 dynamic_features_no_cache 的工作单元超时 (pr#47158, Ilya Dryomov)

  • qa/suites/rbd: 将缓存文件放置在 tmpfs 上进行 xfstests (pr#46597, Ilya Dryomov)

  • qa/tasks/ceph_manager.py: 增加 test_pool_min_size 超时时间 (pr#47446, Kamoltat)

  • qa/tasks/kubeadm: 通过 kubectl create 设置 tigera 资源 (pr#48097, John Mulligan)

  • qa/tasks/rbd_fio: 将默认值提升到 fio 3.32 (pr#48385, Ilya Dryomov)

  • qa/workunits/cephadm: 更新 test_repos master -> main (pr#47320, Adam King)

  • qa/workunits/rados: 在 curl 命令中指定重定向 (pr#49139, Laura Flores)

  • qa: 修复 test_subvolume_group_ls_filter_internal_directories (pr#48328, Kotresh HR)

  • qa: 修复 test_subvolume_snapshot_info_if_orphan_clone (pr#48647, Kotresh HR)

  • qa: 修复 test_subvolume_snapshot_info_if_orphan_clone (pr#48417, Kotresh HR)

  • qa: 修复 teuthology master 分支引用 (pr#46504, Ernesto Puerta)

  • qa: 在测试中忽略磁盘配额超出失败 (pr#48165, Nikhilkumar Shelke)

  • qa: 删除 .teuthology_branch 文件 (pr#46490, Jeff Layton)

  • qa: 仅在 centos 上运行 e2e 测试 (pr#49337, Kefu Chai)

  • qa: 切换回 qemu-xfstests 的 git 协议 (pr#49543, Ilya Dryomov)

  • qa: 切换到 repos 服务器的 https 协议 (pr#49470, Xiubo Li)

  • qa: 等待 rank 0 进入 up:active 状态后挂载 fuse 客户端 (pr#46802, Xiubo Li)

  • qa: 添加文件系统/文件同步卡住测试支持 (pr#46425, Xiubo Li)

  • radosgw-admin: 'reshard list' 不记录 ENOENT 错误 (pr#45451, Casey Bodley)

  • rbd-fuse: librados 将从命令行过滤掉 -r 选项 (pr#46953, wanwencong)

  • rbd-mirror: 重启增量同步时不要修剪非主快照 (pr#46590, Ilya Dryomov)

  • rbd-mirror: 如果远程镜像不是主镜像,通常跳过重放/重新同步 (pr#46813, Ilya Dryomov)

  • rbd-mirror: 删除虚假的 completed_non_primary_snapshots_exist 检查 (pr#47118, Ilya Dryomov)

  • rbd-mirror: 快照重放器中发生错误时恢复挂起关闭 (pr#47913, Ilya Dryomov)

  • rbd: 设备映射/取消映射 --namespace 处理修复 (pr#48459, Ilya Dryomov, Stefan Chivu)

  • rbd: 除非指定了命名空间,否则不要将空存储池名称默认为空 (pr#47143, Ilya Dryomov)

  • rbd: find_action() 应首先排序操作 (pr#47583, Ilya Dryomov)

  • rgw: Swift retarget 需要在对象上设置桶 (pr#47230, Daniel Gryniewicz)

  • rgw/backport/pacific: 修复 Sync policy API 的崩溃问题 (pr#47994, Soumya Koduri)

  • rgw/notifications: 多部分上传通知行为的变化 (pr#47175, Kalpesh Pandya)

  • rgw/rgw_string.h: 为 alpine 和 boost 1.75 添加缺失的 include (pr#47304, Duncan Bellamy)

  • rgw/sts: 添加 aws:RequestTags 作为一部分的代码 (pr#47746, Kalpesh Pandya, Pritha Srivastava)

  • rgw: 解决对象 puts 可能写入已退役分片的错误 (pr#48663, J. Eric Ivancich)

  • rgw: 匿名访问时从 uri 获取更好的租户 ID (pr#47341, Rafał Wądołowski, Marcus Watts)

  • rgw: 在 RGWRadosBILogTrimCR 中检查桶分片初始化状态 (pr#44907, Mykola Golub)

  • rgw: 在 check_disk_state 时检查对象 storage_class (pr#46579, Huber-ming)

  • rgw: 数据同步使用 yield_spawn_window() (pr#45713, Casey Bodley)

  • rgw: 不允许删除锁定的对象版本 (pr#47041, Igor Fedotov)

  • rgw: 修复调用 get_obj_head_ioctx 时 bool/int 逻辑错误 (pr#48230, J. Eric Ivancich)

  • rgw: 修复数据移出后变量被引用的错误 (pr#48229, J. Eric Ivancich)

  • rgw: 修复由于网络抖动导致的数据损坏 (pr#48274, Shasha Lu)

  • rgw: 修复 ChangeStatus 中的数据竞争 (pr#47196, Adam C. Emerson)

  • rgw: 修复 ListBucketMultiparts 响应与共同前缀的问题 (pr#44558, Casey Bodley)

  • rgw: 修复 realm 重新加载时 OpsLogRados::log 中的段错误 (pr#45410, Cory Snyder)

  • rgw: 修复 RGWCopyObj 优化中的自比较 (pr#43802, Casey Bodley)

  • rgw: 防止格式错误的桶 URL (pr#47194, Adam C. Emerson)

  • rgw: 初始化 rgw_log_entry::identity_type (pr#49142, Casey Bodley)

  • rgw: 在 ops 日志中记录访问密钥 ID (pr#46622, Cory Snyder)

  • rgw: 在多对象删除请求中记录单个对象的删除状态 (pr#48348, Cory Snyder)

  • rgw: 在 RGWRadosObject::get_obj_state 方法中维护对象实例 (pr#47266, Casey Bodley, Cory Snyder)

  • rgw: OpsLogFile::stop() 在互斥锁下发出信号 (pr#46039, Casey Bodley)

  • rgw: 删除 rgw_rados_pool_pg_num_min 及其在创建存储池时使用集群默认 pg_num_min 的用法 (pr#46235, Casey Bodley)

  • rgw: 在 sighup 上重新打开 ops 日志文件 (pr#46619, Cory Snyder)

  • rgw: 在连续完成多部分请求时返回 OK (pr#45486, Mark Kogan)

  • rgw: RGWCoroutine::set_sleeping() 检查空栈 (pr#46040, Or Friedmann, Casey Bodley)

  • rgw: 将 gc 链拆分为更小的部分以防止 (pr#48240, Pritha Srivastava)

  • rgw: x-amz-date 更改破坏了 aws sig v4 的某些情况 (pr#48313, Marcus Watts)

  • rgw: 在 FIPS 启用时,修复执行 s3 多部分 PUT 时的段错误 (pr#46715, Mark Kogan)

  • rgw_reshard: 删除名称为空的 olh 条目 (pr#45847, Dan van der Ster, Casey Bodley)

  • rgw_rest_user_policy: 修复 GetUserPolicy 和 ListUserPolicies 响应 (pr#47234, Sumedh A. Kulkarni)

  • rgwlc: 当 !next_key_name 时不要错误地过期删除标记 (pr#47231, Matt Benjamin)

  • rgwlc: 修复 lc 期间重新分片时的段错误 (pr#46744, Mark Kogan)

  • rpm: 在 Centos 9 Stream 上使用系统 libpmem (pr#46211, Ilya Dryomov)

  • run-make-check.sh: 启用 RBD 持久缓存 (pr#45991, Ilya Dryomov)

  • SimpleRADOSStriper: 在 read() 中使用 deque 避免移动 bufferlists (pr#48187, Matan Breizman)

  • test/bufferlist: 确保 rebuild_aligned_size_and_memory() 总是重新构建 (pr#46215, Radoslaw Zarzynski)

  • test/cli-integration/rbd: iSCSI REST API 响应不再漂亮打印 (pr#47920, Ilya Dryomov)

  • test/{librbd, rgw}: 增加绑定尝试之间和绑定的次数 (pr#48024, Ilya Dryomov, Kefu Chai)

  • test: 增加 DecayCounter.steady 可接受错误 (pr#48031, Patrick Donnelly)

  • test: 修复 TierFlushDuringFlush 等待 dedup_tier 在 bas… 上设置 (issue#53855, pr#46748, Myoungwon Oh, Sungmin Lee)

  • test: 不直接使用 nose (pr#46255, Steve Kowalik, Kefu Chai)

  • tooling: 更改 mrun 以使用 bash (pr#46077, Adam C. Emerson)

  • tools: ceph-objectstore-tool 能够单独修剪 pg 日志重复条目 (pr#46631, Radosław Zarzyński, Radoslaw Zarzynski)

  • 更新以修复 make check 失败 (pr#47803, Tim Serong, Kefu Chai, Willem Jan Withagen, Nathan Cutler, Boris Ranto, Laura Flores, Pete Zaitcev)

  • v16.2.10 (pr#47220, Kotresh HR, Seena Fallah)

  • v16.2.9 (pr#46336, Cory Snyder)

  • win32_deps_build.sh: master -> main for wnbd (pr#46762, Ilya Dryomov)

v16.2.10 Pacific

这是一个热修复版本,解决了两个安全漏洞。

Notable Changes

  • 曾经运行 OpenStack Manila 导出原生 CephFS 并且将其 Ceph 集群从 Nautilus(或更早版本)升级到更高主要版本的用户容易受到恶意用户的攻击。该漏洞允许用户访问 CephFS 文件系统层次结构的任意部分,而不是被正确限制在自己的子卷中。该漏洞是由于 Ceph Manager 中“volumes”插件中的一个错误。该插件负责管理 Ceph 文件系统子卷,OpenStack Manila 服务将其用作向 Manila 用户提供共享的方式。

    通过此热修复,该漏洞已得到修复。担心可能受到影响的管理员应审计其集群中的 CephX 密钥以确保正确的路径限制。

    再次强调,此漏洞仅影响提供原生 CephFS 访问权限给其用户的 OpenStack Manila 集群。

  • 一个回归导致 s3website 请求(不引用桶)的空指针解引用,导致 RGW 段错误。

Changelog

v16.2.9 Pacific

这是 Pacific 系列中的一个热修复版本,旨在解决 16.2.8 中可能导致 MGR 死锁的错误。参见 https://tracker.ceph.com/issues/55687

Changelog

  • mgr/ActivePyModules.cc: 修复在尝试锁定互斥体时 GIL 被持有的情况 (pr#46302, Cory Snyder)

v16.2.8 Pacific

这是 Pacific 系列的第八个反向移植版本。

Notable Changes

  • MON/MGR: 存储池现在可以使用 --bulk 标志创建。任何使用 bulk 创建的存储池都将使用 pg_autoscaler 的配置文件,该配置文件从一开始就提供更好的性能。但是,任何没有 --bulk 标志创建的存储池将默认保持其旧行为。有关更多详细信息,请参阅

    https://docs.ceph.net.cn/en/latest/rados/operations/placement-groups/

  • MGR: pg_autoscaler 现在可以使用 noautoscale 标志全局打开和关闭。默认情况下,此标志未设置,默认 pg_autoscale 模式保持不变。有关更多详细信息,请参阅

    https://docs.ceph.net.cn/en/latest/rados/operations/placement-groups/

  • 如果集群升级后 require-osd-release 标志未设置为适当的版本,现在将报告健康警告。

  • CephFS: 当使用多个活动 MDS 时升级 Ceph 元数据服务器需要确保除 rank 0 之外的活动 rank 没有挂起的作为目录的孤立条目。参见 从 Octopus 或 Nautilus 升级

更新日志

  • [Revert] bluestore: 在 rocksdb omap 迭代器上设置上限和下限 (pr#46092, Neha Ojha)

  • admin/doc-requirements: 将 sphinx 升级到 4.4.0 (pr#45876, Kefu Chai)

  • auth,mon: 在给定密钥时不要记录“无法找到密钥环”错误 (pr#43313, Ilya Dryomov)

  • 反向移植 nbd cookie 支持 (pr#45582, Prasanna Kumar Kalever)

  • 监控相关 PRs 的反向移植 (pr#45980, Pere Diaz Bou, Travis Nielsen, Aashish Sharma, Nizamudeen A, Arthur Outhenin-Chalandre)

  • bluestore: 在 rocksdb omap 迭代器上设置上限和下限 (pr#45963, Cory Snyder)

  • build: 添加一些调试消息 (pr#45753, David Galloway)

  • build: install-deps 在 docker 构建中失败 (pr#45849, Nizamudeen A, Ernesto Puerta)

  • ceph-fuse: 如果 test_dentry_handling 失败则执行清理 (pr#45351, Nikhilkumar Shelke)

  • ceph-volume: 传递的设备有分区时中止 (pr#45146, Guillaume Abrioux)

  • ceph-volume: 不在 find_executable_on_host() 中使用 MultiLogger (pr#44701, Guillaume Abrioux)

  • ceph-volume: 修复 inventory 的“KeyError”错误 (pr#44884, Guillaume Abrioux)

  • ceph-volume: 修复通过 #43536 引入的回归 (pr#44644, Guillaume Abrioux)

  • ceph-volume: 修复 lvm list 中标签字典输出 (pr#44767, Guillaume Abrioux)

  • ceph-volume: 遵守 osd_dmcrypt_key_size 选项 (pr#44973, Guillaume Abrioux)

  • ceph-volume: human_readable_size() 重构 (pr#44209, Guillaume Abrioux)

  • ceph-volume: 改进 mpath 设备支持 (pr#44789, Guillaume Abrioux)

  • ceph-volume: 使跳过 needs_root() 成为可能 (pr#44319, Guillaume Abrioux)

  • ceph-volume: 显示 RBD 设备不可用 (pr#44708, Michael Fritch)

  • ceph/admin: s/master/main (pr#45596, Zac Dover)

  • Cephadm Pacific 批量反向移植四月 (pr#45919, Adam King, Teoman ONAY, Redouane Kachach, Lukas Mayer, Melissa Li)

  • Cephadm Pacific 批量反向移植三月 (pr#45716, Adam King, Redouane Kachach, Matan Breizman, wangyunqing)

  • cephadm/ceph-volume: 不在容器中使用 lvm 二进制文件 (pr#43954, Guillaume Abrioux, Sage Weil)

  • cephadm: _parse_ipv6_route: 修复解析没有路由的 ifs (pr#44877, Sebastian Wagner)

  • cephadm: 向 ceph-volume 子命令添加 shared_ceph_folder 选项 (pr#44880, Guillaume Abrioux)

  • cephadm: 解析 cli 后检查 cephadm 是否为 root (pr#44634, John Mulligan)

  • cephadm: 重新部署时更改 prometheus 数据目录的所有者 (pr#45046, Michael Fritch)

  • cephadm: 处理 normalize_image_digest 中的歧义 (pr#44632, Sebastian Wagner)

  • cephadm: 修复损坏的遥测文档链接 (pr#45803, Laura Flores)

  • cephadm: 在拉取期间推断默认容器镜像 (pr#45569, Michael Fritch)

  • cephadm: 使 extract_uid_gid 错误更具可读性 (pr#44528, Sebastian Wagner)

  • cephadm: 十一月批处理 2 (pr#44446, Sage Weil, Adam King, Sebastian Wagner, Melissa Li, Michael Fritch, Guillaume Abrioux)

  • cephadm: 传递 CEPH_VOLUME_SKIP_RESTORECON=yes (反向移植) (pr#44248, Guillaume Abrioux)

  • cephadm: 升级期间保留 authorized_keys 文件 (pr#45355, Michael Fritch)

  • cephadm: 删除容器 pids-limit (pr#45580, Ilya Dryomov, Teoman ONAY)

  • cephadm: 还原 pids 限制 (pr#45936, Adam King)

  • cephadm: 验证构建的 YumDnf baseurl 是否可用 (pr#44882, John Mulligan)

  • cls/journal: 计算 min_commit_position 时跳过断开连接的客户端 (pr#44690, Mykola Golub)

  • cls/rbd: GroupSnapshotNamespace 比较器违反排序规则 (pr#45075, Ilya Dryomov)

  • cmake/modules: 始终使用命令行中指定的 python3 (pr#45967, Kefu Chai)

  • cmake: 在构建 dpdk 时传递 RTE_DEVEL_BUILD=n (pr#45262, Kefu Chai)

  • common/PriorityCache: 子模块的低性能计数器优先级 (pr#44175, Igor Fedotov)

  • common: 避免 pthread_mutex_unlock 两次 (pr#45464, Dai Zhiwei)

  • common: 修复由于 dout & need_dynamic 在 GCC-12 上 FTBFS (pr#45373, Radoslaw Zarzynski)

  • common: 修复 PriorityCache 性能计数器中缺失名称的问题 (pr#45588, Laura Flores)

  • common: 用包装器结构替换 BitVector::NoInitAllocator (pr#45179, Casey Bodley)

  • crush: 修复 update_from_hook 中的段错误 (pr#44897, Adam Kupczyk)

  • doc/cephadm: 添加 CentOS Stream 安装说明 (pr#44996, Patrick C. F. Ernzer)

  • doc/cephadm: 守护进程的共存 (pr#44879, Sebastian Wagner)

  • doc/cephadm: Doc 反向移植 (pr#44525, Foad Lind, Sebastian Wagner)

  • doc/cephadm: 稍微改进开发文档 (pr#44636, Radoslaw Zarzynski)

  • doc/cephadm: 删除重复的部署场景部分 (pr#44660, Melissa Li)

  • doc/dev: s/repostory/repository/ (真的) (pr#45789, Zac Dover)

  • doc/start: 添加测试支持信息 (pr#45989, Zac Dover)

  • doc/start: 包含 A. D’Atri 的硬件推荐 (pr#45298, Zac Dover)

  • doc/start: 从硬件推荐中删除日志信息 (pr#45123, Zac Dover)

  • doc/start: 从硬件推荐中删除 osd 存根 (pr#45316, Zac Dover)

  • doc: cephFS 挂载的先决条件修复 (pr#44272, Nikhilkumar Shelke)

  • doc: 使用较旧的 mistune (pr#44226, David Galloway)

  • 在引导时为 osd_memory_target 启用自动调优 (pr#44633, Melissa Li)

  • krbd: 未找到初始监视器地址时返回错误 (pr#45003, Burt Holzman)

  • librados: 在 pool_reverse_lookup() 中对 ENOENT 检查最新 osdmap (pr#45586, Ilya Dryomov)

  • librbd/cache/pwl: 其他向后移植 (pr#44199, Jianpeng Ma, Jason Dillaman)

  • librbd: 快速 diff 模式下 diff-iterate 报告的偏移量不正确 (pr#44547, Ilya Dryomov)

  • librbd: 修复 list_descendants() 中 ictx 的 use-after-free 问题 (pr#44999, Ilya Dryomov, Wang ShuaiChao)

  • librbd: 修复各种内存泄漏 (pr#44998, Or Ozeri)

  • librbd: 使快速 diff 模式下的 diff-iterate 对报告的 extent 进行排序和合并 (pr#45638, Ilya Dryomov)

  • librbd: readv/writev 修复 iovecs 长度计算溢出 (pr#45561, Jonas Pfefferle)

  • librbd: 恢复快速 diff 模式下 diff-iterate 的 include_parent 功能 (pr#44594, Ilya Dryomov)

  • librgw: 使 rgw 文件句柄版本化 (pr#45495, Xuehan Xu)

  • librgw: 在挂载时将空根路径视为“/” (pr#43968, Matt Benjamin)

  • mds,client: 添加新的 getvxattr 操作 (pr#45487, Milind Changire)

  • mds: 添加 mds_dir_max_entries 配置选项 (pr#44512, Yongseok Oh)

  • mds: 响应链接请求后立即返回 (pr#44620, Xiubo Li)

  • mds: 当路径为空时转储树“/” (pr#44622, Xiubo Li)

  • mds: 确保在 cap 消息中发送 btime (pr#45163, Jeff Layton)

  • mds: 如果 destdn 的目录已满 (ENOSPC),则无法重新集成游离文件 (pr#44513, Patrick Donnelly)

  • mds: 修复 expire_recursive 中的段错误 (pr#45099, 胡玮文)

  • mds: 在跟踪操作延迟时忽略未知客户端操作 (pr#44975, Venky Shankar)

  • mds: 当 mds 执行 ms_handle_remote_reset 时终止会话 (issue#53911, pr#45100, YunfeiGuan)

  • mds: mds_oft_prefetch_dirfrags 默认为 false (pr#45016, Dan van der Ster)

  • mds: 打开与 up:replay/up:creating 守护程序的连接导致消息丢失 (pr#44296, Patrick Donnelly)

  • mds: PurgeQueue.cc 修复 32 位编译问题 (pr#44168, Duncan Bellamy)

  • mds: 递归 scrub 不会触发游离文件重新集成 (pr#44514, Patrick Donnelly)

  • mds: 移除重复或不正确的响应 (pr#44623, Xiubo Li)

  • mds: 在每个 MDSContext complete() 中重置心跳 (pr#44551, Xiubo Li)

  • mgr/autoscaler: 引入 noautoscale 标志 (pr#44540, Kamoltat)

  • mgr/cephadm/iscsi: 在 post_remove 中使用 mon_command 而不是 check_mon_command (pr#44830, Melissa Li)

  • mgr/cephadm: 从旧版本升级时添加 client.admin 密钥环 (pr#44625, Sebastian Wagner)

  • mgr/cephadm: 添加 keep-alive 请求到 ssh 连接 (pr#45632, Adam King)

  • mgr/cephadm: 添加 snmp-gateway 服务支持 (pr#44529, Sebastian Wagner, Paul Cuzner)

  • mgr/cephadm: 允许在服务级别使用杂项容器参数 (pr#44829, Adam King)

  • mgr/cephadm: 部署服务时自动启用镜像模块 (pr#44661, John Mulligan)

  • mgr/cephadm: 避免重复调用 get_module_option (pr#44535, Sage Weil)

  • mgr/cephadm: 阻止排空最后一个 _admin 主机 (pr#45229, Adam King)

  • mgr/cephadm: 阻止移除最后一个 _admin 标签实例 (pr#45231, Adam King)

  • mgr/cephadm: 如果是最后一个集群,则删除 ceph.target (pr#45228, Redouane Kachach)

  • mgr/cephadm: 将 extra_container_args 扩展到其他服务类型 (pr#45234, Adam King)

  • mgr/cephadm: 修复现有 osd 设备上的“cephadm osd activate” (pr#44627, Sage Weil)

  • mgr/cephadm: 修复“mgr/cephadm: spec.virtual_ip 参数应由 ingress 守护程序使用” (pr#44628, Guillaume Abrioux, Francesco Pantano, Sebastian Wagner)

  • mgr/cephadm: 修复具有 OSD 规范的 OSD 计数 (pr#44629, Sebastian Wagner)

  • mgr/cephadm: 修复 Dry-Runs 消息中的细微语法错误 (pr#44637, James McClune)

  • mgr/cephadm: 修复 tcmu-runner cephadm_stray_daemon (pr#44630, Melissa Li)

  • mgr/cephadm: 修复 test_facts (pr#44530, Sebastian Wagner)

  • mgr/cephadm: 配置检查失败时减少日志噪音 (pr#44526, Sage Weil)

  • mgr/cephadm: nfs 迁移: 避免端口冲突 (pr#44631, Sebastian Wagner)

  • mgr/cephadm: 显示无效格式错误 (pr#45226, Redouane Kachach)

  • mgr/cephadm: 将容器注册表凭据存储在 config-key 中 (pr#44658, Daniel Pivonka)

  • mgr/cephadm: 尝试获取配置文件的 FQDN (pr#45620, Tatjana Dehler)

  • mgr/cephadm: 更新监控堆栈版本 (pr#45940, Aashish Sharma, Ernesto Puerta)

  • mgr/cephadm: 验证 MDS 的 service_id (pr#45227, Redouane Kachach)

  • mgr/dashboard: 如果集群已经正常运行,不应显示“请先扩展您的集群” (pr#45044, Volker Theile)

  • mgr/dashboard: 为 API 文档 (SwaggerUI) 添加测试覆盖 (pr#44533, Alfonso Martínez)

  • mgr/dashboard: 如果 disk_usage=null 且启用了快速 diff,则避免工具提示 (pr#44149, Avan Thakkar)

  • mgr/dashboard: cephadm e2e 作业改进 (pr#44938, Nizamudeen A, Alfonso Martínez)

  • mgr/dashboard: cephadm e2e 作业: 改进 (pr#44382, Alfonso Martínez)

  • mgr/dashboard: 将隐私协议字段从必需更改为可选 (pr#45052, Avan Thakkar)

  • mgr/dashboard: 集群扩展 - 审查部分: 修复和改进 (pr#44389, Aashish Sharma)

  • mgr/dashboard: 按设备比较 MTU 警报值 (pr#45813, Aashish Sharma, Patrick Seidensal)

  • mgr/dashboard: 如果降级对象少于 0.5%,则在“仪表板->容量->对象块”下不显示降级对象 (pr#44091, Aashish Sharma)

  • mgr/dashboard: 仪表板在配置报告时关闭遥测 (pr#45111, Sarthak0702, Aaryan Porwal)

  • mgr/dashboard: 集群主机页面中的数据表在选择时隐藏错误的列 (pr#45861, Sarthak0702)

  • mgr/dashboard: Ceph 文件系统仪表板上无法使用目录菜单 (pr#45028, Sarthak0702)

  • mgr/dashboard: 将守护程序操作扩展到主机详细信息 (pr#45721, Nizamudeen A)

  • mgr/dashboard: 修复 pip 导致的 api 测试问题 (pr#45880, Ernesto Puerta)

  • mgr/dashboard: 修复前端依赖项漏洞 (pr#44297, Alfonso Martínez)

  • mgr/dashboard: 修复 Grafana OSD/主机面板 (pr#44775, Patrick Seidensal)

  • mgr/dashboard: 修复 orchestrator/02-hosts-inventory.e2e 失败 (pr#44467, Nizamudeen A)

  • mgr/dashboard: 修复仪表板 cephadm e2e 作业中的超时错误 (pr#44468, Nizamudeen A)

  • mgr/dashboard: 修复 Safari 上的白屏问题 (pr#45301, 胡玮文)

  • mgr/dashboard: 修复: 从单守护程序设备获取 SMART 数据 (pr#44597, Alfonso Martínez)

  • mgr/dashboard: 在集群日志中高亮显示搜索文本 (pr#45678, Sarthak0702)

  • mgr/dashboard: 在仪表板中实现主机排空功能 (pr#44376, Nizamudeen A)

  • mgr/dashboard: 改进 osd nearfull、full 的通知 (pr#44876, Aashish Sharma)

  • mgr/dashboard: 改进“/api/grafana/validation”API 端点的错误消息 (pr#45956, Volker Theile)

  • mgr/dashboard: 引入 RGW 的 HAProxy 指标 (pr#44273, Avan Thakkar)

  • mgr/dashboard: 为 API 文档引入单独的前端组件 (pr#44400, Aashish Sharma)

  • mgr/dashboard: 登录页面上的语言下拉框部分隐藏 (pr#45618, Volker Theile)

  • mgr/dashboard: 监控: 将 BlueStore onode 命中/未命中计数器实现到仪表板中 (pr#44650, Aashish Sharma)

  • mgr/dashboard: NFS 不存在文件的清理 (pr#44046, Alfonso Martínez)

  • mgr/dashboard: NFS 页面显示“页面未找到” (pr#45723, Volker Theile)

  • mgr/dashboard: UI 顶部的通知横幅具有固定高度 (pr#44756, Nizamudeen A, Waad AlKhoury)

  • mgr/dashboard: 执行守护程序操作 (pr#45203, Pere Diaz Bou)

  • mgr/dashboard: 从 Transifex 拉取最新翻译 (pr#45418, Volker Theile)

  • mgr/dashboard: 重构仪表板 cephadm 检查 (pr#44652, Nizamudeen A)

  • mgr/dashboard: 如果选定的网关关闭,则 RGW 用户和存储桶表为空 (pr#45868, Volker Theile)

  • mgr/dashboard: run-backend-api-tests.sh: 较旧的 setuptools (pr#44377, David Galloway)

  • mgr/dashboard: 为 applitools 设置适当的基线分支 (pr#44935, Nizamudeen A)

  • mgr/dashboard: 支持通过 UI 创建 snmp-gateway 服务 (pr#44977, Avan Thakkar)

  • mgr/dashboard: 表列隐藏修复 (issue#51119, pr#45725, Daniel Persson)

  • mgr/dashboard: 将 Angular 版本更新到 12 (pr#44534, Ernesto Puerta, Nizamudeen A)

  • mgr/dashboard: 将 Cypress 升级到最新的稳定版本 (pr#44086, Sage Weil, Alfonso Martínez)

  • mgr/dashboard: 使用 -f 进行 npm ci 以跳过 fsevents 错误 (pr#44105, Duncan Bellamy)

  • mgr/devicehealth: 修复时间增量计算中缺失时区的问题 (pr#44325, Yaarit Hatuka)

  • mgr/devicehealth: 在提取磨损等级时跳过空页面 (pr#45151, Yaarit Hatuka)

  • mgr/nfs: 允许动态更新 cephfs nfs 导出 (pr#45543, Ramana Raja)

  • mgr/nfs: 支持在未启用编排的情况下管理导出 (pr#45508, John Mulligan)

  • mgr/orchestrator: 为 orch host ls 添加过滤和计数选项 (pr#44531, Adam King)

  • mgr/prometheus: 为 Pools DF Prometheus mgr 模块添加 avail_raw 字段 (pr#45236, Konstantin Shalygin)

  • mgr/prometheus: 为 standby 定义模块选项 (pr#44205, Sage Weil)

  • mgr/prometheus: 将 ceph 健康检查公开为指标 (pr#44480, Paul Cuzner, Sebastian Wagner)

  • mgr/prometheus: 修复指标类型从 gauge 到 counter (pr#43187, Patrick Seidensal)

  • mgr/prometheus: 修复导出的每个方法统计信息 (pr#44146, Paul Cuzner)

  • mgr/prometheus: 使 prometheus standby 行为可配置 (pr#43897, Roland Sommer)

  • mgr/rbd_support: 在收集 LevelSpec 时将 pool_id 从 int 转换为 str (pr#45532, Ilya Dryomov)

  • mgr/rbd_support: 修复计划删除 (pr#45005, Sunny Kumar)

  • mgr/snap_schedule: backports (pr#45906, Venky Shankar, Milind Changire)

  • mgr/stats: ceph fs perf stats 命令的异常处理 (pr#44516, Nikhilkumar Shelke)

  • mgr/telemetry: 修复等待 mgr 预热的问题 (pr#45773, Yaarit Hatuka)

  • mgr/volumes: 几个 mgr volumes pacific backports (pr#45205, Kotresh HR)

  • mgr/volumes: 子卷删除和克隆失败修复 (pr#42932, Kotresh HR)

  • mgr/volumes: 'mode' 应遵循幂等子卷创建 (pr#45474, Nikhilkumar Shelke)

  • mgr: 修复 ceph_rgw_* 指标中的 ceph_daemon 标签 (pr#44885, Benoît Knecht)

  • mgr: 修复 MetadataUpdate::finish 的锁定问题 (pr#44212, Sage Weil)

  • mgr: mgr 模块中的 TTL 缓存 (pr#44750, Waad AlKhoury, Pere Diaz Bou)

  • mgr: mgr 可伸缩性的各种修复 (pr#44869, Neha Ojha, Sage Weil)

  • mon/MDSMonitor: 在 MDSMap 中从 v16.2.4 -> v16.2.[567] 启用内联数据时的健全性断言 (pr#44910, Patrick Donnelly)

  • mon/MgrStatMonitor: 不用 service_map 垃圾邮件订阅者 (mgr) (pr#44721, Sage Weil)

  • mon/MonCommands.h: 修复 target_size_ratio 范围 (pr#45397, Kamoltat)

  • mon/OSDMonitor: 如果统计信息不可用,则避免空指针解引用 (pr#44698, Josh Durgin)

  • mon: 设备未找到时中止设备健康检查 (pr#44959, Benoît Knecht)

  • mon: 当 MON_DOWN 时不要快速将 mds 标记为滞后 (pr#43698, Sage Weil, Patrick Donnelly)

  • mon: 自动扩缩器开启时省略 MANY_OBJECTS_PER_PG 警告 (pr#45152, Christopher Hoffman)

  • mon: osd pool create <pool-name> with --bulk flag (pr#44847, Kamoltat)

  • mon: 阻止在关闭期间创建新会话 (pr#44543, Sage Weil)

  • monitoring/grafana: Grafana 查询测试器 (pr#44316, Ernesto Puerta, Pere Diaz Bou)

  • monitoring: 在需求中只提及 PyYAML 一次 (pr#44944, Rishabh Dave)

  • os/bluestore/AvlAllocator: 引入 bluestore_avl_alloc_ff_max_* 选项 (pr#43745, Kefu Chai, Mauricio Faria de Oliveira, Adam Kupczyk)

  • os/bluestore: 避免过早释放 onode (pr#44723, Igor Fedotov)

  • os/bluestore: 使共享 blob fsck 内存占用大大减少 (pr#44613, Igor Fedotov)

  • os/bluestore: 删除无法解码的 Share Blob 时使用正确的​​前缀 (pr#43882, Igor Fedotov)

  • osd/OSD: 将聚合慢操作详情记录到集群日志 (pr#44771, Prashant D)

  • osd/OSDMap.cc: 清理不存在 pg 的 pg_temp (pr#44096, Cory Snyder)

  • osd/OSDMap: 如果 'require-osd-release' != 当前版本,则添加健康警告 (pr#44259, Sridhar Seshasayee, Patrick Donnelly, Neha Ojha)

  • osd/OSDMapMapping: 修复虚假线程池超时错误 (pr#44545, Sage Weil)

  • osd/PeeringState: 分离历史记录的 pruub 和 pg 的 pruub (pr#44584, Sage Weil)

  • osd/PrimaryLogPG.cc: CEPH_OSD_OP_OMAPRMKEYRANGE 应该将 omap 标记为 dirty (pr#45591, Neha Ojha)

  • osd/scrub: 在 PG 销毁前不久销毁 scrub 模块 (pr#45731, Ronen Friedman)

  • osd/scrub: 只告诉 scrub 模块等待的“updates”事件 (pr#45365, Ronen Friedman)

  • osd/scrub: 移除 Scrubber 对象日志对 PG 的依赖 (pr#45729, Ronen Friedman)

  • osd/scrub: 仅在 scrubbing 完成后才重新启动快照修剪 (pr#45785, Ronen Friedman)

  • osd/scrub: 停止发送虚假摘要更新事件 (issue#54423, pr#45194, Ronen Friedman)

  • osd/scrub: 标记副本 scrub 消息以识别陈旧事件 (pr#45374, Ronen Friedman)

  • osd: 添加 pg_num_max 值和 pg_num_max 重新排序 (pr#45173, Kamoltat, Sage Weil)

  • osd: 修复“ceph osd stop <osd.nnn>”不生效的问题 (pr#43955, tan changzhi)

  • osd: 修复整数除法截断整数的问题 (pr#45376, Ronen Friedman)

  • osd: PeeringState: 修复 calc_replicated_acting_stretch 中的选择顺序 (pr#44664, Greg Farnum)

  • osd: 在读取引用计数信息之前恢复不可读快照 (pr#44181, Myoungwon Oh)

  • osd: 要求 osd_pg_max_concurrent_snap_trims > 0 (pr#45323, Dan van der Ster)

  • osd: 仅当 FillInVerifyExtent 成功时才设置 r (pr#44173, yanqiang-ux)

  • osdc: 在 BufferHead 中添加 set_error,当 split 时将 set_error 设置为 right (pr#44725, jiawd)

  • pacific: doc/rados/operations/placement-groups: 修复 --bulk 文档 (pr#45328, Kamoltat)

  • Pacific 快速关闭向后移植 (pr#45654, Sridhar Seshasayee, Nitzan Mordechai, Satoru Takeuchi)

  • pybind/mgr/balancer: 定义 Plan.{dump,show}() (pr#43964, Kefu Chai)

  • pybind/mgr/progress: 对访问事件字典强制执行 try 和 except (pr#44672, Kamoltat)

  • python-common: 为 count 和 count_per_host 添加整数值验证 (pr#44527, John Mulligan)

  • python-common: 改进 OSD spec 错误消息 (pr#44626, Sebastian Wagner)

  • qa/distros/podman: 移除 centos_8.2 和 centos_8.3 (pr#44903, Neha Ojha)

  • qa/rgw: 将失败的 tempest 测试添加到黑名单 (pr#45436, Casey Bodley)

  • qa/rgw: barbican 和 pykmip 任务在安装 pytz 之前升级 pip (pr#45444, Casey Bodley)

  • qa/rgw: 提高 tempest 版本以解决依赖问题 (pr#43966, Casey Bodley)

  • qa/rgw: 修复 vault 令牌文件访问 (issue#51539, pr#43951, Marcus Watts)

  • qa/rgw: 更新 rgw/hadoop-s3a 的 apache-maven 镜像 (pr#45445, Casey Bodley)

  • qa/rgw: 为 rgw/sts 套件使用软链接,目标 supported-random-distro$ (pr#45245, Casey Bodley)

  • qa/run-tox-mgr-dashboard: 不要写入 /tmp/test_sanitize_password… (pr#44727, Kevin Zhao)

  • qa/run_xfstests_qemu.sh: 不运行任何测试时停止报告成功 (pr#44596, Ilya Dryomov)

  • qa/suites/fs: 为 thrasher 套件添加 prefetch_dirfrags false (pr#44504, Arthur Outhenin-Chalandre)

  • qa/suites/orch/cephadm: 也运行 rbd/iscsi 套件 (pr#44635, Sebastian Wagner)

  • qa/tasks/qemu: 确保 block-rbd.so 已安装 (pr#45072, Ilya Dryomov)

  • qa/tasks: 改进 backfill_toofull 测试 (pr#44387, Mykola Golub)

  • qa/tests: 添加 upgrade-clients/client-upgrade-pacific-quincy 测试 (pr#45326, Yuri Weinstein)

  • qa/tests: 将 16.2.6 替换为 16.2.7 版本 (pr#44369, Yuri Weinstein)

  • qa: 调整 MDS 以在验证其可用性之前进行部署 (issue#53857, pr#44639, Venky Shankar)

  • qa: 默认为 CentOS 8 Stream (pr#44889, David Galloway)

  • qa: 对 *_op_timeouts 不使用任何与时间相关的后缀 (pr#44621, Xiubo Li)

  • qa: 对游离测试中的异步 creat 进行 fsync dir (pr#45565, Patrick Donnelly, Ramana Raja)

  • qa: 忽略预期的元数据集群日志错误 (pr#45564, Patrick Donnelly)

  • qa: 增加超时值以等待更长时间 (pr#43979, Xiubo Li)

  • qa: 将 kmip 任务的证书移动到 /etc/ceph (pr#45413, Ali Maredia)

  • qa: 从支持的发行版中移除 centos8 (pr#44865, Casey Bodley, Sage Weil)

  • qa: 升级期间跳过健全性检查 (pr#44840, Milind Changire)

  • qa: 拆分 rados/cephadm/smoke 测试的发行版 (pr#44681, Guillaume Abrioux)

  • qa: 等待清除队列操作完成 (issue#52487, pr#44642, Venky Shankar)

  • radosgw-admin: 如果没有 mdlog 条目,则 'sync status' 不会滞后 (pr#45442, Casey Bodley)

  • rbd 持久缓存 UX 改进 (状态报告、指标、刷新命令) (pr#45895, Ilya Dryomov, Yin Congmin)

  • rbd-mirror: 修复基于快照的镜像删除传播中的竞争条件 (pr#44754, Ilya Dryomov)

  • rbd-mirror: 使镜像正确检测池重放器是否需要重启 (pr#45170, Mykola Golub)

  • rbd-mirror: 使 RemoveImmediateUpdate 测试同步 (pr#44094, Arthur Outhenin-Chalandre)

  • rbd-mirror: 在 ImageReplayer::stop() 中与正在进行的停止同步 (pr#45184, Ilya Dryomov)

  • rbd: 添加缺失的开关参数以便 get_command_spec() 识别 (pr#44742, Ilya Dryomov)

  • rbd: 在帮助输出中将可选位置参数标记为可选 (pr#45008, Ilya Dryomov)

  • rbd: 识别 rxbounce map 选项 (pr#45002, Ilya Dryomov)

  • Revert “mds: kill session when mds do ms_handle_remote_reset” (pr#45557, Venky Shankar)

  • revert bootstrap network handling changes (pr#46085, Adam King)

  • RocksDB 优化迭代器的修复的复活和向后移植 (pr#46096, Adam Kupczyk, Cory Snyder)

  • RGW - Zipper - 使 get_obj_state 中的默认参数匹配 (pr#45438, Daniel Gryniewicz)

  • RGW - Zipper - 确保 PostObj 设置了存储桶 (pr#45060, Daniel Gryniewicz)

  • rgw/admin: 修复 radosgw-admin datalog list max-entries 问题 (pr#45500, Yuval Lifshitz)

  • rgw/amqp: 添加默认情况以消除编译器警告 (pr#45478, Casey Bodley)

  • rgw/amqp: 移除显式“disconnect()”接口 (pr#45427, Yuval Lifshitz)

  • rgw/beast: 请求超时优化 (pr#43946, Mark Kogan, Casey Bodley)

  • rgw/notification: 在 COPY 事件中发送正确的大小 (pr#45426, Yuval Lifshitz)

  • rgw/sts: 在 ops 日志中添加角色名称和角色会话 (pr#43956, Pritha Srivastava)

  • rgw: 在列出 pubsub 主题时添加对象空点判断 (pr#45476, zhipeng li)

  • rgw: 添加 OPT_BUCKET_SYNC_RUN 到 gc_ops_list,以便 (pr#45421, Pritha Srivastava)

  • rgw: 在 PutObjRentention 中添加锁模式转换条件 (pr#45440, wangzhong)

  • rgw: 存储桶 chown 内存使用不良 (pr#45491, Mohammad Fatemipour)

  • rgw: 更改 ListRoles 响应中 xml 元素的顺序 (pr#45448, Casey Bodley)

  • rgw: 清理函数进入日志记录,使其更彻底和一致 (pr#45450, J. Eric Ivancich)

  • rgw: cls_bucket_list_unordered() 可能在 is_truncated 为 true 时每次返回一个冗余条目 (pr#45457, Peng Zhang)

  • rgw: 默认 ms_mon_client_mode = secure (pr#45439, Sage Weil)

  • rgw: 记录 rgw_lc_debug_interval 配置选项 (pr#45453, J. Eric Ivancich)

  • rgw: 记录 S3 存储桶复制支持 (pr#45484, Matt Benjamin)

  • rgw: 以 ISO 8601 格式转储对象锁定保留日期 (pr#44697, Danny Abukalam)

  • rgw: 修复 bi put 未使用正确的存储桶索引分片的问题 (pr#44166, J. Eric Ivancich)

  • rgw: 修复 ObjectCache::get() 中的锁范围问题 (pr#44747, Casey Bodley)

  • rgw: 修复 RGWBulkUploadOp 上传时启用 rgw com… 的 md5 不匹配问题 (pr#45432, yuliyang_yewu)

  • rgw: 修复 rgw.none 统计信息 (pr#45463, J. Eric Ivancich)

  • rgw: 修复 UserAsyncRefreshHandler::init_fetch 中的段错误 (pr#45411, Cory Snyder)

  • rgw: 在多站点中为 RGWDeleteBucketPolicy 和 RGWDeleteBucketPublicAccessBlock 转发请求 (pr#45434, yuliyang_yewu)

  • rgw: 使“bucket check --fix”正确修复 pool id (pr#45455, J. Eric Ivancich)

  • rgw: 在存储桶重新分片列表中,明确新的分片数量是暂定的 (pr#45509, J. Eric Ivancich)

  • rgw: 仅当放置存储桶实例信息成功时才初始化存储桶索引 (pr#45480, Huber-ming)

  • rgw: RadosBucket::get_bucket_info() 更新 RGWBucketEnt (pr#45483, Casey Bodley)

  • rgw: 移除存储桶 API 返回 NoSuchKey 而不是 NoSuchBucket (pr#45489, Satoru Takeuchi)

  • rgw: 解决带有 CLS 过滤的空有序存储桶列表结果 *以及* 存储桶索引列表在非 ASCII 条目时产生不正确结果的问题 (pr#45087, J. Eric Ivancich)

  • rgw: RGWPostObj::execute() 可能会丢失数据 (pr#45502, Lei Zhang)

  • rgw: 在 fips 下,设置标志以允许在选定的 rgw 操作中使用 md5 (pr#44778, Mark Kogan)

  • rgw: 在 copyobject 中解析 copysource 之前进行 url_decode (issue#43259, pr#45430, Paul Reece)

  • rgw: 用户统计信息显示“size_utilized”和“size_kb_utilized”字段的值为 0 (pr#44171, J. Eric Ivancich)

  • rgw: 将 MP 部分的元数据写入正确的池 (issue#49128, pr#45428, Jeegn Chen)

  • rgw:当使用 KMS 加密且密钥不存在时,我们应该… (pr#45461, wangyingbin)

  • rgwlc: 在存储桶删除时删除 lc 条目 (pr#44729, Matt Benjamin)

  • rgwlc: 缺少 RGW_ATTR_LC 时发出警告 (pr#45497, Matt Benjamin)

  • src/ceph-crash.in: 各种增强和修复 (pr#45381, Sébastien Han)

  • src/rgw: 修复格式错误的 url (pr#45459, Kalpesh Pandya)

  • test/librbd/test_notify.py: 影响对象映射重建断言后的 post (pr#45311, Ilya Dryomov)

  • test/librbd: 添加测试以验证 diff_iterate 大小 (pr#45555, Christopher Hoffman)

  • test/librbd: 加固 RemoveFullTry 测试 (pr#43649, Ilya Dryomov)

  • test/rgw: 禁用带有 defer_gc() 的 cls_rgw_gc 测试用例 (pr#45477, Casey Bodley)

  • test: 修复错误警报 (HitSetWrite) (pr#45319, Myoungwon Oh)

  • test: 计算 manifest ref. count 时增加重试持续时间 (pr#44202, Myoungwon Oh)

  • tools/rbd: 扩展选项 rbd_default_map_options 的设置位置 (pr#45181, Christopher Hoffman, Ilya Dryomov)

  • Wip doc pr 46109 backport to pacific (pr#46117, Ville Ojamo)

v16.2.7 Pacific

这是 Pacific 系列的第七个向后移植版本。

值得注意的更改

  • OMAP 格式升级中的一个关键 bug 已修复。如果在升级前将 pre-Pacific 集群的 bluestore-quick-fix-on-mount 参数设置为 true,或者调用 ceph-bluestore-tool 的 quick-fix/repair 命令,则可能会导致数据损坏(格式不正确的 OMAP 键)。相关跟踪器:https://tracker.ceph.com/issues/53062 bluestore-quick-fix-on-mount 默认仍然设置为 false。

  • CephFS: 如果您不使用 cephadm,则必须在开始升级之前禁用 FSMap 健全性检查

    ceph config set mon mon_mds_skip_sanity true
    

    升级完成且集群稳定后,请删除该设置

    ceph config rm mon mon_mds_skip_sanity
    

    由 cephadm 管理并使用 cephadm 升级的集群会自动处理此步骤。

  • MGR: pg_autoscaler 将使用“scale-up”配置文件作为默认配置文件。16.2.6 将默认配置文件更改为“scale-down”,但我们遇到了 device_health_metrics 池消耗过多 PG 的问题,这不利于性能。因此,我们将继续默认使用“scale-up”配置文件,直到我们实现默认池应消耗的 PG 数量限制,并结合“scale-down”配置文件。

  • Cephadm 和 Ceph Dashboard: NFS 管理已完全重做,以确保 NFS 导出在不同的 Ceph 组件之间保持一致管理。在此之前,有 3 种不兼容的 NFS 导出配置实现:Ceph-Ansible/OpenStack Manila、Ceph Dashboard 和 'mgr/nfs' 模块。在此版本中,'mgr/nfs' 方式成为官方接口,其余组件(Cephadm 和 Ceph Dashboard)都遵循它。虽然这可能需要手动从已弃用的实现进行迁移,但这将简化严重依赖 NFS 导出的用户的体验。

  • 仪表板:“集群扩展向导”。在“cephadm bootstrap”步骤之后,登录 Ceph 仪表板的用户将看到一个欢迎屏幕。如果他们选择遵循安装向导,他们将通过一系列步骤来帮助他们配置 Ceph 集群:通过添加更多主机来扩展集群,检测和定义其存储设备,最后部署和配置不同的 Ceph 服务。

  • OSD:当使用 mclock_scheduler 进行 QoS 时,不再需要运行任何手动基准测试。OSD 现在在初始化期间通过运行简单的基准测试自动为 osd_mclock_max_capacity_iops 设置适当的值。

  • MGR:进度模块中的全局恢复事件已优化,并在统计信息收集之间添加了 5 秒的 sleep_interval,以减少进度模块对 MGR 的影响,尤其是在大型集群中。

更新日志

  • rpm, debian: 将 smartmontools 和 nvme-cli 移动到 ceph-base (pr#44164, Yaarit Hatuka)

  • qa: 其他 perf 套件修复 (pr#44154, Neha Ojha)

  • qa/suites/orch/cephadm: mgr-nfs-upgrade: 添加缺失的 0-distro 目录 (pr#44201, Sebastian Wagner)

  • *: s/virtualenv/python -m venv/ (pr#43002, Kefu Chai, Ken Dreyer)

  • admin/doc-requirements.txt: 将 Sphinx 锁定在 3.5.4 版本 (pr#43748, Kefu Chai)

  • backport mgr/nfs 位 (pr#43811, Sage Weil, Michael Fritch)

  • ceph-volume: get_first_lv() 重构 (pr#43960, Guillaume Abrioux)

  • ceph-volume: 修复导致 AttributeError 的拼写错误 (pr#43949, Taha Jahangir)

  • ceph-volume: 修复多 PV VG 中 db/wal 槽位大小计算错误的 bug (pr#43948, Guillaume Abrioux, Cory Snyder)

  • ceph-volume: 修复 lvm activate --all --no-systemd (pr#43267, Dimitri Savineau)

  • ceph-volume: util/prepare 修复 osd_id_available() (pr#43708, Guillaume Abrioux)

  • ceph.spec: selinux 脚本遵守 CEPH_AUTO_RESTART_ON_UPGRADE (pr#43235, Dan van der Ster)

  • cephadm: 十一月批次 (pr#43906, Sebastian Wagner, Sage Weil, Daniel Pivonka, Andrew Sharapov, Paul Cuzner, Adam King, Melissa Li)

  • cephadm: 十月批次 (pr#43728, Patrick Donnelly, Sage Weil, Cory Snyder, Sebastian Wagner, Paul Cuzner, Joao Eduardo Luis, Zac Dover, Dmitry Kvashnin, Daniel Pivonka, Adam King, jianglong01, Guillaume Abrioux, Melissa Li, Roaa Sakr, Kefu Chai, Brad Hubbard, Michael Fritch, Javier Cacheiro)

  • cephfs-mirror, test: 为 cephfs 镜像守护程序添加 thrasher,HA 测试 yaml (issue#50372, pr#43924, Venky Shankar)

  • cephfs-mirror: 终止时关闭 ClusterWatcher (pr#43198, Willem Jan Withagen, Venky Shankar)

  • cmake: 链接 Threads::Threads 而不是 CMAKE_THREAD_LIBS_INIT (pr#43167, Ken Dreyer)

  • cmake: s/Python_EXECUTABLE/Python3_EXECUTABLE/ (pr#43264, Michael Fritch)

  • crush: 使用 up set size != pool size 取消 upmaps (pr#43415, huangjun)

  • doc/radosgw/nfs: 添加关于 NFSv3 弃用的说明 (pr#43941, Michael Fritch)

  • doc: 文档子卷 (组) 钉 (pr#43925, Patrick Donnelly)

  • github: 将仪表板 PR 添加到仪表板项目 (pr#43610, Ernesto Puerta)

  • librbd/cache/pwl: 持久缓存向后移植 (pr#43772, Kefu Chai, Yingxin Cheng, Yin Congmin, Feng Hualong, Jianpeng Ma, Ilya Dryomov, Hualong Feng)

  • librbd/cache/pwl: SSD 缓存向后移植 (pr#43918, Yin Congmin, Jianpeng Ma)

  • librbd/object_map: 两个快照之间的 rbd diff 列出整个镜像内容 (pr#43805, Sunny Kumar)

  • librbd: 修复池验证锁定问题 (pr#43113, Ilya Dryomov)

  • mds/FSMap: 不要在旧 FSMaps 上断言 allow_standby_replay (pr#43614, Patrick Donnelly)

  • mds: 为 MClientSession 添加新标志 (pr#43251, Kotresh HR)

  • mds: 在打开根目录时不修剪游离的 dentry (pr#43815, Xiubo Li)

  • mds: 当处于 replay 状态时跳过对被阻止客户端的日志记录 (pr#43841, Venky Shankar)

  • mds: 将 mds_lock 切换为公平互斥锁以修复慢性能问题 (pr#43148, Xiubo Li, Kefu Chai)

  • MDSMonitor: 升级到 v16.2.5+ 期间断言 (pr#43890, Patrick Donnelly)

  • MDSMonitor: 处理 standby-replay 的损坏状态 (pr#43200, Patrick Donnelly)

  • MDSMonitor: 集群部署后没有活动 MDS (pr#43891, Patrick Donnelly)

  • mgr/dashboard,prometheus: 修复 server_addr 处理问题 (issue#52002, pr#43631, Scott Shambarger)

  • mgr/dashboard: 所有 pyfakefs 都必须锁定在相同版本 (pr#43930, Rishabh Dave)

  • mgr/dashboard: BATCH 包括:NFS 集成、集群扩展工作流和 Angular 11 升级 (pr#43682, Alfonso Martínez, Avan Thakkar, Aashish Sharma, Nizamudeen A, Pere Diaz Bou, Varsha Rao, Ramana Raja, Sage Weil, Kefu Chai)

  • mgr/dashboard: cephfs MDS 工作负载使用计数器类型指标的速率 (pr#43190, Jan Horacek)

  • mgr/dashboard: 清理控制器和 API 向后版本兼容性 (pr#43543, Ernesto Puerta, Avan Thakkar)

  • mgr/dashboard: 使用引导类列出守护程序事件 (pr#44057, Nizamudeen A)

  • mgr/dashboard: Grafana 仪表板中已弃用变量的使用 (pr#43188, Patrick Seidensal)

  • mgr/dashboard: 主机部分未列出设备健康状态 (pr#44053, Aashish Sharma)

  • mgr/dashboard: 编辑服务功能 (pr#43939, Nizamudeen A)

  • mgr/dashboard: 修复失败的配置仪表板 e2e 检查 (pr#43238, Nizamudeen A)

  • mgr/dashboard: 修复不稳定的库存 e2e 测试 (pr#44056, Nizamudeen A)

  • mgr/dashboard: 修复缺失的警报规则详情 (pr#43812, Ernesto Puerta)

  • mgr/dashboard: 修复 orchestrator/01-hosts.e2e-spec.ts 失败 (pr#43541, Nizamudeen A)

  • mgr/dashboard: 在 rgw 用户详情部分包含 mfa_ids (pr#43893, Avan Thakkar)

  • mgr/dashboard: MTU 不匹配警告不正确 (pr#43185, Aashish Sharma)

  • mgr/dashboard: 监控: radosgw 仪表板的 grafonnet 重构 (pr#43644, Aashish Sharma)

  • mgr/dashboard: 将强制维护测试移至工作流测试套件 (pr#43347, Nizamudeen A)

  • mgr/dashboard: 为 autopep8 和 pyfakefs 指定版本 (pr#43646, Nizamudeen A)

  • mgr/dashboard: 在创建主机表单中预定义标签 (pr#44077, Nizamudeen A)

  • mgr/dashboard: RBD 镜像表中的预置值具有误导性 (pr#44051, Avan Thakkar)

  • mgr/dashboard: 用 active-standby MGR 替换“Ceph-cluster”客户端连接 (pr#43523, Avan Thakkar)

  • mgr/dashboard: rgw 守护程序列表: 添加 realm 列 (pr#44047, Alfonso Martínez)

  • mgr/dashboard: 主机表单网络地址字段中的拼写错误 (pr#43973, Avan Thakkar)

  • mgr/dashboard: ceph 仪表板的视觉回归测试 (pr#42678, Aaryan Porwal)

  • mgr/dashboard: 视觉测试: 为仪表板组件添加更多忽略区域 (pr#43240, Aaryan Porwal)

  • mgr/influx: 对未知主机名使用“N/A” (pr#43368, Kefu Chai)

  • mgr/mirroring: 从守护程序状态命令中移除不必要的 fs_name 参数 (issue#51989, pr#43199, Venky Shankar)

  • mgr/nfs: nfs-rgw 批量向后移植 (pr#43075, Sebastian Wagner, Sage Weil, Varsha Rao, Ramana Raja)

  • mgr/progress: 优化全局恢复并引入 5 秒间隔 (pr#43353, Kamoltat, Neha Ojha)

  • mgr/prometheus: 提供禁用缓存的功能 (pr#43931, Patrick Seidensal)

  • mgr/volumes: 修复使用 mode 创建子卷时的权限问题 (pr#43223, Kotresh HR)

  • mgr: 添加检查以防止 mgr 崩溃 (pr#43445, Aswin Toni)

  • mon,auth: 修复旋转密钥的提案 (和 mon db 重建) (pr#43697, Sage Weil)

  • mon/MDSMonitor: 避免在解码旧 FSMap epoch 时崩溃 (pr#43615, Patrick Donnelly)

  • mon: 允许指定新的决胜监视器 (pr#43457, Greg Farnum)

  • mon: MonMap: 只要设置了 disallowed_leaders,就显示它们 (pr#43972, Greg Farnum)

  • mon: MonMap: 在 stretch 模式下不要增加 mon_info_t 的 compatv,真的 (pr#43971, Greg Farnum)

  • monitoring: 网络负载中的以太网绑定过滤器 (pr#43694, Pere Diaz Bou)

  • msg/async/ProtocolV2: 在接收消息开始时设置 recv_stamp (pr#43511, dongdong tao)

  • msgr/async: 修复 unregister_conn() 中的不安全访问 (pr#43548, Sage Weil, Radoslaw Zarzynski)

  • os/bluestore: _do_write_small 修复 head_pad (pr#43756, dheart)

  • os/bluestore: 在卷选择器中不选择不存在的设备 (pr#43970, Igor Fedotov)

  • os/bluestore: 修复升级到每 pg 时无效的 omap 名称转换 (pr#43793, Igor Fedotov)

  • os/bluestore: 列出等于 pend 的对象 (pr#43512, Mykola Golub, Kefu Chai)

  • os/bluestore: 多个修复修复 (pr#43731, Igor Fedotov)

  • osd/OSD: mkfs 需要等待事务完全完成 (pr#43417, Chen Fan)

  • osd: 修复重启 osd 后部分恢复变为整个对象恢复的问题 (pr#43513, Jianwei Zhang)

  • osd: 修复允许 inc manifest 泄漏的问题 (pr#43306, Myoungwon Oh)

  • osd: 修复在调用 set_chunk 时恢复相邻克隆的问题 (pr#43099, Myoungwon Oh)

  • osd: 在回填和深度 scrub 期间优雅地处理不一致的哈希信息 (pr#43544, Ronen Friedman, Mykola Golub)

  • osd: 在每次对等状态激活时重新缓存 peer_bytes (pr#43437, Mykola Golub)

  • osd: 运行 osd 基准测试以覆盖 mclock 的默认最大 osd 容量 (pr#41731, Sridhar Seshasayee)

  • Pacific: BlueStore: Omap 升级到 per-pg 修复修复 (pr#43922, Adam Kupczyk)

  • Pacific: client: 在撤销时不要延迟释放 caps (pr#43782, Xiubo Li)

  • Pacific: mds: 添加读/写 IO 大小指标支持 (pr#43784, Xiubo Li)

  • Pacific: test/libcephfs: 查找后放置 inodes (pr#43562, Patrick Donnelly)

  • pybind/mgr/cephadm: 在 CephFS 升级期间设置 allow_standby_replay (pr#43559, Patrick Donnelly)

  • pybind/mgr/CMakeLists.txt: 排除运行时未使用的文件 (pr#43787, Duncan Bellamy)

  • pybind/mgr/pg_autoscale: 恢复为默认配置文件 scale-up (pr#44032, Kamoltat)

  • qa/mgr/dashboard/test_pool: 不检查 HEALTH_OK (pr#43440, Ernesto Puerta)

  • qa/mgr/dashboard: 为测试添加额外等待时间 (pr#43351, Ernesto Puerta)

  • qa/rgw: pacific 分支目标是 java_s3tests 的 ceph-pacific 分支 (pr#43809, Casey Bodley)

  • qa/tasks/kubeadm: 强制 docker cgroup 引擎为 systemd (pr#43937, Sage Weil)

  • qa/tasks/mgr: 在 python>=3.8 上跳过 test_diskprediction_local (pr#43421, Kefu Chai)

  • qa/tests: 提前版本以反映最新的 16.2.6 发布 (pr#43242, Yuri Weinstein)

  • qa: 升级期间禁用内核客户端上的指标 (pr#44034, Patrick Donnelly)

  • qa: 延长 fs map 显示 dead MDS 的宽限期 (pr#43702, Patrick Donnelly)

  • qa: 减少 dir_split 计数器测试的碎片分割配置 (pr#43828, Patrick Donnelly)

  • rbd-mirror: 修复镜像图片删除 (pr#43662, Arthur Outhenin-Chalandre)

  • rbd-mirror: 修复单向基于快照的镜像 (pr#43315, Ilya Dryomov)

  • rgw/notification: 使通知与存储桶重新分片无关 (pr#42946, Yuval Lifshitz)

  • rgw/notifications: 缓存对象大小以避免访问无效内存 (pr#42949, Yuval Lifshitz)

  • rgw/notifications: 在创建删除标记时发送正确的大小 (pr#42643, Yuval Lifshitz)

  • rgw/notifications: 支持主题和通知的 v4 认证 (pr#42947, Yuval Lifshitz)

  • rgw/rgw_rados: 使 RGW 请求 ID 不确定 (pr#43695, Cory Snyder)

  • rgw/sts: 修复使用 sts 进行对象复制操作 (pr#43703, Pritha Srivastava)

  • rgw/tracing: 统一 librgw2 包中的 SO 版本号 (pr#43619, Nathan Cutler)

  • rgw: 添加 ops 日志目标的抽象并添加文件记录器 (pr#43740, Casey Bodley, Cory Snyder)

  • rgw: 确保过旧而无法解码布局的存储桶具有布局日志 (pr#43823, Adam C. Emerson)

  • rgw: 修复存储桶清除不完整的多分段上传 (pr#43862, J. Eric Ivancich)

  • rgw: 修复 S3 消息结构中 eTag 的拼写错误 (pr#42945, Tom Schoonjans)

  • rgw: 修复 sts 内存泄漏 (pr#43348, yuliyang_yewu)

  • rgw: 移除存储桶删除和 MP 上传中止的 prefix & delim 参数 (pr#43975, J. Eric Ivancich)

  • rgw: 在 s3 网站 retarget() 中使用现有的 s->bucket (pr#43777, Casey Bodley)

  • snap-schedule: 按保留策略计算保留快照数量 (pr#43434, Jan Fajerski)

  • test: 测试完成后关闭挂载器 (pr#43475, Xiubo Li)

v16.2.6 Pacific

危险

日期:2021 年 11 月 1 日。

请勿从旧版本升级到 CEPH PACIFIC。

最近发现的一个 bug (https://tracker.ceph.com/issues/53062) 可能导致数据损坏。此 bug 在更新到 Pacific 的集群进行 OMAP 格式转换期间发生。新集群不受此 bug 影响。

此 bug 的触发器是 BlueStore 的修复/快速修复功能。此 bug 可以通过两种已知方式触发

  1. 通过 ceph-bluestore-tool 手动,或

  2. 自动,如果 bluestore_fsck_quick_fix_on_mount 设置为 true,则由 OSD 触发。

此 bug 的修复预计将在 Ceph v16.2.7 中提供。

请勿将 bluestore_quick_fix_on_mount 设置为 true。如果当前在您的配置中设置为 true,请立即将其设置为 false。

请勿运行 ceph-bluestore-tool 的修复/快速修复命令。

这是 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/latest/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 时,对于不需要修复的常规深度 scrub,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 激活参数 (pr#43116, Dimitri Savineau)

  • ceph-volume: 修复不带参数的 lvm 迁移 (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 帮助中删除 --all 引用 (pr#43098, Dimitri Savineau)

  • ceph-volume: 支持 lvm 迁移的 no_systemd (pr#43091, Dimitri Savineau)

  • ceph-volume: 解决幻影 atari 分区问题 (pr#42753, Blaine Gardner)

  • ceph.spec.in: 从构建依赖中删除 gdbm (pr#43000, Kefu Chai)

  • cephadm: 八月第一批 (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: 九月第一批 (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 更新目录分布 (pr#42937, Xue Yantao)

  • cls/cmpomap: 在 U64 比较中,空值为 0 (pr#42908, Casey Bodley)

  • cmake, ceph.spec.in: 在 RHEL 上使用仅头文件的 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 下载网址 (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: 删除有关自动缩放器的说明 (pr#42265, Neha Ojha)

  • 不持久化报告数据 (pr#42888, Brad Hubbard)

  • krbd: 转义 udev_enumerate_add_match_sysattr 值 (pr#42969, Ilya Dryomov)

  • kv/RocksDBStore: 添加重分片时 block_cache 选项的处理 (pr#42844, Adam Kupczyk)

  • kv/RocksDBStore: 丰富调试信息 (pr#42544, Toshikuni Fukaya, Satoru Takeuchi)

  • librgw/notifications: 初始化 kafka 和 amqp (pr#42648, Yuval Lifshitz)

  • mds: 拒绝 mksnap 带有 EPERM 时添加调试信息 (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 或 wall 通知 (pr#42414, Volker Theile)

  • mgr/dashboard: cephadm e2e 启动脚本: 添加 --expanded 选项 (pr#42789, Alfonso Martínez)

  • mgr/dashboard: cephadm-e2e 作业脚本: 改进 (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 强制维护仪表板检查 (pr#42354, Nizamudeen A)

  • mgr/dashboard: 监控: 使用基于 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: 在集群 > 主机上显示 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: 引入自动缩放器缩减功能 (pr#42428, Kamoltat, Kefu Chai)

  • mgr/rook: 添加时区信息 (pr#39834, Varsha Rao, Sebastian Wagner)

  • mgr/telemetry: 即使没有标识也传递排行榜标志 (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: 在拉伸集群中创建池时合理设置默认 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: 修复物理设备延迟单位 (pr#42298, Seena Fallah)

  • msg: active_connections 退化 (pr#42936, Sage Weil)

  • nfs 后端口六月 (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 迁移命令 (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 状态标志和内部 scrubbing 操作分开 (pr#42398, Ronen Friedman)

  • osd: 将 snaptrim 消息记录到 dout (pr#42482, Arthur Outhenin-Chalandre)

  • osd: 将 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: 为快照重放器添加性能计数器 (pr#42987, Arthur Outhenin-Chalandre)

  • rbd-mirror: 修复 start_image_replayers 中潜在的异步操作跟踪器泄漏 (pr#42979, Mykola Golub)

  • rbd: 修复 nbd map/unmap 的默认池处理 (pr#42980, Sunny Kumar)

  • 移除对 lsb_release 的依赖 (pr#43001, Ken Dreyer)

  • RGW - 存储桶移除操作: 传入用户 (pr#42135, Daniel Gryniewicz)

  • RGW - 设置属性之前不要移动属性 (pr#42320, Daniel Gryniewicz)

  • rgw: 为同步 URL 添加空检查 (pr#42653, caolei)

  • rgw: 在 RGWCreateRole 中添加租户检查 (pr#42637, caolei)

  • rgw: 修改 deleterole 的错误 XML (pr#42639, caolei)

  • rgw multisite: 元数据同步将所有错误视为“瞬态”以进行重试 (pr#42656, Casey Bodley)

  • RGW Zipper - 确保存储桶列表进行 (pr#42625, Daniel Gryniewicz)

  • rgw/amqp/test: 修复 librabbitmq-0.11.0 的 mock 原型 (pr#42649, Yuval Lifshitz)

  • rgw/http/notifications: 支持 HTTP POST 消息中的内容类型 (pr#42644, Yuval Lifshitz)

  • rgw/multisite: 操作失败时返回正确的错误代码 (pr#42646, Yuval Lifshitz)

  • rgw/notification: 为持久通知线程添加异常处理 (pr#42647, Yuval Lifshitz)

  • rgw/notification: 修复 ack-level=none 时持久通知挂起问题 (pr#40696, Yuval Lifshitz)

  • rgw/notification: 修复“persistent=false”标志 (pr#40695, Yuval Lifshitz)

  • rgw/notifications: 当存储桶通知对象为空时删除它 (pr#42631, Yuval Lifshitz)

  • rgw/notifications: 在 CompleteMultipartUpload 和 Copy 事件中支持元数据过滤器 (pr#42321, Yuval Lifshitz)

  • rgw/notifications: 在 CompleteMultipartUpload 中支持元数据过滤器... (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 前端设置 ssl 选项和密码 (pr#42363, Mykola Golub)

  • rgw: 避免删除存储桶时出现无限循环 (issue#49206, pr#42230, Jeegn Chen)

  • rgw: 避免在访问条件式...时发生 radosgw 守护程序崩溃 (pr#42626, xiangrui meng, yupeng chen)

  • rgw: 将 51674 反向移植到 Pacific (pr#42346, Adam C. Emerson)

  • rgw: 弃用 civetweb 前端 (pr#41367, Casey Bodley)

  • rgw: 在 datalog trim 上不发生段错误 (pr#42336, Adam C. Emerson)

  • rgw: 在重分片锁争用期间,调整日志记录 (pr#42641, J. Eric Ivancich)

  • rgw: 扩展 vault KMS 的现有 ssl 支持 (pr#42093, Jiffin Tony Thottan)

  • rgw: 在对不存在的存储桶尝试 set/delete-bucket-website 时按预期失败... (pr#42642, xiangrui meng)

  • rgw: 修复标记匹配前缀时存储桶对象列表的问题 (pr#42638, J. Eric Ivancich)

  • rgw: 修复仅提供一个 totp_pin 时 mfa resync 崩溃的问题 (pr#42652, Pritha Srivastava)

  • rgw: 修复与显式对象清单处理相关的段错误 (pr#42633, Mark Kogan)

  • rgw: 改进电子邮件 ID 重用时的错误消息 (pr#41783, Ponnuvel Palaniyappan)

  • rgw: objectlock: 改进客户端错误消息 (pr#40693, Matt Benjamin)

  • rgw: 从 rgwx-bucket-instance 中解析租户名称 (pr#42231, Casey Bodley)

  • rgw: radosgw-admin 在数据/mdlog trim 未指定标记时出错 (pr#42640, Adam C. Emerson)

  • rgw: 移除配额软阈值 (pr#42634, Zulai Wang)

  • rgw: 在存储桶更改所有权时需要存储桶名称 (pr#42323, Zulai Wang)

  • rgw: 当版本化存储桶中的已删除对象被移除时,添加额外的删除标记 (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)

  • 警告清理和 Clang 编译修复 (pr#40692, Adam C. Emerson)

  • workunits/rgw: 分号终止 perl 语句 (pr#43168, Matt Benjamin)

v16.2.5 Pacific

这是 Pacific 系列的第五个反向移植版本。我们建议所有用户更新到此版本。

Notable Changes

  • 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

  • mgr/nfs: nfs 模块已从 volumes 插件中移出。在使用 ceph nfs 命令之前,必须启用 nfs mgr 模块。

  • volumes/nfs: cephfs 集群类型已从 nfs cluster create 子命令中移除。cephadm 部署的集群可以从单个 NFS 集群实例支持 rgwcephfs 的 NFS 导出。

  • 已移除 nfs cluster update 命令。您可以使用 orch ls --exportorch apply -i ... 修改现有 NFS 服务(及其关联的 ingress 服务)的放置。

  • orch apply nfs 命令不再需要 pool 或 namespace 参数。我们强烈建议用户使用默认值,以便 nfs cluster ls 和相关命令能正常工作。

  • nfs cluster deletenfs export delete 命令已弃用,并将在未来的版本中移除。请改用 nfs cluster rmnfs export rm

  • 修复了一个长期存在的错误,该错误阻止了 32 位和 64 位客户端/服务器在 msgr v2 下的互操作性。特别是,在同一个集群中混合使用 armv7l (armhf) 和 x86_64 或 aarch64 服务器现在可以正常工作。

变更日志

  • .github/labeler: 添加 api-change 标签 (pr#41818, Ernesto Puerta)

  • 改进拉伸集群的 mon 位置处理 (pr#40484, Greg Farnum)

  • 在执行 MDCache::start_files_to_recover() 期间 MDS 心跳超时 (pr#42061, Yongseok Oh)

  • MDS 慢请求 lookupino #0x100 在 rank 1 处永远阻塞在 dispatched (pr#40856, Xiubo Li, Patrick Donnelly)

  • MDSMonitor: 尝试挂载 cephfs 时崩溃 (pr#42068, Patrick Donnelly)

  • Pacific 拉伸监视器状态 [合并到 40484 之后] (pr#41130, Greg Farnum)

  • Pacific: 在 Pacfic 中为 RGW 日志消息添加 DoutPrefixProvider (pr#40054, Ali Maredia, Kalpesh Pandya, Casey Bodley)

  • Pacific: 将 MMonJoin 消息直接发送到 Leader,而不是第一个 rank [合并到 41130 之后] (pr#41131, Greg Farnum)

  • 恢复“pacific: mgr/dashboard: 生成 NPM 依赖清单” (pr#41549, Nizamudeen A)

  • 更新 boost url,修复 windows 构建 (pr#41259, Lucian Petrut)

  • bluestore: 使用 string_view 并剥离目录列表的尾部斜杠 (pr#41755, Jonas Jelten, Kefu Chai)

  • build(deps): 在 /src/pybind/mgr/dashboard/frontend 中将 node-notifier 从 8.0.0 升级到 8.0.1 (pr#40813, Ernesto Puerta, dependabot[bot])

  • ceph-volume: 修复批处理报告并遵守 ceph.conf 配置值 (pr#41714, Andrew Schoen)

  • ceph_test_rados_api_service: servicemkap 更多重试 (pr#41182, Sage Weil)

  • cephadm 六月最后一批 (pr#42117, Kefu Chai, Sage Weil, Zac Dover, Sebastian Wagner, Varsha Rao, Sandro Bonazzola, Juan Miguel Olmo Martínez)

  • cephadm: 五月批处理反向移植 (2) (pr#41219, Adam King, Sage Weil, Zac Dover, Dennis Körner, jianglong01, Avan Thakkar, Juan Miguel Olmo Martínez)

  • cephadm: 六月第一批 (pr#41684, Sage Weil, Paul Cuzner, Juan Miguel Olmo Martínez, VasishtaShastry, Zac Dover, Sebastian Wagner, Adam King, Michael Fritch, Daniel Pivonka, sunilkumarn417)

  • cephadm: 六月第二批 (pr#41815, Sebastian Wagner, Daniel Pivonka, Zac Dover, Michael Fritch)

  • cephadm: 六月第三批 (pr#41913, Zac Dover, Adam King, Michael Fritch, Patrick Donnelly, Sage Weil, Juan Miguel Olmo Martínez, jianglong01)

  • cephadm: 五月第一批 (pr#41151, Juan Miguel Olmo Martínez, Sage Weil, Zac Dover, Daniel Pivonka, Adam King, Stanislav Datskevych, jianglong01, Kefu Chai, Deepika Upadhyay, Joao Eduardo Luis)

  • cephadm: 五月第三批 (pr#41463, Sage Weil, Michael Fritch, Adam King, Patrick Seidensal, Juan Miguel Olmo Martínez, Dimitri Savineau, Zac Dover, Sebastian Wagner)

  • cephfs-mirror backports (issue#50523, issue#50035, issue#50266, issue#50442, issue#50581, issue#50229, issue#49939, issue#50224, issue#50298, pr#41475, Venky Shankar, Lucian Petrut)

  • cephfs-mirror: 反向移植 (issue#50447, issue#50867, issue#51204, pr#41947, Venky Shankar)

  • cephfs-mirror: 在 SIGHUP 上重新打开日志 (issue#51413, issue#51318, pr#42097, Venky Shankar)

  • cephfs-top: 根据窗口大小自适应显示 (pr#41053, Xiubo Li)

  • client: 修复根用户的可执行访问检查 (pr#41294, Kotresh HR)

  • client: 修复打开的 inode 计数器增加问题 (pr#40685, Xiubo Li)

  • client: 使 Inode 继承自 RefCountedObject (pr#41052, Xiubo Li)

  • cls/rgw: 在非 ASCII 普通命名空间中也查找普通条目 (pr#41774, Mykola Golub)

  • common/buffer: 在调用 posix_memalign() 之前调整对齐 (pr#41249, Ilya Dryomov)

  • common/mempool: 仅在分片非常差时才使测试失败 (pr#40566, singuliere)

  • common/options/global.yaml.in: 增加 bluestore_cache_trim_max_skip_pinned 的默认值 (pr#40918, Neha Ojha)

  • crush/crush: 确保 alignof(crush_work_bucket) 为 1 (pr#41983, Kefu Chai)

  • debian,cmake,cephsqlite: 隐藏非公共符号 (pr#40689, Kefu Chai)

  • debian/control: ceph-mgr-modules-core 不推荐 ceph-mgr-rook (pr#41877, Kefu Chai)

  • doc: pacific 更新 (pr#42066, Patrick Donnelly)

  • librbd/cache/pwl: 修复 create_image_cache_state() 中 cache_type 的解析 (pr#41244, Ilya Dryomov)

  • librbd/mirror/snapshot: 避免对未链接的对等体进行 UnlinkPeerRequest (pr#41304, Arthur Outhenin-Chalandre)

  • librbd: purging 时不要在第一个不可移除的镜像处停止 (pr#41664, Ilya Dryomov)

  • make-dist: 如果脚本路径包含冒号,则拒绝运行 (pr#41086, Nathan Cutler)

  • mds: “FAILED ceph_assert(r == 0 || r == -2)” (pr#42072, Xiubo Li)

  • mds: “集群 [ERR] 恢复日志 0x203 错误: (2) 没有此类文件或目录” 在集群日志中” (pr#42059, Xiubo Li)

  • mds: 添加完整的 caps 以避免 osd 完整性检查 (pr#41691, Patrick Donnelly, Kotresh HR)

  • mds: 当对某个文件 getattr() 时,CephFS kclient 被卡住 (pr#42062, “Yan, Zheng”, Xiubo Li)

  • mds: 错误 ENOSYS: mds.a 启动了 profiler (pr#42056, Xiubo Li)

  • mds: MDSLog::journaler 指针可能因 use-after-free 而崩溃 (pr#42060, Xiubo Li)

  • mds: 对于无操作情况,避免 setxattr(“ceph.dir.subvolume”) 的日志开销 (pr#41995, Patrick Donnelly)

  • mds: 接收到未知度量类型时不要断言 (pr#41596, Patrick Donnelly, Xiubo Li)

  • mds: 日志恢复线程可能断言 mds_lock 未锁定 (pr#42058, Xiubo Li)

  • mds: 在暂时锁定的目录上 mkdir 有时会被日志刷新阻塞 (pr#42071, Xiubo Li)

  • mds: inode 0x1 上的 scrub 错误 (pr#41685, Milind Changire)

  • mds: standby-replay 仅在达到重放日志末尾时才修剪缓存 (pr#40855, Xiubo Li, Patrick Donnelly)

  • mgr/DaemonServer.cc: 防止 mgr 崩溃,该崩溃由 pg_num/pgp_num 大量增加触发的整数下溢引起 (pr#41862, Cory Snyder)

  • mgr/Dashboard: 移除主机概览 Grafana 仪表板中错误的元素 (pr#40982, Malcolm Holmes)

  • mgr/dashboard: API 版本更改不适用于预定义方法(list、create 等) (pr#41675, Aashish Sharma)

  • mgr/dashboard: Alertmanager 无法 POST 警报 (pr#41987, Avan Thakkar)

  • mgr/dashboard: 修复退出维护时出现的 500 错误 (pr#41915, Nizamudeen A)

  • mgr/dashboard: 修复存储桶名称输入允许值中包含空格的问题 (pr#42119, Nizamudeen A)

  • mgr/dashboard: 修复更改密码时查询参数重置的问题 (pr#41440, Nizamudeen A)

  • mgr/dashboard: 生成 NPM 依赖清单 (pr#41204, Nizamudeen A)

  • mgr/dashboard: 主机维护后续操作 (pr#41056, Nizamudeen A)

  • mgr/dashboard: 在主机创建表单中包含网络地址和标签 (pr#42027, Nizamudeen A)

  • mgr/dashboard: OSDs 放置文本不可读 (pr#41096, Aashish Sharma)

  • mgr/dashboard: RGW 存储桶异步验证器性能增强和名称约束 (pr#41296, Nizamudeen A)

  • mgr/dashboard: 用户数据库迁移已取消 (pr#42140, Volker Theile)

  • mgr/dashboard: 避免在 crush-map 组件中进行数据处理 (pr#41203, Avan Thakkar)

  • mgr/dashboard: 存储桶详情:仅以天为单位显示锁定保留期 (pr#41948, Alfonso Martínez)

  • mgr/dashboard: crushmap 树不显示除 root 之外的 crush 类型 (pr#42007, Kefu Chai, Avan Thakkar)

  • mgr/dashboard: 在仪表板中禁用 NFSv3 支持 (pr#41200, Volker Theile)

  • mgr/dashboard: 从服务列表中删除容器镜像名称和 ID (pr#41505, Avan Thakkar)

  • mgr/dashboard: 修复 API 文档链接 (pr#41507, Avan Thakkar)

  • mgr/dashboard: 修复 ESOCKETTIMEDOUT E2E 失败 (pr#41427, Avan Thakkar)

  • mgr/dashboard: 修复 HAProxy (现在称为 ingress) (pr#41298, Avan Thakkar)

  • mgr/dashboard: 修复 OSD out 计数 (pr#42153, 胡玮文)

  • mgr/dashboard: 修复 OSD 主机详情/概览 grafana 图表 (issue#49769, pr#41324, Alfonso Martínez, Michael Wodniok)

  • mgr/dashboard: 修复 base-href (pr#41634, Avan Thakkar)

  • mgr/dashboard: 修复 base-href: 恢复到之前的方法 (pr#41251, Avan Thakkar)

  • mgr/dashboard: 修复存储桶对象和大小计算 (pr#41646, Avan Thakkar)

  • mgr/dashboard: 修复锁定启用时存储桶版本控制的问题 (pr#41197, Avan Thakkar)

  • mgr/dashboard: 修复右侧边栏导航图标不可点击的问题 (pr#42008, Aaryan Porwal)

  • mgr/dashboard: 修复 set-ssl-certificate{,-key} 命令 (pr#41170, Alfonso Martínez)

  • mgr/dashboard: 修复拼写错误:Filesystems 改为 File Systems (pr#42016, Navin Barnwal)

  • mgr/dashboard: ingress 服务创建后续操作 (pr#41428, Avan Thakkar)

  • mgr/dashboard: 在 URL 中传递 Grafana 数据源 (pr#41633, Ernesto Puerta)

  • mgr/dashboard: 在 UI 中显示服务时提供服务事件 (pr#41494, Aashish Sharma)

  • mgr/dashboard: 使用 KCLI 运行 cephadm-backend e2e 测试 (pr#42156, Alfonso Martínez)

  • mgr/dashboard: 在 run-backend-api-tests.sh 中设置所需的环境变量 (pr#41069, Alfonso Martínez)

  • mgr/dashboard: 在“NFS create export”表单中正确显示 RGW 租户用户 ID (pr#41528, Alfonso Martínez)

  • mgr/dashboard: 显示部分删除的 RBDs (pr#41891, Tatjana Dehler)

  • mgr/dashboard: 简化“存储桶创建”表单中的对象锁定字段 (pr#41777, Alfonso Martínez)

  • mgr/dashboard: 由于安全漏洞更新前端依赖项 (pr#41402, Alfonso Martínez)

  • mgr/dashboard: 在池仪表板上包含压缩统计信息 (pr#41577, Ernesto Puerta, Paul Cuzner)

  • mgr/nfs: 不依赖 cephadm.utils (pr#41842, Sage Weil)

  • mgr/progress: 确保进度保持在 [0,1] 之间 (pr#41312, Dan van der Ster)

  • mgr/prometheus: 改进池元数据 (pr#40804, Paul Cuzner)

  • mgr/pybind/snap_schedule: 在没有 fs 快照时不要失败 (pr#41044, Sébastien Han)

  • mgr/volumes/nfs: 在集群创建期间删除类型参数 (pr#41005, Michael Fritch)

  • mon,doc: 弃用 min_compat_client (pr#41468, Patrick Donnelly)

  • mon/MonClient: 在 _reopen_session() 中重置 authenticate_err (pr#41019, Ilya Dryomov)

  • mon/MonClient: 容忍稍微过期的旋转密钥 (pr#41450, Ilya Dryomov)

  • mon/OSDMonitor: 在宽限期后删除过时的 failure_info (pr#41090, Kefu Chai)

  • mon/OSDMonitor: 即使 can_mark_down() 存在,也删除过时的 failure_info (pr#41982, Kefu Chai)

  • mon: 在 mkfs monmap 之前加载存储的 map (pr#41768, Dan van der Ster)

  • nfs 后端口五月 (pr#41389, Varsha Rao)

  • os/FileStore: 修复正确处理 readdir 错误 (pr#41236, Misono Tomohiro)

  • os/bluestore: 修复 Avl/Hybrid 分配器中意外的 ENOSPC (pr#41655, Igor Fedotov, Neha Ojha)

  • os/bluestore: 为 bluestore 的修复器引入多线程同步 (pr#41752, Igor Fedotov)

  • os/bluestore: 容忍 allocators' init_[add/rm]_free() 的零长度 (pr#41753, Igor Fedotov)

  • osd/PG.cc: 处理 pgmeta 对象的删除 (pr#41680, Neha Ojha)

  • osd/osd_type: 适当使用 f->dump_unsigned() (pr#42045, Kefu Chai)

  • osd/scrub: 将 ceph_assert() 替换为测试 (pr#41944, Ronen Friedman)

  • osd: 在 OSD 和 mclock 调度器初始化期间覆盖恢复、回填和睡眠相关的配置选项 (pr#41125, Sridhar Seshasayee, Zac Dover)

  • osd: write_trunc 时清除数据摘要 (pr#42019, Zengran Zhang)

  • osd: 通过原始空间利用率计算 OSD 的空间利用率 (pr#41113, Igor Fedotov)

  • osd: 不要断言 in-flight 回填总是在恢复列表中 (pr#41320, Mykola Golub)

  • osd: 修复 scrub 重新调度 bug (pr#41971, wencong wan)

  • pacific: client: MDS 阻止列表后中止 (issue#50530, pr#42070, Venky Shankar)

  • pybind/ceph_volume_client: 使用 cephfs mkdirs api (pr#42159, Patrick Donnelly)

  • pybind/mgr/devicehealth: scrape-health-metrics 命令意外重命名为 scrape-daemon-health-metrics (pr#41089, Patrick Donnelly)

  • pybind/mgr/progress: 忽略未报告的 pgs (pr#41872, Kamoltat)

  • pybind/mgr/snap_schedule: 无效命令: 意外参数 'fs=cephfs' (pr#42064, Patrick Donnelly)

  • qa/config/rados: 添加调度延迟测试参数 (pr#41136, Deepika Upadhyay)

  • qa/distros/podman: 保留 registries.conf (pr#40729, Sage Weil)

  • qa/suites/rados/standalone: 移除 mon_election 符号链接 (pr#41212, Neha Ojha)

  • qa/suites/rados: 为 thrasher 添加同时 scrub (pr#42120, Ronen Friedman)

  • qa/tasks/qemu: precise repos 已归档 (pr#41643, Ilya Dryomov)

  • qa/tests: 修正点版本以反映最新版本 (pr#41313, Yuri Weinstein)

  • qa/tests: pacific-p2p 套件的首次签入 (2) (pr#41208, Yuri Weinstein)

  • qa/tests: 将 ubuntu_latest.yaml 替换为 ubuntu 20.04 (pr#41460, Patrick Donnelly, Kefu Chai)

  • qa/upgrade: 有条件地禁用 update_features 测试 (pr#41629, Deepika)

  • qa/workunits/rbd: focal 使用 bionic 版本的 qemu-iotests (pr#41195, Ilya Dryomov)

  • qa: AttributeError: ‘RemoteProcess’ 对象没有属性 ‘split’ (pr#41811, Patrick Donnelly)

  • qa: 添加异步 dirops 测试 (pr#41823, Patrick Donnelly)

  • qa: 检查 ctx 中的 mounts 属性 (pr#40634, Jos Collin)

  • qa: 转换一些旧版 Filesystem.rados 调用 (pr#40996, Patrick Donnelly)

  • qa: 从 fs 套件中删除 distro~HEAD 目录 (pr#41169, Radoslaw Zarzynski)

  • qa: fs:bugs 未指定 distro (pr#42063, Patrick Donnelly)

  • qa: fs:upgrade 使用 teuthology 默认 distro (pr#42067, Patrick Donnelly)

  • qa: scrub 代码不将 scrubopts 与逗号连接 (pr#42065, Kefu Chai, Patrick Donnelly)

  • qa: test_data_scan.TestDataScan.test_pg_files AssertionError: 第二组中的项不在第一组中 (pr#42069, Xiubo Li)

  • qa: test_ephemeral_pin_distribution 失败 (pr#41659, Patrick Donnelly)

  • qa: 将 RHEL 更新到 8.4 (pr#41822, Patrick Donnelly)

  • rbd-mirror: 修复快照重放器关闭时的段错误 (pr#41503, Arthur Outhenin-Chalandre)

  • rbd: --source-spec-file 应该是 --source-spec-path (pr#41122, Ilya Dryomov)

  • rbd: 不要尝试解释镜像缓存状态 json (pr#41281, Ilya Dryomov)

  • rgw: 简化日志分片探测并倾向于 omap (pr#41576, Adam C. Emerson)

  • rgw: 多部分上传完成后留下删除标记 (pr#41769, J. Eric Ivancich)

  • rgw: 上传到带策略的存储桶时崩溃 (pr#41893, Or Friedmann)

  • rgw: radosgw_admin 移除存储桶未清除 1,000 个对象之后的对象 (pr#41863, J. Eric Ivancich)

  • rgw: radoslist 不完整的多部分标记 (pr#40819, J. Eric Ivancich)

  • rocksdb: 修复检测 PMULL 指令的问题 (pr#41079, Kefu Chai)

  • 会话转储包含 completed_requests 两次,一次是整数,一次是列表 (pr#42057, Dan van der Ster)

  • systemd: 移除 ceph-osd@.serviceProtectClock=true (pr#41232, Wong Hoi Sing Edison)

  • test/librbd: 使用真正无效的域 (pr#42010, Mykola Golub)

  • win32*.sh: 在目标为 Windows 时禁用 libcephsqlite (pr#40557, Lucian Petrut)

v16.2.4 Pacific

这是一个热修复版本,解决了许多安全问题和回归问题。我们建议所有用户更新到此版本。

变更日志

v16.2.3 Pacific

这是 Pacific 系列的第三个反向移植版本。我们建议所有用户更新到此版本。

Notable Changes

  • 此版本修复了一个 cephadm 升级错误,该错误导致某些系统陷入循环重新启动第一个 mgr 守护程序的困境。

v16.2.2 Pacific

这是 Pacific 系列的第二个反向移植版本。我们建议所有用户更新到此版本。

重要变更

  • Cephadm 现在支持一种ingress 服务类型,它为 RGW 服务提供负载平衡和 HA(通过 haproxy 和 keepalived 在虚拟 IP 上实现)(请参阅RGW 的高可用性服务)。(实验性的 rgw-ha 服务已被移除。)

变更日志

  • ceph-fuse: src/include/buffer.h: 1187: FAILED ceph_assert(_num <= 1024) (pr#40628, Yanhu Cao)

  • ceph-volume: 修复“device”输出 (pr#41054, Sébastien Han)

  • ceph-volume: 修复发现来自不同集群的 OSD 时原始列表的问题 (pr#40985, Sébastien Han)

  • ceph.spec.in: 在 IBM Power 和 Z 上启用 tcmalloc (pr#39488, Nathan Cutler, Yaakov Selkowitz)

  • cephadm 四月第三批 (issue#49737, pr#40922, Adam King, Sage Weil, Daniel Pivonka, Shreyaa Sharma, Sebastian Wagner, Juan Miguel Olmo Martínez, Zac Dover, Jeff Layton, Guillaume Abrioux, 胡玮文, Melissa Li, Nathan Cutler, Yaakov Selkowitz)

  • cephadm: 四月第一批 (pr#40544, Sage Weil, Daniel Pivonka, Joao Eduardo Luis, Adam King)

  • cephadm: 四月批处理反向移植 2 (pr#40746, Guillaume Abrioux, Sage Weil, Paul Cuzner)

  • cephadm: 在 bootstrap 的主机添加上指定 addr (pr#40554, Joao Eduardo Luis)

  • cephfs: 次要 ceph-dokan 改进 (pr#40627, Lucian Petrut)

  • client: 缓存中锁定的项阻止卸载 (pr#40629, Xiubo Li)

  • client: 仅对常规文件检查池权限 (pr#40686, Xiubo Li)

  • cmake: 全局定义 BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT (pr#40706, Kefu Chai)

  • cmake: 将未解析的参数传递给 add_ceph_test() (pr#40523, Kefu Chai)

  • cmake: 使用 --smp 1 --memory 256M 进行 crimson 测试 (pr#40568, Kefu Chai)

  • crush/CrushLocation: 不在构造函数中打印日志消息 (pr#40679, Alex Wu)

  • doc/cephfs/nfs: 添加用户 ID、fs 名称和密钥到 FSAL 块 (pr#40687, Varsha Rao)

  • include/librados: 修复 doxygen 语法以进行文档构建 (pr#40805, Josh Durgin)

  • mds: “集群 [WRN] inode 0x1000000039d (/client.0/tmp/blogbench-1.0/src/blogtest_in) 上的 Scrub 错误,详情请参阅 mds.a 日志和 damage ls 输出” (pr#40825, Milind Changire)

  • mds: 在 UnknownPayload::decode() 中跳过缓冲区 (pr#40682, Xiubo Li)

  • mgr/PyModule: 在 Py_GetPath() 之前放置 mgr_module_path (pr#40517, Kefu Chai)

  • mgr/dashboard: 设备健康状态未列在 hosts 部分下 (pr#40494, Aashish Sharma)

  • mgr/dashboard: 修复警报通知消息未定义的问题 (pr#40588, Nizamudeen A)

  • mgr/dashboard: 修复用户管理角色克隆损坏问题 (pr#40398, Nizamudeen A)

  • mgr/dashboard: 改进仪表板某些部分的描述 (pr#40545, Nizamudeen A)

  • mgr/dashboard: 从请求正文中移除用户名和密码 (pr#40981, Nizamudeen A)

  • mgr/dashboard: 从 Manager Modules/dashboard,influx 中移除用户名、密码字段 (pr#40489, Aashish Sharma)

  • mgr/dashboard: 撤销只读用户对 Manager 模块的访问权限 (pr#40648, Nizamudeen A)

  • mgr/dashboard: 除非手动清除 cookie,否则无法登录 ceph 仪表板 (pr#40586, Avan Thakkar)

  • mgr/dashboard: 调试 nodeenv 挂起 (pr#40815, Ernesto Puerta)

  • mgr/dashboard: 文件系统池大小应使用存储统计信息 (pr#40980, Avan Thakkar)

  • mgr/dashboard: 修复损坏的功能切换 (pr#40474, Ernesto Puerta)

  • mgr/dashboard: 修复创建 NFS 导出时重复行的问题 (pr#40990, Alfonso Martínez)

  • mgr/dashboard: 修复创建 NFS 导出时出现的错误 (pr#40822, Alfonso Martínez)

  • mgr/dashboard: 改进遥测选择加入提醒通知消息 (pr#40887, Waad Alkhoury)

  • mgr/dashboard: 通过 promtool 测试 prometheus 规则 (pr#40929, Aashish Sharma, Kefu Chai)

  • mon: 修改 trim 逻辑以动态更改 paxos_service_trim_max (pr#40691, Aishwarya Mathuria)

  • monmaptool: 不要在无效地址上调用 set_port (pr#40690, Brad Hubbard, Kefu Chai)

  • os/FileStore: 不将 split/merge 错误传播到“create”/“remove” (pr#40989, Mykola Golub)

  • os/bluestore/BlueFS: 不 _flush_range 已删除的文件 (pr#40677, weixinwei)

  • osd/PeeringState: 修复 acting_set_writeable min_size 检查 (pr#40759, Samuel Just)

  • packaging: immutable object cache 守护程序需要 ceph-common (pr#40665, Ilya Dryomov)

  • pybind/mgr/volumes: 异步作业死锁导致 finisher 线程挂起 (pr#40630, Kefu Chai, Patrick Donnelly)

  • qa/suites/krbd: unmap 子套件不需要 CEPHX_V2 (pr#40826, Ilya Dryomov)

  • qa/suites/rados/cephadm: 停止在损坏的 focal kubic podman 上测试 (pr#40512, Sage Weil)

  • qa/tasks/ceph.conf: 缩短 cephx TTL 以进行测试 (pr#40663, Sage Weil)

  • qa/tasks/cephfs: 创建足够的子卷 (pr#40688, Ramana Raja)

  • qa/tasks/vstart_runner.py: 启动最大所需 mgrs (pr#40612, Alfonso Martínez)

  • qa/tasks: 在启动 scrubbing 之前添加 wait_for_clean() 检查 (pr#40461, Sridhar Seshasayee)

  • qa: “AttributeError: ‘NoneType’ 对象没有属性 ‘mon_manager’” (pr#40645, Rishabh Dave)

  • qa: “日志 [ERR] : 读取 sessionmap ‘mds2_sessionmap’ 错误” (pr#40852, Patrick Donnelly)

  • qa: 修复 ino_release_cb 竞争行为 (pr#40683, Patrick Donnelly)

  • qa: fs:cephadm mount 不等待 mds 创建 (pr#40528, Patrick Donnelly)

  • qa: 在 workloads 中测试 standby_replay (pr#40853, Patrick Donnelly)

  • rbd-mirror: 修复注册 perf 计数器时的 UB (pr#40680, Arthur Outhenin-Chalandre)

  • rgw: 为操作的请求摘要添加延迟 (pr#40448, Ali Maredia)

  • rgw: 将 datalog 改进反向移植到 Pacific (pr#40559, Yuval Lifshitz, Adam C. Emerson)

  • test: 对 test_mirroring_init_failure_with_recovery 测试禁用 mgr/mirroring (issue#50020, pr#40684, Venky Shankar)

  • tools/cephfs_mirror/PeerReplayer.cc: 添加缺失的 include (pr#40678, Duncan Bellamy)

  • vstart.sh: 禁用“auth_allow_insecure_global_id_reclaim” (pr#40957, Kefu Chai)

v16.2.1 Pacific

这是 Pacific 稳定系列的第一个错误修复版本。它解决了 Ceph 身份验证框架中的一个安全漏洞。

我们建议所有 Pacific 用户升级。

安全修复

  • 此版本包含一个安全修复程序,可确保 global_id 值(集群中每个经过身份验证的客户端或守护程序都应唯一的数字值)在网络断开连接或票证续订后以安全方式回收。升级期间可能会出现两个新的健康警报,表明存在尚未修补相应修复程序的客户端或守护程序。

    要在升级期间暂时静音不安全客户端的健康警报,您可能需要

    ceph health mute AUTH_INSECURE_GLOBAL_ID_RECLAIM 1h
    ceph health mute AUTH_INSECURE_GLOBAL_ID_RECLAIM_ALLOWED 1h
    

    有关详细信息,请参阅 CVE-2021-20288: Unauthorized global_id reuse in cephx

v16.2.0 Pacific

这是 Ceph Pacific 的第一个稳定版本。

与 Octopus 的主要变化

通用

  • Cephadm 可以通过单个命令自动将 Octopus 集群升级到 Pacific。

  • Cephadm 在过去一年中得到了显著改进,对 RGW(独立和多站点)的支持得到了改进,并新增了对 NFS 和 iSCSI 的支持。其中大部分更改已经反向移植到最近的 Octopus 点版本中,但随着 Pacific 版本的发布,我们将只反向移植错误修复。

  • 软件包 为以下发行版构建

    • CentOS 8

    • Ubuntu 20.04 (Focal)

    • Ubuntu 18.04 (Bionic)

    • Debian Buster

    • 容器镜像 (基于 CentOS 8)

    除 Debian Buster 外,软件包和容器都为 x86_64 和 aarch64 (arm64) 架构构建。

    请注意,cephadm 集群可能适用于许多其他发行版,前提是 Python 3 和最新版本的 Docker 或 Podman 可用于管理容器。有关更多信息,请参阅 要求

仪表盘

Ceph 仪表板 在以下管理领域带来了改进

  • 编排器/Cephadm

    • 主机管理:维护模式、标签。

    • 服务:显示放置规范。

    • OSD:磁盘更换、显示正在进行的删除状态以及改进的健康/SMART 诊断报告。

  • 官方 Ceph RESTful API

    • 符合 OpenAPI v3 标准。

    • 从 Pacific 版本开始承诺稳定性。

    • 通过 HTTP Accept 标头进行版本控制(从 v1.0 开始)。

    • 经过严格测试(>90% 覆盖率和每次拉取请求验证)。

    • 文档齐全。

  • RGW

    • 多站点同步监控。

    • 管理多个 RGW 守护程序及其资源(存储桶和用户)。

    • 存储桶和用户配额使用情况可视化。

    • 改进了 S3 租户用户的配置。

  • 安全性(IBM 进行渗透测试后,进行了多项增强和修复)

    • 可配置的登录尝试失败次数后,账户将被锁定。

    • 改进了 Cookie 策略,以缓解 XSS/CSRF 攻击。

    • 审查并改进了 HTTP 头中的安全性。

    • 审查并从日志和错误消息中删除了敏感信息。

    • 禁用 TLS 1.0 和 1.1 支持。

    • 启用调试模式时触发 HEALTH_WARN。

    • 改进了复制和纠删码模式的可视化。

    • 支持 CLAY 纠删码插件。

  • 警报和通知

    • 在集群网络中 MTU 不匹配时触发警报。

    • 根据集群状态更改 Favicon。

  • 其他

    • 着陆页:改进了图表和可视化效果。

    • 遥测配置向导。

    • OSD:管理单个 OSD 标志。

    • RBD:每个 RBD 镜像的 Grafana 仪表板。

    • CephFS:显示目录和容量。

    • NFS:仅支持 v4(计划向后兼容 v3)。

    • 前端:Angular 10 更新。

RADOS

  • Pacific 引入了 RocksDB 分片,它减少了磁盘空间需求。

  • Ceph 现在通过 mclock 调度程序在客户端 I/O 和后台操作之间提供 QoS。

  • 默认情况下,均衡器现在在 upmap 模式下启用,以改善 PG 在 OSD 上的分布。

  • 已改进 ceph -s 的输出,以在一个进度条中显示恢复进度。更详细的进度条可通过 ceph progress 命令查看。

RBD 块存储

  • 镜像实时迁移功能已扩展为支持外部数据源。现在可以从本地文件、通过 HTTP(S) 提供的远程文件或远程 S3 存储桶中即时导入 raw (rbd export v1) 或基本 qcowqcow2 格式的镜像。未来版本中预计将支持 rbd export v2 格式、高级 QCOW 功能和 rbd export-diff 快照差异。

  • 已添加对客户端加密的初步支持。这基于 LUKS,在未来版本中将允许使用每个镜像的加密密钥,同时保持快照和克隆功能——以便父镜像和可能多个克隆镜像可以使用不同的密钥进行加密。

  • 提供了一个新的持久写回缓存。该缓存以日志结构方式运行,为后端镜像提供完整的即时一致性。它应该特别适用于 PMEM 设备。

  • 现在以 librbd.dllrbd-wnbd (Windows 网络块设备) 守护程序的形式提供 Windows 客户端。它允许映射、取消映射和操作镜像,类似于 rbd-nbd

  • librbd API 现在提供静默/取消静默钩子,允许协调快照创建。

RGW 对象存储

  • S3 Select 的初步支持。有关支持的查询,请参阅 功能支持

  • 存储桶通知主题可以配置为 persistent,其中事件记录在 rados 中以实现可靠交付。

  • 存储桶通知可以发送到启用 SSL 的 AMQP 端点。

  • Lua 脚本可以在请求期间运行并访问其元数据。

  • SSE-KMS 现在支持 KMIP 作为密钥管理服务。

  • 多站点数据日志现在可以部署在 cls_fifo 上,以避免大型 omap 集群警告并降低修剪成本。请参阅 rgw_data_log_backing

CephFS 分布式文件系统

  • CephFS MDS 修改 RADOS 上的元数据,使其新格式不再向后兼容。无法将文件系统从 Pacific(或更高版本)降级到旧版本。

  • 单个 Ceph 集群中的多个文件系统现在是稳定的。默认情况下,新的 Ceph 集群支持多个文件系统。现有集群仍然必须在 FS 上设置“enable_multiple”标志。另请参阅 多个 Ceph 文件系统

  • 一个新的 mds_autoscaler ceph-mgr 插件可用,用于响应 max_mds 配置的更改而自动部署 MDS 守护程序。预计未来将进一步增强以简化和自动化 MDS 扩展。

  • cephfs-top 是一个用于查看 CephFS 客户端性能指标的新实用程序。它处于开发预览质量,并且会有错误。有关更多信息,请参阅 CephFS Top 实用程序

  • 一个新的 snap_schedule ceph-mgr 插件提供了一个用于在 CephFS 文件系统上调度快照的命令工具集。有关更多信息,请参阅 快照调度模块

  • Ceph 中一流的 NFS 网关支持已到来!现在可以通过几个命令创建横向扩展(“主动-主动”)NFS 网关集群,以导出 CephFS。网关通过 cephadm(或未来通过 Rook)部署。有关更多信息,请参阅 通过 NFS 导出 CephFS 和 RGW

  • 多个活动 MDS 文件系统擦洗现在稳定。不再需要将 max_mds 设置为 1 并等待非零等级停止。擦洗命令只能发送到等级 0:ceph tell mds.<fs_name>:0 scrub start /path ...。有关更多信息,请参阅 Ceph 文件系统擦洗

  • 临时固定——基于策略的子树固定——被认为是稳定的。mds_export_ephemeral_randommds_export_ephemeral_distributed 现在默认为 true。有关更多信息,请参阅 设置子树分区策略

  • 一个新的 cephfs-mirror 守护程序可用,用于将 CephFS 文件系统镜像到远程 Ceph 集群。有关更多信息,请参阅 CephFS 快照镜像

  • 现在提供了用于连接到 CephFS 的 Windows 客户端。这通过一个新的 ceph-dokan 实用程序提供,该实用程序通过 Dokan 用户空间 API 运行,类似于 FUSE。有关更多信息,请参阅 在 Windows 上挂载 CephFS

从 Octopus 或 Nautilus 升级

在开始之前,请确保您的集群稳定且健康(没有宕机或正在恢复的 OSD)。(这是可选的,但建议这样做。)

注意

警告:请勿在 Pacific 版本 <= 16.2.6 中将 bluestore_fsck_quick_fix_on_mount 设置为 true 或运行 ceph-bluestore-tool repair 或 quick-fix 命令,因为这可能导致数据损坏,详细信息请参见 https://tracker.ceph.com/issues/53062

注意

当使用多个活动的 Ceph 元数据服务器时,请确保没有待处理的零散条目,这些条目是活动等级(除了等级 0)的目录,因为启动升级(将 max_mds 设置为 1)可能会导致 Ceph 元数据服务器崩溃。以下命令应返回所有零散目录的零 (0) 个零散条目

# for idx in {0..9}; do ceph tell mds.<rank> dump tree ~mdsdir/stray$idx| jq '.[] | select (.nlink == 0 and .dir_layout.dir_hash > 0) | .stray_prior_path' | wc -l; done

确保检查除等级 0 之外的所有活动等级是否存在零散目录(使用上述命令)。详细信息已记录在 http://tracker.ceph.com/issues/53597 中。

升级 cephadm 集群

如果您的集群是使用 cephadm 部署的(首次在 Octopus 中引入),则升级过程是完全自动化的。要启动升级,

ceph orch upgrade start --ceph-version 16.2.0

相同的过程用于升级到未来的次要版本。

升级进度可以通过 ceph -s(提供简单的进度条)或更详细地通过以下命令进行监控

ceph -W cephadm

可以使用以下命令暂停或恢复升级:

ceph orch upgrade pause   # to pause
ceph orch upgrade resume  # to resume

或使用以下命令取消:

ceph orch upgrade stop

请注意,取消升级只是停止该过程;无法降级回 Octopus。

升级非 cephadm 集群

注意

如果您的集群正在运行 Octopus (15.2.x),您可以选择先将其转换为使用 cephadm,以便将升级到 Pacific 自动化(如上所述)。有关更多信息,请参阅 将现有集群转换为 cephadm

  1. 在升级期间设置 noout 标志。(可选,但推荐。)

    # ceph osd set noout
    
  2. 通过安装新包并重新启动监视器守护程序来升级监视器。例如,在每个监视器主机上,

    # systemctl restart ceph-mon.target
    

    所有监视器都启动后,通过在监视器映射中查找 octopus 字符串来验证监视器升级是否完成。该命令

    # ceph mon dump | grep min_mon_release
    

    应报告

    min_mon_release 16 (pacific)
    

    如果找不到,则意味着一个或多个监视器尚未升级和重新启动和/或仲裁不包括所有监视器。

  3. 通过安装新包并重新启动所有管理器守护程序来升级 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
    ...
    
  4. 通过安装新包并重新启动所有 OSD 主机上的 ceph-osd 守护程序来升级所有 OSD

    # systemctl restart ceph-osd.target
    

    请注意,如果您正在从 Nautilus 升级,每个 OSD 第一次启动时,它将进行格式转换以改进“omap”数据的统计。这可能需要几分钟到几个小时(对于具有大量 omap 数据的 HDD)。您可以使用以下命令禁用此自动转换

    # ceph config set osd bluestore_fsck_quick_fix_on_mount false
    

    您可以使用 ceph versionsceph osd versions 命令监控 OSD 升级进度

    # ceph osd versions
    {
       "ceph version 14.2.5 (...) nautilus (stable)": 12,
       "ceph version 16.2.0 (...) pacific (stable)": 22,
    }
    
  5. 升级所有 CephFS MDS 守护程序。对于每个 CephFS 文件系统:

    1. 禁用 FSMap 健全性检查

      # ceph config set mon mon_mds_skip_sanity true
      
    2. 禁用 standby_replay

      # ceph fs set <fs_name> allow_standby_replay false
      
    3. 将排名数减少到 1。(如果您计划稍后恢复,请先记下原始 MDS 守护程序数。)

      # ceph status
      # ceph fs set <fs_name> max_mds 1
      
    4. 通过定期检查状态等待集群停用任何非零排名:

      # ceph status
      
    5. 在适当的主机上使用以下命令使所有 standby MDS 守护程序离线:

      # systemctl stop ceph-mds@<daemon_name>
      
    6. 确认只有一个 MDS 在线并且是您的 FS 的排名 0:

      # ceph status
      
    7. 通过安装新软件包并重新启动守护程序来升级最后剩下的 MDS 守护程序:

      # systemctl restart ceph-mds.target
      
    8. 重新启动所有已离线的 standby MDS 守护程序:

      # systemctl start ceph-mds.target
      
    9. 恢复卷的 max_mds 原始值:

      # ceph fs set <fs_name> max_mds <original_max_mds>
      
    10. 移除 mon_mds_skip_sanity 设置

      # ceph config rm mon mon_mds_skip_sanity
      
  6. 通过升级包并重新启动所有主机上的守护程序来升级所有 radosgw 守护程序

    # systemctl restart ceph-radosgw.target
    
  7. 通过禁止 pre-Pacific OSD 并启用所有新的仅 Pacific 功能来完成升级

    # ceph osd require-osd-release pacific
    
  8. 如果您在开始时设置了 noout,请务必使用以下命令将其清除:

    # ceph osd unset noout
    
  9. 考虑将集群转换为使用 cephadm 部署和编排框架,以简化集群管理和未来的升级。有关将现有集群转换为 cephadm 的更多信息,请参阅 将现有集群转换为 cephadm

升级后

  1. 使用 ceph health 验证集群是否健康。

    如果您的 CRUSH tunables 早于 Hammer,Ceph 现在将发出健康警告。如果您看到此类健康警报,可以使用以下命令恢复此更改

    ceph config set mon mon_crush_min_required_version firefly
    

    但是,如果 Ceph 没有抱怨,那么我们建议您也将任何现有的 CRUSH 存储桶切换到 straw2,这是在 Hammer 版本中添加的。如果您有任何“straw”存储桶,这将导致适量的数据移动,但通常不会太严重。

    ceph osd getcrushmap -o backup-crushmap
    ceph osd crush set-all-straw-buckets-to-straw2
    

    如果出现问题,您可以使用以下命令轻松恢复

    ceph osd setcrushmap -i backup-crushmap
    

    切换到“straw2”存储桶将解锁一些最近的功能,例如在 Luminous 中添加的 crush-compat balancer 模式。

  2. 如果您在从 Mimic 升级时还没有这样做,我们建议您启用新的 v2 网络协议,发出以下命令

    ceph mon enable-msgr2
    

    这将指示所有绑定到旧默认端口 6789 以用于传统 v1 协议的监视器也绑定到新的 3300 v2 协议端口。要查看是否所有监视器都已更新,

    ceph mon dump
    

    并验证每个监视器都列出了 v2:v1: 地址。

  3. 考虑启用 遥测模块,以向 Ceph 上游开发人员发送匿名使用统计信息和崩溃信息。要查看将报告的内容(而不实际向任何人发送任何信息),

    ceph mgr module enable telemetry
    ceph telemetry show
    

    如果您对报告的数据感到满意,可以选择自动报告高级集群元数据,使用

    ceph telemetry on
    

    聚合 Ceph 遥测数据的公共仪表盘位于 https://telemetry-public.ceph.com/

    有关遥测模块的更多信息,请参阅 文档

从 pre-Nautilus 版本(如 Mimic 或 Luminous)升级

在升级到 Pacific 之前,您必须首先升级到 Nautilus (14.2.z) 或 Octopus (15.2.z)。

显著变化

  • 一个新的库 libcephsqlite 可用。它在 RADOS 之上提供了一个 SQLite 虚拟文件系统 (VFS)。数据库和日志通过 RADOS 在多个对象上进行条带化,以实现几乎无限的扩展和吞吐量,仅受 SQLite 客户端限制。使用 SQLite 的应用程序可以通过最小的更改更改为 Ceph VFS,通常只需指定备用 VFS。我们期望该库对于将状态存储在 RADOS omap 中,特别是没有条带化(这限制了可伸缩性)的应用程序,将是最有影响力和最有用的。

  • 新的 bluestore_rocksdb_options_annex 配置参数。它补充了 bluestore_rocksdb_options,并允许设置 rocksdb 选项而无需重复现有默认值。

  • 在配置路径(如 admin_socket)中的 $pid 扩展现在将正确扩展到守护程序 pid,用于 ceph-mdsceph-osd 等命令。以前只有 ceph-fuse/rbd-nbd 会用实际的守护程序 pid 扩展 $pid

  • 一些 radosgw-admin 命令的允许选项已更改。

    • mdlog-listdatalog-listsync-error-list 不再接受开始和结束日期,但接受一个可选的开始标记。

    • mdlog-trimdatalog-trimsync-error-trim 只接受一个标记,表示修剪范围的结束。

    • 同样,RESTful DATALog 和 MDLog 列表和修剪操作中的日期范围和标记范围也已移除。

  • ceph-volume:lvm batch 子命令进行了重大重写。这解决了许多错误,并提高了大小指定和计算以及幂等行为和磁盘替换过程的可用性。有关更详细的信息,请参阅 https://docs.ceph.net.cn/en/latest/ceph-volume/lvm/batch/

  • 允许的擦洗时间的配置变量已更改。osd_scrub_begin_hourosd_scrub_end_hour 的合法值为 0 - 23。使用 24 现在是非法的。将这两个值都指定为 0 会允许每小时。 osd_scrub_begin_week_dayosd_scrub_end_week_day 的合法值为 0 - 6。使用 7 现在是非法的。将这两个值都指定为 0 会允许一周中的每一天。

  • 卷/nfs:最近,从集群 ID 和 nfs-ganesha 公共配置对象中删除了“ganesha-”前缀,以确保跨不同编排器后端的命名空间一致。请在升级之前删除任何现有的 nfs-ganesha 集群,并在升级到 Pacific 之后重新部署新集群。

  • 一个新的健康检查 DAEMON_OLD_VERSION 将在守护程序上运行不同版本的 Ceph 时发出警告。如果检测到多个版本,它将生成健康错误。此条件必须持续超过 mon_warn_older_version_delay(默认设置为 1 周)才能触发健康状况。这允许大多数升级在没有错误警告的情况下进行。如果升级长时间暂停,可以使用“ceph health mute DAEMON_OLD_VERSION --sticky”静音健康状态。在这种情况下,升级完成后使用“ceph health unmute DAEMON_OLD_VERSION”。

  • MGR: progress 模块现在可以打开/关闭,使用命令:ceph progress onceph progress off

  • 已添加符合 AWS 的 API:“GetTopicAttributes”以取代现有的“GetTopic”API。新 API 应用于获取用于存储桶通知的主题信息。

  • librbd:共享的只读父缓存的配置选项 immutable_object_cache_watermark 现已更新,以正确反映在回收空间之前缓存的上限利用率。默认的 immutable_object_cache_watermark 现在是 0.9。如果容量达到 90%,守护进程将删除冷缓存。

  • OSD:引入了选项 osd_fast_shutdown_notify_mon,即使启用了 osd_fast_shutdown,它也允许 OSD 通知监视器它正在关闭。这有助于大型集群上的监视器日志,这些集群可能会收到许多“osd.X reported immediately failed by osd.Y”消息,并使工具感到困惑。

  • mclock 调度程序已得到改进。现在提供了一组内置配置文件,可在 Ceph 的内部和外部客户端之间提供 QoS。要启用 mclock 调度程序,请将配置选项“osd_op_queue”设置为“mclock_scheduler”。默认情况下启用“high_client_ops”配置文件,该配置文件为外部客户端操作分配比内部客户端操作(例如后台恢复和擦洗)更多的 OSD 带宽。其他内置配置文件包括“high_recovery_ops”和“balanced”。这些内置配置文件优化了为 mclock 调度程序客户端提供的 QoS。

  • 默认情况下,均衡器在 upmap 模式下处于开启状态。由于 upmap 模式需要 require_min_compat_client luminous,因此新集群默认仅支持 luminous 和更新的客户端。现有集群可以通过运行 ceph osd set-require-min-compat-client luminous 启用 upmap 支持。仍然可以使用 ceph balancer off 命令关闭均衡器。在早期版本中,均衡器包含在 always_on_modules 列表中,但需要使用 ceph balancer on 命令显式打开。

  • 默认情况下,现在需要 cephx 身份验证协议的第 2 版 (CEPHX_V2 功能位)。它于 2018 年引入,为授权者增加了重放攻击保护,并使 msgr v1 消息签名更强 (CVE-2018-1128 和 CVE-2018-1129)。支持存在于 Jewel 10.2.11、Luminous 12.2.6、Mimic 13.2.1、Nautilus 14.2.0 及更高版本;上游内核 4.9.150、4.14.86、4.19 及更高版本;各种发行版内核,特别是 CentOS 7.6 及更高版本。要启用旧客户端,请将 cephx_require_versioncephx_service_require_version 配置选项设置为 1。

  • blacklist 已被 blocklist 完全取代。以下命令已更改

    • ceph osd blacklist ... 现为 ceph osd blocklist ...

    • ceph <tell|daemon> osd.<NNN> dump_blacklist 现为 ceph <tell|daemon> osd.<NNN> dump_blocklist

  • 以下配置选项已更改

    • mon osd blacklist default expire 现为 mon osd blocklist default expire

    • mon mds blacklist interval 现为 mon mds blocklist interval

    • mon mgr blacklist interval 现为 ``mon mgr blocklist interval``

    • rbd blacklist on break lock 现为 rbd blocklist on break lock

    • rbd blacklist expire seconds 现为 rbd blocklist expire seconds

    • mds session blacklist on timeout 现为 mds session blocklist on timeout

    • mds session blacklist on evict 现为 mds session blocklist on evict

  • 以下 librados API 调用已更改

    • rados_blacklist_add 现为 rados_blocklist_add;前者将发出弃用警告,并在未来版本中删除。

    • C++ API 中的 rados.blacklist_add 现为 rados.blocklist_add

  • 以下命令的 JSON 输出现在显示 blocklist 而不是 blacklist

    • ceph osd dump

    • ceph <tell|daemon> osd.<N> dump_blocklist

  • 监视器现在具有配置选项 mon_allow_pool_size_one,默认禁用。但是,如果启用,用户现在必须向 osd pool set size 1 传递 --yes-i-really-mean-it 标志,如果他们确实确定要配置池大小为 1。

  • ceph pg #.# list_unfound 输出已增强,以提供 might_have_unfound 信息,该信息指示哪些 OSD 可能包含未找到的对象。

  • OSD:已添加新的配置选项 osd_compact_on_start,该选项在启动时触发 OSD 压缩。将此选项设置为 true 并重新启动 OSD 将导致 OSD 在启动前进行离线压缩。

  • OSD:已移除名为 bdev_nvme_retry_count 的选项。因为在 SPDK v20.07 中,bdev_nvme 选项不易访问,并且此选项很少使用,所以它被移除了。

  • Alpine 构建相关脚本、文档和测试已移除,因为 Alpine Linux 的 aports 存储库中已包含 Ceph 最新的 APKBUILD 脚本。

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入