注意
本文档适用于 Ceph 的开发版本。
Nautilus
Nautilus 是 Ceph 的第 14 个稳定版本。它以鹦鹉螺命名,鹦鹉螺是一个以螺旋状外壳为特征的头足类动物家族。
v14.2.22 Nautilus
这是 Nautilus 系列中的第 22 个,也很可能是最后一个反向移植版本。最终,我们建议所有用户升级到更新的 Ceph 版本。
值得注意的变更
此版本默认将
bluefs_buffered_io设置为 true,以提高元数据密集型工作负载的性能。据报告,启用此选项有时会导致某些工作负载下出现过度的内核交换。目前,性能最稳定的组合是启用 bluefs_buffered_io 并禁用系统级交换。bluestore_cache_trim_max_skip_pinned的默认值已增加到 1000,以控制由于 onode 引起的内存增长。BlueStore 中的其他几个错误修复,包括修复 Avl/Hybrid 分配器中意外的 ENOSPC 错误。
监控器中的裁剪逻辑已变为动态,引入了
paxos_service_trim_max_multiplier,这是一个因子,paxos_service_trim_max乘以该因子,以便在需要时加快裁剪速度。将其设置为 0 会禁用裁剪的上限检查,并使监控器以最大速率裁剪。osd ok-to-stop命令提供了--max <n>选项,以提供最多 N 个 OSD 可以同时停止而不会导致 PG 不可用。OSD:引入了
osd_fast_shutdown_notify_mon选项,即使启用了osd_fast_shutdown,OSD 也可以通知监控器它正在关闭。这有助于在大型集群上处理监控器日志,这些日志可能会收到许多“osd.X by osd.Y 立即报告失败”消息,并混淆工具。修复了一个长期存在的错误,该错误阻止了 32 位和 64 位客户端/服务器在 msgr v2 下的互操作性。特别是,在同一个集群中混合使用 armv7l (armhf) 和 x86_64 或 aarch64 服务器现在可以正常工作。
变更日志
PendingReleaseNotes:关于 14.2.18 mgr 修复的注释(pr#40121,Josh Durgin)
如果没有其他地址可用,则绑定到环回地址(pr#41137,Kefu Chai,Matthew Oliver)
使用 distutils 构建 python 扩展(pr#41167,Kefu Chai)
ceph-monstore-tool:使用足够大的 paxos/{first,last}_committed(issue#38219,pr#41874,Kefu Chai)
ceph-volume:禁用 blkid 调用的缓存(pr#41114,Rafał Wądołowski)
ceph-volume:修复批处理报告并遵守 ceph.conf 配置值(pr#41716,Andrew Schoen)
ceph-volume:修复批处理报告并遵守 ceph.conf 配置值(pr#41713,Andrew Schoen)
ceph-volume:实现 bluefs 卷迁移(pr#41676,Kefu Chai,Igor Fedotov)
ceph.spec.in:在 IBM Power 和 Z 上启用 tcmalloc(pr#40283,Nathan Cutler,Yaakov Selkowitz)
cephfs:客户端:添加按 inode 号查找快照 inode 的功能(pr#40769,Jeff Layton,Xiubo Li)
cephfs:客户端:仅检查常规文件的池权限(pr#40730,Xiubo Li)
cephfs:客户端:唤醒前端 pos 等待器(pr#40865,Xiubo Li)
客户端:修复 root 用户的可执行访问检查(pr#41297,Kotresh HR)
客户端:在缓冲区刷新后触发 finish_cap_snap()(pr#40722,Xiubo Li)
cls/rgw:也在非 ascii 普通命名空间中查找普通条目(pr#41776,Mykola Golub)
cmake,zstd,debian:允许在系统中使用 libzstd(pr#40516,Kefu Chai,Bryan Stillwell,Dan van der Ster)
cmake:如果它们是内部静态库,则构建静态库(pr#39903,Kefu Chai)
cmake:检测 gettid() 的存在(pr#40333,Igor Fedotov)
cmake:为某些测试可执行文件设置空的 RPATH(pr#40619,Nathan Cutler,Kefu Chai)
common/buffer:在调用 posix_memalign() 之前调整对齐(pr#41246,Ilya Dryomov)
common/ipaddr:跳过名为 'lo' 的环回接口并进行测试(pr#40423,Dan van der Ster)
common/mempool:仅在分片非常差时才使测试失败(pr#40567,singuliere)
common/options/global.yaml.in:增加 bluestore_cache_trim_max_skip_pinned 的默认值(pr#40920,Neha Ojha)
common/options:默认 bluefs_buffered_io=true(pr#40393,Dan van der Ster)
common:修复禁用和重新启用 clog_to_monitors 时发生的断言(pr#39912,Gerald Yang)
common:删除 log_early 配置选项(pr#40549,Changcheng Liu)
crush/CrushLocation:不在构造函数中打印日志消息(pr#40750,Alex Wu)
crush/CrushWrapper:在 update_item() 上更新影子树(pr#39920,Sage Weil)
debian/ceph-common.postinst:不更改 cephadm 日志目录的所有者(pr#40698,Sage Weil)
debian/control:添加缺失的逗号,在 focal 上使用 python3 包进行“make check”(pr#40485,Kefu Chai,Alfredo Deza)
install-deps.sh:删除不同版本的现有 ceph-libboost(pr#40287,Kefu Chai)
libcephfs:忽略恢复打开文件限制(pr#41593,Xiubo Li)
librbd:允许中断的垃圾移动请求重新启动(pr#40675,Jason Dillaman)
librbd:在清除时不要在第一个不可移除的镜像处停止(pr#41662,Ilya Dryomov)
librbd:修复 TestMigration.StressLive 中的偶发性故障(pr#41788,Jason Dillaman)
librbd:当禁用对象映射时与重叠的飞行中写入发生竞争(pr#41787,Jason Dillaman)
make-dist:如果脚本路径包含冒号,则拒绝运行(pr#41088,Nathan Cutler)
mds:在 standby_replay 中不要从 lru 列表中裁剪 inode(pr#41144,Xiubo Li)
mds:修复获取大型 dirfrag 的竞争(pr#40720,Erqi Chen)
mds:仅在擦洗运行时将擦洗状态发送给 ceph-mgr(issue#45349,pr#36183,Kefu Chai,Venky Shankar)
mds:定期为 standby-replay 裁剪缓存(pr#40744,Patrick Donnelly)
mgr/ActivePyModules.cc:在尝试获取锁之前始终释放 GIL(pr#40047,Kefu Chai)
mgr/Dashboard:删除主机概览 Grafana 仪表板中的错误元素(pr#41650,Malcolm Holmes)
mgr/PyModule:将 mgr_module_path 放在 Py_GetPath() 之前(pr#40753,Kefu Chai)
mgr/dashboard:修复警报通知消息未定义的问题(pr#40590,Nizamudeen A)
mgr/dashboard:修复 CephFS 每个会话的缺失根路径(pr#39869,Yongseok Oh)
mgr/dashboard:监控警报徽章包括已抑制的警报(pr#39511,Aashish Sharma)
mgr/dashboard:从 Manager Modules/dashboard,influx 中删除用户名、密码字段(pr#40490,Aashish Sharma)
mgr/dashboard:撤销只读用户对 Manager 模块的访问权限(pr#40650,Nizamudeen A)
mgr/dashboard:调试 nodeenv 挂起(pr#40818,Ernesto Puerta)
mgr/dashboard:将单元测试与构建工件解耦(pr#40547,Alfonso Martínez)
mgr/dashboard:在传递给 exec_cmd() 之前编码非 ascii 字符串(pr#40522,Kefu Chai)
mgr/dashboard:文件系统池大小应使用存储的统计信息(pr#41021,Avan Thakkar)
mgr/dashboard:修复 API 文档链接(pr#41521,Avan Thakkar)
mgr/dashboard:修复 OSD 主机详细信息/概览 grafana 图表(issue#49769,pr#41531,Alfonso Martínez,Michael Wodniok)
mgr/dashboard:修复 base-href:恢复到以前的方法(pr#41253,Avan Thakkar)
mgr/dashboard:修复存储桶对象和大小计算(pr#41648,Avan Thakkar)
mgr/dashboard:修复仪表板实例 ssl 证书功能(pr#40003,Avan Thakkar)
mgr/dashboard:rgw 多站点同步性能的 grafana 面板(pr#41386,Alfonso Martínez)
mgr/dashboard:python 2:修复非 ASCII 密码错误(pr#40610,Alfonso Martínez)
mgr/dashboard:报告 mgr fsid(pr#39853,Ernesto Puerta)
mgr/dashboard:显示部分删除的 RBD(pr#41738,Tatjana Dehler)
mgr/dashboard:通过 promtool 测试 prometheus 规则(pr#39984,Aashish Sharma,Kefu Chai)
mgr/progress:确保进度保持在 [0,1] 之间(pr#41310,Dan van der Ster)
mgr/telemetry:检查“ident”通道是否活动(pr#39923,Yaarit Hatuka)
mgr/telemetry:即使没有 ident 也传递排行榜标志(pr#41839,Sage Weil)
mgr/volumes:在克隆中保留 suid guid 位(pr#40270,Kotresh HR)
mgr:向“osd ok-to-stop”命令添加 --max <n>(pr#40676,Sage Weil,Xuehan Xu)
mgr:使用“mon”类型添加 mon 元数据(pr#40359,Kefu Chai)
mon/ConfigMap:修复散乱选项泄漏(pr#40299,Sage Weil)
mon/MonClient:在 _reopen_session() 中重置 authenticate_err(pr#41016,Ilya Dryomov)
mon/MonClient:容忍稍微过时的旋转密钥(pr#41448,Ilya Dryomov)
mon/OSDMonitor:在宽限期后丢弃过时的 failure_info(pr#41213,Kefu Chai)
mon/OSDMonitor:即使 can_mark_down() 也丢弃过时的 failure_info(pr#41519,Kefu Chai)
mon:修改裁剪逻辑以动态更改 paxos_service_trim_max(pr#41099,Aishwarya Mathuria)
mon:确保打印前进度在 [0,1] 之间(pr#41098,Dan van der Ster)
mon:在 mkfs monmap 之前加载暂存的 map(pr#41762,Dan van der Ster)
monmaptool:不要对无效地址调用 set_port(pr#40700,Brad Hubbard,Kefu Chai)
os/FileStore:不要将 split/merge 错误传播到“create”/“remove”(pr#40987,Mykola Golub)
os/FileStore:修复以正确处理 readdir 错误(pr#41238,Misono Tomohiro)
os/bluestore/BlueFS:不 _flush_range 删除的文件(pr#40752,weixinwei)
os/bluestore/BlueFS:使用 iterator_impl::copy 而不是 bufferlist::c_str() 来避免 bufferlist 重建(pr#39883,weixinwei)
os/bluestore:默认在 _open_super_meta 中更详细(pr#41060,Igor Fedotov)
os/bluestore:不要将固定条目计为已裁剪条目(pr#41173,Igor Fedotov)
os/bluestore:修复 Avl/Hybrid 分配器中意外的 ENOSPC(pr#41673,Igor Fedotov)
os/bluestore:为 bluestore 的修复器引入多线程同步(pr#41749,Igor Fedotov)
os/bluestore:容忍分配器的 init_[add/rm]_free() 的零长度(pr#41750,Igor Fedotov)
osd/PG.cc:处理 pgmeta 对象的删除(pr#41682,Neha Ojha)
osd/PeeringState:修复 acting_set_writeable min_size 检查(pr#41611,Dan van der Ster)
osd:添加 osd_fast_shutdown_notify_mon 选项(默认 false)(issue#46978,pr#40014,Mauricio Faria de Oliveira)
osd:通过原始空间利用率计算 OSD 的空间使用率(pr#41111,Igor Fedotov)
osd:不要多次转储 osd(pr#40747,Xue Yantao)
pybind/ceph_daemon:如果 prettytable 不可用,则不失败(pr#40335,Kefu Chai)
pybind/cephfs:DT_REG 和 DT_LNK 值错误(pr#40704,Varsha Rao)
pybind/mgr/balancer/module.py:在平衡之前将权重集分配给所有存储桶(pr#40128,Neha Ojha)
pybind/mgr/volumes:异步作业挂起完成线程的死锁(pr#41394,Patrick Donnelly)
pybind/rados:应将“name”传递给 cstr()(pr#41318,Kefu Chai)
pybind:volume_client 处理 utf-8 编码目录名的清除(pr#36679,Jose Castro Leon)
qa/tasks/mgr/test_progress:修复 wait_until_equal(pr#39397,Kamoltat,Ricardo Dias)
qa/tasks/qemu:精确存储库已存档(pr#41641,Ilya Dryomov)
qa/tasks/vstart_runner.py:启动最大所需 mgr(pr#40751,Alfonso Martínez)
qa/tests:添加 client-upgrade-nautilus-pacific 测试(pr#39818,Yuri Weinstein)
qa/tests:将 nautilus 初始版本提前到 14.2.20(pr#41227,Yuri Weinstein)
qa/upgrade:使用旧客户端作为锁所有者时禁用 update_features test_notify(pr#41513,Deepika Upadhyay)
qa:为 blocklisting 添加睡眠以使其生效(pr#40714,Patrick Donnelly)
qa:为 ffsb 工作负载增加 osd 心跳宽限(pr#40713,Nathan Cutler)
qa:在 tearDown 期间删除所有 fs(pr#40709,Patrick Donnelly)
qa:krbd_blkroset.t:更新独立 hw 和用户只读标志(pr#40212,Ilya Dryomov)
qa:vstart_runner:TypeError:lstat:path 应该是字符串、字节或 os.PathLike,而不是 NoneType(pr#41485,Patrick Donnelly)
rbd-mirror:镜像重放器停止可能与实例重放器关闭竞争(pr#41792,Mykola Golub,Jason Dillaman)
rgw:捕获非整数异常(pr#40356,caolei)
rgw/http:向 http 客户端添加超时(pr#40667,Yuval Lifshitz)
rgw:添加从 keystone 检索的 S3 凭据缓存(pr#41158,James Weaver)
rgw:使用 swift 放置或获取大对象时使用正确的存储桶信息(pr#40106,zhiming zhang,yupeng chen)
rgw:允许 rgw-orphan-list 处理带有二进制数据的中间文件(pr#39767,J. Eric Ivancich)
rgw:beast 前端使用 512k mprotected 协程堆栈(pr#39947,Yaakov Selkowitz,Mauricio Faria de Oliveira,Daniel Gryniewicz,Casey Bodley)
rgw:在多对象删除中检查对象锁(issue#47586,pr#41164,Mark Houghton,Matt Benjamin)
rgw:在重新分片锁争用期间,调整日志记录(pr#41156,J. Eric Ivancich)
rgw:将 rgw_gc_max_objs 限制为 RGW_SHARDS_PRIME_1(pr#40670,Rafał Wądołowski)
rgw:radoslist 不完整的多分段标记(pr#40827,J. Eric Ivancich)
rgw:在评估存储桶策略时提前返回 ERR_NO_SUCH_BUCKET(issue#38420,pr#40668,Abhishek Lekshmanan)
rgw:尝试复制加密对象但没有密钥时返回错误(pr#40671,Ilsoo Byun)
rgw:用于查找具有缺失 rados 组件的 rgw 对象的工具(pr#39771,Michael Kidd,J. Eric Ivancich)
run-make-check.sh:让 ctest 生成 XML 输出(pr#40407,Kefu Chai)
src/global/signal_handler.h:修复 alpine 的预处理器逻辑(pr#39942,Duncan Bellamy)
test/TestOSDScrub:修复 mktime() 错误(pr#40621,luo rixin)
test/pybind:s/nosetests/python3/(pr#40536,Kefu Chai)
test/rgw:test_datalog_autotrim 过滤掉新条目(pr#40674,Casey Bodley)
test:使用 std::atomic<bool> 而不是 volatile 用于 cb_done 变量(pr#40701,Jeff Layton)
tests:ceph_test_rados_api_watch_notify:允许重新连接(pr#40697,Brad Hubbard)
vstart.sh:禁用“auth_allow_insecure_global_id_reclaim”(pr#40959,Kefu Chai)
v14.2.21 Nautilus
这是一个热修复版本,解决了许多安全问题和回归问题。我们建议所有用户更新到此版本。
更新日志
mgr/dashboard: fix base-href: revert it to previous approach (issue#50684, Avan Thakkar)
mgr/dashboard: fix cookie injection issue (CVE-2021-3509: Dashboard XSS via token cookie, Ernesto Puerta)
rgw: RGWSwiftWebsiteHandler::is_web_dir checks empty subdir_name (CVE-2021-3531: Swift API denial of service, Felix Huettner)
rgw: sanitize r in s3 CORSConfiguration’s ExposeHeader (CVE-2021-3524: HTTP header injects via CORS in RGW, Sergey Bobrov, Casey Bodley)
v14.2.20 Nautilus
这是 Nautilus 稳定系列的第 20 个错误修复版本。它解决了 Ceph 身份验证框架中的一个安全漏洞。
我们建议所有 Nautilus 用户升级。
安全修复
此版本包含一个安全修复程序,可确保 global_id 值(集群中每个经过身份验证的客户端或守护程序都应唯一的数字值)在网络断开连接或票证续订后以安全方式回收。升级期间可能会出现两个新的健康警报,表明存在尚未修补相应修复程序的客户端或守护程序。
可以禁用不安全客户端周围的健康警报
ceph config set mon mon_warn_on_insecure_global_id_reclaim false ceph config set mon mon_warn_on_insecure_global_id_reclaim_allowed false
但是,如果您禁用这些警报,我们强烈建议您在客户端升级或升级到 Octopus 后删除这些设置。(从 Octopus 开始,这些健康警报可以静音一段时间。)
有关详细信息,请参阅 CVE-2021-20288: Unauthorized global_id reuse in cephx。
v14.2.19 Nautilus
这是 Ceph Nautilus 发布系列的第 19 次更新。这是一个热修复版本,用于防止守护程序绑定到环回网络接口。建议所有 Nautilus 用户升级到此版本。
值得注意的变更
此版本修复了 v14.2.17 中引入的回归问题,即在某些环境中,OSD 将绑定到 127.0.0.1。请参阅 issue#49938。
变更日志
common/ipaddr:也跳过 lo(pr#40423,Dan van der Ster)
v14.2.18 Nautilus
这是 Nautilus 系列中的第 18 个反向移植版本。它修复了 14.2.17 中引入的回归问题,其中管理器模块尝试使用在某些环境中不存在的几个 python 模块。我们建议用户更新到此版本。
值得注意的变更
此版本修复了在某些环境中加载仪表板和卷管理器模块的问题。
变更日志
v14.2.17 Nautilus
这是 Nautilus 系列中的第 17 个反向移植版本。我们建议用户更新到此版本。
值得注意的变更
配置路径(如
admin_socket)中的 $pid 扩展现在将正确扩展为ceph-mds或ceph-osd等命令的守护程序 pid。以前只有ceph-fuse/rbd-nbd将$pid扩展为实际的守护程序 pid。RADOS:此版本中已优化 PG 删除。
RADOS:BlueStore 中对内存分配进行了更详细的跟踪,并将其作为
dump_mempools命令的一部分显示。cephfs:获取能力过快的客户端将被限制,以防止不稳定。请参阅新的配置选项
mds_session_cap_acquisition_throttle来控制此行为。
变更日志
nautilus mgr/dashboard:修复 'ceph dashboard iscsi-gateway-add'(pr#39175,Alfonso Martínez)
nautilus:不在 Ceph 日志文件中添加敏感信息(pr#38614,Neha Ojha)
nautilus:bluestore:添加防止 bluefs 日志文件增长的保护(pr#37948,Adam Kupczyk)
nautilus:bluestore:为 fallback 分配器提供不同的名称(pr#37793,Igor Fedotov)
nautilus:build-integration-branch:按时间顺序处理 PR(pr#37693,Nathan Cutler)
nautilus:build/ops:install-deps.sh,deb,rpm:将 python-saml 依赖项移动到 debian/control 和 ceph.spec.in(pr#39184,Kefu Chai)
nautilus:ceph-volume batch:在 argparser 中拒绝分区(pr#38279,Jan Fajerski)
nautilus:ceph-volume:修复 is_lv 的使用(pr#39221,Michał Nasiadka)
nautilus:ceph-volume:更新 batch.py(pr#39470,shenjiatong)
nautilus:ceph-volume:向 zap 添加 no-systemd 参数(pr#37723,wanghongxu)
nautilus:ceph-volume:为 bytes_to_extents 添加一些灵活性(pr#39270,Jan Fajerski)
nautilus:ceph-volume:在简单激活中消耗 mount opt(pr#38015,Dimitri Savineau)
nautilus:ceph-volume:实现 --log-level 标志(pr#38372,Andrew Schoen)
nautilus:ceph-volume:从文档和帮助文本中删除对 dmcache 的提及(pr#38048,Dimitri Savineau,Andrew Schoen)
nautilus:cephfs:客户端:在 truncate 上检查 rdonly 文件句柄(pr#39129,Patrick Donnelly)
nautilus:cephfs:客户端:转储客户端用于多个 fs 的 fs(pr#38552,Zhi Zhang)
nautilus:cephfs:客户端:确保在从缓存 inode 获取目录链接计数时我们获取 Fs 能力(pr#38950,Jeff Layton)
nautilus:cephfs:客户端:修复 inode ll_ref 引用计数泄漏(pr#37838,sepia-liu)
nautilus:cephfs:客户端:在 _read_sync 接近 eof 时增加文件位置(pr#37991,Patrick Donnelly)
nautilus:cephfs:客户端:在 readdir_r_cb 中为 dir 设置 CEPH_STAT_RSTAT 掩码(pr#38948,chencan)
nautilus:cephfs:mds:通过 readdir 限制 cap 获取(pr#38101,Kotresh HR)
nautilus:cephfs:mount.ceph:为非传统 ms_mode 选项收集 v2 地址(pr#39133,Jeff Layton)
nautilus:cephfs:osdc:在 truncate/discard 上重新启动读取(pr#37988,Patrick Donnelly)
nautilus:cephfs:在将 caps release 发送给 mds 之前释放客户端 dentry_lease(pr#39127,Wei Qiaomiao)
nautilus:client:添加 ceph.{cluster_fsid/client_id} vxattrs 支持(pr#39001,Xiubo Li)
nautilus:client:不在 libcephfs 中使用 g_conf().get_val<>()(pr#38467,Xiubo Li)
nautilus:cmake:为 Boost.Asio 用户定义 BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT(pr#38760,Kefu Chai)
nautilus:cmake:检测并使用 sigdescr_np()(如果可用)(pr#38952,David Disseldorp)
nautilus:common/mempool:改进 mempool 分片选择(pr#39651,Nathan Cutler,Adam Kupczyk)
nautilus:common:修复日志文件创建权限(issue#7849,pr#38558,Kefu Chai,Roman Penyaev)
nautilus:common:在 find_ipv{4,6}_in_subnet() 中跳过以“lo”开头的接口(pr#39342,Thomas Goirand,Jiawei Li)
nautilus:core:osd:空存储桶或 OSD 不是错误(pr#39126,Brad Hubbard)
nautilus:crush/CrushWrapper:重建 crush 映射后重建反向映射(pr#39197,Jason Dillaman)
nautilus:krbd:添加对 msgr2(内核 5.11)的支持(pr#39202,Ilya Dryomov)
nautilus:librados, tests:允许列出名称中带有 NUL 字符的对象(pr#39324,Radoslaw Zarzynski)
nautilus:librbd:创建镜像时清除隐式启用的功能位(pr#39121,Jason Dillaman)
nautilus:log:修复日志时间戳精度无法设置为毫秒的问题(pr#37659,Guan yunfei)
nautilus:lvm/create.py:修复帮助消息中的拼写错误(pr#38371,ZhenLiu94)
nautilus:mds:将 start_files_to_recover() 移动到 recovery_done(pr#37986,Simon Gao)
nautilus:mds:在 hit_session 中考虑关闭会话(pr#37820,Dan van der Ster)
nautilus:mds:避免虚假睡眠(pr#39130,Patrick Donnelly)
nautilus:mds:dir->mark_new() 应与 dir->mark_dirty() 一起使用(pr#39128,“Yan, Zheng”)
nautilus:mds:更新 recall 配置的默认值(pr#39134,Patrick Donnelly)
nautilus:mgr/PyModule:正确删除配置选项(pr#38803,Tim Serong)
nautilus:mgr/crash:序列化命令处理(pr#39338,Boris Ranto)
nautilus:mgr/dashboard:CLI 命令:从文件读取密码(pr#38832,Ernesto Puerta,Alfonso Martínez,Juan Miguel Olmo Martínez)
nautilus:mgr/dashboard:Datatable 捕获来自其他 Datatable 的选择事件(pr#37756,Volker Theile,Tiago Melo)
nautilus:mgr/dashboard:禁用 TLS 1.0 和 1.1(pr#38332,Volker Theile)
nautilus:mgr/dashboard:没有 python3-saml 时禁用 sso(pr#38404,Kevin Meijer)
nautilus:mgr/dashboard:在启用调试模式时在仪表板中显示警告消息(pr#38799,Volker Theile)
nautilus:mgr/dashboard:显示用户当前存储桶配额使用情况(pr#38024,Avan Thakkar)
nautilus:mgr/dashboard:删除无效的 RGW 客户端实例,改进日志记录(pr#38584,Volker Theile)
nautilus:mgr/dashboard:修复选定后数据表项不显示详细信息的问题(pr#38813,Nizamudeen A)
nautilus:mgr/dashboard:修复 rgw 用户表单中不正确的验证(pr#39117,Nizamudeen A)
nautilus:mgr/dashboard:RGW 用户表单正在验证禁用字段(pr#39543,Aashish Sharma)
nautilus:mgr/dashboard:/rgw/status 端点不检查正在运行的服务(pr#38771,Volker Theile)
nautilus:mgr/dashboard:更新内置 ssl 提供商错误(pr#38509,Nizamudeen A)
nautilus:mgr/dashboard:使用安全 cookie 存储 JWT Token(pr#38839,Avan Thakkar,Aashish Sharma)
nautilus:mgr/dashboard:向 ng serve 添加 --ssl(pr#38972,Tatjana Dehler)
nautilus:mgr/dashboard:避免使用 document.write()(pr#39526,Avan Thakkar)
nautilus:mgr/dashboard:自定义 CherryPy Server Header(pr#39419,anurag)
nautilus:mgr/dashboard:从文件读取密码时删除 EOF(pr#39438,Alfonso Martínez)
nautilus:mgr/dashboard:在 NFS 导出编辑表单中禁用集群选择(pr#37995,Kiefer Chang)
nautilus:mgr/dashboard:为浏览器用户启用不同的 URL 到 Grafana(pr#39136,Patrick Seidensal)
nautilus:mgr/dashboard:修复 MTU 不匹配警报(pr#39518,Aashish Sharma)
nautilus:mgr/dashboard:修复与 PyJWT 版本 >=2.0.0 相关的问题(pr#39837,Alfonso Martínez)
nautilus:mgr/dashboard:修复某些 NFS-Ganesha 端点的安全范围(pr#37961,Kiefer Chang)
nautilus:mgr/dashboard:修复 Provisioned/Total Provisioned 字段的工具提示(pr#39646,Avan Thakkar)
nautilus:mgr/dashboard:最小化 Ceph 后端 API 测试的控制台日志跟踪(pr#39544,Aashish Sharma)
nautilus:mgr/dashboard:prometheus 警报:为包丢弃和错误添加一些余量(pr#39509,Patrick Seidensal)
nautilus:mgr/dashboard:python 2:设置非 ASCII 密码时出错(pr#39441,Alfonso Martínez)
nautilus:mgr/dashboard:删除 pyOpenSSL 版本锁定(pr#38504,Kiefer Chang)
nautilus:mgr/dashboard:设置安全头(pr#39626,Avan Thakkar)
nautilus:mgr/dashboard:test_standby*(tasks.mgr.test_dashboard.TestDashboard)在本地失败(pr#38527,Volker Theile)
nautilus:mgr/dashboard:如果某些节点的 MTU 与中值不同,则触发警报(pr#39104,Aashish Sharma)
nautilus:mgr/insights:测试环境需要“six”(pr#38382,Brad Hubbard)
nautilus:mgr/progress:通过网络删除所有事件(pr#38416,Sage Weil)
nautilus:mgr/progress:使进度条不会永远卡住(issue#40618,pr#37589,Kamoltat (Junior) Sirivadhna,Kamoltat)
nautilus:mgr/prometheus:添加 SLOW_OPS 健康检查作为指标(pr#39747,Paul Cuzner)
nautilus:mgr/prometheus:修复“pool filling up”使用率超过 50% 的问题(pr#39076,Daniël Vos)
nautilus:mgr/prometheus:使模块更稳定(pr#38334,Boris Ranto,Ken Dreyer)
nautilus:mgr/restful:修复 _gather_osds() 中发生的 TypeError(issue#48488,pr#39339,Jerry Pu)
nautilus:mgr/telemetry:修复代理使用(pr#38816,Nathan Cutler)
nautilus:mgr/volume:subvolume auth_id 管理和一些错误修复(pr#39292,Rishabh Dave,Patrick Donnelly,Kotresh HR,Ramana Raja)
nautilus:mgr/volumes:使克隆器线程数可配置(pr#37936,Kotresh HR)
nautilus:mgr:锁定 importlib_metadata 版本 2.1.0(pr#38296,Brad Hubbard)
nautilus:mgr:不要更新已过期 osd 统计信息(pr#38354,Zhi Zhang)
nautilus:mgr:修复 ActivePyModules::get_osdmap() 中的死锁(pr#39340,peng jiaqi)
nautilus:mgr:更新 monmap 时更新 mon 元数据(pr#39075,Kefu Chai)
nautilus:mon scrub 测试(pr#38362,Brad Hubbard)
nautilus:mon/MDSMonitor 不忽略 mds 的 down:dne 请求(pr#37822,chencan)
nautilus:mon/MDSMonitor:用点分隔 mds 标识符和 mds 真实名称(pr#37821,Zhi Zhang)
nautilus:mon:在集群日志中定期记录“ceph health detail”(pr#38118,Prashant Dhange)
nautilus:mon:让“mon stat”也输出 json(pr#37706,Joao Eduardo Luis,Sage Weil)
nautilus:mon:paxos:在析构函数中删除日志器(pr#39160,Brad Hubbard)
nautilus:mon:验证 crush-failure-domain(pr#39124,Prashant Dhange)
nautilus:monitoring:OSD 读取延迟使用空 y 轴最小值(pr#37959,Seena Fallah)
nautilus:msg/async/ProtocolV2:再次允许 rxbuf/txbuf 在测试中变大(pr#38268,Ilya Dryomov)
nautilus:ocf:添加对 RBD 命名空间中映射镜像的支持(pr#39047,Jason Dillaman)
nautilus:os/bluestore:添加选项以检查 BlueFS 读取(pr#39756,Adam Kupczyk)
nautilus:os/bluestore:使用 fsck 检测并修复“僵尸”跨越 blob(pr#39255,Igor Fedotov)
nautilus:os/bluestore:修复 BlueFS 中的巨大读/写(pr#39698,Jianpeng Ma,Kefu Chai,Igor Fedotov)
nautilus:os/bluestore:修复 avl/hybrid 分配器不适当的 ENOSPC(pr#38475,Igor Fedotov)
nautilus:os/bluestore:修复提供给 claim_… 的越界偏移导致的段错误(pr#38637,Igor Fedotov)
nautilus:os/bluestore:在裁剪缓存时超越固定的 onode(pr#39720,Igor Fedotov)
nautilus:os/bluestore:mempool 的更细粒度 + 添加缺失的结构(pr#38310,Deepika Upadhyay,Igor Fedotov,Adam Kupczyk)
nautilus:osd:在块之间检查 nosrub/nodeep-scrub,以避免竞争(pr#38411,David Zafman)
nautilus:osd:修复 bluestore 位图分配器使用提示计算错误的 last_pos(pr#39708,Xue Yantao)
nautilus:osd:优化 PG 删除(part1)(pr#38478,Neha Ojha,Igor Fedotov)
nautilus:pybind/ceph_volume_client:更新 auth-metadata 文件中的“volumes”键为“subvolumes”(pr#39658,Kotresh HR,Michael Fritch)
nautilus:pybind/cephfs:为不读取 conffile 添加特殊值(pr#37725,Kefu Chai)
nautilus:pybind/cephfs:修复 readlink() 的 C 字符串中缺失终止 NULL 字符的问题(pr#38894,Tuan Hoang)
nautilus:pybind/mgr/rbd_support:延迟创建进度模块事件(pr#38833,Jason Dillaman)
nautilus:qa/cephfs:添加 session_timeout 选项支持(pr#37840,Xiubo Li)
nautilus:qa/distros:添加 rhel 7.9(pr#38188,rakeshgm)
nautilus:qa/tasks/ceph_manager.py:不要在 raw_cluster_cmd 中使用 log-early(pr#39960,Neha Ojha)
nautilus:qa/tasks/{ceph,ceph_manager}:删除 py2 支持(pr#37906,Rishabh Dave,Deepika Upadhyay,Kefu Chai)
nautilus:qa:修复 tox 故障(pr#38627,Patrick Donnelly)
nautilus:qa:krbd_stable_pages_required.sh:移动到 stable_writes 属性(pr#38834,Ilya Dryomov)
nautilus:qa:恢复文件名(pr#38772,Patrick Donnelly)
nautilus:qa:在删除之前卸载卷(pr#38690,Patrick Donnelly)
nautilus:qa:使用正常构建进行 valgrind(pr#39584,Sage Weil)
nautilus:rados/upgrade/nautilus-x-singleton 由于集群 [WRN] 逐出无响应客户端而失败(pr#39706,Patrick Donnelly)
nautilus:rbd-nbd:在子进程中重新扩展 conf 元数据(pr#38830,Xiubo Li)
nautilus:rbd/bench:包括已使用的头文件(pr#39123,Kefu Chai)
nautilus:rbd:librbd:确保在处理受限制的 IO 时持有线程池锁(pr#37895,Jason Dillaman)
nautilus:rbd:librbd:删除池配置覆盖时更新隐藏的全局配置(pr#38831,Jason Dillaman)
nautilus:rgw:当 GET 请求带有 range 头时,禁用预取整个头部对象(pr#38556,Or Friedmann)
nautilus:rgw:S3 Put Bucket Policy 成功时应返回 204(pr#38623,Matthew Oliver)
nautilus:rgw:避免因溢出导致过期提前触发(pr#38823,jiahuizeng)
nautilus:rgw:cls/rgw/cls_rgw.cc:修复多个最新版本问题(pr#38085,Yang Honggang,Ruan Zitao)
nautilus:rgw:cls/user:为重置统计信息调用设置 from_index(pr#38822,Mykola Golub,Abhishek Lekshmanan)
nautilus:rgw:为独占放置分配缓存(pr#38827,Or Friedmann)
nautilus:rgw:修复存储桶限制检查 fill_status 警告(issue#40255,pr#38825,Paul Emmerich)
nautilus:rgw:修复提供 s3website 错误页面时无效有效负载问题(pr#38590,Ilsoo Byun)
nautilus:rgw:修复多分段重新上传对象名称中尾随的 null(pr#39276,Casey Bodley)
nautilus:rgw:在有序存储桶列表内部尽可能跳过命名空间条目(pr#38493,J. Eric Ivancich)
nautilus:rgw:复制存储桶分片头时保留 syncstopped 标志(pr#38589,Ilsoo Byun)
nautilus:rgw:多站点:验证同步对象是否与源相同(pr#38885,Prasad Krishnan,Yang Honggang,Casey Bodley)
nautilus:rgw:radosgw-admin:澄清电子邮件地址已被使用时的错误(pr#39661,Matthew Vernon)
nautilus:rgw:rgw-admin:修复缺失存储桶的 BucketInfo(pr#38588,Nick Janus,caolei)
nautilus:rgw_file:按词法顺序返回 common_prefixes(pr#38828,Matt Benjamin)
nautilus:rpm,deb:将 sudoers 文件模式更改为 440(pr#39090,David Turner)
nautilus:rpm:ceph-mgr-dashboard 在 SUSE 上推荐 python3-saml(pr#38818,Nathan Cutler)
nautilus:run-make-check.sh:如果构建失败,则不运行测试(pr#38295,Brad Hubbard)
nautilus:test/librados:修复校验和测试用例中的字节序错误(pr#37605,Ulrich Weigand)
nautilus:test/rbd-mirror:修复损坏的 ceph_test_rbd_mirror_random_write(pr#39650,Jason Dillaman)
nautilus:test/run-cli-tests:从 github 使用 cram(pr#39072,Kefu Chai)
nautilus:tests:取消 noscrub *和* nodeep-scrub(pr#39125,Ronen Friedman)
nautilus:tools/rados:在 rados CLI 中添加对二进制对象名称的支持(pr#39329,Radoslaw Zarzynski,Kefu Chai)
nautilus:tools/rados:在 json 输出“rados ls”期间定期刷新格式器(pr#37834,J. Eric Ivancich)
nautilus:vstart.sh:修复 fs set max_mds 错误(pr#37836,Jinmyeong Lee)
v14.2.16 Nautilus
这是 Nautilus 系列中的第 16 个反向移植版本。此版本修复了 CephFS 中的一个安全漏洞。我们建议用户更新到此版本。
值得注意的变更
CVE-2020-27781:OpenStack Manila 使用 ceph_volume_client.py 库允许租户访问任何 Ceph 凭据的秘密。(Kotresh Hiremath Ravishankar,Ramana Raja)
变更日志
pybind/ceph_volume_client:禁止对现有 auth ids 进行授权(Kotresh Hiremath Ravishankar,Ramana Raja)
v14.2.15 Nautilus
这是 Nautilus 系列中的第 15 个反向移植版本。此版本修复了 v14.2.13 中引入的 ceph-volume 回归问题,并包含其他一些修复。我们建议用户更新到此版本。
值得注意的变更
ceph-volume:修复了 lvm batch --auto,这在使用非旋转设备(SSD 和/或 NVMe)时会破坏向后兼容性。
BlueStore:修复了 collection_list_legacy 中的一个错误,该错误在运行 14.2.12 之前与更新版本的混合 osd 时,在 scrub 期间导致 pg 不一致。
MGR: progress 模块现在可以打开/关闭,使用命令:
ceph progress on和ceph progress off。
更新日志
v14.2.14 Nautilus
这是 Nautilus 系列中的第 14 个反向移植版本。此版本修复了影响 Messenger v2 的安全漏洞,以及组件中的其他一些修复。我们建议用户更新到此版本。
值得注意的变更
CVE 2020-25660:Messenger v2 丢失 CEPHX_V2 重放攻击保护(Ilya Dryomov)
变更日志
mgr/dashboard:奇怪的 iSCSI 发现认证行为(pr#37333,Volker Theile)
mgr/dashboard:成功登录后重定向到原始 URL(pr#36834,Avan Thakkar)
mgr/prometheus:添加池压缩统计信息(pr#37563,Paul Cuzner)
bluestore:test/objectstore/store_test:杀死 ExcessiveFragmentation 测试用例(pr#37824,Igor Fedotov)
bluestore:BlockDevice.cc:使用 pending_aios 而不是 iovec size 作为 ios num(pr#37823,weixinwei)
bluestore:支持 flock retry(pr#37842,Kefu Chai,wanghongxu)
bluestore:为压缩 blob 附加 csum(pr#37843,Igor Fedotov)
osdc/ObjectCacher:覆盖可能导致散乱的读取请求回调(pr#37813,Jason Dillaman)
mgr:避免 MGR_MODULE_ERROR 的误报(pr#38069,Kefu Chai,Sage Weil)
mgr:修复模块加载和通知之间的竞争(pr#37844,Mykola Golub,Patrick Donnelly)
mon:在添加到 session_map 时设置 session_timeout(pr#37554,Ilya Dryomov)
mon/MonClient:恢复 CEPHX_V2 认证器挑战(Ilya Dryomov)
osd/osd-rep-recov-eio.sh:TEST_rados_repair_warning:返回 1(pr#37815,David Zafman)
rbd:librbd:禁用对象映射时忽略 -ENOENT 错误(pr#37814,Jason Dillaman)
rbd:rbd-nbd:通过镜像规范卸载时不要忽略命名空间(pr#37811,Mykola Golub)
rgw/rgw_file:修复不正确的 lru 对象驱逐(pr#37804,luo rixin)
rgw:修复即使对象中只有一个标签与规则相同也返回过期头的问题(pr#37806,Or Friedmann)
rgw:修复:S3 API KeyCount 返回不正确(pr#37810,胡玮文)
rgw:radosgw-admin 在列出存储桶时应在内部分页(pr#37802,J. Eric Ivancich)
rgw:rgw_file:避免在关机时长时间延迟(pr#37552,Matt Benjamin)
rgw:使用 yum 而不是 dnf 进行 rgw-orphan-list 的 teuthology 测试(pr#37805,J. Eric Ivancich)
v14.2.13 Nautilus
这是 Nautilus 系列中的第 13 个反向移植版本。此版本修复了 v14.2.12 中引入的回归问题,以及一些 ceph-volume 和 RGW 修复。我们建议用户更新到此版本。
显著变化
修复了导致集群中断的回归问题,该集群在
ceph.conf中的mon_host参数中引用 ceph-mon 主机时使用 dns 名称而不是 IP 地址(issue#47951)ceph-volume:
lvm batch子命令进行了重大重写
变更日志
ceph-volume:重大批处理重构(pr#37522,Jan Fajerski)
mgr/dashboard:正确格式化 iSCSI 目标门户(pr#37060,Volker Theile)
rpm:将 python-enum34 移动到 rhel 7 条件下(pr#37747,Nathan Cutler)
mon/MonMap:修复 init_with_hosts 的无条件故障(pr#37816,Nathan Cutler,Patrick Donnelly)
rgw:允许 rgw-orphan-list 记录 rados 对象何时在命名空间中(pr#37799,J. Eric Ivancich)
rgw:修复有序和无序存储桶列表中的命名空间设置(pr#37798,J. Eric Ivancich)
v14.2.12 Nautilus
这是 Nautilus 系列中的第 12 个反向移植版本。此版本在 Ceph 的所有主要组件中带来了一些错误修复。我们建议所有 Nautilus 用户升级到此版本。
显著变化
ceph df命令现在列出每个池中的 pg 数量。监控器现在有一个配置选项
mon_osd_warn_num_repaired,默认值为 10。如果任何 OSD 修复的存储数据中的 I/O 错误数量超过此值,则会生成OSD_TOO_MANY_REPAIRS健康警告。为了清除警告,添加了一个新命令ceph tell osd.# clear_shards_repaired [count]。默认情况下,它会将修复计数设置为 0。如果您希望在执行额外修复时再次收到警告,您可以为命令提供一个值,并指定mon_osd_warn_num_repaired的值。此命令将在未来的版本中被健康静音/取消静音功能取代。现在可以使用
mon_host_override配置选项或--mon-host-override <ip>命令行开关指定 Ceph 工具和守护程序要联系的初始监控器。这通常只应用于调试,并且只影响与 Ceph 监控集群的初始通信。修复了健康集群中 osdmap 未被裁剪的问题(issue#47296,pr#36982)
更新日志
bluestore/bluefs:使 accounting 对 unlock() 具有弹性(pr#36909,Adam Kupczyk)
bluestore:针对超大 bluefs 日志的救援程序(pr#36930,Adam Kupczyk)
bluestore:转储具有过多跨越 blob 的 onode(pr#36756,Igor Fedotov)
bluestore:默认启用更灵活的 bluefs 空间管理(pr#37091,Igor Fedotov)
bluestore:修复 collection_list 排序(pr#37051,Mykola Golub)
ceph-iscsi:selinux 修复(pr#36304,Mike Christie)
ceph-volume:为运行 LVM 命令的新函数添加测试(pr#36615,Rishabh Dave)
ceph-volume:不要在 api/lvm.py 中使用容器类(pr#35878,Guillaume Abrioux,Rishabh Dave')
ceph-volume:修复日志大小参数不工作(pr#37377,wanghongxu)
ceph-volume:修复简单激活时传统 osd 的问题(pr#37195,Guillaume Abrioux)
ceph-volume:修复 test_lvm.TestVolume.test_is_not_ceph_device(pr#36493,Jan Fajerski)
ceph-volume:使用批处理和显式场景处理幂等性(pr#35881,Andrew Schoen)
ceph-volume:从 api/lvm.py 中删除容器类(pr#36610,Rishabh Dave)
ceph-volume:删除对 get_devices() 的不必要调用(pr#37413,Marc Gariepy)
ceph-volume:如果设备类型无效,则在 inventory 中报告正确的拒绝原因(pr#36453,Satoru Takeuchi)
ceph-volume:获取锁失败时重试(pr#36926,Sxc3xa9bastien Han)
ceph-volume:简单扫描应忽略 tmpfs(pr#36952,Andrew Schoen)
ceph.in:忽略刷新 stdout 的失败(pr#37226,Dan van der Ster)
ceph.spec.in, debian/control:添加 smartmontools 和 nvme-cli 依赖项(pr#37288,Yaarit Hatuka)
cephfs-journal-tool:修复查找缺失对象时不正确的 read_offset(pr#37479,Xue Yantao)
cephfs:客户端:修复额外的开放引用减少(pr#36966,Xiubo Li)
cephfs:客户端:使 Client::open() 将适当的 cap 掩码传递给 path_walk(pr#37231,“Yan, Zheng”)
cephfs:mds/CInode:仅优化子树检查中固定的节点(pr#36965,Mark Nelson)
cephfs:mds:重启 mds 后,其 standy-replay mds 仍处于“resolve”状态(pr#37179,Wei Qiaomiao)
cephfs:mds:当 mds 滞后时不推迟传入的 mgrmap(issue#44638,pr#36168,Nathan Cutler,Venky Shankar)
cephfs:mds:修复 dirfrag 是否被分段的不正确检查(pr#37035,“Yan, Zheng”)
cephfs:mds:修复 mds 转发请求 no_available_op_found(pr#36963,Yanhu Cao')
cephfs:mds:修复 purge_queues _calculate_ops 不准确(pr#37481,Yanhu Cao')
cephfs:mds:kcephfs 解析 dirfrags ndist 始终为 0(pr#37177,Yanhu Cao')
cephfs: mds: 将 MDSGatherBuilder 放置在堆栈上 (pr#36967, Patrick Donnelly)
cephfs: mds: 正常会话关闭后恢复文件 (pr#37178, “Yan, Zheng”)
cephfs: mds: 解决等待未提交片段时的 SIGSEGV 问题 (pr#36968, Patrick Donnelly)
cephfs: osdc/Journaler: 如果 onsafe 为 0,则不调用 onsafe->complete() (pr#37229, Xiubo Li)
client: 处理没有 Fs cap 的 readdir 回复 (pr#37232, “Yan, Zheng”)
common, osd: 添加 osd_scrub_max_preemptions 的健全性检查 (pr#37470, xie xingguo)
common/config: 减少关于无法应用的 mon 配置的噪音 (pr#36289, Sage Weil')
common: 在 fork 之前忽略 SIGHUP (issue#46269, pr#36181, Willem Jan Withagen, hzwuhongsong)
compressor: 添加配置选项以指定 Zstd 压缩级别 (pr#37254, Bryan Stillwell)
core: include/encoding: 修复大端系统上浮点类型的编码/解码 (pr#37033, Ulrich Weigand)
doc/rados: 修复 osd_op_queue 默认值 (pr#36354, Benoxc3xaet Knecht)
doc/rados: 修复 osd_scrub_during_recovery 默认值 (pr#37472, Benoxc3xaet Knecht)
doc/rbd: 添加 rbd-target-gw 启用和启动 (pr#36415, Zac Dover)
doc: 启用 Read the Docs (pr#37204, Kefu Chai)
krbd: 可选跳过等待 udev 事件 (pr#37284, Ilya Dryomov)
kv/RocksDBStore: 使选项 compaction_threads/disableWAL/flusher_txe2x80xa6 (pr#37055, Jianpeng Ma)
librados: 添加 LIBRADOS_SUPPORTS_GETADDRS 支持 (pr#36853, Xiubo Li, Jason Dillaman, Kaleb S. KEITHLEY, Kefu Chai)
messages,mds: 修复大端系统上枚举类型的解码 (pr#36814, Ulrich Weigand)
mgr/balancer: 使用“==”和“!=”比较字符串 (pr#37471, Kefu Chai)
mgr/dashboard/api: 增加 API 健康超时 (pr#36607, Ernesto Puerta)
mgr/dashboard: 允许编辑已登录发起程序的 iSCSI 目标 (pr#37278, Tiago Melo)
mgr/dashboard: 禁用只读模式的表单输入 (pr#37241, Nizamudeen)
mgr/dashboard: 构建默认语言时不要使用任何 xlf 文件 (pr#37550, Sebastian Krah')
mgr/dashboard: 修复主机详细信息 Grafana 仪表板中的多对多问题 (pr#37306, Patrick Seidensal)
mgr/dashboard: 修复池重命名功能 (pr#37510, Stephan Mxc3xbcller, Ernesto Puerta)
mgr/dashboard: 如果 limit=0,则隐藏表操作输入字段 (pr#36783, Volker Theile)
mgr/dashboard: 监控:修复无限加载条操作 (pr#37161, Nizamudeen A)
mgr/dashboard: 未指定 Content-Type 时 REST API 返回 500 (pr#37307, Avan Thakkar)
mgr/dashboard: 无法编辑已登录的 iSCSI 客户端 (pr#36613, Ricardo Marques)
mgr/dashboard: cpu 统计信息显示不正确 (pr#37295, Avan Thakkar)
mgr/dashboard: 文档 Prometheus 安全模型 (pr#36920, Patrick Seidensal)
mgr/dashboard: 修复损坏的反向移植 (pr#37505, Ernesto Puerta)
mgr/dashboard: 修复列出大量存储桶时的性能问题 (pr#37280, Alfonso Martxc3xadnez)
mgr/dashboard: 修复池使用率计算 (pr#37309, Ernesto Puerta)
mgr/dashboard: 移除“本周/月/年”和“今天”时间戳 (pr#36790, Avan Thakkar)
mgr/dashboard: 表详细信息行溢出 (pr#37324, Aashish Sharma)
mgr/dashboard: 等待更长时间以清除健康状态 (pr#36784, Tatjana Dehler)
mgr/devicehealth: 在抓取设备之前修复守护程序过滤 (pr#36741, Yaarit Hatuka)
mgr/diskprediction_local: 修复数组大小错误 (pr#36578, Benoxc3xaet Knecht)
mgr/prometheus: 自动发现 RBD 池以收集统计信息 (pr#36412, Jason Dillaman)
mgr/restful: 使用 dict.items() 以兼容 py3 (pr#36670, Kefu Chai)
mgr/status: 元数据异步获取 (pr#37558, Michael Fritch)
mgr/telemetry: 匿名化序列时修复设备 ID 分割 (pr#37318, Yaarit Hatuka)
mgr/volumes: 添加全局锁调试 (pr#36828, Patrick Donnelly)
mgr: 在 mgr_module.py 中将缺少的状态添加到 PG_STATES (pr#36785, Harley Gorrell)
mgr: 如果 PG 被移除,则减少池统计信息 (pr#37476, Aleksei Gutikov)
mgr: 接收来自 mon 的 map 时不要更新挂起的服务 map epoch (pr#37181, Mykola Golub')
minor tweaks to fix compile issues under latest Fedora (pr#36726, Willem Jan Withagen, Kaleb S. KEITHLEY, Kefu Chai)
mon/OSDMonitor: 只有在修剪 osdmaps 时才考虑 osd (pr#36982, Kefu Chai)
mon/PGMap: 在 ceph df 命令中为池添加 pg 计数 (pr#36944, Vikhyat Umrao)
mon: 当 OSD 上修复的读取过多时发出警告 (pr#36379, David Zafman)
mon: 修复当 conf “osd_objectstore” 为 filestore' 时错误 ERANGE message (pr#37474, wangyunqing')
mon: 更一致地将 pgtemp 消息标记为 no_reply in preprocess\_xe2x80xa6 (pr#37171, Greg Farnum)
mon: 在 ceph context 中存储 mon 更新以供将来 MonMap 实例化 (pr#36704, Patrick Donnelly, Shyamsundar Ranganathan)
monclient: 使用 mon_client_hunt_interval 安排第一次 tick (pr#36634, Mykola Golub)
msg/async/ProtocolV2: 允许 rxbuf/txbuf 在测试中变大 (pr#37081, Ilya Dryomov)
osd/OSDCap: rbd 配置文件允许使用 “rbd_info” (pr#36413, Florian Florensa)
osd/PeeringState: 防止 peers num_objects 变为负数 (pr#37473, xie xingguo')
prometheus: 正确分割 IPv6 地址的端口 (pr#36984, Matthew Oliver)
rbd: 在 krbd 符号链接中包含 RADOS 命名空间 (pr#37468, Ilya Dryomov)
rbd: librbd: 对齐 rbd_write_zeroes 声明 (pr#36712, Corey Bryant)
rbd: librbd: 如果 watcher 未注册,则不重发 async_complete (pr#37040, Mykola Golub')
rbd: librbd: 全局和池级配置覆盖需要映像刷新才能应用 (pr#36725, Jason Dillaman)
rbd: librbd: 使用迁移中止可能导致数据丢失 (pr#37165, Jason Dillaman)
rbd: 使通用选项覆盖 krbd 特定选项 (pr#37407, Ilya Dryomov)
rgw/cls: 在最后一次取消链接时保留 olh 条目名称 (pr#37462, Casey Bodley')
rgw: 将存储桶名称添加到存储桶统计信息错误日志记录 (pr#37378, Seena Fallah)
rgw: 在 unregistered_reqs 之前清空 reqs_change_state 队列 (pr#37461, Soumya Koduri)
rgw: 过期天数不能为零,过渡天数可以为零 (pr#37465, zhang Shaowen')
rgw: RGWObjVersionTracker 跟踪增量版本 (pr#37459, Casey Bodley)
rgw: Swift API 匿名访问应为 401 (pr#37438, Matthew Oliver)
rgw: 向 beast frontend 添加访问日志 (pr#36727, Mark Kogan)
rgw: 为系统对象添加负缓存 (pr#37460, Or Friedmann)
rgw: append obj: 防止尾部被 GCed (pr#36390, Abhishek Lekshmanan')
rgw: 在 RGWLifecycleConfiguration::dump() 中转储过渡 (pr#36880, Shengming Zhang)
rgw: 当对不存在的 xe2x80xa6 尝试 get/set-bucket-versioning 时失败 (pr#36188, Matt Benjamin)
rgw: 修复 boost::asio::async_write() 不返回错误的问题 (pr#37157, Mark Kogan)
rgw: 修复双斜杠 (//) 导致网关崩溃的问题 (pr#36682, Theofilos Mouratidis)
rgw: 修复 RGWAsyncReadMDLogEntries 中的关机崩溃 (pr#37463, Casey Bodley)
rgw: 使用 unique_ptr 保持 reloader (pr#36770, Kefu Chai)
rgw: 以级别 1 (以前是 20) 记录 reharding 事件 (pr#36843, Or Friedmann)
rgw: 有序存储桶列表代码清理 (pr#37169, J. Eric Ivancich)
rgw: policy: 重用 eval_principal 评估策略主体 (pr#36637, Abhishek Lekshmanan)
rgw: radosgw-admin: 周期拉取命令不总是 raw_storage_op (pr#37464, Casey Bodley)
rgw: 替换 + 为 “%20” 在 s3 v4 认证的规范查询字符串中 (pr#37467, yuliyang_yewu')
rgw: 转发请求时对存储桶名称进行 urlencode (pr#37435, caolei)
run-make-check.sh: 提取 run-make.sh + 使用绝对路径运行 sudo (pr#36494, Kefu Chai, Ernesto Puerta)
systemd: 支持 AIO 节点优雅重启 (pr#37301, Wong Hoi Sing Edison)
tools/osdmaptool.cc: 添加 clean_temps 功能 (pr#37477, Neha Ojha)
tools/rados: 导出或导入池时设置定位器密钥 (pr#37475, Iain Buclaw)
v14.2.11 Nautilus
这是 Nautilus 系列的第十一个反向移植版本。此版本带来了 Ceph 所有主要组件的许多错误修复。我们建议所有 Nautilus 用户升级到此版本。
Notable Changes
RGW: 处理孤立对象的
radosgw-admin子命令 --radosgw-admin orphans find,radosgw-admin orphans finish,radosgw-admin orphans list-jobs-- 已被弃用。它们没有得到积极维护,并且将中间结果存储在集群中,这可能会填满接近满的集群。它们已被一个目前被认为是实验性工具的rgw-orphan-list取代。现在,当全局或每个池设置 noscrub 和/或 nodeep-scrub 标志时,将中止禁用的计划擦洗。所有用户启动的擦洗都不会中断。
修复了在编码第一个增量 map 失败时 ceph-osd 在 _committed_osd_maps 中崩溃的问题。 issue#46443
更新日志
bluestore: core: os/bluestore: 修复当 bluefs_buffered_io = true 时大 (>2GB) 写入 (pr#35404, Igor Fedotov)
bluestore: os/bluestore: 实现 Hybrid 分配器 (pr#35500, Adam Kupczyk, Kefu Chai, Igor Fedotov, xie xingguo)
build/ops: build/ops: selinux: 允许 ceph_t amqp_port_t:tcp_socket (pr#36190, Kaleb S. KEITHLEY, Thomas Serlin)
ceph-volume: 在原始模式下添加 dmcrypt 支持 (pr#35831, Guillaume Abrioux)
cephfs,pybind: pybind/cephfs: 修复 cephfs.pyx 引发的自定义异常 (pr#36180, Ramana Raja)
cephfs: ceph_fuse: 为 libfuse 添加 ‘-d’ 选项 (pr#35398, Xiubo Li)
cephfs: client: 修复目录 inode 无法调用 release 回调的问题 (pr#36177, sepia-liu)
cephfs: client: 修复 0 大小值 (NULL 值) 的 setxattr 问题 (pr#36173, Sidharth Anupkrishnan)
cephfs: client: 修复快照目录 atime (pr#36169, Luis Henriques)
cephfs: client: 引入客户端关机超时 (issue#44276, pr#36215, Venky Shankar)
cephfs: client: 在 read 中复制数据之前释放 client_lock (pr#36294, Chencan)
cephfs: client: readdir 的静态 dirent 不是线程安全的 (pr#36511, Patrick Donnelly)
cephfs: mds: 添加配置以要求转发到 auth MDS (pr#35377, simon gao)
cephfs: mds: 在 mds 变为 active 之前清理未提交的片段 (pr#35397, “Yan, Zheng”)
cephfs: mds: 当客户端工作集合理时,不要引发“客户端未能响应 cap release” (pr#36513, Patrick Donnelly)
cephfs: mds: 如果 dir 是合并的 basedir,则不提交 omap_rm_keys (pr#36178, Chencan)
cephfs: mds: 修复发布 Fc 时文件锁状态 (pr#35841, Xiubo Li)
cephfs: mds: 修复访问丢失父目录下的文件时挂起问题 (pr#36179, Zhi Zhang)
cephfs: mds: 修复 MDCache::finish_rollback 中的空指针解引用 (pr#36439, “Yan, Zheng”)
cephfs: mds: 将新文件的回溯擦洗失败标记为正常 (pr#35400, Milind Changire)
cephfs: mds: 初始化 MDSlaveUpdate::waiter (pr#36462, “Yan, Zheng”)
cephfs: mds: 使 MDS_TRIM 阈值可配置 (pr#36175, Paul Emmerich)
cephfs: mds: 保留 ESlaveUpdate logevent 直到接收到 OP_FINISH (pr#35394, Varsha Rao, songxinying)
cephfs: mds: 在 EMetaBlob 重放中重置心跳 (pr#36170, Yanhu Cao)
cephfs: mgr/fs/volumes 杂项修复 (pr#36167, Patrick Donnelly, Kotresh HR, Ramana Raja)
cephfs: mgr/volumes: 添加快照信息命令 (pr#35672, Kotresh HR)
cephfs: mgr/volumes: 弃用子卷快照的 protect/unprotect CLI 调用 (pr#36166, Shyamsundar Ranganathan)
cephfs: qa: 添加 volumes 插件使用 libcephfs 的调试 (pr#36512, Patrick Donnelly)
cephfs: qa: 跳过 cache_size 检查 (pr#36526, Patrick Donnelly)
cephfs: tools/cephfs: 不绑定到 public_addr (pr#35401, “Yan, Zheng”)
cephfs: vstart_runner: 在 mount() 结束时设置 mounted 为 True (pr#35396, Rishabh Dave)
core,mon: mon/OSDMonitor: 如果故障间隔超过阈值,则重置宽限期 (pr#35798, Sridhar Seshasayee)
core: mgr/DaemonServer.cc: 使 fsid 上的 'config show' 工作 (pr#36074, Neha Ojha)
core: mgr/alert: 无法从 CLI 设置 inventory_cache_timeout/service_cache_timeout (pr#36104, Kiefer Chang)
core: osd/PG: 再次修复 merge target 的 history.same_interval_since (pr#36161, xie xingguo)
core: osd/PeeringState.h: 修复 pg 停留在 WaitActingChange (pr#35389, chen qiuzhang)
core: osd: 取消进行中的擦洗 (非用户请求) (pr#36292, David Zafman)
core: osd: 修复增量 osdmap crc 失败时 _committed_osd_maps 中的崩溃 (pr#36339, Neha Ojha, Dan van der Ster)
core: osd: 将“缺少增量 map”作为调试日志消息 (pr#35386, Nathan Cutler)
core: osd: 再次使消息 cap 选项可用 (pr#35738, Neha Ojha, Josh Durgin)
mgr/dashboard: 允许编辑具有活动会话的 iSCSI 目标 (pr#35998, Ricardo Marques)
mgr/dashboard: 防止在错误的池选择上仪表板崩溃 (pr#35367, Stephan Müller)
mgr/dashboard: 池、OSD 和 RBD 映像指标中的 Prometheus 查询错误 (pr#35884, Avan Thakkar)
mgr/dashboard: 在着陆页中添加备用管理器和元数据服务器 (MDS) 的弹出列表 (pr#34095, Kiefer Chang, Avan Thakkar)
mgr/dashboard: 修复 RBD 配置表中的 Source 列 i18n 问题 (pr#35822, Kiefer Chang)
mgr/k8sevents: 清理 kubernetes 事件 (pr#35563, Paul Cuzner)
mgr/prometheus: 改进 Prometheus 模块缓存 (pr#35918, Patrick Seidensal)
mgr: mgr/progress: 如果 _events dict 为空,则跳过 pg_summary 更新 (pr#36075, Manuel Lausch)
mgr: mgr/telemetry: 在选择退出时发送时强制 --license (pr#35390, Yaarit Hatuka)
mgr: mon/PGMap: 不考虑更改 pg 停滞 (pr#35959, Kefu Chai)
monitoring: 修复 RBD 详细信息仪表板中的一些问题 (pr#35464, Kiefer Chang)
msgr: 新的 msgr2 crc 和安全模式 (msgr2.1) (pr#35733, Jianpeng Ma, Ilya Dryomov)
rbd: librbd: 新的 'write_zeroes' API 方法以补充 discard API (pr#36250, Jason Dillaman)
rbd: mgr/dashboard: 使用 v1 RBD 映像 (pr#35712, Ernesto Puerta)
rbd: rbd: librbd: Watcher 不应在检测到黑名单后尝试重新监视 (pr#35385, Jason Dillaman)
rgw,tests: test/rgw: 更新 hadoop 版本 (pr#35778, Casey Bodley, Vasu Kulkarni)
rgw: 将子用户添加到 OPA 请求 (pr#36187, Seena Fallah)
rgw: 添加对存储桶策略的通配符子用户支持 (pr#36186, Seena Fallah)
rgw: 添加 “rgw-orphan-list” 工具和 “radosgw-admin bucket radoslist …” (pr#34127, J. Eric Ivancich)
rgw: 在存储桶 reharding 期间添加存储桶统计信息时检查索引条目是否存在 (pr#36189, zhang Shaowen)
rgw: 将配额强制添加到 CopyObj (pr#36184, Casey Bodley)
rgw: 对于拥有 >1000 个存储桶的用户,存储桶列表/统计信息会被截断 (pr#36165, J. Eric Ivancich)
rgw: cls_bucket_list_(un)ordered 应清除结果集合 (pr#36163, J. Eric Ivancich)
rgw: 修复 swift stat 在帐户上循环问题 (pr#36185, Marcus Watts)
rgw: lc: 修复当未找到对象标签时的分段错误 (pr#36086, yupeng chen, zhuo li)
rgw: 有序列表 lcv 未正确管理 (pr#35882, J. Eric Ivancich)
rgw: radoslist 不完整的多分段上传修复标记进度 (pr#36191, J. Eric Ivancich)
rgw: rgw/iam: 纠正获取角色策略的结果 (pr#36193, Pritha Srivastava)
rgw: rgw/url: 修复带有 vhosts 的 amqp urls (pr#35384, Yuval Lifshitz)
rgw: 在存储关闭之前停止 realm reloader (pr#36192, Casey Bodley)
tools: 为 ceph-objecstore-tool 添加 statfs 操作 (pr#35713, David Zafman)
v14.2.10 Nautilus
这是 Nautilus 系列的第十个版本。除了修复 RGW 中的一个安全相关 bug,此版本还带来了 Ceph 所有主要组件的许多 bug 修复。我们建议所有 Nautilus 用户升级到此版本。
Notable Changes
CVE-2020-10753: rgw: 清理 s3 CORSConfiguration's ExposeHeader 中的换行符 (William Bowling, Adam Mohammed, Casey Bodley)
RGW: 存储桶通知现在支持 Kafka 端点。这需要 librdkafka 版本 0.9.2 及更高版本。请注意,Ubuntu 16.04.6 LTS (Xenial Xerus) 具有较旧版本的 librdkafka,需要更新该库。
PG 自动缩放器使用的池参数
target_size_ratio的含义已更改。它现在在池之间进行标准化,而不是指定绝对比率。有关详细信息,请参阅 自动缩放放置组。如果您已在任何池上设置了目标大小比率,您可能希望将这些池设置为自动缩放warn模式,以避免在升级期间发生数据移动ceph osd pool set <pool-name> pg_autoscale_mode warn
rados 工具的
-o参数的行为已恢复到其原始行为,即指示输出文件。这使其与其他工具相比行为更一致。指定对象大小现在使用大写 O-O完成。ceph fs dump 中 MDS 的格式已更改。
如果 RADOS 池的
size设置为 1,换句话说,池配置为没有冗余,Ceph 将发出健康警告。这可以通过将池大小设置为建议的最小值来修复ceph osd pool set <pool-name> size <num-replicas>
可以通过以下方式使警告静音
ceph config set global mon_warn_on_pool_no_redundancy false
RGW: 分片存储桶索引上的存储桶列表性能已显着提高,通过启发式地(在许多情况下显著地)减少从每个存储桶索引分片请求的条目数量。
Changelog
build/ops: 解决 rgw/multisite 测试运行中观察到的 SElinux 拒绝 (pr#34539, Kefu Chai, Kaleb S. Keithley)
build/ops: ceph.spec.in: 在 el8 上构建 (pr#35599, Kefu Chai, Brad Hubbard, Alfonso Martínez, Nathan Cutler, Sage Weil, luo.runbing)
build/ops: cmake: 改进 IBM Z 上 16 字节原子支持的测试 (pr#33716, Ulrich Weigand)
build/ops: do_cmake.sh: 修复 -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF 的应用 (pr#34008, Nathan Cutler, Kefu Chai)
build/ops: install-deps.sh: 对 rhel/centos 8 使用 dnf (pr#35461, Brad Hubbard)
build/ops: rpm: 添加 python3-saml 作为安装依赖项 (pr#34475, Kefu Chai, Ernesto Puerta)
build/ops: selinux: 允许 ceph 设置 sched (pr#34433, Brad Hubbard)
build/ops: selinux: 允许 ceph-mgr 访问 httpd 目录 (pr#34434, Brad Hubbard)
build/ops: selinux: 允许 getattr 访问 /proc/kcore (pr#34870, Brad Hubbard)
build/ops: spec: 解决 RPM 4.15.1 引发的一些警告 (pr#34527, Nathan Cutler)
ceph-volume/batch: 访问 lvs 列表之前检查 (pr#34481, Jan Fajerski)
ceph-volume/batch: 当所有设备都已过滤时返回成功 (pr#34478, Jan Fajerski)
ceph-volume: 在单个 lvchange 调用中添加和删除 lvm 标签 (pr#35453, Jan Fajerski)
ceph-volume: 添加 ceph.osdspec_affinity 标签 (pr#35132, Joshua Schmid)
ceph-volume: devices/simple/scan: 修复日志语句中的字符串 (pr#34445, Jan Fajerski)
ceph-volume: 修复 nautilus 功能测试 (pr#33391, Jan Fajerski)
ceph-volume: lvm: get_device_vgs() 按提供的前缀过滤 (pr#33616, Jan Fajerski, Yehuda Sadeh)
ceph-volume: prepare: 对隐式大小调整使用 *-slots 参数 (pr#34278, Jan Fajerski)
ceph-volume: 抑制 ‘ceph-bluestore-tool’ 失败 (pr#33428, Sébastien Han)
ceph-volume: 在简单扫描 json 输出中去除 _dmcrypt 后缀 (pr#33722, Jan Fajerski)
cephfs/tools: 在构建文件 dentry 时添加 accounted_rstat/rstat (pr#35185, Xiubo Li)
cephfs/tools: cephfs-journal-tool: 正确解析 --dry_run 参数 (pr#34784, Milind Changire)
cephfs: 允许带有连字符和句点的池名称 (pr#35391, Rishabh Dave, Ramana Raja)
cephfs: ceph-fuse: 链接到 libfuse3 并如果 libfuse < 3.0.0 则传递 “-o big_writes” 给 libfuse (pr#34771, Kefu Chai, Xiubo Li, “Yan, Zheng”)
cephfs: client: 通过 libcephfs 暴露 Client::ll_register_callback (pr#35393, Kefu Chai, Jeff Layton)
cephfs: client: 修复 Finisher assert 失败 (pr#35000, Xiubo Li)
cephfs: client: 修复 lseek SEEK_HOLE / SEEK_DATA 中错误的错误处理 (pr#34308, Jeff Layton)
cephfs: client: 仅在刷新脏 auth cap 时设置 MClientCaps::FLAG_SYNC (pr#35118, Jeff Layton)
cephfs: client: 如果不需要文件写入,则重置 requested_max_size (pr#34767, “Yan, Zheng”)
cephfs: mds: 处理 purge 队列中的黑名单错误 (pr#35149, Varsha Rao)
cephfs: mds: Migrator::export_sessions_flushed 中的 SIGSEGV (pr#33751, “Yan, Zheng”)
cephfs: mds: 使用 begin() 和 empty() 迭代 xlist (pr#34338, Shen Hang, “Yan, Zheng”)
cephfs: mds: 添加可配置的快照限制 (pr#33295, Milind Changire)
cephfs: mds: 在 ceph status 中显示 scrub 状态 (issue#41508, issue#42713, issue#44520, issue#42168, issue#42169, issue#42569, issue#41424, issue#42835, issue#36370, issue#42325, pr#30704, Venky Shankar, Patrick Donnelly, Sage Weil, Kefu Chai)
cephfs: mds: 解码 xattr map 时不要进行浅复制 (pr#35199, “Yan, Zheng”)
cephfs: mds: 处理错误的 purge 队列项编码 (pr#34307, “Yan, Zheng”)
cephfs: mds: 处理黑名单上的 ceph_assert (pr#34435, Milind Changire)
cephfs: mds: 在关机期间仅删除 MDSIOContextBase (pr#34343, “Yan, Zheng”, Patrick Donnelly)
cephfs: mds: 按请求开始锁定的顺序获取 xlock (pr#35392, “Yan, Zheng”)
common/bl: 修复 bufferlist::claim_append() 中的内存损坏 (pr#34516, Radoslaw Zarzynski)
common/blkdev: telemetry 和 device backports 的编译 (pr#33726, Sage Weil, Difan Zhang, Patrick Seidensal, Kefu Chai)
common/blkdev: 修复 smart scraping 的一些问题 (pr#33421, Sage Weil)
common/ceph_time: 容忍单调时间倒退 (pr#34542, Sage Weil)
common/options: 默认再次禁用 bluefs_buffered_io (pr#34297, Mark Nelson)
compressor/lz4: 解决 liblz4 版本 <1.8.2 中的 bug (pr#35004, Sage Weil, Dan van der Ster)
core: bluestore/bdev: 创建对象时初始化大小 (pr#34832, Willem Jan Withagen)
core: bluestore: 添加新设备时不污染旧日志 (pr#34796, Yang Honggang)
core: bluestore: 修复 'unused' 计算 (pr#34794, xie xingguo, Igor Fedotov)
core: bluestore: 修复主设备扩展后的范围泄漏 (pr#34711, Igor Fedotov)
core: bluestore: 更灵活的 DB 卷空间使用 (pr#33889, Igor Fedotov)
core: bluestore: 扩展 DB/WAL 时以只读方式打开 DB (pr#34611, Igor Fedotov, Jianpeng Ma, Adam Kupczyk)
core: bluestore: 防止 BlueFS::dirty_files 在同步元数据时泄漏 (pr#34515, Xuehan Xu)
core: msg/async/rdma: 修复 rdma 为传输 ib 同步消息构建连接时事件中心被阻塞的 bug (pr#34780, Peng Liu)
core: msgr: 反向移植 EventCenter 相关修复 (pr#33820, Radoslaw Zarzynski, Jeff Layton, Kefu Chai)
core: rados: 防止 ShardedOpWQ 在等待工作时 suicide_grace 丢失 (pr#34882, Dan Hill)
doc/mgr/telemetry: 添加设备通道详细信息 (pr#33684, Yaarit Hatuka)
doc/releases/nautilus: 重启 OSD 以使其绑定到 v2 地址 (pr#34524, Nathan Cutler)
doc: 修复设置 pg 自动缩放模式的参数 (pr#34518, Changcheng Liu)
doc: mds-config-ref: 更新 'mds_log_max_segments' 值 (pr#35278, Konstantin Shalygin)
doc: 在 14.2.8 版本之后重置 PendingReleaseNotes (pr#33863, Nathan Cutler)
global: 确保在早期参数处理之前解码 CEPH_ARGS (pr#33261, Kefu Chai, Jason Dillaman)
mgr/DaemonServer: 修复 pg 合并检查 (pr#34354, Sage Weil)
mgr/PyModule: 修复 handle_pyerror() 中缺少的回溯 (pr#34627, Tim Serong)
mgr/balancer: 容忍目标权重 map 之外的 pgs (pr#34761, Sage Weil)
mgr/dashboard/grafana: 添加 rbd-image 详细信息仪表板 (pr#35248, Enno Gotthold)
mgr/dashboard: CRUSH map 查看器中的 'destroyed' 视图 (pr#33764, Avan Thakkar)
mgr/dashboard: 为 Dashboard RGW 后端添加更多调试信息 (pr#34399, Volker Theile)
mgr/dashboard: 仪表板不允许设置 norebalance OSD 标志 (pr#33927, Nizamudeen)
mgr/dashboard: 禁用静态文件的缓存 (pr#33763, Tiago Melo)
mgr/dashboard: 显示聚合请求数 (pr#35212, Tiago Melo)
mgr/dashboard: 修复 HomeTest 设置 (pr#35086, Tiago Melo)
mgr/dashboard: 修复 cherrypy 请求日志错误 (pr#31586, Kiefer Chang)
mgr/dashboard: 修复时区导致的单元测试错误 (pr#34473, Tiago Melo)
mgr/dashboard: 修复在删除或移动 RBD 时列出 RBD 时的错误 (pr#34120, Tiago Melo)
mgr/dashboard: 修复 iSCSI 的用户名和密码验证 (pr#34550, Tiago Melo)
mgr/dashboard: 修复 rbd 映像 'purge trash' 按钮和模式文本 (pr#33697, anurag)
mgr/dashboard: 改进重绘 datatables 的变通方法 (pr#34413, Volker Theile)
mgr/dashboard: 无法限制新用户的存储桶创建 (pr#34692, Volker Theile)
mgr/dashboard: 池读/写 OPS 显示过多小数位 (pr#34039, anurag, Ernesto Puerta)
mgr/dashboard: 编辑控件时防止 iSCSI 目标重新创建 (pr#34551, Tiago Melo)
mgr/dashboard: REST API: OpenAPI 文档需要互联网连接 (pr#33032, Patrick Seidensal)
mgr/dashboard: RGW 端口自动检测不支持 “Beast” RGW 前端 (pr#34400, Volker Theile)
mgr/dashboard: 重构 Python 单元测试和控制器 (pr#34662, Volker Theile)
mgr/dashboard: 修复损坏的 grafana 面板 (pr#34417, Kristoffer Grönlund)
mgr/dashboard: 表可搜索对象 (pr#32891, Stephan Müller)
mgr/dashboard: Tabs 不处理点击事件 (issue#39326, pr#34282, Tiago Melo)
mgr/dashboard: UI 修复 (pr#34038, Avan Thakkar)
mgr/dashboard: 更新现有 E2E 测试以匹配新格式 (pr#33024, Nathan Weinberg)
mgr/dashboard: 使用 booleanText 管道 (pr#33234, Alfonso Martínez, Volker Theile)
mgr/dashboard: 运行 “npm run build” 时使用默认语言 (pr#33668, Tiago Melo)
mgr/dashboard: 如果只有只读权限,则不显示 RGW API 密钥 (pr#33665, Alfonso Martínez)
mgr/dashboard: 修复 run-backend-api-tests.sh 中的 COVERAGE_PATH (pr#34489, Alfonso Martínez)
mgr/dashboard: 修复 backport #33764 (pr#34640, Ernesto Puerta)
mgr/dashboard: 修复使用证书文件启用 SSO 时的错误 (pr#34129, Alfonso Martínez)
mgr/dashboard: 修复 py2 strptime ImportError (非线程安全) (pr#35016, Alfonso Martínez)
mgr/dashboard: 修复后端 RBD 清理错误 (pr#34847, Kiefer Chang)
mgr/dashboard: 使用 pip 安装 teuthology (pr#35174, Nathan Cutler, Kefu Chai)
mgr/dashboard: 列出已配置的 prometheus 警报 (pr#34373, Patrick Seidensal, Tiago Melo)
mgr/dashboard: 监控菜单项应指示正在触发的警报 (pr#34823, Tiago Melo, Volker Theile)
mgr/dashboard: 从系统角色中删除 'config-opt: read' 权限 (pr#33739, Alfonso Martínez)
mgr/dashboard: 为布尔值显示复选框 (pr#33388, Tatjana Dehler)
mgr/dashboard: 使用 FQDN 进行故障转移重定向 (pr#34497, Ernesto Puerta)
mgr/insights: 修复 prune-health-history (pr#35214, Sage Weil)
mgr/pg_autoscaler: 修复除零错误 (pr#33420, Sage Weil)
mgr/pg_autoscaler: 将目标比率视为权重 (pr#34087, Josh Durgin)
mgr/prometheus: ceph_pg_* 指标包含上次值而不是所有报告状态的总和 (pr#34162, Jacek Suchenia)
mgr/run-tox-tests: 修复 PYTHONPATH 问题 (pr#33688, Brad Hubbard)
mgr/telegraf: 捕获 FileNotFoundError 异常 (pr#34628, Kefu Chai)
mgr/telemetry: 将 'last_upload' 添加到状态 (pr#33409, Yaarit Hatuka)
mgr/telemetry: 捕获 requests.put 期间的异常 (pr#33141, Sage Weil)
mgr/telemetry: 修复 UUID 和 STR 连接 (pr#33666, Yaarit Hatuka)
mgr/telemetry: 修复和文档代理使用 (pr#33649, Lars Marowsky-Bree)
mgr/volumes: 添加获取子卷元数据的接口 (pr#34679, Kotresh HR)
mgr/volumes: fs 子卷克隆取消 (issue#44208, pr#34036, Venky Shankar, Michael Fritch)
mgr/volumes: 小修复 (pr#35482, Kotresh HR)
mgr/volumes: 同步克隆子卷的所有权 (针对符号链接) 和 inode 时间戳 (issue#24880, issue#43965, pr#33877, Ramana Raja, Rishabh Dave, huanwen ren, Venky Shankar, Jos Collin)
mgr: 将 get_rates_from_data 添加到 mgr_util.py (pr#33893, Stephan Müller, Ernesto Puerta)
mgr: 改进内部 python 到 c++ 接口 (pr#34356, David Zafman)
mgr: 执行后关闭 restful socket (pr#35213, liushi)
mgr: 强制从服务 map 中清除正常的 ceph 实体 (issue#44677, pr#34563, Venky Shankar)
mgr: 同步 ClusterState 的健康和 mon_status (pr#34326, Radoslaw Zarzynski)
mgr: 当我们已经从该实体获得守护程序状态时更新“hostname” (pr#33834, Kefu Chai)
mon/FSCommands: 修复 'add_data_pool' 命令和 'fs new' 命令 (pr#34774, Ramana Raja)
mon/OSDMonitor: 始终在所有 mons 上调整优先级缓存管理器内存 (pr#34916, Sridhar Seshasayee)
mon/OSDMonitor: 即使 osds 已宕机也允许修剪 map (pr#34983, Joao Eduardo Luis)
mon/PGMap: 修复 >32 位 pg 状态的摘要显示 (pr#33275, Sage Weil, Adam C. Emerson)
mon: 在 remove_session 之前获取 session_map_lock (pr#34677, Xiaofei Cui)
mon: 在 osd pool set size 上计算 min_size (pr#34585, Deepika Upadhyay)
mon: 禁用每个 osd 警告的最小 pg 数 (pr#34618, Sage Weil)
mon: 修复/改进小键上的 mon 同步 (pr#33765, Sage Weil)
mon: 当地址不匹配时在 bootstrap 上存储较新的 map (pr#34500, Sage Weil)
monitoring: 修复“10% OSDs down”警报描述 (pr#35211, Benoît Knecht)
monitoring: 修复池容量不正确 (pr#34450, James Cheng)
monitoring: 池填满警报损坏 (pr#35137, Volker Theile)
monitoring: 磁盘和池填满预测警报损坏 (pr#34394, Patrick Seidensal)
monitoring: 修复 RGW grafana 图表 'Average GET/PUT Latencies' (pr#33860, Alfonso Martínez)
monitoring: 修复 Grafana % 百分比中的小数精度 (pr#34829, Ernesto Puerta)
monitoring: 根卷满警报触发误报 (pr#34419, Patrick Seidensal)
osd/OSD: 将慢速操作/类型记录到集群日志 (pr#33503, Sage Weil, Sridhar Seshasayee)
osd/OSDMap: 如果池配置为大小 1,则显示健康警告 (pr#31842, Sridhar Seshasayee)
osd/PeeringState.h: 在 WaitLocalBackfillReserved 中忽略 RemoteBackfillReserved (pr#34512, Neha Ojha)
osd/PeeringState: 不修剪 pg 日志超过 last_update_ondisk (pr#34957, Samuel Just, xie xingguo)
osd/PeeringState: 在回填之前将 async_recovery_targets 转换回 acting (pr#32849, xie xingguo)
osd: dispatch_context 和 queue 在早期退出时完成拆分 (pr#35024, Sage Weil)
osd: 修复 OSD::osdmap 的竞争访问 (pr#33530, Radoslaw Zarzynski)
pybind/mgr/*: 修复 config_notify 处理默认值 (pr#34116, Nathan Cutler, Sage Weil)
pybind/mgr: 使用 six==1.14.0 (pr#34316, Kefu Chai)
pybind/rbd: RBD.create() 方法的 'old_format' 参数现在默认为 False (pr#35183, Jason Dillaman)
pybind/rbd: 确保在允许操作之前映像已打开 (pr#34424, Mykola Golub)
pybind/rbd: 修复未获取锁时输出 ImageNotFound 异常 (pr#34388, zhangdaolong)
rbd: librbd: 默认情况下,复制 API 不应继承 v1 映像格式 (pr#35182, Jason Dillaman)
rbd: rbd-mirror: 改进黑名单状态检测 (pr#33533, Mykola Golub)
rgw/kafka: 添加 kafka 端点支持 (pr#32960, Yuval Lifshitz, Willem Jan Withagen, Kefu Chai)
rgw/notifications: 反向移植功能和 bug 修复 (pr#34107, Yuval Lifshitz)
rgw/notifications: 修复主题操作失败,并出现“MethodNotAllowed”错误 (issue#44614, pr#33978, Yuval Lifshitz)
rgw/notifications: 版本化存储桶中未发送版本 ID (pr#35181, Yuval Lifshitz)
rgw: 当中止多分段上传请求时,配额可能未更新 (pr#33268, Richard Bai(白学余))
rgw: 添加对子用户存储桶策略的支持 (pr#33714, Seena Fallah)
rgw: 修复空区域组在周期内动态重新分片不工作的问题 (pr#33266, Or Friedmann)
rgw: 修复上传部分复制范围能够获取几乎任何字符串的问题 (pr#33265, Or Friedmann)
rgw: 配置了生命周期过期时间的存储桶上的 GET/HEAD 和 PUT 操作不返回 x-amz-expiration 标头 (pr#32924, Matt Benjamin, Yuval Lifshitz)
rgw: MultipartObjectProcessor 支持条带大小 > 块大小 (pr#33271, Casey Bodley)
rgw: ReplaceKeyPrefixWith 和 ReplaceKeyWith 不能同时设置… (pr#34599, yuliyang)
rgw: 对不存在的 obj 匿名 swift 应该 401 (pr#35045, Matthew Oliver)
rgw: 清除 bucket 列表每次循环的 ent_list (issue#44394, pr#34099, Yao Zongyou)
rgw: dmclock: 等待请求处理完毕 (pr#34954, GaryHyg)
rgw: 查找最旧周期并更新 RGWMetadataLogHistory() (pr#34597, Shilpa Jagannath)
rgw: 修复在 s3 客户端中使用 ipv6 地址时 SignatureDoesNotMatch 的问题 (pr#33267, yuliyang)
rgw: 修复带有命名空间的 (un)有序存储桶列表和标记的错误 (pr#34609, J. Eric Ivancich)
rgw: 修复 lc 不删除与规则标签不完全相同的对象的问题 (pr#35002, Or Friedmann)
rgw: 修复多分段上传的错误响应 (pr#35019, GaryHyg)
rgw: 修复 sts 请求中持续时间无效时 rgw 崩溃的问题 (pr#33273, yuliyang)
rgw: 修复一些列表存储桶句柄泄漏 (pr#34986, Tianshan Qu)
rgw: 获取 barbican 密钥请求可能返回错误代码 (pr#33965, Richard Bai(白学余))
rgw: 增加相同或更旧周期拉取消息的日志级别 (pr#34833, Ali Maredia)
rgw: 使 beast 中 max_connections 可配置 (pr#33340, Tiago Pasqualini)
rgw: 使 implicit_tenants 向后兼容 (issue#24348, pr#33749, Marcus Watts)
rgw: multisite: 强制增量数据同步的 spawn 窗口 (pr#33270, Casey Bodley)
rgw: radosgw-admin: 在 bucket stats 命令中添加对 --bucket-id 的支持 (pr#34815, Vikhyat Umrao)
rgw: radosgw-admin: 修复 'datalog list' 中的无限循环 (pr#35001, Casey Bodley)
rgw: reshard: 从 reshard 队列中跳过陈旧的存储桶 id 条目 (pr#34735, Abhishek Lekshmanan)
rgw: 删除生命周期配置时两次设置存储桶属性 (pr#34598, zhang Shaowen)
rgw: 为 append 设置正确的存储类 (pr#34064, yuliyang)
rgw: sts: 将所有 http args 添加到 req_info (pr#33355, yuliyang)
rgw: 调整分片存储桶列表 (pr#33675, J. Eric Ivancich)
tests: 将 qa/ 迁移到 python3 (pr#34171, Kefu Chai, Sage Weil, Casey Bodley, Rishabh Dave, Patrick Donnelly, Kyr Shatskyy, Michael Fritch, Xiubo Li, Ilya Dryomov, Alfonso Martínez, Thomas Bechtold)
tools/cli: bash_completion: 不自动完成过时和隐藏的命令 (pr#35117, Kotresh HR)
tools/cli: ceph_argparse: 在 kwargs 上递增 matchcnt (pr#33160, Matthew Oliver, Shyukri Shyukriev)
tools/rados: 取消掩码 '-o' 以恢复原始行为 (pr#33641, Brad Hubbard)
v14.2.9 Nautilus
这是 Nautilus 的第九个错误修复版本。此版本修复了 RGW 和 Messenger V2 中的一些安全问题。我们建议所有用户升级到此版本。
Notable Changes
CVE-2020-1759: 修复了 msgr V2 安全模式中的 nonce 重用
CVE-2020-1760: Fixed XSS due to RGW GetObject header-splitting
v14.2.8 Nautilus
这是 Ceph Nautilus 发布系列的第八次更新。此版本修复了一系列子系统中的问题。我们建议所有用户升级到此版本。
Notable Changes
bluestore_min_alloc_size_ssd的默认值已更改为 4K,以提高所有工作负载的性能。以下与 bluestore 缓存自动调整相关的 OSD 内存配置选项现在可以在运行时配置
osd_memory_base (默认: 768 MB)
osd_memory_cache_min (默认: 128 MB)
osd_memory_expected_fragmentation (默认: 0.15)
osd_memory_target (默认: 4 GB)
上述选项可以通过以下方式设置
ceph config set osd <option> <value>
MGR 现在接受
profile rbd和profile rbd-read-only用户能力。这些能力可用于为用户提供对基于 MGR 的 RBD 功能的访问,例如rbd perf image iostat和rbd perf image iotop。用于 upmap 平衡的配置值
osd_calc_pg_upmaps_max_stddev已被移除。取而代之的是使用 mgr balancer 配置upmap_max_deviation,它现在是与每个 OSD 目标 PG 偏差的 PG 整数。这可以通过ceph config set mgr mgr/balancer/upmap_max_deviation 2等命令设置。upmap_max_deviation的默认值为 5。在某些情况下,crush 规则不允许池具有完全平衡的 PG。例如,如果 crush 要求在 3 个机架中的每个机架上都有 1 个副本,但其中一个机架中的 OSD 数量较少。在这种情况下,可以增加配置值。RGW: 修复了存储桶通知文档与实际消息格式之间的不匹配。这意味着现在任何接收存储桶端点通知的端点都将在名为“Records”的 JSON 数组中接收相同的通知。请注意,这不影响从“pubsub”区域中的订阅拉取存储桶通知,因为它们已经被包裹在该数组中。
CephFS: 多个活动 MDS 转发擦洗现在被拒绝。目前只允许在具有单个级别的文件系统上进行擦洗。通过
ceph fs set <fs_name> max_mds 1将级别减少到 1。Ceph 现在拒绝使用默认 EC 数据池创建文件系统。有关进一步说明,请参阅:https://docs.ceph.net.cn/docs/nautilus/cephfs/createfs/#creating-pools
如果 RADOS 池的
pg_num值不是 2 的幂,Ceph 将发出健康警告。这可以通过将池调整到附近的 2 的幂来修复ceph osd pool set <pool-name> pg_num <new-pg-num>
或者,可以通过以下方式使警告静音
ceph config set global mon_warn_on_pool_pg_num_not_power_of_two false
更新日志
bluestore: common/options: bluestore SSD 的 min_alloc_size 为 4k (pr#32998, Mark Nelson, Sage Weil)
bluestore: os/bluestore: 为 osd 内存特定选项添加配置观察器 (pr#31852, Sridhar Seshasayee)
bluestore: os/bluestore/BlueStore.cc: 为压缩统计信息设置优先级 (pr#32845, Neha Ojha)
bluestore: os/bluestore: 默认 bluestore_block_size 1T -> 100G (pr#32283, Sage Weil)
build/ops: cmake: 从 “make check” 中移除 seastar 测试 (pr#32658, Kefu Chai)
build/ops: install-deps,rpm: 在 aarch64 也启用 devtoolset-8 (issue#38892, pr#32651, Kefu Chai)
build/ops: rpm: 为 SUSE 特定 make check deps 添加 rpm-build (pr#32208, Nathan Cutler)
build/ops: 切换到 boost 1.72 (pr#32441, Willem Jan Withagen, Kefu Chai)
build/ops: tools/setup-virtualenv.sh: 不默认为 python2.7 (pr#30739, Nathan Cutler)
cephfs: cephfs-journal-tool: 修复崩溃和使用 (pr#32913, Xiubo Li)
cephfs: client: 在更改目录之前添加 is_dir() 检查 (pr#32916, Varsha Rao)
cephfs: client: 在 lseek 中添加 SEEK_HOLE 和 SEEK_DATA 的处理 (pr#30764, Shen Hang)
cephfs: client: 当 cap != in->auth_cap 时添加警告 (pr#32065, Shen Hang)
cephfs: client: 当偏移量为 0 时可能返回 EINVAL (pr#30762, wenpengLi)
cephfs: client: 修复 lazyio_synchronize() 以更新文件大小和 libcephfs: 为 LazyIO 添加测试 (pr#30769, Sidharth Anupkrishnan)
cephfs: client: _readdir_cache_cb() 可能使用已清除的 readdir_cache (issue#41148, pr#30763, huanwen ren)
cephfs: 客户端: 移除 Inode.dir_contacts 字段并优雅处理 llseek 的错误 whence 值 (pr#30766, Jeff Layton)
cephfs,common: osdc/objecter: 修复科学计数法格式的 last_sent 并为 ops 添加 age (pr#31081, Varsha Rao)
cephfs: 禁止在运行时更改 fuse_default_permissions 选项 (pr#32915, Zhi Zhang)
cephfs: mds: 添加配置单个客户端会话的命令 (issue#40811, pr#32245, “Yan, Zheng”)
cephfs: mds: “通过 MDSRank 应用配置更改” 和 “从静止会话召回 caps” 和 “在删除缓存时驱动 cap 召回” (pr#30761, Patrick Donnelly, Jeff Layton)
cephfs: mds: 修复 OpenFileTable 的 assert(omap_num_objs <= MAX_OBJECTS) (pr#32756, “Yan, Zheng”)
cephfs: mds: 修复 stale->resume 循环后撤销 caps 的问题 (pr#32909, “Yan, Zheng”)
cephfs: mds: 某些工作负载的堆内存可能增长过大 (pr#31802, Patrick Donnelly)
cephfs: MDSMonitor: 警告:正在创建使用 EC 默认数据池的新文件系统 (pr#32600, Patrick Donnelly)
cephfs: mds: scrub path 时对 frozen 目录不进行断言 (pr#32071, Zhi Zhang)
cephfs: mds: 拒绝客户端时记录客户端特性 (pr#32914, Patrick Donnelly)
cephfs: mds/OpenFileTable: 将 MAX_ITEMS_PER_OBJ 与 osd_deep_scrub_large_omap_object_key_threshold 匹配 (pr#32921, Vikhyat Umrao, Varsha Rao)
cephfs: mds: 驱逐客户端时正确评估不稳定锁 (pr#32073, “Yan, Zheng”)
cephfs: mds: 当集群有多个活动 MDS(超过一个 rank)时,拒绝前向 scrub (pr#32602, Patrick Donnelly, Milind Changire)
cephfs: mds: 拒绝无会话消息 (issue#40784, pr#30843, “Yan, Zheng”, Xiao Guodong, Shen Hang)
cephfs: mds: 移除不必要的调试警告 (pr#32077, Patrick Donnelly)
cephfs: mds 在删除文件不存在时返回 -5(EIO) 错误 (pr#30767, huanwen ren)
cephfs: mds: 如果操作导致目录过大,则分割目录,因为一些操作可能正在进行中 (pr#31302, simon gao)
cephfs: mds: 容忍磁盘根 inode 中没有编码的 snaprealm (pr#32079, “Yan, Zheng”)
cephfs: mgr: “mds metadata” 设置新的 DaemonState 与 fsmap 竞争 (pr#31905, Patrick Donnelly)
cephfs: mgr/volumes: 允许在创建期间设置子卷和子卷组的 uid, gid (issue#42923, pr#31741, Venky Shankar, Jos Collin)
cephfs: mgr/volumes: 在不阻塞卷访问的情况下获取垃圾和克隆条目 (issue#44282, pr#33526, Venky Shankar)
cephfs: mgr/volumes: fs subvolume resize 命令 (pr#31332, Jos Collin)
cephfs: mgr/volumes: 杂项修复和功能增强 (issue#42646, issue#43645, pr#33122, Rishabh Dave, Joshua Schmid, Venky Shankar, Ramana Raja, Jos Collin)
cephfs: mgr/volumes: 异步线程异常时注销任务 (issue#44315, pr#33569, Venky Shankar)
cephfs: mon: 无论文件系统数量多少,都打印 FSMap (pr#32912, Patrick Donnelly)
cephfs: pybind/mgr/volumes: 空闲连接断开不工作 (pr#33116, Patrick Donnelly)
cephfs: RuntimeError: 飞行中文件高水位意外地低 (0 / 6) (pr#33115, Patrick Donnelly)
ceph.in: 检查 ceph-conf 返回码 (pr#31367, Dimitri Savineau)
ceph-monstore-tool: 纠正存储 mgr_command_descs 的键 (pr#33278, Kefu Chai)
ceph-volume: 为 raw 模式添加 db 和 wal 支持 (pr#32979, Sébastien Han)
ceph-volume: 添加向 pvs, vgs 和 lvs 命令传递过滤器的方法 (pr#33217, Rishabh Dave)
ceph-volume: 添加 raw (--bluestore) 模式 (pr#32733, Jan Fajerski, Sage Weil)
ceph-volume: 为 prepare 添加大小参数 (pr#33231, Jan Fajerski)
ceph-volume: 允许在任何地方使用原始块设备 (pr#32868, Jan Fajerski)
ceph-volume: 假设所有包含 mimic 的分支都使用 msgrV1 (pr#31616, Jan Fajerski)
ceph-volume: 避免在没有 LV 的 VG 上调用 zap_lv (pr#33297, Jan Fajerski)
ceph-volume: 批量 bluestore 修复 create_lvs 调用 (pr#33232, Jan Fajerski)
ceph-volume: 批量 bluestore 修复 create_lvs 调用 (pr#33301, Jan Fajerski)
ceph-volume/batch: 当非交互式时,在过滤设备上失败 (pr#33202, Jan Fajerski)
ceph-volume: 在 lvm list 中解引用符号链接 (pr#32877, Benoît Knecht)
ceph-volume: zap filestore 时不要两次删除 vg (pr#33337, Jan Fajerski)
ceph-volume: 库存中更细粒度的可用性概念 (pr#33240, Jan Fajerski)
ceph-volume: 修复 has_bluestore_label() 函数 (pr#33239, Guillaume Abrioux)
ceph-volume: 修复 lvm 批处理的 is_ceph_device (pr#33253, Jan Fajerski, Dimitri Savineau)
ceph-volume: 修复整数溢出 (pr#32873, dongdong tao)
ceph-volume: 导入 mock.mock 而不是 unittest.mock (py2) (pr#32870, Jan Fajerski)
ceph-volume/lvm/activate.py: 澄清错误消息: fsid 指的是 osd_fsid (pr#32864, Yaniv Kaul)
ceph-volume: lvm/deactivate: 添加单元测试,移除 --all (pr#32863, Jan Fajerski)
ceph-volume: lvm deactivate 命令 (pr#33209, Jan Fajerski)
ceph-volume: 使 get_devices 文件系统位置独立 (pr#33200, Jan Fajerski)
ceph-volume: “simple scan” 子命令帮助的小清理 (pr#32556, Michael Fritch)
ceph-volume: 传递 journal_size 为 Size 而非字符串 (pr#33334, Jan Fajerski)
ceph-volume: 重构 listing.py + 修复 (pr#33238, Jan Fajerski, Rishabh Dave, Guillaume Abrioux)
ceph-volume: 在库存中拒绝小于 5GB 的磁盘 (issue#40776, pr#31554, Jan Fajerski)
ceph-volume: 如果 OSD 已创建,则跳过创建 OSD (pr#33242, Guillaume Abrioux)
ceph-volume/test: 补丁 VolumeGroups (pr#32558, Jan Fajerski)
ceph-volume: 如果使用 db-devices 且 osds_per_device > 1,则使用正确的 extents (pr#32874, Fabian Niepelt)
ceph-volume: dd 命令使用 fsync (pr#31553, Rishabh Dave)
ceph-volume: 在 has_common_vg 中使用 get_device_vgs (pr#33254, Jan Fajerski)
ceph-volume: util: 在 $PATH 中查找可执行文件 (pr#32860, Shyukri Shyukriev)
ceph-volume/zfs: 添加 inventory 命令 (pr#31295, Willem Jan Withagen)
common/admin_socket: 增加套接字超时时间 (pr#32063, Brad Hubbard)
common/bl: 修复悬空 last_p 问题 (pr#33277, Radoslaw Zarzynski)
common/config: 通过 mon 移除值时更新值 (pr#32846, Sage Weil)
common: FIPS: 审计并切换一些 memset & bzero 用户 (pr#32167, Radoslaw Zarzynski)
common: 修复 OpTracker 中僵局的 inflight op 访问问题 (pr#32858, Radoslaw Zarzynski)
common/options: 移除未使用的 ms_msgr2_{sign,encrypt} (pr#31850, Ilya Dryomov)
common/util: 使用 ifstream 从 /proc 文件读取 (pr#32901, Kefu Chai, songweibin)
core: auth/Crypto: 如果 getentropy() 失败,则回退到 /dev/urandom (pr#31301, Kefu Chai)
core: mon: 显式设置时保留 v1 地址类型 (pr#32028, Ricardo Dias)
core: mon/OSDMonitor: 修复带单位后缀的 pool set target_size_bytes (等) (pr#31740, Prashant D)
core: osd/OSDMap: 非 2 的 pg_num 的健康警报 (pr#30689, Sage Weil)
crush/CrushWrapper: 空权重向量的行为 (pr#32905, Kefu Chai)
doc/cephfs/client-auth: 描述和示例不一致 (pr#32781, Ilya Dryomov)
doc/cephfs: 改进 add/remove MDS 部分 (issue#39620, pr#31116, Patrick Donnelly)
doc/ceph-fuse: 在 ceph-fuse man 页面中提及 -k 选项 (pr#30765, Rishabh Dave)
doc/ceph-volume: zfs/inventory 和 zfs/api 的初始文档 (pr#32746, Willem Jan Withagen)
doc: 移除无效选项 mon_pg_warn_max_per_osd (pr#31300, zhang daolong)
doc/_templates/page.html: 重定向到 etherpad (pr#32248, Neha Ojha)
doc: 描述 crush_rule 的数据类型错误 (pr#32254, Kefu Chai)
global: 为 Ceph 守护进程禁用 THP (pr#31646, Patrick Donnelly, Mark Nelson)
kv: 修复关闭与异步 compaction 冲突的问题 (pr#32715, Sage Weil)
librbd: 具有 fast-diff 的 diff iterate 现在正确地包含父级 (pr#32469, Jason Dillaman)
librbd: 修复 rbd_open_by_id, rbd_open_by_id_read_only (pr#32837, yangjun)
librbd: 移除命名空间时移除池对象 (pr#32839, Jason Dillaman)
librbd: 列表后代时跳过池不存在的陈旧子代 (pr#32841, songweibin)
librbd: 支持向 OSD 提供压缩分配提示 (pr#32842, Jason Dillaman)
mgr: 添加 'rbd' 配置文件以支持 'rbd_support' 模块命令 (pr#32086, Jason Dillaman)
mgr/alerts: 简单健康警报 (pr#30820, Sage Weil)
mgr: Balancer 修复 (pr#31956, Neha Ojha, Kefu Chai, David Zafman)
mgr/DaemonServer: 修复 EC 池的 'osd ok-to-stop' (pr#32844, Sage Weil)
mgr/dashboard: 添加调试模式,并在 SSL 握手时接受预期异常 (pr#31190, Kefu Chai, Ernesto Puerta, Joshua Schmid)
mgr/dashboard: 块镜像页面导致内部服务器错误 (pr#32133, Jason Dillaman)
mgr/dashboard: 检查嵌入式 Grafana 仪表板引用 (issue#40008, pr#31808, Kiefer Chang)
mgr/dashboard: 检查用户是否具有 config-opt 权限 (pr#32827, Alfonso Martínez)
mgr/dashboard: 交叉签名按钮对某些模态窗口不起作用 (pr#32012, Ricardo Marques)
mgr/dashboard: 仪表板无法处理 Grafana API 上的自签名证书 (pr#31792, Volker Theile)
mgr/dashboard: 在 rgw 用户编辑中禁用“添加能力”按钮 (pr#32930, Alfonso Martínez)
mgr/dashboard: 修复恢复的 RBD 图像命名问题 (pr#31810, Kiefer Chang)
mgr/dashboard: grafana 图表匹配时间选择器选择 (pr#31999, Alfonso Martínez)
mgr/dashboard,grafana: 移除快捷菜单 (pr#31980, Ernesto Puerta)
mgr/dashboard: 正确处理常驻 Ceph Manager 模块 (pr#31782, Volker Theile)
mgr/dashboard: 加固访问元数据 (pr#32128, Volker Theile)
mgr/dashboard: 如果任何网关宕机,iSCSI 目标不可用 (以及更多…) (pr#32304, Ricardo Marques)
mgr/dashboard: 仪表板重新加载时出现 KeyError (pr#32233, Patrick Seidensal)
mgr/dashboard: key-value-table 不渲染布尔值 (pr#31789, Patrick Seidensal)
mgr/dashboard: 从池中移除未设置的压缩模式 (pr#31784, Stephan Müller)
mgr/dashboard: 重命名 RBD 时在标题和按钮中显示“重命名” (pr#31779, Alfonso Martínez)
mgr/dashboard: 正确按开放会话排序监视器 (pr#31791, Alfonso Martínez)
mgr/dashboard: 备用仪表板无法正确处理所有请求 (pr#32299, Volker Theile)
mgr/dashboard: 修剪 iSCSI 目标表单上的 IQN (pr#31942, Ricardo Marques)
mgr/dashboard: 当默认值为 true 时无法将布尔值设置为 false (pr#31941, Ricardo Marques)
mgr/dashboard: 在 RGW 用户/桶数据表中使用了错误的标识符 (pr#32888, Volker Theile)
mgr/devicehealth: 确保不存储空对象 (pr#31735, Sage Weil)
mgr/devicehealth: 修复遥测在 48 小时后停止发送设备报告的问题 (pr#33346, Yaarit Hatuka, Sage Weil)
mgr: 返回时丢弃对 msg 的引用 (pr#33498, Patrick Donnelly)
mgr/MgrClient: 修复开放条件 (pr#32769, Sage Weil)
mgr/pg_autoscaler: 使用池大小计算 pool_pg_target (pr#33170, Dan van der Ster)
mgr/pg_autoscaler: 默认 pg_num[_min] = 16 (pr#32069, Sage Weil)
mgr/pg_autoscaler: 默认 pg_num[_min] = 32 (pr#32931, Neha Ojha)
mgr/pg_autoscaler: 实现 shutdown 方法 (pr#32068, Patrick Donnelly)
mgr/pg_autoscaler: 仅当设置了 target_* 时才生成目标健康警告 (pr#32067, Sage Weil)
mgr/prometheus: 当 obj_store 不是 filestore 或 bluestore 时,为 osd_dev_node 赋值 (pr#31556, jiahuizeng)
mgr/prometheus: 报告每个池的 pg 状态 (pr#33157, Aleksei Zakharov)
mgr/telemetry: 匿名化 smartctl 报告本身 (pr#33082, Yaarit Hatuka)
mgr/telemetry: 检查 get_metadata 返回值 (pr#33095, Yaarit Hatuka)
mgr/telemetry: 仅分割一次 entity_name (处理带点的 ID) (pr#33168, Dan Mick)
mgr/zabbix: 增加将数据发送到多个 zabbix 服务器的可能性 (pr#30009, slivik, Jakub Sliva)
mon/ConfigMonitor: 修复 NO_MON_UPDATE 设置的处理 (pr#32856, Sage Weil)
mon/ConfigMonitor: 仅当是领导者时才提出建议 (pr#33155, Sage Weil)
mon: 功能更改期间不放置会话 (pr#33152, Brad Hubbard)
mon: elector: 触发新选举后返回 (pr#33007, Greg Farnum)
monitoring: 在触发 osd full 警报前等待 (pr#32070, Patrick Seidensal)
mon/MgrMonitor.cc: 将 always_on_modules 添加到 "ceph mgr module ls" 的输出中 (pr#32997, Neha Ojha)
mon/MgrMonitor.cc: 警告集群中缺少 mgr(存在 osd)的情况 (pr#33142, Neha Ojha)
mon/OSDMonitor: 如果未使用 rocksdb,则不更新 mon 缓存设置 (pr#32520, Sridhar Seshasayee, Sage Weil)
mon/OSDMonitor: 修复格式错误 ceph osd stat --format json (pr#32062, Zheng Yin)
mon/PGMap.h: 在 dump_osd_stats 中禁用网络统计 (pr#32466, Neha Ojha, David Zafman)
mon: 移除 init_with_hosts 中地址类型的限制 (pr#31844, Hao Xiong)
mon/Session: 仅索引 osd ids >= 0 (pr#32908, Sage Weil)
mount.ceph: 当没有 mds 启动或集群延迟时给出提示信息 (pr#32910, Xiubo Li)
mount.ceph: 移除 name= 选项大小的任意限制 (pr#32807, Jeff Layton)
msg: async/net_handler.cc: 修复编译 (pr#31736, Carlos Valiente)
osd: 添加 osd_fast_shutdown 选项 (默认为 true) (pr#32743, Sage Weil)
osd: 允许将 64 字符主机名添加为 CRUSH 中的“host” (pr#33147, Michal Skalski)
osd: upmap 清理的诊断日志 (pr#32716, David Zafman)
osd/OSD: 增强 osd numa 亲和性兼容性 (pr#32843, luo rixin, Dai zhiwei)
osd/PeeringState.cc: 不要让 num_objects 变为负数 (pr#32857, Neha Ojha)
osd/PeeringState.cc: 发现所有缺失时跳过 peer_purged (pr#32847, Neha Ojha)
osd/PeeringState: 不将 up 排除在 acting_recovery_backfill 之外 (pr#32064, Nathan Cutler, xie xingguo)
osd/PrimaryLogPG: 在 backfill scan_range 期间跳过不存在的 obcs (pr#31028, Sage Weil)
osd: 为 *所有* 线程设置亲和性 (pr#31359, Sage Weil)
osd: 在集合创建、pg 加载时设置集合池选项 (pr#32123, Sage Weil)
osd: 对 nearfull 使用物理比率 (不包括 backfill resserve) (pr#32773, David Zafman)
pybind/mgr: 取消输出颜色控制 (pr#31697, Zheng Yin)
rbd: 创建厚置备镜像进度百分比信息超过 100% (pr#32840, Xiangdong Mu)
rbd: librbd: 不从 mirror::GetInfoRequest 状态机调用 refresh (pr#32900, Mykola Golub)
rbd-mirror: 克隆 v2 镜像改进 (pr#31518, Mykola Golub)
rbd-mirror: 修复 'rbd mirror status' asok 命令输出 (pr#32447, Mykola Golub)
rbd-mirror: 使 logrotate 工作 (pr#32593, Mykola Golub)
rgw: 复制对象时添加桶权限验证 (pr#31089, NancySu05)
rgw: 为角色和用户策略相关 REST API 添加 'iam' 命名空间 (pr#32437, Pritha Srivastava)
rgw: 桶版本状态更改时添加 MFA 代码验证 (pr#32759, Pritha Srivastava)
rgw: 为 radosgw-admin bucket stats 添加 num_shards (pr#31182, Paul Emmerich)
rgw: 允许取消不存在桶的 reshard 日志条目 (pr#32056, J. Eric Ivancich)
rgw: 自动清理不存在桶的 reshard 队列条目 (pr#32055, J. Eric Ivancich)
rgw: build_linked_oids_for_bucket 和 build_buckets_instance_index 失败时应返回负值 (pr#32820, zhangshaowen)
rgw: crypt: 允许 RGW-AUTO/default 与 SSE-S3 标头一起使用 (pr#31862, Matt Benjamin)
rgw: 数据同步标记包含 datalog 条目中的时间戳 (pr#32819, Casey Bodley)
rgw_file: 避免在空路径上使用 string::front() (pr#33008, Matt Benjamin)
rgw: 修复重分片完成后桶实例对象无法删除的 bug (pr#32822, zhang Shaowen)
rgw: 修复显示使用情况时无休止循环错误 (pr#31684, lvshuhua)
rgw: 修复 listobjectsv1 中的错误 (pr#32239, Albin Antony)
rgw: 修复 boost 1.70 编译错误 (pr#31289, Casey Bodley)
rgw: 修复 rgw 发送超时导致的数据一致性错误 (pr#32821, 李纲彬82225)
rgw: 修复版本列表从 version_id=null 开始的问题 (pr#30743, Tianshan Qu)
rgw: 修复批量删除 (RGWDeleteMultiObj_ObjStore_S3) 的一部分失败但没有错误消息的问题 (pr#33151, Snow Si)
rgw: 修复 opslog operation 字段与 Amazon s3 不符的问题 (issue#20978, pr#32834, Jiaying Ren)
rgw: 修复 refcount 标签以匹配和更新对象的 idtag (pr#30741, J. Eric Ivancich)
rgw: 修复 token 不是 base64 编码时 rgw 崩溃的问题 (pr#32050, yuliyang)
rgw: gc 在所有子 io 完成后移除标签 (issue#40903, pr#30733, Tianshan Qu)
rgw: 桶策略中错误调用 ceph::buffer::list::decode_base64 (pr#32832, GaryHyg)
rgw: reload 操作可能导致 coredump (pr#33149, Richard Bai(白学余))
rgw: 即使存在许多 rgw.none 索引,也向前移动标记 (pr#32824, Ilsoo Byun)
rgw multisite: 并发版本创建的修复 (pr#32057, Or Friedmann, Casey Bodley)
rgw: 如果桶正在进行重分片,则阻止桶重分片调度 (pr#31298, J. Eric Ivancich)
rgw/pubsub: 修复 records/event json 格式以匹配文档 (pr#32221, Yuval Lifshitz)
rgw: radosgw-admin: sync status 显示最落后的分片 ID (pr#32818, Casey Bodley)
rgw: 如果锁定日志分片失败则返回错误 (pr#32825, zhangshaowen)
rgw/rgw_rest_conn.h: 修复 clang 编译问题 (pr#32489, Bernd Zeimetz)
rgw: 选择 std::bitset 以解决歧义 (pr#32504, Willem Jan Withagen)
rgw: 支持 radosgw-admin zone/zonegroup placement get 命令 (pr#32835, jiahuizeng)
rgw: 删除桶的 http 响应码不应为 204-no-content (pr#32833, Chang Liu)
rgw: 更新 s3-test 下载代码以用于 s3-test 任务 (pr#32229, Ali Maredia)
rgw: 在重分片期间更新多分片条目的哈希源 (pr#33183, dongdong tao)
rgw: 对 List Objects 响应的通用前缀进行 URL 编码 (pr#32058, Abhishek Lekshmanan)
rgw: 重分片时存储进度 json (pr#31683, Mark Kogan, Mark Nelson)
selinux: 允许 ceph 读取 udev db (pr#32259, Boris Ranto)
v14.2.7 Nautilus
这是 Ceph Nautilus 发布系列的第七次更新。这是一个热修复版本,主要修复了几个安全问题。我们建议所有用户升级到此版本。
显著变化
CVE-2020-1699:修复了 Ceph 仪表板中的路径遍历漏洞,可能导致信息泄露 (Ernesto Puerta)
CVE-2020-1700:修复了 RGW beast 前端中的漏洞,可能导致未经身份验证的客户端拒绝服务 (Or Friedmann)
v14.2.6 Nautilus
这是 Ceph Nautilus 发布系列的第六次更新。这是一个热修复版本,主要修复了 v14.2.5 中引入的回归,建议所有 Nautilus 用户升级到此版本。
值得注意的更改
此版本修复了一个导致管理器在大集群上无响应的
ceph-mgr错误 issue#43364 (pr#32466, David Zafman, Neha Ojha)
v14.2.5 Nautilus
这是 Ceph Nautilus 发布系列的第五个版本。在众多显著变化中,此版本修复了 14.2.3 中引入的一个关键 BlueStore 错误。建议所有 Nautilus 用户升级到此版本。
显著变化
关键修复
此版本修复了 14.2.3 中引入(也存在于 14.2.4 中)的一个关键 BlueStore 错误,该错误在使用单独的“WAL”设备时可能导致数据损坏。
新的健康警告
Ceph 现在会在守护进程最近崩溃时发出健康警告。自 Nautilus 初始版本以来,Ceph 一直在收集崩溃报告,但健康警报是新增的。要查看新的崩溃(如果刚升级,则查看所有崩溃)
ceph crash ls-new
要确认特定崩溃(或所有崩溃)并消除健康警告
ceph crash archive <crash-id> ceph crash archive-all
如果 RADOS 池的
size设置为 1,换句话说,如果池配置为无冗余,Ceph 将发出健康警告。如果池大小设置为建议的最小值,Ceph 将停止发出警告。ceph osd pool set <pool-name> size <num-replicas>
可以通过以下方式使警告静音
ceph config set global mon_warn_on_pool_no_redundancy false
如果任何计算间隔的平均 osd 心跳 ping 时间超过可配置阈值,现在会生成健康警告。OSD 计算 1 分钟、5 分钟和 15 分钟的间隔,并包含平均值、最小值和最大值。新的配置选项 mon_warn_on_slow_ping_ratio 指定 osd_heartbeat_grace 的百分比以确定阈值。值为零将禁用警告。新的配置选项 mon_warn_on_slow_ping_time 以毫秒为单位指定,它将覆盖计算值,并在 OSD 心跳 ping 时间超过指定值时发出警告。新的管理命令 ceph daemon mgr.# dump_osd_network [threshold] 将列出所有连接,其 ping 时间超过指定阈值或由配置选项确定的值,用于 3 个间隔中的任何一个的平均值。另一个新的管理命令 ceph daemon osd.# dump_osd_network [threshold] 将执行相同操作,但仅包括由指定 OSD 发起的心跳。
遥测模块中的更改
遥测模块现在报告更多信息。
首先,有一个新的“device”通道,默认启用,它将向 telemetry.ceph.com 报告匿名化的硬盘和 SSD 健康指标,以便构建和改进设备故障预测算法。如果您不希望共享设备指标,可以先禁用该通道,然后再重新选择启用。
ceph config set mgr mgr/telemetry/channel_device false
其次,我们现在报告有关 CephFS 文件系统的更多信息,包括
MDS 守护进程数量(总数和每个文件系统)
启用了哪些功能(或曾经启用)
数据池数量
大致文件系统年龄(创建年份 + 月份)
文件、字节和快照的数量
正在缓存的元数据量
我们还添加了
监视器正在运行的 Ceph 版本
监视器是否使用 msgr v1 或 v2 地址
监视器是否使用 IPv4 或 IPv6 地址
是否启用了 RADOS 缓存层(以及哪种模式)
池是 replicated 还是 erasure coded,以及使用了哪个 erasure code profile plugin 和参数
集群中有多少主机,以及每种类型的守护进程有多少主机
是否使用了单独的 OSD 集群网络
集群中有多少 RBD 池和镜像,以及有多少池启用了 RBD 镜像
存在多少 RGW 守护进程、zone 和 zonegroup;使用了哪些 RGW frontend
有关 CRUSH map 的聚合统计信息,例如使用了哪些算法、bucket 有多大、定义了多少规则以及使用了哪些 tunables
如果您已启用遥测,则需要通过以下方式重新选择启用:
ceph telemetry on
您可以先使用以下命令查看将报告的确切信息
ceph telemetry show # see everything ceph telemetry show basic # basic cluster info (including all of the new info)
OSD
新的 OSD 守护进程命令 'dump_recovery_reservations' 会显示持有的恢复锁(进行中)和在优先级队列中等待的恢复锁。
另一个新的 OSD 守护进程命令 'dump_scrub_reservations' 会显示为本地(主)和远程(副本)PG 持有的 scrub 预留。
RGW
RGW 现在支持 S3 对象锁定 API 集,允许对象存储采用 WORM 模型。新增了 6 个 API:put/get 桶对象锁定、put/get 对象保留、put/get 对象法律保留。
RGW 现在支持 List Objects V2
更新日志
bluestore/KernelDevice: 修复 RW_IO_MAX 常量 (pr#31397, Sage Weil)
bluestore: 不要忘记 sub kv_submitted_waiters (pr#30048, Jianpeng Ma)
bluestore: 对过多的 blob 计数增长应用垃圾收集 (pr#30144, Igor Fedotov)
bluestore: 将 shared_alloc_size 应用于日志级别更改的共享设备 (pr#30229, Vikhyat Umrao, Sage Weil, Igor Fedotov, Neha Ojha)
bluestore: 仅合并来自同一设备的 extents (pr#31644, Igor Fedotov)
bluestore: 修复 STATE_KV_SUBMITTED 设置不当的问题 (pr#30755, Igor Fedotov)
bluestore: 浅层 fsck 模式和旧版 statfs 自动修复 (pr#30685, Sage Weil, Igor Fedotov)
bluestore: 检查碎片化的工具 (pr#29949, Adam Kupczyk)
build/ops: admin/build-doc: 使用 python3 (pr#30664, Kefu Chai)
build/ops: 回溯字节序修复 (issue#40114, pr#30697, Ulrich Weigand, Jeff Layton)
build/ops: cmake,rgw: IBM Z 构建修复 (pr#30696, Ulrich Weigand)
build/ops: cmake/BuildDPDK: 忽略 gcc8/9 警告 (pr#30360, Yuval Lifshitz)
build/ops: cmake: 允许在 FreeBSD 上构建 cephfs 和 ceph-mds (pr#31011, Willem Jan Withagen)
build/ops: cmake: 强制使用 C++17 而不是依赖 cmake-compile-features (pr#30283, Kefu Chai)
build/ops: 修复与 PYTHON_EXECUTABLE 变量相关的构建失败 (pr#30261, Ilsoo Byun)
build/ops: 二进制包中隐藏的 corei7 要求 (pr#29772, Kefu Chai)
build/ops: install-deps.sh: 也为非 x86_64 架构添加 EPEL 仓库 (pr#30601, Kefu Chai, Nathan Cutler)
build/ops: install-deps.sh: 为 python*rpm-macros 安装 python*-devel (pr#30322, Kefu Chai)
build/ops: install-deps: 如果 rpm 已安装且 ceph.spec.in: s/pkgversion/version_nodots/ 则不安装 (pr#30708, Jeff Layton, Kefu Chai)
build/ops: 使补丁构建依赖项显式化 (issue#40175, pr#30046, Nathan Cutler)
build/ops: python3-cephfs 应该提供 python36-cephfs (pr#30983, Kefu Chai)
build/ops: rpm: 始终构建 ceph-test 包 (pr#30049, Nathan Cutler)
build/ops: rpm: SUSE 构建中的 fdupes 以符合打包指南 (issue#40973, pr#29784, Nathan Cutler)
build/ops: rpm: 使 librados2, libcephfs2 拥有 (创建) /etc/ceph (pr#31125, Nathan Cutler)
build/ops: rpm: 将 librgw lttng SO 放入 librgw-devel 包中 (issue#40975, pr#29785, Nathan Cutler)
build/ops: seastar,dmclock: 使用父项目的 CXX_FLAGS (pr#30114, Kefu Chai)
build/ops: 使用 gcc-8 (issue#38892, pr#30089, Kefu Chai)
tools: ceph-objectstore-tool: update-mon-db: 如果 incmap 缺失则不失败 (pr#30740, Kefu Chai)
ceph-volume: PVolumes.filter 不应该清除自身 (pr#30805, Rishabh Dave)
ceph-volume: VolumeGroups.filter 不应该清除自身 (pr#30807, Rishabh Dave)
ceph-volume: 添加 Ceph 的设备 ID 到库存 (pr#31210, Sebastian Wagner)
ceph-volume: 允许跳过 restorecon 调用 (pr#31555, Alfredo Deza)
ceph-volume: api/lvm: 检查 LV 列表是否为空 (pr#31228, Rishabh Dave)
ceph-volume: 检查我们是否在 selinux 环境中运行 (pr#31812, Jan Fajerski)
ceph-volume: 尝试移除 crypt mapper 时不失败 (pr#30554, Guillaume Abrioux)
ceph-volume: 修复 stderr 重定向时解码/编码失败的问题 (pr#30300, Alfredo Deza)
ceph-volume: 修复 pytest 引起的警告 (pr#30676, Rishabh Dave)
ceph-volume: lvm list 是 O(n^2) (pr#30093, Rishabh Dave)
ceph-volume: lvm.zap 修复 db 分区的清理 (issue#40664, pr#30304, Dominik Csapak)
ceph-volume: mokeypatch 调用到 lvm 相关二进制文件 (pr#31405, Jan Fajerski)
ceph-volume: 在测试运行前预安装 python-apt 及其变体 (pr#30294, Alfredo Deza)
ceph-volume: 重新排列 api/lvm.py (pr#31408, Rishabh Dave)
ceph-volume: systemd 修复日志消息中的拼写错误 (pr#30520, Manu Zurmühl)
ceph-volume: 报告成功时使用 OSD 标识符 (pr#29769, Alfredo Deza)
ceph-volume: zap 始终跳过 block.db,保留它们 (issue#40664, pr#30307, Alfredo Deza)
tools: ceph.in: 除非必要,否则不预加载 ASan (pr#31676, Kefu Chai)
build/ops: ceph.spec.in: 每个构建作业保留 2500MB (pr#30370, Dan van der Ster)
tools: ceph_volume_client: 将字符串转换为字节对象 (issue#39405, issue#40369, issue#39510, issue#40800, issue#40460, pr#30030, Rishabh Dave)
cephfs-shell: 将路径类型从字符串转换为字节 (pr#30057, Varsha Rao)
cephfs: 允许 mount.ceph 从 ceph 配置和密钥环获取挂载信息 (pr#30521, Jeff Layton)
cephfs: 避免意外插入 map (pr#29878, XiaoGuoDong2019)
cephfs: 客户端: 更精确的 CEPH_CLIENT_CAPS_PENDING_CAPSNAP (pr#30032, “Yan, Zheng”)
cephfs: 客户端: nfs-ganesha 与 cephfs 客户端,移除目录报告不为空 (issue#40746, pr#30442, Peng Xie)
cephfs: 客户端: 当不安全请求被丢弃时,同步文件返回 -eio (issue#40877, pr#30043, simon gao)
cephfs: 修复内存泄漏 (pr#29879, XiaoGuoDong2019)
cephfs: mds: 修复驱逐列表中重复的客户端条目 (pr#30951, Sidharth Anupkrishnan)
cephfs: mds: 清理截断 inodes,当 standby replay mds 裁剪日志段时 (pr#29591, “Yan, Zheng”)
cephfs: mds: 延迟导出 pin 值超过最大 rank id 的目录 (issue#40603, pr#29938, Zhi Zhang)
cephfs: mds: 仅当另一个客户端需要其 caps 时才驱逐无响应的客户端 (pr#30031, Rishabh Dave)
cephfs: mds: 修复 InoTable::force_consume_to() (pr#30041, “Yan, Zheng”)
cephfs: mds: 修复 Locker::file_update_finish 中的无限循环 (pr#31079, “Yan, Zheng”)
cephfs: mds: 使 MDSIOContextBase 在关闭时自行删除 (pr#30418, Xuehan Xu)
cephfs: mds: 定期裁剪缓存 (pr#30040, Patrick Donnelly)
cephfs: mds: 强制更改锁状态后唤醒锁等待者 (issue#39987, pr#30508, “Yan, Zheng”)
cephfs: mount.ceph: 正确处理 -o strictatime (pr#30039, Jeff Layton)
cephfs: qa: 忽略预期的 MDS_CLIENT_LATE_RELEASE 警告 (issue#40968, pr#29811, Patrick Donnelly)
cephfs: qa: 移除 MDS 后等待其恢复 (issue#40967, pr#29832, Patrick Donnelly)
cephfs: 测试: 断电仍然导致客户端发送会话关闭 (issue#37681, pr#29983, Patrick Donnelly)
common/ceph_context: 在服务线程关闭期间避免不必要的等待 (pr#31097, Jason Dillaman)
common/config_proxy: 访问可变容器时持有锁 (pr#30661, Jason Dillaman)
common: 修复 rgw_user_max_buckets 选项长描述中的拼写错误 (pr#31605, Alfonso Martínez)
core/osd: 不信任部分简化的 pg_upmap_item (issue#42052, pr#30899, xie xingguo)
core: 网络 ping 时间长的健康警告 (issue#40640, pr#30195, David Zafman)
core: 如果 nodeep-scrub/noscrub 标志在池中而不是全局集群中设置。在 ceph status 中列出池名称 (issue#38029, pr#29991, Mohamad Gebai)
core: 改进 backfill_toofull 和 recovery_toofull 的健康状态,并修复在最满的 OSD 仅有 1% 的集群上出现的 backfill_toofull (pr#29999, David Zafman)
core: 使 scrub 和 recovery 之间的预留信息转储一致 (pr#31444, David Zafman)
core: 恢复 "rocksdb: 默认启用 rocksdb_rmrange=true" (pr#31612, Neha Ojha)
core: filestore 预分割可能没有分割足够的目录 (issue#39390, pr#29988, Jeegn Chen)
core: kv/RocksDBStore: 告诉 rocksdb 将模式设置为 0600,而不是 0644 (pr#31031, Sage Weil)
core: mon/MonClient: 向下线的 mon 发送命令时 ENXIO (pr#31037, Sage Weil, Greg Farnum)
core: mon/MonCommands: "smart" 只需要读权限 (pr#31111, Kefu Chai)
core: mon/MonMap: 当有仅 v2 地址时编码 (更多) 有效的兼容 monmap (pr#31658, Sage Weil)
core: mon/Monitor.cc: 修复检查无法识别的 auth 模式的条件 (pr#31038, Neha Ojha)
core: mon/OSDMonitor: 为 mon 缓存使用通用优先级缓存调优器 (pr#30419, Sridhar Seshasayee, Kefu Chai, Mykola Golub, Mark Nelson)
core: mon/OSDMonitor: 在 pool set size 命令中添加 crush rule size 检查 (pr#30941, Vikhyat Umrao)
core: mon/OSDMonitor: 裁剪不再存在的故障报告器 (pr#30904, NancySu05)
core: mon/PGMap: 修复删除池时 pg_pool_sum 不正确的问题 (pr#31704, luo rixin)
core: mon: C_AckMarkedDown 未处理回调参数 (pr#29997, NancySu05)
core: mon: 确保 prepare_failure() 在 op 上标记 no_reply (pr#30480, Joao Eduardo Luis)
core: mon: 在 pool ls 命令中显示池 ID (issue#40287, pr#30486, Chang Liu)
core: msg,mon/MonClient: 修复没有 CEPHX_V2 功能的客户端的身份验证问题 (pr#30524, Sage Weil)
core: msg/auth: 处理解码错误而不是抛出异常 (pr#31099, Sage Weil)
core: msg/simple: 会话重置时将 in_seq_acked 重置为零 (pr#29592, Xiangyang Yu)
core: os/bluestore: 修复 objectstore_blackhole 写后读的问题 (pr#31019, Sage Weil)
core: osd/OSDCap: 检查空命名空间 (issue#40835, pr#29998, Brad Hubbard)
core: mon/OSDMonitor: 如果没有 rocksdb,则使内存自动调优自行禁用 (pr#32045, Sage Weil)
core: osd/PG: 将 PG 添加到大型 omap 日志消息中 (pr#30923, Brad Hubbard)
core: osd/PGLog: 在对等完成时为副本持久化 num_objects_missing (pr#31077, xie xingguo)
core: osd/PeeringState: 不抱怨由最旧 epoch 限制的 past_intervals (pr#30000, Sage Weil)
core: osd/PeeringState: 修复合并目标的错误历史 (pr#30280, xie xingguo)
core: osd/PeeringState: recover_got - 为空日志添加特殊处理程序并改进独立测试 (pr#30528, Sage Weil, David Zafman, xie xingguo)
core: osd/PrimaryLogPG: 避免在 finish_degr... 中访问已销毁的引用 (pr#29994, Tao Ning)
core: osd/PrimaryLogPG: 写入操作隐式截断 ob... 时更新 oi.size (pr#30278, xie xingguo)
core: osd/ReplicatedBackend: 在启用 crc 之前检查 data_included 是否为空 (pr#29716, xie xingguo)
core: osd/osd_types: 修复 {omap,hitset_bytes}_stats_invalid 在 spli... 上的处理 (pr#30643, Sage Weil)
core: osd: OSD 计数小于 osd_pool_default_size 时更好的错误消息 (issue#38617, pr#29992, Kefu Chai, Sage Weil, zjh)
core: osd: 从输出中移除未使用的 osdmap 标志 full, nearfull (pr#30900, David Zafman)
core: osd: 添加日志信息以记录 do_osd_ops 失败的原因 (pr#30546, NancySu05)
core: osd: 修复对象时清除 PG_STATE_CLEAN (pr#30050, Zengran Zhang)
core: osd: 修复发送动态 perf 统计报告时可能发生的崩溃 (pr#30648, Mykola Golub)
core: osd: primary 需要根据 replica log 的 crt 合并 replica log (pr#30051, Zengran Zhang)
core: osd: 为任何潜在的伪造 split/merge par... 预处理 splits/merges (issue#38483, pr#30371, xie xingguo)
core: osd: 合并期间释放 backoffs (pr#31822, Sage Weil)
core: osd: rollforward 可能需要标记 pglog dirty (issue#40403, pr#31034, Zengran Zhang)
core: osd: 大对象上的 scrub 错误; 使 bluestore 拒绝在大对象上启动 (pr#30783, David Zafman, Sage Weil)
core: osd: 支持 osd_repair_during_recovery (issue#40620, pr#29748, Jeegn Chen)
core: pool_stat.dump() - num_store_stats 的值错误 (issue#39340, pr#29946, xie xingguo)
doc/ceph-kvstore-tool: 添加 'stats' 命令的描述 (pr#30245, Josh Durgin, Adam Kupczyk)
doc/mgr/telemetry: 更新默认间隔 (pr#31009, Tim Serong)
doc/rbd: 代码块词法分析器使用 s/guess/xml/ (pr#31074, Kefu Chai)
doc: 修复 rbd 命名空间文档 (pr#29731, Ricardo Marques)
doc: cephfs: 在 posix.rst 中添加 fsync 错误报告部分 (issue#24641, pr#30025, Jeff Layton)
doc: mon_health_to_clog_* 的默认值被颠倒了 (pr#30003, James McClune)
doc: 修复 posix.rst 中的 URL (pr#30686, Jos Collin)
doc: Nautilus 中 max_misplaced 选项已重命名 (pr#30649, Nathan Fish)
doc: pg_num 应该始终是 2 的幂 (pr#30004, Lars Marowsky-Bree, Kai Wagner)
doc: 更新 bluestore 缓存设置并澄清数据分数 (issue#39522, pr#31259, Jan Fajerski)
mgr/ActivePyModules: 如果模块查询不存在的 devid,则行为正常 (pr#31411, Sage Weil)
mgr/BaseMgrStandbyModule: 在 ceph_get_module_option() 中释放 GIL (pr#30773, Kefu Chai)
mgr/balancer: python3 兼容性问题 (pr#31012, Mykola Golub)
mgr/crash: 回溯归档功能,健康警报 (pr#30851, Sage Weil)
mgr/crash: 在 client.admin 之前尝试 client.crash[.host];添加 mon 配置文件 (issue#40781, pr#30844, Sage Weil, Dan Mick)
mgr/dashboard: 添加 transifex-i18ntool (pr#31160, Sebastian Krah)
mgr/dashboard: 允许在备用仪表板上禁用重定向 (issue#41813, pr#30382, Volker Theile)
mgr/dashboard: 配置 URL 前缀不按预期工作 (pr#31375, Volker Theile)
mgr/dashbaord: 修复 PG 状态百分比计算 (issue#41809, pr#30394, Tiago Melo)
mgr/dashboard: 修复 CephFS 图表 (pr#30691, Stephan Müller)
mgr/dashboard: 修复 grafana 仪表板 (pr#31733, Radu Toader)
mgr/dashboard: 改进 MDS 图表工具提示位置 (pr#31565, Tiago Melo)
mgr/dashboard: 提供要删除的对象名称 (pr#31263, Ricardo Marques)
mgr/dashboard: RBD 测试必须使用 pg_num 为 2 的幂的池 (pr#31522, Ricardo Marques)
mgr/dashboard: 将 RO 设置为 RGW NFS 导出默认 access_type (pr#30516, Tiago Melo)
mgr/dashboard: 等待面包屑文本在 e2e 测试中出现 (pr#31576, Volker Theile)
mgr/dashboard: access_control: 为 *-manager 角色添加 grafana 范围读取权限 (pr#30259, Ricardo Dias)
mgr/dashboard: 不记录令牌 (pr#31413, Kefu Chai)
mgr/dashboard: 在池详细信息中不显示非池数据 (pr#31516, Alfonso Martínez)
mgr/dashboard: 接收到数据后编辑/克隆/复制 rbd 镜像 (pr#31349, Alfonso Martínez)
mgr/dashboard: 启用 AOT 的国际化支持 (pr#30910, Ricardo Dias, Tiago Melo)
mgr/dashboard: run-backend-api-tests.sh 改进 (pr#29487, Alfonso Martínez, Kefu Chai)
mgr/dashboard: tasks: 仅在 TaskManager 线程后才解除控制器线程的阻塞 (pr#31526, Ricardo Dias)
mgr/devicehealth: 不抓取 mon 设备 (pr#31446, Sage Weil)
mgr/devicehealth: 直接导入 _strptime (pr#32082, Sage Weil)
mgr/k8sevents: 初步 ceph -> k8s 事件集成 (pr#30215, Paul Cuzner, Sebastian Wagner)
mgr/pg_autoscaler: 修复 pool_logical_used (pr#31100, Ansgar Jazdzewski)
mgr/pg_autoscaler: 修复与池删除的竞争条件 (pr#30008, Sage Weil)
mgr/prometheus: 将 collect_timeout (scrape_interval) 转换为浮点型 (pr#30007, Ben Meekhof)
mgr/prometheus: 修复 get_mgr_status 中的 KeyError (pr#30774, Sebastian Wagner)
mgr/rbd_support: module.py:1088: 错误: 名称 'image_spec' 未定义 (pr#29978, Jason Dillaman)
mgr/restful: 请求 api 添加支持多个命令 (pr#31334, Duncan Chiang)
mgr/telemetry: 回溯大量内容 (pr#30849, alfonsomthd, Kefu Chai, Sage Weil, Dan Mick)
mgr/volumes: 修复不正确的快照路径创建 (pr#31076, Ramana Raja)
mgr/volumes: 使用重试处理清除线程中的异常 (issue#41218, pr#30455, Venky Shankar)
mgr/volumes: 列出 FS 子卷、子卷组及其快照 (pr#30827, Jos Collin)
mgr/volumes: 小修复 (pr#29926, Venky Shankar, Jos Collin, Ramana Raja)
mgr/volumes: "fs volume rm" 命令的保护 (pr#30768, Jos Collin, Ramana Raja)
mgr/zabbix: 修复 PGs 在 backfill_wait 状态下键名中的拼写错误 (issue#39666, pr#30006, Wido den Hollander)
mgr/zabbix: 为 Python 3 兼容性编码字符串 (pr#30016, Nathan Cutler)
mgr/{dashboard,prometheus}: 返回 FQDN 而不是 '0.0.0.0' (pr#31482, Patrick Seidensal)
mgr: 调用 OSDMap::calc_pg_upmaps() 之前释放 GIL (pr#31682, David Zafman, Shyukri Shyukriev)
mgr: 无法重置/取消设置模块选项 (issue#40779, pr#29550, Sebastian Wagner)
mgr: 如果没有收集到新指标,则不重置 reported (pr#30390, Ilsoo Byun)
mgr: 修复奇怪的健康警报守护进程键 (pr#31039, xie xingguo)
mgr: 在 DeviceState::set_metadata() 中设置主机名 (pr#30624, Kefu Chai)
pybind/cephfs: 错误消息修改 (pr#30026, Varsha Rao)
pybind/rados: 修复 py3 上 set_omap() 崩溃的问题 (pr#30622, Sage Weil)
pybind/rbd: 弃用 parent_info (pr#30818, Ricardo Marques)
rbd: rbd-mirror: 无法恢复延迟删除的镜像图像 (pr#30825, Jason Dillaman, Mykola Golub)
rbd: rbd-mirror: 不覆盖 replay 返回的状态错误 (pr#29870, Mykola Golub)
rbd: rbd-mirror: 忽略与解析集群配置文件相关的错误 (pr#30116, Jason Dillaman)
rbd: rbd-mirror: 简化对等引导 (pr#30821, Jason Dillaman)
rbd: rbd-nbd: 添加 netlink 支持和 nl resize (pr#30532, Mike Christie)
rbd: cls/rbd: 规范化实体实例信使版本类型 (pr#30822, Jason Dillaman)
rbd: cls/rbd: 从磁盘读取后规范化镜像镜像状态对等地址 (pr#31833, Jason Dillaman)
rbd: krbd: 避免 udev netlink 套接字溢出,并在 udev_enumerate_scan_devices() 出现瞬态错误时重试 (pr#31075, Ilya Dryomov, Adam C. Emerson)
rbd: librbd: 移除镜像时总是尝试获取排他锁 (pr#29869, Mykola Golub)
rbd: librbd: 数据池移除时表现更优雅 (pr#30824, Mykola Golub)
rbd: librbd: v1 克隆限制在同一命名空间 (pr#30823, Jason Dillaman)
mgr/restful: 查询 nodes_by_id 获取项目 (pr#31261, Boris Ranto)
rgw/amqp: 修复 AMQP 单元测试中的竞争条件 (pr#30889, Yuval Lifshitz)
rgw/amqp: 移除不稳定的 amqp 测试 (pr#31628, Yuval Lifshitz)
rgw/pubsub: 回溯通知和 pubsub (pr#30579, Yuval Lifshitz)
rgw/rgw_op: 通过旧选项从热路径中移除 get_val (pr#30160, Mark Nelson)
rgw: putbj 中潜在的崩溃 (pr#29898, Adam C. Emerson)
rgw: Put User Policy 对空格敏感 (pr#29970, Abhishek Lekshmanan)
rgw: RGWCoroutine::call(nullptr) 将 retcode 设置为 0 (pr#30248, Casey Bodley)
rgw: 启用 S3 存储桶版本控制后 Swift 元数据丢失 (pr#29961, Marcus Watts)
rgw: 添加 S3 对象锁功能以支持对象 WORM (pr#29905, Chang Liu, Casey Bodley, zhang Shaowen)
rgw: 同步用户信息时添加缺少的管理员属性 (pr#30680, zhang Shaowen)
rgw: 当 FD 耗尽时,beast 前端抛出异常 (pr#29963, Yuval Lifshitz)
rgw: 当没有对等体读取数据/bilogs 时,它们会被裁剪 (issue#39487, pr#30999, Casey Bodley)
rgw: datalog/mdlog trim 命令循环直到完成 (pr#30869, Casey Bodley)
rgw: DNS 名称不区分大小写 (issue#40995, pr#29971, Casey Bodley, Abhishek Lekshmanan)
rgw: 修复生命周期过期持续生成删除标记的 bug (issue#40393, pr#30037, zhang Shaowen)
rgw: 修复 cls_bucket_list_unordered() 部分结果问题 (pr#30252, Mark Kogan)
rgw: 修复远程未初始化 data_log 时数据同步启动延迟的问题 (pr#30509, Tianshan Qu)
rgw: 修复 get_compression_type 的默认存储类 (pr#31026, Casey Bodley)
rgw: 修复使用 bypass-gc 选项删除存储桶时 drain handles 错误的问题 (pr#29956, dongdong tao)
rgw: 修复使用分隔符列出存储桶时错误跳过某些特殊键的问题 (issue#40905, pr#30068, Tianshan Qu)
rgw: 修复删除对象时内存增长问题 (pr#30472, Mark Kogan)
rgw: 修复 rgw 未对网站配置进行必要检查的 bug (issue#40678, pr#30325, Enming Zhang)
rgw: 修复使用 "radosgw-admin zone rm" 时出现的 "unrecognized arg" 错误 (pr#30247, Hongang Chen)
rgw: 清理重置统计信息 (pr#29803, J. Eric Ivancich)
rgw: 将 beast 解析缓冲区大小增加到 64k (pr#30437, Casey Bodley)
rgw: ldap 认证:S3 认证失败应返回 InvalidAccessKeyId (pr#30651, Matt Benjamin)
rgw: 生命周期天数可能为 0 (pr#31073, Matt Benjamin)
rgw: 对不存在的放置目标进行生命周期转换 (pr#29955, Abhishek Lekshmanan)
rgw: 列出对象版本 2 (pr#29849, Albin Antony, zhang Shaowen)
rgw: 多站点:radosgw-admin bucket sync status 在完全同步期间错误地报告“已同步” (issue#40806, pr#29974, Casey Bodley)
rgw: 潜在的 realm watch 丢失 (issue#40991, pr#29972, Tianshan Qu)
rgw: 使用锁保护 AioResultList 以避免竞争条件 (pr#30746, Ilsoo Byun)
rgw: radosgw-admin: 在 bucket list 命令中添加 --uid 检查 (pr#30604, Vikhyat Umrao)
rgw: 从 SLO 对象返回的数据比请求范围多一个字节 (pr#29960, Andrey Groshev)
rgw: rgw-admin: 通过访问密钥搜索用户 (pr#29959, Matt Benjamin)
rgw: rgw-log 在解压失败时发出错误消息 (pr#29965, Han Fengzhe)
rgw: rgw_file: 目录枚举可以通过从存储桶索引(仅来自 S3/Swift 的统计信息)中获取统计信息来加速 1-2 个数量级 Part I (issue#40456, pr#29954, Matt Benjamin)
rgw: rgw_file: readdir: 不要构造带有前导“/”的标记 (pr#29969, Matt Benjamin)
rgw: 消除警告“control reaches end of non-void function” (issue#40747, pr#31742, Jos Collin)
rgw: 与 elastic search v7 同步 (pr#31027, Chang Liu)
rgw: 对 boost::string_ref 使用显式的 to_string() 重载 (issue#39611, pr#31650, Casey Bodley, Ulrich Weigand)
rgw: 使用 radosgw-admin 列出存储桶时,可以将 --max-entries 设置得过高 (pr#29777, J. Eric Ivancich)
tests: test_envlibrados_for_rocksdb.sh 中的 "CMake Error" (pr#29979, Kefu Chai)
tests: 使 libcephfs 和 cephfs 在 FreeBSD 上编译 (pr#31136, Willem Jan Withagen)
tests: 添加调试失败的 osd-release 设置 (pr#31040, Patrick Donnelly)
tests: cephfs: 修复格式错误的 qa 套件配置 (pr#30038, Patrick Donnelly)
tests: cls_rbd/test_cls_rbd: 更新 TestClsRbd.sparsify (pr#30354, Kefu Chai)
tests: cls_rbd: 移除镜像对等池测试用例 (pr#30948, Jason Dillaman)
tests: 启用 dashboard 测试与 "--suite rados/dashboard" 一起运行 (pr#31248, Nathan Cutler)
tests: librbd: 由于新内核默认启用 nbd,因此设置 nbd 超时 (pr#30423, Jason Dillaman)
tests: qa/suites/krbd: 仅使用 msgr1 运行 unmap 子套件 (pr#31290, Ilya Dryomov)
tests: qa/tasks/cbt: 关闭时运行 stop-all.sh (pr#31304, Sage Weil)
tests: qa/tasks/ceph.conf.template: 增加 mon tell 重试次数 (pr#31641, Sage Weil)
tests: qa/workunits/rbd: 压力测试 `rbd mirror pool status --verbose` (pr#29871, Mykola Golub)
tests: qa: 避免 krbd 丢弃舍入测试的页面缓存 (pr#30464, Ilya Dryomov)
tests: qa: 重置 kclient 后短暂休眠 (pr#29750, Patrick Donnelly)
tests: rados/mgr/tasks/module_selftest: 将 mgr 客户端列入白名单,以防止其被列入黑名单 (issue#40867, pr#29649, Sage Weil)
tests: test_librados_build.sh: 在 nautilus 分支中获取 nautilus (pr#31604, Nathan Cutler)
tests: valgrind: ceph::crypto::onwire::AES128GCM_OnWireRxHandler::authenticated_decrypt_update_final() 中的 UninitCondition (issue#38827, pr#29928, Radoslaw Zarzynski)
tools/rados: 在帮助中添加 --pgid (pr#30607, Vikhyat Umrao)
tools/rados: rados 连接后调用 pool_lookup() (pr#30605, Vikhyat Umrao)
tools/rbd-ggate: 运行 postfork 之前关闭日志 (pr#30120, Willem Jan Withagen)
tools: ceph-backport.sh: 添加弃用警告 (pr#30748, Nathan Cutler)
tools: ceph-objectstore-tool 无法删除具有错误快照集的头部 (pr#30080, David Zafman)
v14.2.4 Nautilus
这是 Ceph Nautilus 稳定发布系列的第四个版本。其唯一目的是修复前一个版本中出现的回归。
显著变化
Nautilus v14.2.3 中的 ceph-volume 被发现包含一个严重的回归,详见
https://tracker.ceph.com/issues/41660,该回归阻止了 ceph-ansible、DeepSea、Rook 等部署工具部署/移除 OSD。
更新日志
ceph-volume: 修复 stderr 重定向时解码/编码失败的问题 (pr#30300, Alfredo Deza)
v14.2.3 Nautilus
这是 Ceph Nautilus 发布系列的第三个 bug 修复版本。我们建议所有 Nautilus 用户升级到此版本。从旧版本 Ceph 升级时,必须遵循升级到 Nautilus 的一般准则 从 Mimic 或 Luminous 升级。
Notable Changes
CVE-2019-10222 - 修复了拒绝服务漏洞,未经验证的 Ceph 对象网关客户端可能因未捕获的异常而触发崩溃
基于 Nautilus 的 librbd 客户端现在可以在 Jewel 集群上打开镜像。
RGW num_rados_handles 已移除。如果您使用大于 1 的 num_rados_handles 值,请将当前的 objecter_inflight_ops 和 objecter_inflight_op_bytes 参数乘以旧的 num_rados_handles 以获得相同的节流行为。
此版本中 Messenger v2 协议的安全模式不再是实验性的。此模式现在是监视器连接的首选模式。
“osd_deep_scrub_large_omap_object_key_threshold” 已降低,以便更容易地检测到具有大量 omap 键的对象。
Ceph Dashboard 现在支持静默 Prometheus 警报通知。
更新日志
bluestore: 由于 bluefs_preextend_wal_files = false,iops 丢失 50-100% (issue#38559, pr#28573, Vitaliy Filippov)
bluestore: 为 collection_listing 添加慢操作检测 (pr#29227, Igor Fedotov)
bluestore: 避免 Stupid Allocator 返回的 extents 中的长度溢出 (issue#40703, pr#29023, Igor Fedotov)
bluestore/bluefs_types: 合并连续的 extents (pr#28862, Sage Weil)
bluestore/bluestore-tool: 迁移相关的小修复 (pr#28893, Igor Fedotov)
bluestore: 首次设置 FLAG_OMAP 时创建尾部 (issue#36482, pr#28963, Tao Ning)
bluestore: 不从 cgroup 限制设置 osd_memory_target 默认值 (pr#29745, Sage Weil)
bluestore: 修复 >2GB 的 bluefs 写入 (pr#28966, kungf, Sage Weil)
bluestore: 无条件加载 OSD 所有压缩设置 (issue#40480, pr#28892, Igor Fedotov)
bluestore: bluefs 空间不足时更智能的分配器转储 (issue#40623, pr#28891, Igor Fedotov)
bluestore: 将 rocksdb 中并发 max_background_compactions 设置为 2 (issue#40769, pr#29162, Mark Nelson)
bluestore: 在缓冲读取模式下支持 RocksDB 预取 (pr#28962, Igor Fedotov)
build/ops: 模块“dashboard”失败:无名为 routes 的模块 (issue#24420, pr#28992, Paul Emmerich)
build/ops: rpm: 移除 SuSEfirewall2 (issue#40738, pr#29007, Matthias Gerstner)
build/ops: rpm: 需要 ceph-grafana-dashboards (pr#29682, Boris Ranto)
cephfs: ceph-fuse: mount 不支持 fallocate() (issue#40615, pr#29157, huanwen ren)
cephfs: ceph_volume_client: d_name 需要在使用前转换为字符串 (issue#39406, pr#28609, Rishabh Dave)
cephfs: client: 将 ll_ref 从 int32 提升到 uint64_t (pr#29186, Xiaoxi CHEN)
cephfs: client: 将 snapdir 的链接计数设置为 1 (issue#40101, pr#29343, "Yan, Zheng")
cephfs: client: 为 llref=0 的 inode 解除链接 dentry (issue#40960, pr#29478, Xiaoxi CHEN)
cephfs: 对 snap inode 的 getattr 停滞 (issue#40361, pr#29231, "Yan, Zheng")
cephfs: mds: 无法将 mds 状态从 standby-replay 切换到 active (issue#40213, pr#29233, simon gao)
cephfs: mds: 拆分快照 inode 时清理不必要的 client_snap_caps (issue#39987, pr#29344, "Yan, Zheng")
cephfs-shell: do_rm() 中未定义名称“files”的错误 (issue#40489, pr#29158, Varsha Rao)
cephfs-shell: poutput 中的 TypeError (issue#40679, pr#29156, Varsha Rao)
ceph.spec.in: 在为 SUSE 构建时,删除 systemd BuildRequires (pr#28937, Dominique Leuenberger)
ceph-volume: 批处理功能幂等性测试失败,因为消息现在位于 stderr (pr#29689, Jan Fajerski)
ceph-volume: 当在两个设备列表中传递相同设备时,批处理会感到困惑 (pr#29690, Jan Fajerski)
ceph-volume: 不识别 ceph-disk 创建的 wal/db 分区 (pr#29464, Jan Fajerski)
ceph-volume: [filestore,bluestore] 单一类型策略在将设备跟踪为集合后失败 (pr#29702, Jan Fajerski)
ceph-volume: lvm.activate: 如果 WAL/DB 设备不存在,则返回错误 (pr#29040, David Casier)
ceph-volume: 报告挂载时缺少字符串替换 (issue#25030, pr#29260, Shyukri Shyukriev)
ceph-volume: 使用 --format json 将错误打印到 stdout (issue#38548, pr#29506, Jan Fajerski)
ceph-volume: 将日志消息打印到 stdout (pr#29600, Jan Fajerski, Kefu Chai, Alfredo Deza)
ceph-volume: 运行没有仪表板的功能测试 (pr#29694, Andrew Schoen)
ceph-volume: 简单的功能测试删除 lvm zap 的测试 (pr#29660, Jan Fajerski)
ceph-volume: 测试为 Debian 设置非交互式标志 (pr#29899, Alfredo Deza)
ceph-volume: 当“type”文件不存在时激活失败 (pr#29416, Alfredo Deza)
cmake: 更新 FindBoost.cmake (pr#29436, Willem Jan Withagen)
common/config: 遵守 POD_MEMORY_REQUEST *和* POD_MEMORY_LIMIT 环境变量 (pr#29562, Patrick Donnelly, Sage Weil)
common: ceph auth get 创建的密钥环不适用于 ceph auth import (issue#22227, pr#28740, Kefu Chai)
common: OutputDataSocket 在错误路径上重新获取互斥锁 (issue#40188, pr#29147, Casey Bodley)
core: osd_snap_trim_sleep 的更好的默认值 (pr#29678, Neha Ojha)
core: 将 bluestore_fsck_on_mount_deep 默认值更改为 false (pr#29697, Neha Ojha)
core: 延迟 omap 统计信息收集 (pr#29188, Brad Hubbard)
core: librados: 将缓冲区释放函数移动到内联命名空间 (issue#39972, pr#29244, Jason Dillaman)
core: maybe_remove_pg_upmap 对于大型集群可能效率低下 (issue#40104, pr#28756, xie xingguo)
core: MDSMonitor: 使用 stringstream 而不是 dout 来修复 mds (issue#40472, pr#29159, Zhi Zhang)
core: osd beacon 有时具有空 pg 列表 (issue#40377, pr#29254, Sage Weil)
core: s3tests-test-readwrite 在 rados 运行中失败(Connection refused) (issue#17882, pr#29325, Casey Bodley)
doc: 文档更多缓存模式 (issue#14153, pr#28958, Nathan Cutler)
doc: 修复 rgw ldap 用户名令牌 (pr#29455, Thomas Kriechbaumer)
doc: 改进仪表板功能概述 (pr#28919, Lenz Grimmer)
doc: 对象网关多站点文档只读参数错误 (issue#40458, pr#29306, Chenjiong Deng)
doc/rados: 更正 clay 代码文档中的一些拼写错误 (pr#29191, Myna)
doc/rbd: 初始实时迁移文档 (issue#40486, pr#29724, Jason Dillaman)
doc/rgw: 记录使用“realm pull”而不是“period pull” (issue#39655, pr#29484, Casey Bodley)
doc: 在现有 rgw 区域上禁用 metadata_heap 的步骤 (issue#18174, pr#28738, Dan van der Ster)
doc: 更新“ceph-iscsi”最小版本 (pr#29444, Ricardo Marques)
journal: 在跳过无效范围后正确推进读取偏移量 (pr#28816, Mykola Golub)
librbd: 提高日志性能以匹配预期的降级 (issue#40072, pr#29723, Mykola Golub, Jason Dillaman)
librbd: 正确跟踪进行中的刷新请求 (issue#40555, pr#28769, Jason Dillaman)
librbd: 快照对象映射在 copyup 期间可能会不一致 (issue#39435, pr#29722, Ilya Dryomov)
mds: 更改 mds 撤销过期 caps 的方式 (issue#17854, pr#28583, Rishabh Dave, "Yan, Zheng")
mgr: 将 mgr 元数据添加到 prometheus 导出器模块 (pr#29168, Paul Cuzner)
mgr/dashboard: 添加、更新和删除翻译 (issue#39701, pr#28938, Sebastian Krah)
mgr/dashboard: cephfs multimds 图表堆叠在一起 (issue#37579, pr#28889, Kiefer Chang)
mgr/dashboard: 更改 rgw-api-host 不会立即生效,需要禁用/启用仪表板 mgr 模块 (issue#40252, pr#29044, Ricardo Marques)
mgr/dashboard: controllers/grafana 不兼容 Python3 (issue#40428, pr#29524, Patrick Nawracay)
mgr/dashboard: 文件系统页面中 MDS 守护程序的 Dentries 值与 ceph fs status 输出不一致 (issue#40097, pr#28912, Kiefer Chang)
mgr/dashboard: 为每个 iSCSI 客户端显示登录信息 (issue#40046, pr#29045, Ricardo Marques)
mgr/dashboard: 修复由 webdriver 版本引起的 e2e 失败 (pr#29491, Tiago Melo)
mgr/dashboard: 修复 npm 漏洞 (issue#40677, pr#29102, Tiago Melo)
mgr/dashboard: 修复表格 mouseenter 事件处理测试 (issue#40580, pr#29354, Stephan Müller)
mgr/dashboard: 互锁 fast-diff 和 object-map (issue#39451, pr#29442, Patrick Nawracay)
mgr/dashboard: 提前通知用户关于未设置的“mon_allow_pool_delete”标志 (issue#39533, pr#28833, Tatjana Dehler)
mgr/dashboard: 优化门户 IP 的计算 (issue#39580, pr#29061, Ricardo Marques, Kefu Chai)
mgr/dashboard: 存储池图/迷你图点未显示正确的值 (issue#39650, pr#29352, Stephan Müller)
mgr/dashboard: RGW 用户配额验证不正确 (pr#29650, Volker Theile)
mgr/dashboard: 静默 Alertmanager 警报 (issue#36722, pr#28968, Stephan Müller)
mgr/dashboard: SSL 证书上传命令抛出弃用警告 (issue#39123, pr#29065, Ricardo Dias)
mgr/dashboard: 将 ng2-toastr 切换到 ngx-toastr (pr#29050, Tiago Melo, Ernesto Puerta)
mgr/dashboard: 升级到 ceph-iscsi config v10 (issue#40566, pr#28974, Ricardo Marques)
mgr/diskprediction_cloud: 服务不可用 (issue#40478, pr#29454, Rick Chen)
mgr/influx: 模块由于缺少 close() 方法而失败 (issue#40174, pr#29207, Kefu Chai)
mgr/orchestrator: Cache 和 DeepSea iSCSI + NFS (pr#29060, Sebastian Wagner, Tim Serong)
mgr/rbd_support: 支持调度长时间运行的后台操作 (issue#40621, issue#40790, pr#29725, Venky Shankar, Jason Dillaman)
mgr: 当 ipv6 被禁用时使用 ipv4 默认值 (issue#40023, pr#29194, kungf)
mgr/volumes: 子卷的后台清除队列 (issue#40036, pr#29079, Patrick Donnelly, Venky Shankar, Kefu Chai)
mgr/volumes: 次要增强和 bug 修复 (issue#40927, issue#40617, pr#29490, Ramana Raja)
mon: auth mon 在重启后未加载完整的 KeyServerData (issue#40634, pr#28993, Sage Weil)
mon/MgrMonitor: 修复指定无效格式化程序时的空指针解引用 (pr#29566, Sage Weil)
mon/OSDMonitor: 当 require_osd_release < N 时允许 pg_num 增加 (issue#39570, pr#29671, Neha Ojha, Sage Weil)
mon/OSDMonitor.cc: 关于 min_size 的更好的错误消息 (pr#29617, Neha Ojha)
mon: paxos: 引入新的 reset_pending_committing_finishers 以确保安全 (issue#39484, pr#28528, Greg Farnum)
mon: 在 cephfs metadata 存储池上设置恢复优先级等 (pr#29275, Sage Weil)
mon: 在 handle_conf_change 中获取 mon 锁 (issue#39625, pr#29373, huangjun)
msg/async: 避免不必要的昂贵的出站消息唤醒 (pr#29141, Jason Dillaman)
msg/async: 默认启用安全模式,不再是实验性功能 (pr#29143, Sage Weil)
msg/async: 无需为 Message 设置连接 (pr#29142, Jianpeng Ma)
msg/async, v2: 使 reset_recv_state() 无条件执行 (issue#40115, pr#29140, Radoslaw Zarzynski, Sage Weil)
nautilus:common/options.cc: 降低 osd_deep_scrub_large_omap_object_key_threshold 的默认值 (pr#29173, Neha Ojha)
osd: 当 noscrub 设置时不要随机化深度 scrub (issue#40198, pr#28768, David Zafman)
osd: 修复常规 scrub 后自动修复触发方式 (issue#40530, issue#40073, pr#28869, sjust@redhat.com, David Zafman)
osd/OSD: 自动将会话标记为过期并将其拆除 (issue#40586, pr#29391, xie xingguo)
osd/OSD: 如果卡在启动阶段,则继续与 mon 同步 (pr#28639, xie xingguo)
osd/PG: 如果 PG 在解除阻塞时未激活,则不排队 scrub (issue#40451, pr#29372, Sage Weil)
osd/PG: 修复 PG 删除时 pgmeta 类似对象的清理 (pr#29115, Sage Weil)
pybind/mgr/rbd_support: 忽略对 RBD 命名空间缺少支持的问题 (issue#41475, pr#29945, Mykola Golub)
rbd/action: 修复获取位置参数的错误 (issue#40095, pr#28870, songweibin)
rbd: [cli] 'export' 应该处理并发 IO 完成 (issue#40435, pr#29329, Jason Dillaman)
rbd: librbd: 在调整大小期间,在对象映射增长之前不要解除阻塞 IO (issue#39952, pr#29246, Jason Dillaman)
rbd-mirror: 处理镜像同步节流器队列中的重复项 (issue#40519, pr#28817, Mykola Golub)
rbd-mirror: 链接到指定的 alloc 库 (issue#40110, pr#29193, Jason Dillaman)
rbd-nbd: sscanf 返回 0 表示不匹配 (issue#39269, pr#29315, Jianpeng Ma)
rbd: profile rbd OSD cap 应该默认添加 class rbd metadata_list cap (issue#39973, pr#29328, songweibin)
rbd: 降低 cls/journal 和 cls/rbd 预期错误的日志级别 (issue#40865, pr#29551, Jason Dillaman)
rbd: tests: 为套件添加 "rbd diff" 覆盖率 (issue#39447, pr#28575, Shyukri Shyukriev, Nathan Cutler)
rgw: 添加 'GET /admin/realm?list' api 以列出 realms (issue#39626, pr#28751, Casey Bodley)
rgw: 允许 radosgw-admin 使用 --allow-unordered 列出存储桶 (issue#39637, pr#28230, J. Eric Ivancich)
rgw: 有条件地允许内置用户拥有非唯一电子邮件地址 (issue#40089, pr#28715, Matt Benjamin)
rgw: 当存储桶包含未完成的多部分上传时,删除存储桶可能会失败 (issue#40526, pr#29154, J. Eric Ivancich)
rgw: 当未提供元数据指令时,复制时不崩溃 (issue#40416, pr#29499, Adam C. Emerson)
rgw_file: advance_mtime() 应考虑命名空间过期 (issue#40415, pr#29410, Matt Benjamin)
rgw_file: advance_mtime() 无条件获取 RGWFileHandle::mutex (pr#29801, Matt Benjamin)
rgw_file: 所有目录都是相对于内容虚拟的 (issue#40204, pr#28886, Matt Benjamin)
rgw_file: 修复顶层目录的失效问题 (issue#40196, pr#29309, Matt Benjamin)
rgw_file: 修复 readdir eof() 计算——调用者停止意味着 !eof (issue#40375, pr#29409, Matt Benjamin)
rgw_file: 在哈希存储桶名称时包含租户 (issue#40118, pr#28854, Matt Benjamin)
rgw: 修复 STSService::storeARN 中 miss get ret 的问题 (issue#40386, pr#28713, Tianshan Qu)
rgw: 修复 LCFilter 中的前缀处理 (issue#37879, pr#28550, Matt Benjamin)
rgw: 修复 rgw 崩溃并设置正确的错误代码 (pr#28729, yuliyang)
rgw: hadoop-s3a 套件因更多 ansible 错误而失败 (issue#39706, pr#28735, Casey Bodley)
rgw: hadoop-s3a 套件因更多 ansible 错误而失败 (issue#39706, pr#29265, Casey Bodley)
rgw: Librgw 未正确 GC 已删除对象 (issue#37734, pr#28648, Tao Chen, Matt Benjamin)
rgw: 多站点:DELETE Bucket CORS 未转发到主区域 (issue#39629, pr#28714, Chang Liu)
rgw: 多站点:修复 'radosgw-admin bucket rm' 的 --bypass-gc 标志 (issue#24991, pr#28549, Casey Bodley)
rgw: 多站点:'radosgw-admin bilog trim' 在 1000 个条目后停止 (issue#40187, pr#29326, Casey Bodley)
rgw: 多站点:'radosgw-admin bucket sync status' 应调用 syncs_from(source.name) 而不是 id (issue#40022, pr#28739, Casey Bodley)
rgw: 多站点:radosgw-admin 命令不应修改非主区域上的元数据 (issue#39548, pr#29163, Shilpa Jagannath)
rgw: 多站点:RGWListBucketIndexesCR 用于数据完全同步需要分页 (issue#39551, pr#29311, Shilpa Jagannath)
rgw/OutputDataSocket: append_output(buffer::list&) 声称会(但不会)在 data_max_backlog 处丢弃输出 (issue#40178, pr#29310, Matt Benjamin)
rgw: 当 assume_role 时,策略应进行 url_decode (pr#28728, yuliyang)
rgw: 提供对管理员友好的 reshard 状态输出 (issue#37615, pr#29286, Mark Kogan)
rgw: Put LC 不清除现有生命周期 (issue#39654, pr#29313, Abhishek Lekshmanan)
rgw: 移除 rgw_num_rados_handles;为 rgw 元数据池设置自动扩展参数 (pr#27684, Adam C. Emerson, Casey Bodley, Sage Weil)
rgw: RGWGC 添加性能计数器 retire 计数器 (issue#38251, pr#29308, Matt Benjamin)
rgw: 保存不必要的 RGWEnv 副本 (issue#40183, pr#29205, Mark Kogan)
rgw: 设置 null 版本对象问题 (issue#36763, pr#29287, Tianshan Qu)
rgw: Swift 接口:如果对象名称包含“?”,服务器端复制失败 (issue#27217, pr#28736, Casey Bodley)
rgw: TempURL 不应允许带有 X-Object-Manifest 的 PUT 请求 (issue#20797, pr#28712, Radoslaw Zarzynski)
rgw: S3 API 的多对象删除操作错误处理 Code 响应元素 (issue#18241, pr#28737, Radoslaw Zarzynski)
rocksdb: rocksdb_rmrange 相关改进 (pr#29439, Zengran Zhang, Sage Weil)
rocksdb: 更新到 v6.1.2 (pr#29440, Mark Nelson)
tools: ceph-kvstore-tool: 打印 db 统计信息 (pr#28810, Igor Fedotov)
v14.2.2 Nautilus
这是 Ceph Nautilus 发布系列的第二个 bug 修复版本。我们建议所有 Nautilus 用户升级到此版本。从旧版本 Ceph 升级时,必须遵循升级到 Nautilus 的一般准则 从 Mimic 或 Luminous 升级。
显著变化
与 no{up,down,in,out} 相关的命令已进行改造。现在有两种方法可以设置 no{up,down,in,out} 标志:旧的 'ceph osd [un]set <flag>' 命令,它设置集群范围的标志;以及新的 'ceph osd [un]set-group <flags> <who>' 命令,它以任何 crush 节点或设备类的粒度批量设置标志。
radosgw-admin 引入了两个子命令,允许管理在早期 RGW 版本中存储桶 resharing 后可能遗留的过期对象。一个子命令列出此类对象,另一个删除它们。有关详细信息,请参阅动态 resharing 文档的故障排除部分。
早期的 Nautilus 版本(14.2.1 和 14.2.0)存在一个问题,即在升级后的集群(即最初在 Nautilus 之前部署的集群)上部署单个新的 (Nautilus) BlueStore OSD 会破坏
ceph df报告的存储池利用率统计信息。在所有 OSD 重新配置或更新(通过ceph-bluestore-tool repair)之前,存储池统计信息将显示低于真实值的数值。此问题在 14.2.2 中得到解决,集群仅在 *所有* OSD 都是 14.2.2(或更高版本)、是 BlueStore,并且(如果它们是在 Nautilus 之前创建的)已通过repair功能更新后,才会切换到使用更准确的每个存储池统计信息。mon_crush_min_required_version 的默认值已从 firefly 更改为 hammer,这意味着如果您的 CRUSH 可调参数比 hammer 旧,集群将发出健康警告。切换到 hammer 可调参数通常会导致少量(但非零)数据移动;有关更多信息,请参阅 可调参数。
如果可能,我们建议您将允许的最旧客户端设置为 hammer 或更高版本。您可以使用以下命令查看当前允许的最旧客户端:
ceph osd dump | grep min_compat_client
如果当前值比 hammer 旧,您可以通过验证当前没有比 hammer 更旧的客户端连接到集群来判断是否可以安全地进行此更改:
ceph features
较新的 straw2 CRUSH 桶类型是在 hammer 中引入的,确保所有客户端都是 hammer 或更新版本允许使用仅支持 straw2 桶的新功能,包括 Balancer 模块 的 crush-compat 模式。
更新日志
bluestore: 回溯更多 bluestore 警报 (pr#27645, Sage Weil, Igor Fedotov)
bluestore: 在查找要重用的 blob 之前调用 fault_range (pr#27525, Igor Fedotov)
bluestore: 正确测量延迟写入新 blob (issue#38816, pr#27819, Sage Weil)
bluestore: 在 "no-spanning blob id" 中止前转储 (pr#28028, Igor Fedotov)
bluestore: 修复 FreeBSD iocb 结构 (issue#39612, pr#28007, Willem Jan Withagen)
bluestore: 修复 BlueStore::_kv_sync_thread 中缺少 discard 的问题 (issue#39672, pr#28258, Junhui Tang)
bluestore: 修复 bmap 分配器中的越界访问 (pr#27740, Igor Fedotov)
bluestore: 修复 bmap 分配器中的重复分配 (issue#40080, pr#28646, Igor Fedotov)
build/ops: Ceph RPM 构建在 openSUSE Tumbleweed 上使用 GCC 9 失败 (issue#40067, issue#39974, pr#28299, Martin Liška)
build/ops: cmake: 修复针对具有独立 libtinfo 的 ncurses 的构建 (pr#27532, Lars Wendler)
build/ops: cmake: 为 ceph-osd 设置空字符串 RPATH (issue#40301, issue#40295, pr#28516, Nathan Cutler)
build/ops: do_cmake.sh: 未找到源 (issue#39981, issue#40003, pr#28215, Nathan Cutler)
build/ops: python3 pybind RPM 在升级时不会替换其 python2 对应物,尽管它们应该替换 (issue#40099, issue#40232, pr#28469, Nathan Cutler)
build/ops: rpm: 将 grafana 仪表板安装为世界可读 (pr#28392, Jan Fajerski)
build/ops: selinux: 更新 RHEL8 的策略 (pr#28511, Boris Ranto)
ceph-volume: 添加实用函数 (pr#27791, Mohamad Gebai)
ceph-volume: pytest 更改后断言错误中断 (pr#28925, Alfredo Deza)
ceph-volume: 在 lsblk 中查找旋转数据 (pr#27723, Andrew Schoen)
ceph-volume: 测试在 tox 中为启动后慢速 OSD 添加睡眠 (pr#28924, Alfredo Deza)
ceph-volume: 使用 Device.rotational 属性而不是 sys_api (pr#29028, Andrew Schoen)
cephfs-shell: 恢复 "cephfs.pyx: 添加 py3 兼容性 (pr#28641, Varsha Rao)
cephfs-shell: ls 命令产生错误:未找到 colorize 属性 (issue#39376, issue#39378, issue#38740, issue#39379, issue#39197, issue#39377, pr#27677, Milind Changire, Varsha Rao)
cephfs-shell: 杂项 cephfs-shell 回溯 (issue#40314, issue#40471, issue#40418, issue#40469, issue#40313, issue#39937, issue#39678, issue#40244, issue#39404, issue#40243, issue#39165, issue#40470, issue#40455, issue#39936, issue#40217, pr#28681, Patrick Donnelly, Varsha Rao, Milind Changire)
cephfs-shell: 相对路径的 mkdir 错误 (issue#39960, pr#28616, Varsha Rao)
cephfs: FSAL_CEPH 断言失败在 Client::_lookup_name: "parent->is_dir() (issue#40085, issue#40161, pr#28612, Jeff Layton)
cephfs: ceph_volume_client: "WriteOpCtx" 的参数过多 (issue#39050, issue#38946, pr#27893, Ramana Raja)
cephfs: client: ceph.dir.rctime 扩展属性值错误地在纳秒部分前缀 09 (issue#40167, pr#28500, David Disseldorp)
cephfs: client: 修复 "ceph.snap.btime" vxattr 值 (issue#40169, pr#28499, David Disseldorp)
cephfs: client: 修复 fuse 客户端因不良会话 PipeConnection 而挂起 (issue#39686, issue#39305, pr#28375, Guan yunfei)
cephfs: kclient: 不支持 nofail 选项 (issue#39232, pr#27851, Kenneth Waegeman)
cephfs: mds: 将 CephFS 快照创建时间暴露给客户端 (issue#39471, pr#27901, David Disseldorp)
cephfs: mds: MDSTableServer.cc: 83: FAILED assert(version == tid) (issue#39211, issue#38835, pr#27853, "Yan, Zheng")
cephfs: mds: mds 重启后避免一次性发送过多 osd 请求 (issue#40028, issue#40040, pr#28582, simon gao)
cephfs: mds: 处于裁剪滞后状态,并且 "[dentry] was purgeable but no longer is! (issue#39222, issue#38679, pr#27879, "Yan, Zheng")
cephfs: mds: 'ceph health detail' 输出更佳 (issue#39266, pr#27846, Shen Hang')
cephfs: mds: 检查目录片段以在 mkdir 使其过大时拆分目录 (issue#39690, pr#28394, Erqi Chen)
cephfs: mds: 在重命名后检查目录拆分 (issue#39199, issue#38994, pr#27736, Shen Hang)
cephfs: mds: 从不存在的会话中删除重新连接消息 (issue#39026, issue#39192, pr#27714, Shen Hang)
cephfs: mds: 快照名称包含 '_' 失败 (issue#39473, pr#27849, "Yan, Zheng')
cephfs: mds: 修复 Server::apply_blacklist() 中的“is session in blacklist”检查 (issue#40236, issue#40061, pr#28618, "Yan, Zheng')
cephfs: mds: 修复重放开放会话的边缘情况 (pr#28580, "Yan, Zheng")
cephfs: mds: 具有许多子树的高调试日志记录很慢 (issue#38876, pr#27892, Rishabh Dave)
cephfs: mds: 使用 conf 初始化 cap_revoke_eviction_timeout (issue#39209, issue#38844, pr#27842, simon gao)
cephfs: mds: 在格式转储中输出锁状态 (issue#39645, issue#39670, pr#28233, Zhi Zhang)
cephfs: mds: 在恢复期间长时间循环时重置心跳 (issue#40223, pr#28611, "Yan, Zheng")
cephfs: mds: 调用 Beacon::shutdown() 时出现断言 (issue#39214, issue#38822, pr#27852, huanwen ren)
cephfs: mount: 重新挂载时密钥解析失败 (issue#40164, pr#28610, Luis Henriques)
cephfs: pybind: 添加 lseek() (pr#28333, Xiaowei Chu)
common/assert: 在日志输出中包含 ceph_abort_msg(arg) arg (pr#27824, Sage Weil)
common/options: 注释一些选项;启用一些运行时更新 (pr#27818, Sage Weil)
common/options: 更新 mon_crush_min_required_version=hammer (pr#27625, Sage Weil)
common/util: 处理 /proc/cpuinfo 中的长行 (issue#38296, issue#39476, pr#28141, Sage Weil)
common: Clang 需要默认构造函数,但它可以为空 (issue#39561, issue#39573, pr#28131, Willem Jan Withagen)
common: 修复 parse_env 空指针解引用 (pr#28382, Patrick Donnelly)
common: 使 cluster_network 工作 (issue#39671, pr#28248, Jianpeng Ma)
common: 解析 ISO 8601 日期时间格式 (issue#40087, pr#28325, Sage Weil)
core: 提高非活动 PG 的恢复优先级 (issue#39504, issue#38195, pr#27854, David Zafman)
core: mon,osd: 在 CRUSH 节点上添加 no{out,down,in,out} 标志 (pr#27623, xie xingguo, Sage Weil)
core: mon/Elector: 正确格式化 mon_release (issue#39419, pr#27771, Sage Weil)
core: mon/Monitor: 允许在 MMonProbe::mon_release == 0 时进行探测 (issue#38850, pr#28262, Sage Weil)
core: mon: 修复进度条渲染时差一错误 (pr#28398, Sage Weil)
core: mon: 仅当所有 OSD 都在报告时才使用每个存储池统计信息 (pr#29032, Sage Weil)
core: 监控:提供一套基本的 Prometheus 警报管理器规则,通知用户常见的 Ceph 错误情况 (issue#39540, pr#27998, Jan Fajerski)
core: 监控:更新 Grafana 仪表板 (issue#39652, issue#40006, issue#39971, issue#39932, pr#28101, Kiefer Chang, Jan Fajerski)
core: osd/OSD.cc: 使 osd bench 描述与参数一致 (issue#39006, issue#39375, pr#28035, Neha Ojha)
core: osd/OSDMap: 将 get_out_osds 替换为 get_out_existing_osds (issue#39421, issue#39154, pr#28072, Brad Hubbard)
core: osd/PG: 当 OSD 对等体且 PG 降级时发现丢失的对象 (pr#27744, Jonas Jelten)
core: osd/PG: 在 nautilus 之前不使用 approx_missing_objects (issue#39512, pr#28160, Neha Ojha)
core: osd/PG: 修复 splitting 时的 last_complete 重新计算 (issue#39539, issue#26958, pr#28219, xie xingguo)
core: osd/PG: 在 append_log() 期间如果 !transaction_applied 则跳过 rollforward (issue#36739, issue#38881, pr#27654, Neha Ojha)
core: osd/PGLog: 保留 original_crt 以检查回滚性 (issue#36739, issue#39043, pr#27632, Neha Ojha)
core: osd: scrub 范围相交时,在刷新后不驱逐 (issue#38840, issue#39519, pr#28205, David Zafman')
core: osd: 不要在 snaptrim 相关断言中包含用户可更改的标志 (issue#39699, issue#38124, pr#28203, David Zafman')
core: osd: PrimaryLogPG::get_object_context() 中 FAILED ceph_assert(attrs || !pg_log.get_missing().is_missing(soid) || (it_objects != pg_log.get_log().objects.end() && it_objects->second->op == pg_log_entry_t::LOST_REVERT)) (issue#38931, issue#39219, issue#38784, pr#27839, xie xingguo)
core: osd: 在 copy_after() 和 copy_up_to() 中包含 dups (issue#39304, pr#28088, David Zafman)
core: osd: 提高不必要地填充日志的消息的日志级别 (pr#27687, David Zafman)
core: osd: 如果存在二进制数据,则输出 CRC 头部的 Base64 编码 (issue#39738, pr#28504, David Zafman)
core: osd: 主节点在拉取错误时不会自动修复副本 (issue#39101, issue#39184, pr#27711, xie xingguo, David Zafman')
core: osd: 改进 {noup,nodown,noin,noout} 相关命令 (pr#28400, xie xingguo)
core: osd: 更早关闭 recovery_request_timer (issue#39205, pr#27803, Zengran Zhang)
core: osd: 调用 heartbeat() 时获取 heartbeat_lock (issue#39514, issue#39439, pr#28164, Sage Weil)
doc: 添加 LAZYIO (issue#39051, issue#38729, pr#27899, "Yan, Zheng")
doc: 添加 "fs set min_compat_client" 文档 (issue#39130, issue#39176, pr#27900, Patrick Donnelly)
doc: 清理 HTTP 前端文档 (issue#38874, pr#27922, Casey Bodley)
doc: 仪表板文档更改 (pr#27642, Tatjana Dehler, Lenz Grimmer)
doc: orchestrator_cli: Rook orch 支持 mon 更新 (issue#39169, issue#39137, pr#27488, Sebastian Wagner)
doc: osd_internals/async_recovery: 更新成本计算 (pr#28046, Neha Ojha)
doc: rados/operations/devices: 文档设备预测 (pr#27752, Sage Weil)
mgr/ActivePyModules: handle_command - 修复损坏的锁 (issue#39235, issue#39308, pr#27939, xie xingguo)
mgr/BaseMgrModule: 在 finisher 上运行 MonCommandCompletion (issue#39397, issue#39335, pr#27699, Sage Weil)
mgr/ansible: Host ls 实现 (issue#39559, pr#27919, Juan Miguel Olmo Martxc3xadnez)
mgr/balancer: 各种兼容性权重集修复 (pr#28279, xie xingguo)
mgr/dashboard: 添加自定义对话框以配置 PG scrub 参数 (issue#40059, pr#28555, Tatjana Dehler)
mgr/dashboard: 未遵守 Admin 资源 (issue#39338, issue#39467, pr#27868, Wido den Hollander)
mgr/dashboard: Angular 正在创建同一服务的多个实例 (issue#39996, issue#40075, pr#28312, Tiago Melo)
mgr/dashboard: 避免 messages.xlf 中的合并冲突,在构建时自动生成它? (issue#39658, pr#28178, Sebastian Krah)
mgr/dashboard: 显示正确的对话框标题 (pr#28189, Volker Theile)
mgr/dashboard: 未经 squash 创建 NFS 客户端失败 (issue#40074, pr#28311, Tiago Melo)
mgr/dashboard: KV 表通过管道转换日期 (issue#39558, pr#28021, Stephan Mxc3xbcller)
mgr/dashboard: 日期选择器模块的本地化 (issue#39371, pr#27673, Stephan Mxc3xbcller)
mgr/dashboard: Manager 应该抱怨错误的仪表板证书 (issue#39346, pr#27742, Volker Theile)
mgr/dashboard: NFS 客户端信息未显示在详细信息视图中 (issue#40057, pr#28318, Tiago Melo)
mgr/dashboard: NFS 导出创建:为 Pseudo 字段的验证消息添加更多信息 (issue#39975, issue#39327, pr#28320, Tiago Melo)
mgr/dashboard:Crush map查看器中仅显示一个根节点(issue#39647、issue#40077、pr#28316,Tiago Melo)
mgr/dashboard:启动时推送Grafana仪表盘(pr#28635,Zack Cerza)
mgr/dashboard:默认排队通知(issue#39560、pr#28022,Stephan Mxc3xbcller)
mgr/dashboard:RBD快照名称建议带有本地时间后缀(issue#39534、pr#27890,Stephan Mxc3xbcller)
mgr/dashboard:减少表格渲染次数(issue#39944、issue#40076、pr#28315,Tiago Melo)
mgr/dashboard:某些验证未更新,阻止表单提交(issue#40030、pr#28319,Tiago Melo)
mgr/dashboard:无法查看tcmu-runner性能计数器(issue#39988、pr#28191,Ricardo Marques)
mgr/dashboard:统一仪表盘图表外观(issue#39384、issue#39961、pr#28175,Tiago Melo)
mgr/dashboard:验证是否有客户端属于多个组(issue#39036、issue#39454、pr#27760,Tiago Melo)
mgr/dashboard:代码文档(issue#39345、issue#36243、pr#27746,Ernesto Puerta)
mgr/dashboard:iSCSI GET请求不应被记录(pr#28024,Ricardo Marques)
mgr/dashboard:iSCSI表单不支持IPv6(pr#28026,Ricardo Marques)
mgr/dashboard:iSCSI表单显示警告(issue#39452、issue#39324、pr#27758,Tiago Melo)
mgr/dashboard:iSCSI应允许导出已启用Journaling的RBD镜像(pr#28011,Ricardo Marques)
mgr/dashboard:编辑RBD镜像特性时结果不一致(issue#39993、issue#39933、pr#28218,Kiefer Chang)
mgr/dashboard:最小blob大小的帮助信息不正确(issue#39624、issue#39664、pr#28062,Kiefer Chang)
mgr/dashboard:尝试列出NFS Ganesha守护程序时出现本地变量“cluster_id”未赋值错误(issue#40031、pr#28261,Nur Faizin)
mgr/dashboard:使认证令牌仅适用于UTC时间(issue#39524、issue#39300、pr#27942,Ricardo Dias)
mgr/dashboard:验证HTTPS请求证书时发生openssl异常(issue#39962、issue#39628、pr#28163,Ricardo Dias)
mgr/dashboard:orchestrator mgr模块在iscsi服务请求中断言失败(issue#40037、pr#28552,Sebastian Wagner)
mgr/dashboard:显示降级/错位/未找到的对象(pr#28584,Alfonso Martxc3xadnez)
mgr/orchestrator:删除“(add|test|remove)_stateful_service_rule”(issue#38808、pr#27043,Sebastian Wagner)
mgr/orchestrator:为所有orchestrator添加进度事件(pr#28040,Sebastian Wagner)
mgr/progress:如果pg消失(由于竞争的pg合并)则正常运行(issue#38157、issue#39344、pr#27608,Sage Weil)
mgr/prometheus:替换指标名称中的空格(pr#27886,Alfonso Martxc3xadnez)
mgr/rook:服务列表中的rgw守护程序缺失(issue#39171、issue#39312、pr#27864,Sebastian Wagner)
mgr/rook:修复RGW创建(issue#39158、issue#39313、pr#27863,Sebastian Wagner)
mgr/rook:移除对低于v0.9版本Rook的支持(issue#39356、issue#39278、pr#27862,Sebastian Wagner)
mgr/test_orchestrator:AttributeError: 'TestWriteCompletion'对象没有属性'id'(issue#39536、pr#27920,Sebastian Wagner)
mgr/volumes:FS子卷增强功能(issue#40429、pr#28767,Ramana Raja)
mgr/volumes:添加CephFS子卷库(issue#39750、issue#40152、issue#39949、issue#40014、issue#39610、pr#28429,Sage Weil, Venky Shankar, Ramana Raja, Rishabh Dave)
mgr/volumes:重构卷模块(issue#40378、issue#39969、pr#28595,Venky Shankar)
mgr:更新Nautilus中的restful模块(pr#28291,Kefu Chai, Boris Ranto)
mgr:死锁(issue#39040、issue#39425、pr#28098,xie xingguo)
mgr:修复pgp_num调整(issue#38626、pr#27876,Sage Weil, Marius Schiffer)
mgr:如果找不到要加载的模块,则记录错误(issue#40090、pr#28347,Tim Serong)
monitoring:pybind/mgr:修复rbd-mirror prometheus指标的格式(pr#28485,Mykola Golub)
msg/async:连接竞争 + 胜者故障可能导致连接永远停留在替换状态(issue#39241、issue#37499、issue#39448、issue#38493、pr#27915,Jason Dillaman, xie xingguo)
msg/async/ProtocolV[12]:添加ms_learn_addr_from_peer(pr#28589,Sage Weil)
msg:检测到错误CRC时输出对等地址(issue#39367、pr#27857,Greg Farnum)
pybind:将'RBD_FEATURE_MIGRATING'添加到rbd.pyx(issue#39609、issue#39736、pr#28482,Ricardo Marques)
pybind:Rados.get_fsid()在python3中返回字节(issue#40192、issue#38381、pr#28476,Jason Dillaman)
rbd:krbd:修复rbd map挂起问题,由于udev返回子系统无序(issue#39089、issue#39315、pr#28019,Zhi Zhang)
rbd:librbd:异步打开/关闭应在发出回调前释放ImageCtx(issue#39428、issue#39031、pr#28121,Jason Dillaman)
rbd:librbd:在深度复制期间避免解引用空容器(issue#40368、issue#40379、pr#28577,Jason Dillaman)
rbd:librbd:不允许深度复制正在迁移的镜像(issue#39224、pr#27882,Mykola Golub)
rbd:librbd:修复对象映射/快速差异特性互锁问题(issue#39946、issue#39521、pr#28127,Jason Dillaman)
rbd:librbd:修复与copyup相关的几个竞争条件(issue#39195、issue#39021、pr#28132,Jason Dillaman)
rbd:librbd:使刷新由QOS限流器排队(issue#38869、pr#28120,Mykola Golub)
rbd:librbd:重新添加对Nautilus客户端与Jewel集群通信的支持(issue#39450、pr#27936,Jason Dillaman)
rbd:librbd:支持EC数据池镜像稀疏化(issue#39226、pr#27903,Mykola Golub)
rbd:rbd-mirror:在列出镜像之前清空bufferlist(issue#39462、issue#39407、pr#28122,Jason Dillaman)
rbd:rbd-mirror:镜像回放器应定期刷新IO并提交位置(issue#39257、issue#39288、pr#27937,Jason Dillaman)
rgw:在读取权限时也评估存储桶策略(issue#38638、issue#39273、pr#27918,Pritha Srivastava)
rgw:admin:处理对象统计输出中的delete_at属性(pr#27827,Abhishek Lekshmanan)
rgw:beast:具有相同端口的多个v4和v6端点将导致失败(issue#39746、issue#39038、pr#28541,Abhishek Lekshmanan)
rgw:beast:为端点设置默认端口(issue#39048、issue#39000、pr#27660,Abhishek Lekshmanan)
rgw:存储桶统计以UTC报告mtime(pr#27826,Alfonso Martxc3xadnez, Casey Bodley)
rgw:清理一些日志(issue#39503、pr#27953,J. Eric Ivancich)
rgw:云同步模块无法同步分段对象(issue#39684、pr#28064,Abhishek Lekshmanan)
rgw:云同步模块在日志中记录属性(issue#39574、pr#27954,Nathan Cutler)
rgw:crypto:从Digest和HMAC抛出DigestException(issue#39676、issue#39456、pr#28309,Matt Benjamin)
rgw:为s3 PUT Bucket请求记录CreateBucketConfiguration(issue#39597、issue#39601、pr#28512,Casey Bodley)
rgw:修复多站点同步损坏(pr#28383,Tianshan Qu, Casey Bodley, Xiaoxi CHEN)
rgw:修复BI_PREFIX_CHAR后存储桶可能冗余列出键的问题(issue#39984、issue#40148、pr#28410,Casey Bodley, Tianshan Qu)
rgw:修复storage_class为标准时default_placement包含“/”的问题(issue#39745、issue#39380、pr#28538,mkogan1)
rgw:效率低下的无序存储桶列表(issue#39410、issue#39393、pr#27924,Casey Bodley)
rgw:librgw:创建存储桶时意外崩溃(issue#39575、pr#27955,Tao CHEN)
rgw:限制remove_olh_pending_entries()中的条目(issue#39178、issue#39118、pr#27664,Casey Bodley)
rgw:使用起始标记和分隔符列出存储桶将错过带有字符“0”的下一个对象(issue#40762、issue#39989、pr#29022,Tianshan Qu)
rgw:多站点日志修剪仅检查从我们同步的对等体(issue#39283、pr#27814,Casey Bodley)
rgw:多站点:为数据同步添加性能计数器(issue#38549、issue#38918、pr#27921,Abhishek Lekshmanan, Casey Bodley)
rgw:多站点:列出存储桶时存储桶创建时间不匹配(issue#39635、issue#39735、pr#28444,Casey Bodley)
rgw:多站点:周期推送器对其他区域组返回403 Forbidden(issue#39287、issue#39414、pr#27952,Casey Bodley)
rgw:resharding和等待resharding的操作之间的竞争条件(issue#39202、pr#27800,J. Eric Ivancich)
rgw:radosgw-admin:为reshard cancel添加租户参数(issue#39018、pr#27630,Abhishek Lekshmanan)
rgw:rgw_file:在setattr中保存etag和acl信息(issue#39228、pr#27904,Tao Chen)
rgw:当存储桶reshards时,swift对象过期失败(issue#39740、pr#28537,Abhishek Lekshmanan)
rgw:unittest_rgw_dmclock_scheduler不需要Boost_LIBRARIES(issue#39577、pr#27944,Willem Jan Withagen)
rgw:更新resharding文档(issue#39046、pr#27923,J. Eric Ivancich)
tests:添加了 bluestore_warn_on_legacy_statfs: false 设置(issue#40467、pr#28723,Yuri Weinstein)
tests:将ragweed覆盖添加到stress-split\*升级套件(issue#40452、issue#40467、pr#28661,Yuri Weinstein)
tests:添加了v14.2.1(issue#40181、pr#28416,Yuri Weinstein)
tests:无法调度kcephfs/multimds(issue#40116、pr#28369,Patrick Donnelly)
tests:centos 7.6等(pr#27439,Sage Weil)
tests:ceph-ansible:ceph-ansible需要ansible 2.8(issue#40602、issue#40669、pr#28871,Brad Hubbard)
tests:ceph-ansible:cephfs_pools变量pgs应为pg_num(issue#40670、issue#40605、pr#28872,Brad Hubbard)
tests:cephfs-shell:teuthology测试(issue#39935、issue#39526、pr#28614,Milind Changire)
tests:cephfs:TestMisc.test_evict_client失败(issue#40220、pr#28613,“Yan, Zheng”)
tests:清理了Nautilus支持的发行版(pr#28065,Yuri Weinstein)
tests:忽略旧版bluestore统计错误(issue#40374、pr#28563,Patrick Donnelly)
tests:librbd:删除“ceph_test_librbd_api”目标(issue#39423、issue#39072、pr#28091,Jason Dillaman)
tests:mgr:运行make check时tox失败(issue#39323、issue#39530、pr#27884,Nathan Cutler)
tests:将--ssh-config传递给pytest以在连接时解析主机(pr#28923,Alfredo Deza)
tests:rbd:qemu-iotests在最新的Ubuntu内核下测试失败(issue#39541、issue#24668、pr#27988,Jason Dillaman)
tests:删除了 1node 和 systemd 测试,因为ceph-deploy不兼容(pr#28458,Yuri Weinstein)
tests:rgw:修复test_rgw_reshard_wait中的竞争条件,并且test_rgw_reshard_wait使用相同的时钟进行计时(issue#39479、pr#27779,Casey Bodley)
tests:rgw:修复swift警告消息(issue#40304、pr#28698,Casey Bodley)
tests:rgw:swift任务的更多修复(issue#40304、pr#28922,Casey Bodley)
tests:rgw:在rhel 7.6+上跳过swift测试(issue#40402、issue#40304、pr#28604,Casey Bodley)
tests:停止在fs qa中测试简单消息器(issue#40373、pr#28562,Patrick Donnelly)
tests:tasks/rbd_fio:修复了'cd'和'configure'之间缺少分隔符的问题(issue#39590、pr#27989,Jason Dillaman)
tests:test_sessionmap假设使用简单消息器(issue#39430、pr#27772,Patrick Donnelly)
tests:在util/rgw.py中使用curl等待wait_for_radosgw()(issue#40346、pr#28598,Ali Maredia)
tests:workunits/rbd:对devstack git操作使用https协议(issue#39656、issue#39729、pr#28128,Jason Dillaman)
tests:workunits/rbd:等待rbd-nbd解除映射完成(issue#39675、issue#39598、pr#28273,Jason Dillaman)
v14.2.1 Nautilus
这是Ceph Nautilus系列发布中的第一个bug修复版本。我们建议所有Nautilus用户升级到此版本。从旧版本Ceph升级时,必须遵循升级到Nautilus的一般准则 从Mimic或Luminous升级。
显著变化
Ceph现在打包了python3.6而不是python3.4的python绑定,因为EPEL7最近将python3从python3.4切换到python3.6作为原生的python3。有关此更改背景的更多详细信息,请参阅公告。
已知问题
基于Nautilus的librbd客户端无法打开存储在Luminous之前集群上的镜像
更新日志
bluestore:ceph-bluestore-tool:如果未配置WAL,bluefs-bdev-expand命令可能会断言(issue#39253、pr#27523,Igor Fedotov)
bluestore:os/bluestore:修复位图分配器问题(pr#27139,Igor Fedotov)
build/ops,rgw:rgw:仅在beast构建时才构建异步调度器(pr#27191,Abhishek Lekshmanan)
build/ops:build/ops:SUSE Linux Enterprise不支持在Pacemaker控制下运行ceph(issue#38862、pr#27127,Nathan Cutler)
build/ops:build/ops:ceph-mgr-diskprediction-local在SUSE上需要numpy和scipy,但这些包在SUSE上不存在(issue#38863、pr#27125,Nathan Cutler)
build/ops:cmake/FindRocksDB:修复ROCKSDB_LIBRARIES的IMPORTED_LOCATION(issue#38993、pr#27601,dudengke)
build/ops:cmake:将librados_tp.so版本从3恢复到2(issue#39291、issue#39293、pr#27597,Nathan Cutler)
build/ops:qa,rpm,cmake:切换到python3.6(issue#39236、issue#39164、pr#27505,Boris Ranto, Kefu Chai)
cephfs:fs:我们缺少Nautilus的特性位(issue#39078、issue#39187、pr#27497,Patrick Donnelly)
cephfs:ls -S命令产生AttributeError: 'str'对象没有属性'decode'(pr#27531,Varsha Rao)
cephfs:mds|kclient:MDS_CLIENT_LATE_RELEASE警告,由RHEL 7.5上的内联错误引起(issue#39225、pr#27500,“Yan, Zheng”)
common,core:crush:对权重集、osd_crush_update_weight_set选项和测试的各种修复(pr#27119,Sage Weil)
common/blkdev:get_device_id:如果模型是lvm且不存在id_model_enc,则正常运行(pr#27158,Sage Weil)
common/config:将--default-$option解析为默认值(pr#27217,Sage Weil)
core,mgr:mgr:自动缩减可能导致max_pg_per_osd限制(issue#39271、issue#38786、pr#27547,Sage Weil)
core,mon:mon/Monitor.cc:正确打印min_mon_release(pr#27168,Neha Ojha)
core,tests:tests:osd-markdown.sh可能因CLI_DUP_COMMAND=1而失败(issue#38359、issue#39275、pr#27550,Sage Weil)
core:自动修复的改进(issue#38616、pr#27220,xie xingguo, David Zafman)
core:Rook:修复Bluestore OSD的创建(issue#39167、issue#39062、pr#27486,Sebastian Wagner)
core:ceph-objectstore-tool:将dump-import重命名为dump-export(issue#39325、issue#39284、pr#27610,David Zafman)
core:common/blkdev:处理ID_MODEL为“LVM PV ...”但ID_MODEL_ENC有效的设备(pr#27096,Sage Weil)
core:common:修复延迟日志启动(pr#27388,Sage Weil, Jason Dillaman)
core:crush/CrushCompiler:修复__replacement_assert(issue#39174、pr#27620,Brad Hubbard)
core:global:在崩溃转储中明确指出EIO事件(pr#27440,Sage Weil)
core:log:log_to_file + --default-* + 修复和改进(pr#27278,Sage Weil)
core:mon/MgrStatMonitor:确保初始服务映射只有一个副本(issue#38839、pr#27116,Sage Weil)
core:mon/OSDMonitor:允许'osd pool set pgp_num_actual'(pr#27060,Sage Weil)
core:mon:使mon_osd_down_out_subtree_limit在运行时更新(pr#27582,Sage Weil)
core:mon:mon和mds的ok-to-stop命令(pr#27347,Sage Weil)
core:mon:静默devname日志噪音(pr#27314,Sage Weil)
core:osd/OSDMap:将'zone'添加到默认crush map(pr#27117,Sage Weil)
core:osd/PGLog.h:在决定回滚之前打印olog_can_rollback_to(issue#38906、issue#38894、pr#27302,Neha Ojha)
core:osd/osd_types:修复object_stat_sum_t快速路径解码(issue#39320、issue#39281、pr#27555,David Zafman)
core:osd:回溯最近的upmap修复(issue#38860、issue#38967、issue#38897、issue#38826、pr#27225,huangjun, xie xingguo)
core:osd:process_copy_chunk在pg解锁前移除obc ref(issue#38842、issue#38973、pr#27478,Zengran Zhang)
dashboard:NFS:在导出创建中禁用NFSv3失败(issue#39104、issue#38997、pr#27368,Tiago Melo)
doc/releases/nautilus:修复配置更新步骤(pr#27502,Sage Weil)
doc:doc/orchestrator:修复损坏的无序列表项(issue#39168、pr#27487,Sebastian Wagner)
doc:doc:次要rados相关文档修复(issue#38896、issue#38903、pr#27189,David Zafman)
doc:doc:rgw:添加了Golang的库/包(issue#38730、issue#38867、pr#27549,Irek Fasikhov)
install-deps.sh:安装'*rpm-macros'(issue#39164、pr#27544,Kefu Chai)
mgr/dashboard添加波兰语(issue#39052、pr#27287,Sebastian Krah)
mgr/dashboard/qa:改进tasks.mgr.test_dashboard.TestDashboard.test_standby(pr#27237,Volker Theile)
mgr/dashboard:crush map中存在1个osd但osdmap中不存在导致OSD页面崩溃(issue#38885、issue#36086、pr#27543,Patrick Nawracay)
mgr/dashboard:调整iSCSI概述页面以使用ceph-iscsi(pr#27541,Ricardo Marques)
mgr/dashboard:添加日期范围和日志搜索功能(issue#37387、issue#38878、pr#27283,guodan1)
mgr/dashboard:在仪表盘着陆页添加刷新间隔(issue#26872、issue#38988、pr#27267,guodan1)
mgr/dashboard:添加单独的选项以配置SSL端口(issue#39001、pr#27393,Volker Theile)
mgr/dashboard:为NFS菜单添加了面包屑测试(issue#38981、pr#27589,Nathan Weinberg)
mgr/dashboard:返回按钮组件(issue#39058、pr#27405,Stephan Müller)
mgr/dashboard:未选择NFSv4时无法提交NFS导出表单(issue#39105、issue#39063、pr#27370,Tiago Melo)
mgr/dashboard:在没有UDP的情况下创建NFS导出时出错(issue#39107、issue#39090、pr#27372,Tiago Melo)
mgr/dashboard:iSCSI磁盘差异错误(pr#27460,Ricardo Marques)
mgr/dashboard:根据所需特性过滤iSCSI目标镜像(issue#39002、pr#27363,Ricardo Marques)
mgr/dashboard:修复 run-tox.sh 的环境变量(issue#38798、issue#38864、pr#27361,Patrick Nawracay)
mgr/dashboard:修复工具提示行为(pr#27395,Stephan Müller)
mgr/dashboard:FixtureHelper(issue#39041、pr#27398,Stephan Müller)
mgr/dashboard:NFS Squash字段应为必填项(issue#39106、issue#39064、pr#27371,Tiago Melo)
mgr/dashboard:PreventDefault在400错误上不起作用(pr#27389,Stephan Müller)
mgr/dashboard:NFS表单中“CephFS名称”字段的拼写错误(issue#39067、pr#27449,Tiago Melo)
mgr/dashboard:仪表盘返回401未经授权错误(issue#38871、pr#27219,ming416)
mgr/dashboard:修复sparkline组件(issue#38866、pr#27260,Alfonso Martínez)
mgr/dashboard:只读用户无法查看任何页面(issue#39240、pr#27611,Stephan Müller)
mgr/dashboard:统一按钮/URL操作命名 + bug修复(为防护添加白名单)(issue#37337、issue#39003、pr#27492,Ernesto Puerta)
mgr/dashboard:更新vstart以使用新的ssl_server_port(issue#39124、pr#27394,Ernesto Puerta)
mgr/deepsea:在get_inventory()中使用ceph_volume输出(issue#39083、pr#27319,Tim Serong)
mgr/diskprediction_cloud:纠正base64编码转换表(pr#27167,Rick Chen)
mgr/orchestrator:向接口添加错误处理(issue#38837、pr#27095,Sebastian Wagner)
mgr/pg_autoscaler:添加pg_autoscale_bias(pr#27387,Sage Weil)
mgr:mgr/dashboard:iSCSI目标提交错误(pr#27461,Ricardo Marques)
mgr:ceph-mgr:ImportError: 检测到解释器更改 - 此模块只能加载到一个进程中的一个解释器中(issue#38865、pr#27128,Tim Serong)
mgr:mgr/DaemonServer:handle_conf_change - 修复损坏的锁定(issue#38964、issue#38899、pr#27454,xie xingguo)
mgr:mgr/balancer:Python 3兼容性修复(issue#38831、issue#38855、pr#27227,Marius Schiffer)
mgr:mgr/dashboard:在允许通过 iscsi-gateway-rm 命令删除之前检查网关是否正在使用(pr#27457,Ricardo Marques)
mgr:mgr/dashboard:显示每个iSCSI目标的活动会话数(pr#27450,Ricardo Marques)
mgr:mgr/devicehealth:修复Python 3不兼容问题(issue#38957、issue#38939、pr#27390,Marius Schiffer)
mgr:mgr/telemetry:向已发送报告添加report_timestamp(pr#27701,Dan Mick)
mgr:mgr/telemetry:使用列表;删减主机;默认间隔24小时(pr#27709,Sage Weil, Dan Mick)
mgr:mgr:为Mgr模块配置Py根记录器(issue#38969、pr#27261,Volker Theile)
mgr:mgr:Diskprediction无法将数据传输到云服务器(issue#38970、pr#27240,Rick Chen)
mon/MonClient:不要解引用auth_supported.end()(pr#27215,Kefu Chai)
mon/MonmapMonitor:清理monmap中空的创建时间戳(issue#39085、pr#27399,Sage Weil)
mon:mon:添加集群日志到文件选项(pr#27346,Sage Weil)
msg/async v2:使v2在rdma上工作(pr#27216,Jianpeng Ma)
msg:默认debug_ms=0(pr#27197,Sage Weil)
osd:多线程访问OSDMapRef不安全(pr#27402,Zengran Zhang, Kefu Chai)
qa/valgrind(pr#27320,Radoslaw Zarzynski)
rbd,tests:将krbd discard qa修复程序回溯到nautilus(issue#38861、pr#27258,Ilya Dryomov)
rbd,tests:将krbd discard qa修复程序回溯到稳定分支(issue#38956、pr#27239,Ilya Dryomov)
rbd:librbd:在检索镜像组会员资格时忽略-EOPNOTSUPP错误(issue#38834、pr#27080,Jason Dillaman)
rbd:librbd:在默认命名空间中查找池元数据(issue#38961、pr#27423,Mykola Golub)
rbd:librbd:垃圾移动返回EBUSY而不是EINVAL,用于迁移镜像(issue#38968、pr#27475,Mykola Golub)
rbd:rbd:krbd:在轮询中返回-ETIMEDOUT(issue#38792、issue#38977、pr#27539,Dongsheng Yang)
rgw:将tcp_nodelay选项添加到Beast(issue#38926、pr#27355,Or Friedmann)
rgw:修复未找到CORS时的S3兼容性bug(issue#38923、issue#37945、pr#27331,Nick Janus)
rgw:LC:处理reshard的存储桶(pr#27559,Abhishek Lekshmanan)
rgw:使rgw admin ops api获取用户信息与命令行保持一致(issue#39135、pr#27501,Li Shuhao)
rgw:在缺少/etc/mime.types时不要崩溃(issue#38921、issue#38328、pr#27329,Casey Bodley)
rgw:不要为slo/dlo重新计算etag(pr#27561,Casey Bodley)
rgw:修复RGWDeleteMultiObj::verify_permission()(issue#38980、pr#27586,Irek Fasikhov)
rgw:修复读取不存在的空版本返回错误的问题(issue#38811、issue#38909、pr#27306,Tianshan Qu)
rgw:ldap:修复LDAPAuthEngine::init中uri不为空时的早期返回问题(issue#38754、pr#26972,Matt Benjamin)
rgw:多站点:数据同步在达到末尾后循环回到数据日志的开头(issue#39075、issue#39033、pr#27498,Casey Bodley)
rgw:nfs:跳过空的(非POSIX)路径段(issue#38744、issue#38773、pr#27208,Matt Benjamin)
rgw:nfs:svc-enable RGWLib(issue#38774、pr#27232,Matt Benjamin)
rgw:孤儿查找性能改进(issue#39181、pr#27560,Abhishek Lekshmanan)
rgw:rgw admin:在多站点中禁用陈旧实例删除(issue#39015、pr#27602,Abhishek Lekshmanan)
rgw:sse c修复(issue#38700、pr#27296,Adam Kupczyk, Casey Bodley, Abhishek Lekshmanan)
rgw:支持超过一个符号的分隔符(issue#38777、pr#27548,Matt Benjamin)
rook-ceph-system命名空间硬编码在rook orchestrator中(issue#38799、issue#39250、pr#27496,Sebastian Wagner)
rpm,cmake:如果指定了任何python3版本,则使用该版本(pr#27382,Kefu Chai)
v14.2.0 Nautilus
这是Ceph Nautilus的第一个稳定版本。
与Mimic的主要变化
仪表盘:
Ceph仪表盘增加了许多新功能
支持多个用户/角色
SSO (SAMLv2) 用于用户认证
审计支持
新的着陆页,显示更多指标和健康信息
国际化支持
带有Swagger API的REST API文档
新的Ceph管理功能包括
OSD管理(标记为down/out,更改OSD设置,恢复配置文件)
集群配置设置编辑器
Ceph Pool管理(创建/修改/删除)
ECP管理
RBD镜像配置
嵌入式Grafana仪表盘(源自Ceph指标)
CRUSH map查看器
NFS Ganesha管理
iSCSI目标管理(通过Ceph iSCSI网关)
RBD QoS配置
Ceph Manager (ceph-mgr) 模块管理
Prometheus警报管理
此外,Ceph Dashboard现在拆分为自己的包,名为
ceph-mgr-dashboard。如果您的包管理软件在安装ceph-mgr时未能这样做,您可能需要单独安装它。RADOS:
现在,每个池的放置组 (PG) 数量可以随时减少,集群可以根据集群利用率或管理员提示自动调整PG计数。
新的v2线协议带来了线路上加密的支持。
OSD和Monitor守护程序使用的物理存储设备现在由集群跟踪,并附带健康指标(即SMART),集群可以应用预训练的预测模型或基于云的预测服务来警告预期的HDD或SSD故障。
OSD守护程序的NUMA节点可以通过
ceph osd numa-status命令轻松监控,并通过osd_numa_node配置选项进行配置。当使用BlueStore OSD时,空间利用率现在按对象数据、omap数据和内部元数据、按池以及按压缩前和压缩后大小进行细分。
OSD在执行恢复和回填时更有效地优先处理最重要的PG和对象。
长时间运行的后台进程(如设备故障后的恢复)的进度现在作为
ceph status的一部分进行报告。已添加一个实验性的耦合层“Clay”擦除码插件,可减少大多数恢复操作所需的网络带宽和IO。
RGW:
S3生命周期转换为存储类之间的分层。
新的web前端(Beast)取代了civetweb作为默认,提高了整体性能。
新的发布/订阅基础设施允许RGW将事件馈送到无服务器框架(如knative)或数据管道(如Kafka)。
一系列认证功能,包括使用OAuth2和OpenID::connect的STS联邦以及OPA(Open Policy Agent)认证委托原型。
新的归档区域联邦功能允许在单独的区域中完全保留所有对象(包括历史记录)。
CephFS:
MDS的稳定性在大型缓存和长时间运行的、具有大量RAM的客户端方面得到了极大改善。缓存修剪和客户端能力回收现在受到限制,以防止MDS过载。
CephFS现在可以通过Rook管理的环境中的NFS-Ganesha集群导出。Ceph管理集群并确保高可用性和可扩展性。提供了一个入门演示。预计Nautilus的未来小版本将推出更多此功能的自动化。
MDS
mds_standby_for_*、mon_force_standby_active和mds_standby_replay配置选项已过时。相反,操作员现在可以设置CephFS文件系统上的新allow_standby_replay标志。此设置导致备用服务器成为文件系统中任何可用等级的备用重放。MDS现在支持丢弃其缓存,同时要求客户端修剪其缓存。这是通过MDS管理套接字
cache drop命令完成的。现在可以检查MDS中正在进行的擦洗的进度。此外,擦洗可以暂停或中止。有关更多信息,请参阅擦洗文档。
通过
ceph volume命令行界面提供了一个新的卷创建接口。一个新的cephfs-shell工具可用于在不挂载的情况下操作CephFS文件系统。
ceph status中与CephFS相关的输出已重新格式化,以提高简洁性、清晰度和实用性。Lazy IO已重新设计。客户端可以使用新的
ceph_openC/C++ API 的CEPH_O_LAZY 标志或通过配置选项client_force_lazyio启用它。CephFS文件系统现在可以通过
ceph fs fail命令快速关闭。有关更多信息,请参阅管理页面。
RBD:
可以实时迁移镜像,停机时间最短,以帮助在池之间或新布局之间移动镜像。
新的
rbd perf image iotop和rbd perf image iostat命令为所有RBD镜像提供了一个类似于iotop和iostat的IO监视器。ceph-mgr Prometheus导出器现在可选择包含所有RBD镜像的IO监视器。
支持池内用于租户隔离的独立镜像命名空间。
其他:
Ceph有一套新的orchestrator模块,可以直接与ceph-ansible、DeepSea、Rook或简单地通过ssh等外部orchestrator进行交互,通过一致的CLI(并最终通过Dashboard)界面。
从Mimic或Luminous升级
注意事项
从Luminous升级到Nautilus期间,在Monitor升级到Nautilus之后,将无法使用Luminous ceph-osd守护程序创建新的OSD。我们建议您在升级进行期间避免添加或替换任何OSD。
我们建议您在升级进行期间避免创建任何RADOS池。
您可以使用
ceph versions命令监控每个阶段的升级进度,该命令将告诉您每种类型的守护程序正在运行的 ceph 版本。
说明
如果您的集群最初安装的版本早于Luminous,请确保它在运行Luminous时已完成所有PG的至少一次完整擦洗。否则将导致您的Monitor守护程序在启动时拒绝加入仲裁,使其无法工作。
如果您不确定您的Luminous集群是否已完成所有PG的完整擦洗,您可以通过运行以下命令检查集群的状态
# ceph osd dump | grep ^flags为了能够继续升级到Nautilus,您的OSD map必须包含
recovery_deletes和purged_snapdirs标志。如果您的OSD map不包含这两个标志,您可以简单地等待大约24-48小时,在标准集群配置中,这应该足以让所有放置组至少擦洗一次,然后重复上述过程重新检查。
但是,如果您刚刚完成Luminous的升级并希望在短时间内继续升级到Mimic,您可以使用一行shell命令强制所有放置组进行擦洗,例如
# ceph pg dump pgs_brief | cut -d " " -f 1 | xargs -n1 ceph pg scrub您应该考虑到,这种强制擦洗可能会对您的Ceph客户端性能产生负面影响。
确保您的集群稳定且健康(没有 down 或正在恢复的 OSD)。(可选,但推荐。)
在升级期间设置
noout标志。(可选,但推荐。)# ceph osd set noout通过安装新包并重新启动监视器守护程序来升级监视器。例如,在每个监视器主机上,
# systemctl restart ceph-mon.target一旦所有Monitor都已启动,请通过在Monitor map中查找
nautilus字符串来验证Monitor升级是否完成。命令为# ceph mon dump | grep min_mon_release应报告
min_mon_release 14 (nautilus)
如果找不到,则意味着一个或多个监视器尚未升级和重新启动和/或仲裁不包括所有监视器。
通过安装新包并重新启动所有管理器守护程序来升级
ceph-mgr守护程序。例如,在每个管理器主机上,# systemctl restart ceph-mgr.target请注意,如果您正在使用Ceph Dashboard,在升级
ceph-mgr包后,您可能需要单独安装ceph-mgr-dashboard。ceph-mgr-dashboard的安装脚本将自动为您重新启动Manager守护程序。因此,在这种情况下,您可以跳过重新启动守护程序的步骤。通过检查
ceph -s来验证ceph-mgr守护程序是否正在运行# ceph -s ... services: mon: 3 daemons, quorum foo,bar,baz mgr: foo(active), standbys: bar, baz ...
通过安装新包并重新启动所有 OSD 主机上的 ceph-osd 守护程序来升级所有 OSD
# systemctl restart ceph-osd.target您可以使用
ceph versions或ceph osd versions命令监控 OSD 升级进度# ceph osd versions { "ceph version 13.2.5 (...) mimic (stable)": 12, "ceph version 14.2.0 (...) nautilus (stable)": 22, }
如果集群中有任何使用ceph-disk部署的OSD(例如,Mimic发布之前创建的几乎所有OSD),您需要告诉ceph-volume承担启动守护程序的责任。在包含OSD的每个主机上,确保OSD当前正在运行,然后执行以下操作
# ceph-volume simple scan # ceph-volume simple activate --all
我们建议在执行此步骤后重新启动每个OSD主机,以验证OSD是否自动启动。
请注意,ceph-volume不具备ceph-disk相同的热插拔功能,即通过udev事件自动检测新连接的磁盘。如果上述
scan命令运行时OSD未运行,或者基于ceph-disk的OSD移动到新主机,或者主机OSD重新安装,或者/etc/ceph/osd目录丢失,您将需要明确扫描每个ceph-disk OSD的主要数据分区。例如,# ceph-volume simple scan /dev/sdb1输出将包含适当的
ceph-volume simple activate命令以启用OSD。升级所有 CephFS MDS 守护程序。对于每个 CephFS 文件系统:
将排名数减少到 1。(如果您计划稍后恢复,请先记下原始 MDS 守护程序数。)
# ceph status # ceph fs set <fs_name> max_mds 1
通过定期检查状态等待集群停用任何非零排名:
# ceph status在适当的主机上使用以下命令使所有 standby MDS 守护程序离线:
# systemctl stop ceph-mds@<daemon_name>确认只有一个 MDS 在线并且是您的 FS 的排名 0:
# ceph status通过安装新软件包并重新启动守护程序来升级最后剩下的 MDS 守护程序:
# systemctl restart ceph-mds.target重新启动所有已离线的 standby MDS 守护程序:
# systemctl start ceph-mds.target恢复卷的
max_mds原始值:# ceph fs set <fs_name> max_mds <original_max_mds>
通过升级包并重新启动所有主机上的守护程序来升级所有 radosgw 守护程序
# systemctl restart ceph-radosgw.target通过禁止Nautilus之前的OSD并启用所有新的仅Nautilus功能来完成升级
# ceph osd require-osd-release nautilus重要
此步骤是强制性的。如果未能执行此步骤,OSD将在启用msgrv2后无法通信。
如果您在开始时设置了
noout,请务必使用以下命令将其清除:# ceph osd unset noout使用
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 模式。
要启用新的v2网络协议,请发出以下命令
ceph mon enable-msgr2
这将指示所有绑定到旧默认端口 6789 以用于传统 v1 协议的监视器也绑定到新的 3300 v2 协议端口。要查看是否所有监视器都已更新,
ceph mon dump
并验证每个监视器都列出了
v2:和v1:地址。运行Nautilus OSD将不会自动绑定到其v2地址。它们必须重新启动才能实现这一点。
重要
在运行此步骤之前,必须已经运行以下命令
# ceph osd require-osd-release nautilus
如果未运行此命令(此过程中的第10步),OSD将失去通信能力。
对于每个已升级的主机,您应该更新
ceph.conf文件,使其要么不指定Monitor端口(如果您在默认端口上运行Monitor),要么明确引用v2和v1地址和端口。如果只列出v1 IP和端口,仍然可以工作,但每个CLI实例或守护程序在得知Monitor也支持v2协议后需要重新连接,这会稍微减慢速度并阻止完全过渡到v2协议。这也是将
ceph.conf中的任何配置选项完全转换为集群配置数据库的好时机。在每个主机上,您可以使用以下命令将任何选项导入Monitor:ceph config assimilate-conf -i /etc/ceph/ceph.conf
您可以使用以下命令查看集群的配置数据库:
ceph config dump
要为每个主机创建一个最小但足够的
ceph.conf,ceph config generate-minimal-conf > /etc/ceph/ceph.conf.new mv /etc/ceph/ceph.conf.new /etc/ceph/ceph.conf
请务必仅在已升级到Nautilus的主机上使用此新配置,因为它可能包含一个
mon_host值,该值包含新的v2:和v1:IP地址前缀,这些前缀仅由Nautilus理解。有关更多信息,请参阅更新ceph.conf和mon_host。
Consider enabling the telemetry module to send anonymized usage statistics and crash information to the Ceph upstream developers. To see what would be reported (without actually sending any information to anyone),
ceph mgr module enable telemetry ceph telemetry show
如果您对报告的数据感到满意,可以选择自动报告高级集群元数据,使用
ceph telemetry on
For more information about the telemetry module, see the documentation.
从Luminous之前的版本(如Jewel)升级
在尝试升级到Nautilus之前,您*必须*首先升级到Luminous (12.2.z)。此外,您的集群必须在运行Luminous时已完成所有PG的至少一次擦洗,并在OSD map中设置 recovery_deletes 和 purged_snapdirs 标志。
Upgrade compatibility notes
这些更改发生在Mimic和Nautilus版本之间。
ceph pg stat输出的json格式已修改以匹配ceph df输出“raw_bytes”字段重命名为“total_bytes”
“raw_bytes_avail”字段重命名为“total_bytes_avail”
“raw_bytes_avail”字段重命名为“total_bytes_avail”
“raw_bytes_used”字段重命名为“total_bytes_raw_used”
- 添加了“total_bytes_used”字段以表示已使用的空间(累计
all OSDs) allocated purely for data objects kept at block(slow) device
ceph df [detail]输出(GLOBAL 部分)已修改为纯文本格式新的“USED”列显示了纯粹为存储在块(慢速)设备上的数据对象分配的空间(在所有 OSD 上累计)。
- “RAW USED”现在是“USED”空间与为 Ceph 目的在块设备上分配/保留的空间(例如 BlueStore 的 BlueFS 部分)的总和。
块设备,例如 BlueStore 的 BlueFS 部分。
ceph df [detail]输出(GLOBAL 部分)已修改为 JSON 格式“total_used_bytes”列现在显示了纯粹为存储在块(慢速)设备上的数据对象分配的空间(在所有 OSD 上累计)
新的“total_used_raw_bytes”列显示了“USED”空间与为 Ceph 目的在块设备上分配/保留的空间(例如 BlueStore 的 BlueFS 部分)的总和。
ceph df [detail]输出(POOLS 部分)已修改为纯文本格式“BYTES USED”列已重命名为“STORED”。表示用户存储的数据量。
“USED”列现在表示所有 OSD 节点纯粹为数据分配的空间量(以 KB 为单位)。
在非详细模式下不再显示“QUOTA BYTES”和“QUOTA OBJECTS”。
新增列“USED COMPR”——为压缩数据分配的空间量。即压缩数据加上所有分配、复制和纠删码开销。
新增列“UNDER COMPR”——经过压缩(所有副本的总和)并且足够有益以压缩形式存储的数据量。
某些列重新排序
ceph df [detail]输出(POOLS 部分)已修改为 JSON 格式“bytes used”列已重命名为“stored”。表示用户存储的数据量。
- “raw bytes used”列已重命名为“stored_raw”。用户数据总量
所有 OSD(不包括降级)的总和。
新的“bytes_used”列现在表示所有 OSD 节点分配的空间量。
“kb_used”列——与“bytes_used”相同,但以 KB 为单位。
新增列“compress_bytes_used”——为压缩数据分配的空间量。即压缩数据加上所有分配、复制和纠删码开销。
新增列“compress_under_bytes”——经过压缩(所有副本的总和)并且足够有益以压缩形式存储的数据量。
rados df [detail]输出(POOLS 部分)已修改为纯文本格式“USED”列现在显示了纯粹为存储在块(慢速)设备上的数据对象分配的空间量(在所有 OSD 上累计)。
新增列“USED COMPR”——为压缩数据分配的空间量。即压缩数据加上所有分配、复制和纠删码开销。
新增列“UNDER COMPR”——经过压缩(所有副本的总和)并且足够有益以压缩形式存储的数据量。
rados df [detail]输出(POOLS 部分)已修改为 JSON 格式“size_bytes”和“size_kb”列现在显示了纯粹为存储在块设备上的数据对象分配的空间量(在所有 OSD 上累计)。
新增列“compress_bytes_used”——为压缩数据分配的空间量。即压缩数据加上所有分配、复制和纠删码开销。
新增列“compress_under_bytes”——经过压缩(所有副本的总和)并且足够有益以压缩形式存储的数据量。
ceph pg dump输出(totals 部分)已修改为 JSON 格式新的“USED”列显示了纯粹为存储在块(慢速)设备上的数据对象分配的空间(在所有 OSD 上累计)。
“USED_RAW”现在是“USED”空间与为 Ceph 目的在块设备上分配/保留的空间(例如 BlueStore 的 BlueFS 部分)的总和。
ceph osd rm命令已被弃用。用户应使用ceph osd destroy或ceph osd purge(但在通过ceph osd safe-to-destroy命令确认安全后才能这样做)。MDS 现在支持为了基准测试目的而清空其缓存。
ceph tell mds.* cache drop <timeout>
请注意,MDS 缓存是由客户端协同管理的。MDS 要完全清空其缓存,客户端必须放弃功能。这通过要求所有客户端尽可能多地修剪 cap 来实现。
cache drop命令的 timeout 参数控制 MDS 等待客户端完成修剪 cap 的时间。这是可选的,默认为 0(无超时)。请记住,客户端可能仍保留对打开文件的 cap,这将阻止这些文件的元数据被客户端和 MDS 丢弃。(这与丢弃 Linux 页面/缓冲区/inode/dentry 缓存,同时某些进程将某些 inode/dentry/页面固定在缓存中的情况类似。)由于相关功能已超过两个版本,
mon_health_preluminous_compat和mon_health_preluminous_compat_warning配置选项已被删除。任何期望 Jewel 样式健康输出的旧式监控系统都需要更新才能与 Nautilus 配合使用。Nautilus 不支持任何仍运行 upstart 的发行版,因此已删除 upstart 特定的文件和引用。
ceph pg <pgid> list_missing命令已重命名为ceph pg <pgid> list_unfound,以便更好地匹配其行为。rbd-mirror 守护程序现在可以从监视器检索远程对等集群配置密钥。要使用此功能,rbd-mirror 守护程序在本地集群的 CephX 用户必须使用
profile rbd-mirrormon cap。密钥可以使用rbd mirror pool peer add和rbd mirror pool peer set操作设置。“rbd-mirror”守护程序现在默认以主动/主动模式运行,在此模式下,镜像镜像在所有活动“rbd-mirror”守护程序之间均匀分布。要恢复到主动/被动模式,请将“rbd_mirror_image_policy_type”配置键覆盖为“none”。
ceph mds deactivate已完全过时,文档中对其的引用已被删除或澄清。libcephfs 绑定添加了
ceph_select_filesystem函数,用于多个文件系统。cephfs python 绑定现在在 mount() 函数中包含
mount_root和filesystem_name选项。纠删码:增加了对实验性 Coupled LAYer (CLAY) 纠删码的支持。它在执行恢复时具有更少的网络流量和磁盘 I/O。
已添加
cache dropOSD 命令以清除 OSD 的缓存ceph tell osd.x cache drop
已添加
cache statusOSD 命令以获取 OSD 的缓存统计信息ceph tell osd.x cache status
libcephfs 添加了几个函数,允许重启的客户端销毁或回收先前实例持有的状态。这些函数用于 NFS 服务器。
ceph命令行工具现在接受--arg=value或--arg value格式的关键字参数。librados::IoCtx::nobjects_begin()和librados::NObjectIterator现在通过抛出std::system_error异常而不是std::runtime_error来报告错误。传递给
LibRGWFS.readdir()的回调函数现在接受flags参数。它将是传递给readdir()方法的最后一个参数。cephfs-data-scan scan_links现在自动修复 inotables 和 snaptable。配置值
mon_warn_not_scrubbed和mon_warn_not_deep_scrubbed已重命名。它们现在分别是mon_warn_pg_not_scrubbed_ratio和mon_warn_pg_not_deep_scrubbed_ratio。这是为了澄清这些警告与 pg 清理有关,并且是相关间隔的比例。这些选项现在默认启用。MDS 缓存修剪现在受到限制。通过
ceph tell mds.<foo> cache drop命令或大幅减少缓存大小来丢弃 MDS 缓存将不再导致服务不可用。CephFS MDS 在回收 cap 方面的行为已显著改善,避免一次尝试回收过多 cap,从而导致不稳定。具有大缓存(64GB+)的 MDS 应该更稳定。
MDS 现在提供一个配置选项
mds_max_caps_per_client(默认值: 1M) 来限制客户端会话可以持有的 cap 数量。长时间运行且持有大量 cap 的客户端会话在某些会话事件期间需要处理所有这些 cap 时,一直是 MDS 不稳定的根源。建议不要不必要地增加此值。MDS 配置
mds_recall_state_timeout已删除。现在根据 MDS 已回收但尚未释放的 cap 数量生成延迟客户端回收警告。新的配置mds_recall_warning_threshold(默认值: 32K) 和mds_recall_warning_decay_rate(默认值: 60s) 设置此警告的阈值。Manager 的 Telegraf 模块允许通过 TCP、UDP 或 UNIX Socket 将统计数据发送到 Telegraf Agent。Telegraf 随后可以将统计数据发送到 InfluxDB、ElasticSearch、Graphite 等数据库。
graylog 字段中指示日志事件来源的名称已更改:现在包含字符串形式的名称(例如,
"name": "mgr.foo"),而排名形式的名称现在位于嵌套部分中(例如,"rank": {"type": "mgr", "num": 43243})。如果集群日志指向 syslog,则条目现在以字符串形式名称和排名形式名称为前缀(例如,
mgr.x mgr.12345 ...而不是仅仅mgr.12345 ...)。ceph osd find命令的 JSON 输出已将ip字段替换为addrs部分,以反映 OSD 可能绑定到多个地址。没有其认证能力字符串中“s”标志的 CephFS 客户端将无法再创建/删除快照。要允许
client.foo在文件系统cephfs_a的bar目录中创建/删除快照,请使用命令ceph auth caps client.foo mon 'allow r' osd 'allow rw tag cephfs data=cephfs_a' mds 'allow rw, allow rws path=/bar'
osd_heartbeat_addr选项已被删除,因为它没有任何(好的)目的:OSD 应该始终在公共网络和集群网络上检查心跳。rados工具的mkpool和rmpool命令已被删除,因为它们是多余的;请改用ceph osd pool create和ceph osd pool rm命令。cephx 用户和 RADOS 存储池的
auid属性已被删除。这是一个未文档化且部分实现的功能,允许 cephx 用户将功能映射到他们“拥有”的 RADOS 存储池。由于没有用户,我们已删除此支持。如果集群中存在基于 auid 限制的任何 cephx 功能,则它们将不再解析,并且集群将报告健康警告,例如AUTH_BAD_CAPS 1 auth entities have invalid capabilities client.bad osd capability parse failed, stopped at 'allow rwx auid 123' of 'allow rwx auid 123'
该功能可以使用
ceph auth caps命令进行调整。例如,ceph auth caps client.bad osd 'allow rwx pool foo'
ceph-kvstore-toolrepair命令已重命名为destructive-repair,因为我们发现它可能会损坏一个原本健康的 RocksDB 数据库。它应该仅作为从已损坏存储中恢复数据的最后尝试。mon 的默认内存利用率有所增加。Rocksdb 现在默认使用 512 MB 内存,这对于中小型集群来说应该足够;大型集群应将其调高。此外,
mon_osd_cache_size已从 10 个 OSDMap 增加到 500 个,这对于大型集群将转换为额外的 500 MB 到 1 GB 内存,对于小型集群则少得多。mgr/balancer/max_misplaced选项已被一个新的全局target_max_misplaced_ratio选项取代,该选项限制了均衡器活动和对pgp_num的自动调整(通常是由于pg_num更改导致的)。如果您自定义了均衡器模块选项,则需要调整配置以设置新的全局选项或恢复到默认值 0.05 (5%)。默认情况下,当存在错位对象(完全复制但未存储在预期 OSD 上的对象)时,Ceph 不再发出健康警告。您可以通过将
mon_warn_on_misplaced设置为true来重新启用旧警告。ceph-create-keys工具现在已过时。监视器会自动创建这些密钥。目前,该脚本会打印警告消息并退出,但在下一个版本中将被删除。请注意,ceph-create-keys还会将管理员和引导密钥写入 /etc/ceph 和 /var/lib/ceph,但此脚本不再执行此操作。任何依赖此行为的部署工具应改为使用ceph auth export <entity-name>命令来获取所需的密钥。mon_osd_pool_ec_fast_read选项已重命名为osd_pool_default_ec_fast_read,以与其他影响新创建的 RADOS 存储池默认值的osd_pool_default_*选项更加一致。mon addr配置选项现已弃用。它仍可用于在ceph.conf文件中为每个监视器指定一个地址,但它只影响集群创建和引导,并且不支持列出多个地址(例如,v2 和 v1 协议地址)。我们强烈建议删除该选项,并在[global]部分中指定一个mon host选项,以允许守护程序和客户端发现监视器。新增命令
ceph fs fail,可快速关闭文件系统。这是一个单一命令,用于取消设置文件系统上的可连接标志并关闭其所有排名。cache drop管理套接字命令已删除。ceph tell mds.X cache drop仍然存在。
详细更新日志
添加监控子目录和 Grafana 集群仪表板(pr#21850, Jan Fajerski)
auth,common: 包含清理(pr#23774, Kefu Chai)
bluestore: bluestore/NVMEDevice.cc: 修复启用 SPDK 且内核页面大小为 64KB 时 ceph_assert() 错误(issue#36624, pr#24817, tone.zhang)
bluestore: bluestore/NVMEDevice.cc: 修复 NVMEManager 线程挂起(issue#37720, pr#25646, tone.zhang, Steve Capper)
bluestore: bluestore/NVMe: 使用 PCIe 选择器作为路径名(pr#24144, Kefu Chai)
bluestore,cephfs,core,rbd,rgw: buffer,denc: 使用 ptr::const_iterator 进行解码(pr#22015, Kefu Chai, Casey Bodley)
bluestore: ceph-kvstore-tool: dump 修复(pr#25262, Adam Kupczyk)
bluestore: common/blkdev: 检查 stat() 的返回值(pr#26040, Kefu Chai)
bluestore,core: ceph-dencoder: 添加 bluefs 类型(pr#22463, Sage Weil)
bluestore,core,mon,performance: osd,mon: 为 rocksdb 启用 level_compaction_dynamic_level_bytes(issue#24361, pr#22337, Kefu Chai)
bluestore,core: os/bluestore: 不要从 meta 存储/使用 path_block.{db,wal}(pr#22462, Sage Weil, Alfredo Deza)
bluestore: os/bluestore: 添加 bluestore_ignore_data_csum 选项(pr#26233, Sage Weil)
bluestore: os/bluestore: 为缓存自动调整相关设置添加边界检查(issue#37507, pr#25421, xie xingguo)
bluestore: os/bluestore/BlueFS: 只有在执行 _fsync 时才刷新脏设备(pr#22110, Jianpeng Ma)
bluestore: os/bluestore: bluestore_buffer_hit_bytes 性能计数器不重置(pr#23576, Igor Fedotov)
bluestore: os/bluestore: 检查 _open_bluefs 的返回值(pr#25471, Jianpeng Ma)
bluestore: os/bluestore: 清理(pr#22556, Jianpeng Ma)
bluestore: os/bluestore: deep fsck 在检查非常大的 onode 时失败(pr#26170, Igor Fedotov)
bluestore: os/bluestore: 不断言 compress() 调用返回非零错误代码(pr#25891, Igor Fedotov)
bluestore: os/bluestore: 如果 open db 遇到错误,首先删除 db,然后删除 bluefs(pr#22336, Jianpeng Ma)
bluestore: os/bluestore: 修复和统一分配失败时的日志输出(pr#25335, Igor Fedotov)
bluestore: os/bluestore: 修复 StupidAllocator::get_fragmentation 中的断言(pr#23606, Igor Fedotov)
bluestore: os/bluestore: 修复 repairer 中布隆过滤器条目数量的错误计算(issue#25001, pr#24076, Igor Fedotov)
bluestore: os/bluestore: 修复小慢速设备上 bluefs 扩展的错误计算(pr#22563, Igor Fedotov)
bluestore: os/bluestore: 修复 remove_collection 和对象删除之间的竞争条件(pr#23257, Igor Fedotov)
bluestore: os/bluestore: 修复访问销毁的 cond 导致死锁或未定义行为(pr#25659, linbing)
bluestore: os/bluestore: 引入新的 BlueFS 性能计数器以跟踪数量(pr#22086, Igor Fedotov)
bluestore: os/bluestore/KernelDevice: 杂项清理(pr#21491, Jianpeng Ma)
bluestore: os/bluestore/KernelDevice: 使用 flock(2) 进行块设备锁(issue#38150, pr#26245, Sage Weil)
bluestore: os/bluestore: 杂项清理(pr#22472, Jianpeng Ma)
bluestore: os/bluestore: 仅在可用时使用 F_SET_FILE_RW_HINT(pr#26431, Willem Jan Withagen)
bluestore: os/bluestore: 仅在可用时使用
WRITE_LIFE_(pr#25735, Willem Jan Withagen)bluestore: os/bluestore: 删除冗余的 fault_range(pr#22898, Jianpeng Ma)
bluestore: os/bluestore: 删除无用条件(pr#22335, Jianpeng Ma)
bluestore: os/bluestore: 简化并修复 SharedBlob::put()(issue#24211, pr#22123, Sage Weil)
bluestore: os/bluestore: 支持 FreeBSD(pr#25608, Alan Somers, Kefu Chai)
bluestore: osd/osd_types: 修复 pg_t::contains() 以检查 pool id(issue#32731, pr#24085, Sage Weil)
bluestore: os/objectstore: 添加新的 op OP_CREATE(pr#22385, Jianpeng Ma)
bluestore,performance: common/PriorityCache: 基于优先级缓存的第一步(pr#22009, Mark Nelson)
bluestore,performance: os/bluestore: 分配器修剪(pr#21854, Igor Fedotov)
bluestore,performance: os/bluestore/BlueFS: 减少 WAL 写入期间的 bufferlist 重建(pr#21689, Piotr Dałek)
bluestore,performance: os/bluestore: 为性能计数器延迟使用单调时钟(pr#22121, Mohamad Gebai)
bluestore: 消除 Clang 关于可能未初始化使用的警告(pr#25702, Willem Jan Withagen)
bluestore: spdk: 修复激活 SPDK 时 ceph-osd 崩溃(issue#24371, pr#22356, tone-zhang)
bluestore: test/fio: 在 ceph-bluestore.fio 中添加 option single_pool_mode(pr#21929, Jianpeng Ma)
bluestore,tests: test/objectstore: 修复 allocator_bench 中的随机生成器(pr#22544, Igor Fedotov)
bluestore,tools: os/bluestore: 允许 ceph-bluestore-tool 合并、添加和迁移 BlueFS 后备卷(pr#23103, Igor Fedotov)
bluestore,tools: tools/ceph-bluestore-tool: 在调用 global... 时避免 mon/config 访问(pr#22085, Igor Fedotov)
build/ops: 为 install-deps.sh 添加新的 OpenSUSE Leap ID(issue#25064, pr#22793, Kyr Shatskyy)
build/ops: arch/arm: 仅在可编译时才选择 ceph_crc32c_aarch64(pr#24126, David Wang)
build/ops: auth: 如果 ! HAVE_GSSAPI,则不使用 GSS/KRB5(pr#25460, Kefu Chai)
build/ops: build: 32 位架构修复(pr#23485, James Page)
build/ops: build: 进一步删除 subman 配置(issue#38261, pr#26368, Alfredo Deza)
build/ops: build: LLVM ld 不喜欢版本控制方案(pr#26801, Willem Jan Withagen)
build/ops: ceph-create-keys: 杂项 Python 3 修复(issue#37641, pr#25411, James Page)
build/ops,cephfs: deb,rpm: 修复 python-cephfs 依赖项(issue#24919, issue#24918, pr#23043, Kefu Chai)
build/ops: ceph.in: 添加对 python 3 的支持(pr#24739, Tiago Melo)
build/ops: ceph.spec.in: 不对 mgr 模块子包使用 noarch,修复 /usr/lib64/ceph/mgr 目录所有权(pr#26398, Tim Serong)
build/ops: 将 ceph-mgr 包依赖项从 py-bcrypt 更改为 python2-bcrypt(issue#27206, pr#23648, Konstantin Sakhinov)
build/ops: civetweb: 拉取到 ceph-master(pr#26515, Abhishek Lekshmanan)
build/ops: cmake,do_freebsd.sh: 禁用 rdma 功能(pr#22752, Kefu Chai)
build/ops: cmake/modules/BuildDPDK.cmake: 构建所需的 DPDK 库(issue#36341, pr#24487, Brad Hubbard)
build/ops: cmake/modules/BuildRocksDB.cmake: 为 rocksdb 启用压缩(issue#24025, pr#22181, Kefu Chai)
build/ops: cmake,rgw: 使 amqp 支持可选(pr#26555, Kefu Chai)
build/ops: cmake,rpm,deb: 将 mgr 插件安装到 /usr/share/ceph/mgr(pr#26446, Kefu Chai)
build/ops: cmake,seastar: 获取最新的 seastar(pr#25474, Kefu Chai)
build/ops,common: compressor: 修复 Brotli 压缩器的构建(pr#24967, BI SHUN KE)
build/ops,common,core: test: 使 readable.sh 在不运行任何内容时失败(pr#24812, Greg Farnum)
build/ops,core: cmake,common,filestore: 消除 gcc-8 警告/错误(pr#21837, Kefu Chai)
build/ops,core,rbd: include/memory.h: 删除 memory.h(pr#22690, Kefu Chai)
build/ops,core: systemd: 在 30 分钟内只重启 3 次,尽可能快(issue#24368, pr#22349, Greg Farnum)
build/ops,core,tests: objectstore/test/fio: 修复使用 tcmalloc 时的 fio 编译错误(pr#23962, Adam Kupczyk)
build/ops: credits.sh: 忽略 package-lock.json 和 .xlf 文件(pr#24762, Tiago Melo)
build/ops: deb: 删除冗余的 ceph-common 推荐(pr#20133, Nathan Cutler)
build/ops: debian/control: 将 Architecture python 插件更改为“all”(pr#26377, Kefu Chai)
build/ops: debian/control: ceph-fuse 需要 fuse(issue#21057, pr#23675, Thomas Serlin)
build/ops: debian: 纠正 ceph-common 与旧 radosgw 包的关系(pr#24996, Matthew Vernon)
build/ops: debian: 从 cmake 选项中删除 '-DUSE_CRYPTOPP=OFF'(pr#22471, Kefu Chai)
build/ops: debian: librados-dev 应该替换 librados2-dev(pr#25916, Kefu Chai)
build/ops: debian/rules: 修复 ceph-mgr .pyc 文件残留问题(issue#26883, pr#23615, Dan Mick)
build/ops: deb,rpm,do_cmake: 切换到 cmake3(pr#22896, Kefu Chai)
build/ops: dmclock, cmake: 与 ceph/dmclock 同步,dmclock 相关清理(issue#26998, pr#23643, Kefu Chai)
build/ops: dmclock: 更新 dmclock 子模块 sha1 到 ceph/dmclock.git master 的最新版本(pr#23837, Ricardo Dias)
build/ops: do_cmake.sh: 某些发行版 py3 构建选项自动化(pr#25205, Nathan Cutler)
build/ops: do_cmake.sh: SUSE 构建需要 WITH_RADOSGW_AMQP_ENDPOINT=OFF(pr#26695, Nathan Cutler)
build/ops: do_freebsd.sh: FreeBSD 构建需要 llvm 链接器(pr#25247, Willem Jan Withagen)
build/ops: dout: 使用 decltype(auto) 而不是 auto 声明 dpp(pr#22207, Kefu Chai)
build/ops: dpdk: 删除 dpdk 子模块(issue#24032, pr#21856, Kefu Chai)
build/ops: examples/Makefile: 添加 -Wno-unused-parameter 以避免编译错误(pr#23581, You Ji)
build/ops: 提高 make check 的可靠性(pr#22441, Erwan Velu)
build/ops: include: 如果未定义,则定义 errnos 以提高可移植性(pr#25302, Willem Jan Withagen)
build/ops: install-deps: 检查 $builddepcmd 的退出状态(pr#22682, Yunchuan Wen)
build/ops: install-deps: 不要指定未知选项(pr#24315, Kefu Chai)
build/ops: install-deps: 在升级 virtualenv 之前安装 setuptools(pr#25039, Kefu Chai)
build/ops: install-deps: 如果 wheelhouse 过时,则删除它(pr#22028, Kefu Chai)
build/ops: install-deps,run-make-check: 使用 ceph-libboost 仓库(issue#25186, pr#23995, Kefu Chai)
build/ops: install-deps.sh: 为 FreeBSD 添加 Kerberos 需求(pr#25688, Willem Jan Withagen)
build/ops: install-deps.sh: 禁用 centos-sclo-rh-source(issue#37707, pr#25629, Brad Hubbard)
build/ops: install-deps.sh: 修复 gcc 检测并在 bionic 上安装预构建的 libboost(pr#25169, Changcheng Liu, Kefu Chai)
build/ops: install-deps.sh: 修复 ubuntu 上没有旧编译器时安装 gcc 的问题(pr#22488, Tomasz Setkowski)
build/ops: install-deps.sh: 不使用密钥服务器导入 ubuntu-toolchain-r 的密钥(pr#22964, Kefu Chai)
build/ops: install-deps.sh: 安装 libtool-ltdl-devel 用于构建 python-saml(pr#25071, Kefu Chai)
build/ops: install-deps.sh: 避免安装/使用 lsb_release,以及其他清理(issue#18163, pr#23361, Nathan Cutler)
build/ops: install-deps.sh: 删除 CR 仓库(issue#13997, pr#25211, Brad Hubbard, Alfredo Deza)
build/ops: install-deps.sh: 有选择地安装依赖项(pr#26402, Kefu Chai)
build/ops: install-deps.sh: 设置 with_seastar(pr#23079, Nathan Cutler)
build/ops: install-deps.sh: 支持在 xenial aarch64 中安装 gcc7(pr#22451, Yunchuan Wen)
build/ops: install-deps.sh: 更新 FreeBSD 的 python 需求(pr#25245, Willem Jan Withagen)
build/ops: install-deps.sh: 使用最新的 setuptools(pr#26156, Kefu Chai)
build/ops: install-deps: s/openldap-client/openldap24-client/(pr#23912, Kefu Chai)
build/ops: libradosstriper: 条件编译(pr#21983, Jesse Williamson)
build/ops: make-debs.sh: 清理目录以允许多次构建 deb 包(pr#25177, Changcheng Liu)
build/ops: man: 跳过以“..”开头的指令(pr#23580, Kefu Chai)
build/ops,mgr: build: mgr: 检查 python 的 ssl 版本链接(issue#24282, pr#22659, Kefu Chai, Abhishek Lekshmanan)
build/ops,mgr: cmake,deb,rpm: 移除 cython 0.29 的子解释器检查,重新启用 cython 0.29+ 构建(pr#25585, Tim Serong)
build/ops: mgr/dashboard: 添加 html-linter(pr#24273, Tiago Melo)
build/ops: mgr/dashboard: 添加 i18n 验证脚本(pr#25179, Tiago Melo)
build/ops: mgr/dashboard: 添加 package-lock.json(pr#23285, Tiago Melo)
build/ops: mgr/dashboard: 禁用显示 xi18n 的进度(pr#25427, Tiago Melo)
build/ops: mgr/dashboard: 修复 run-frontend-e2e-tests.sh(pr#25157, Tiago Melo)
build/ops: mgr/dashboard: 修复所有前端依赖的版本(pr#22712, Tiago Melo)
build/ops: mgr/dashboard: 在 cmake 期间删除 angular 构建进度日志(pr#23115, Tiago Melo)
build/ops: mgr/dashboard: 更新 Node.js 到当前 LTS(pr#24932, Tiago Melo)
build/ops: mgr/dashboard: 更新节点版本(pr#22639, Tiago Melo)
build/ops: mgr/diskprediction: 替换本地预测器模型文件(pr#24484, Rick Chen)
build/ops,mgr: mgr/dashboard: 修复 FreeBSD 下的构建(pr#22562, Willem Jan Withagen)
build/ops: 将 dmclock 子树移动到子模块中(pr#21651, Danny Al-Gaaf)
build/ops,pybind: ceph: 不在生成器内抛出 StopIteration(pr#25400, Jason Dillaman)
build/ops,rbd: osd,mon,pybind: 能够用 Clang 编译(pr#21861, Adam C. Emerson)
build/ops,rbd: selinux: 添加对 ceph iscsi 的支持(pr#24936, Mike Christie)
build/ops,rbd: systemd: 启用 ceph-rbd-mirror.target(pr#24935, Sébastien Han)
build/ops,rgw: build/rgw: unittest_rgw_dmclock_scheduler 不需要 Boost_LIBRARIES(pr#26799, Willem Jan Withagen)
build/ops,rgw: cls: 仅在 WITH_RADOSGW 时构建 cls_otp(pr#22548, Piotr Dałek)
build/ops,rgw: deb,rpm: 打包 librgw_admin_user.{h,so.*}(pr#22205, Kefu Chai)
build/ops: rocksdb: 与上游同步(issue#23653, pr#22236, Kefu Chai)
build/ops: rpm: 将所需的 GCC 版本提高到 7.3.1(pr#24130, Kefu Chai)
build/ops: rpm,deb: 删除 python-jinja2 依赖项(pr#26379, Kefu Chai)
build/ops: rpm: 不在 openSUSE 上排除 s390x 构建(pr#26268, Nathan Cutler)
build/ops: rpm: 修复 Fedora 错误“No matching package to install: ‘Cython3’” (issue#35831, pr#23993, Brad Hubbard)
build/ops: rpm: 修复 libradospp-devel 运行时依赖(pr#25491, Nathan Cutler)
build/ops: rpm: 修复 SUSE 的 seastar 构建依赖项(pr#23089, Nathan Cutler)
build/ops: rpm: 修复 seastar 构建依赖项(pr#23386, Nathan Cutler)
build/ops: rpm: 修复 dashboard make check 的 xmlsec1 构建依赖项(pr#26119, Nathan Cutler)
build/ops: rpm: 在 f28 上安装 python2-Cython(pr#26756, Brad Hubbard)
build/ops: rpm: 使 ceph-grafana-dashboards 拥有其目录(issue#37485, pr#25347, Nathan Cutler, Tim Serong)
build/ops: rpm: 使 Python 依赖项不那么令人困惑(pr#25963, Nathan Cutler)
build/ops: rpm: 使 sudo 成为构建依赖项(pr#23077, Nathan Cutler)
build/ops: rpm: 为所有架构打包加密库(pr#26202, Nathan Cutler)
build/ops: rpm: 打包 grafana 仪表板(pr#24735, Boris Ranto)
build/ops: rpm: 提供从 ceph-test 移动的文件…(issue#22558, pr#20401, Nathan Cutler)
build/ops: rpm: RHEL 8 修复(pr#26520, Ken Dreyer)
build/ops: rpm: RHEL 8 需要 Python 3 构建(pr#25223, Nathan Cutler)
build/ops: rpm: 停止 install-deps.sh 覆盖 spec 文件 Python 构建设置(issue#37301, pr#25181, Nathan Cutler, Brad Hubbard)
build/ops: rpm: 使用加固的 LDFLAGS(issue#36316, pr#24425, Boris Ranto)
build/ops: rpm: 使用更新的 gperftools(issue#35969, pr#24124, Kefu Chai)
build/ops: rpm: 运行时使用更新的 gperftools-libs(issue#36508, pr#24652, Brad Hubbard)
build/ops: run-make-check: 启用 --with-seastar 选项(pr#22809, Kefu Chai)
build/ops: run-make-check: 使用非空字符串设置 WITH_SEASTAR(pr#23108, Kefu Chai)
build/ops: run-make-check.sh: 为 CI 添加 ccache 调优(pr#22847, Erwan Velu)
build/ops: run-make-check.sh: ccache 好处多多(issue#24817, issue#24777, pr#22867, Nathan Cutler)
build/ops: run-make-check: 运行 sysctl 应该使用 sudo(pr#23708, Kefu Chai)
build/ops: run-make-check: 在构建之前显示配置(pr#23609, Erwan Velu)
build/ops: seastar: 将所需的 yaml-cpp 版本降低到 0.5.1(pr#23255, Kefu Chai)
build/ops: seastar: 获取链接 pthread 的更改(pr#25671, Kefu Chai)
build/ops: selinux: 允许 ceph 执行 ldconfig(pr#20118, Boris Ranto)
build/ops: spdk: 更新到最新的 spdk-18.05 分支(pr#22547, Kefu Chai)
build/ops: spec: 需要 ceph base 而不是 common(issue#37620, pr#25503, Sébastien Han)
build/ops: test: 将 ceph-dencoder 移动到 src/tools(pr#23228, Kefu Chai)
build/ops: test,qa: s/.libs/lib/(pr#20734, Kefu Chai)
build/ops,tests: cmake,run-make-check: 始终启用 WITH_GTEST_PARALLEL(pr#23382, Kefu Chai)
build/ops,tests: deb,rpm,qa: 拆分仪表板包(pr#26380, Kefu Chai)
build/ops,tests: mgr/dashboard: 修复 Jest 中的 localStorage 问题(pr#23281, Tiago Melo)
build/ops,tests: mgr/dashboard: 对象网关用户配置(pr#25494, Laura Paduano)
build/ops,tests: src/test: 使用 gtest-parallel 加速单元测试(pr#22577, Kefu Chai, Erwan Velu)
build/ops,tests: tests/fio: 修复构建失败并确保 run-make-check.sh 涵盖此问题(pr#23231, Kefu Chai, Igor Fedotov)
build/ops,tests: tests/qa: 添加 $ distro mix - rgw(pr#21932, Yuri Weinstein)
build/ops,tests: tools/ceph-dencoder: 有条件地链接 mds(pr#25255, Kefu Chai)
build/ops,tools: tool: 将 rbd-ggate 链接到 librados-cxx(pr#24901, Willem Jan Withagen)
ceph-disk: get_partition_dev() 应该失败,直到 get_dev_path(partnam...(pr#21415, Erwan Velu)
cephfs: doc/releases: 更新 CephFS mimic 备注(issue#23775, pr#22232, Patrick Donnelly)
cephfs: mgr/dashboard: NFS Ganesha 管理 REST API(pr#25918, Lenz Grimmer, Ricardo Dias, Jeff Layton)
cephfs,mgr,pybind: pybind/mgr: 统一卷和编排器(pr#25492, Sebastian Wagner)
cephfs,mon: MDSMonitor: 消除无法加载元数据的警告(pr#25693, Song Shun)
cephfs,mon: mon/MDSMonitor: 不向集群日志发送冗余 MDS 健康消息(issue#24308, pr#22252, Sage Weil)
cephfs: qa: 修复符号链接(pr#23997, Patrick Donnelly)
cephfs,rbd: osdc: 修复错误的 BufferHead 偏移(pr#22495, dongdong tao)
cephfs,rbd: osdc: 优化进行 BufferHead 映射的代码(pr#22509, dongdong tao)
cephfs,rbd: osdc: 减少 ObjectCacher 的内存碎片(issue#36192, pr#24297, “Yan, Zheng”)
cephfs,tests: qa: 修复运行调用参数(issue#36450, pr#24597, Patrick Donnelly)
cephfs,tests: qa: 为 fs 套件安装 python3-cephfs(pr#23411, Kefu Chai)
cephfs,tests: qa/suites/powercycle: 白名单 MDS_SLOW_REQUEST(pr#23151, Neha Ojha)
cephfs,tests: qa/workunits/suites/pjd.sh: 使用正确的目录名(pr#22233, Neha Ojha)
ceph-volume: 激活选项 --auto-detect-objectstore 遵循 --no-systemd(issue#36249, pr#24355, Alfredo Deza)
ceph-volume: 调整代码以支持 Python3(pr#25324, Volker Theile)
ceph-volume: 为 simple activate 添加 --all 标志(pr#26225, Jan Fajerski)
ceph-volume 添加 __release__ 字符串,以帮助版本条件调用(issue#25171, pr#23332, Alfredo Deza)
ceph-volume: 添加 inventory 命令(issue#24972, pr#24859, Jan Fajerski)
ceph-volume: 关于 ceph-volume 的额外工作,以添加一些 choose_disk 功能(issue#36446, pr#24504, Erwan Velu)
ceph-volume 从 ceph-ansible 添加新的 ceph-handlers 角色(issue#36251, pr#24336, Alfredo Deza)
ceph-volume: 为 lvm batch 添加 --prepare 标志(issue#36363, pr#24587, Andrew Schoen)
ceph-volume: 在单词之间添加空格(pr#26246, Sébastien Han)
ceph-volume: 添加 ceph-volume lvm list /dev/sda 的测试(issue#24784, issue#24957, pr#23348, Andrew Schoen)
ceph-volume: 添加单元测试(pr#25321, Volker Theile)
ceph-volume: 允许指定 --cluster-fsid 而不是从 ceph.conf 读取(issue#26953, pr#24407, Alfredo Deza)
ceph-volume: OSD ID 必须存在并且在重用之前被销毁(pr#23093, Andrew Schoen, Ron Allred)
ceph-volume batch: 允许在 CLI 上指定 journal+block.db 大小(issue#36088, pr#24201, Alfredo Deza)
ceph-volume batch: 允许 --osds-per-device,默认为 1(issue#35913, pr#24060, Alfredo Deza)
ceph-volume batch 为 bluestore 刻画 lvs(pr#24019, Alfredo Deza)
ceph-volume 批量命令(issue#24492, pr#23075, Alfredo Deza)
ceph-volume: 混合类型设备的批处理测试(issue#35535, issue#27210, pr#23963, Alfredo Deza)
ceph-volume 自定义集群名称在 filestore 触发时失败(issue#27210, pr#24251, Alfredo Deza)
ceph-volume: 不在简单测试中固定 testinfra 版本(pr#23268, Andrew Schoen)
ceph-volume: 不要将 (lvm) stderr/stdout 发送到终端,使用日志文件(issue#36492, pr#24738, Alfredo Deza)
ceph-volume 不在 luminous 中使用 stdin(issue#25173, pr#23355, Alfredo Deza)
ceph-volume: 默认不创建 osd['block.db'](issue#38472, pr#26627, Jan Fajerski)
ceph-volume: 早期检测 --journal 和 --filestore 标志要求(issue#24794, pr#24150, Alfredo Deza)
ceph-volume: 启用设备丢弃(issue#36532, pr#24676, Jonas Jelten)
ceph-volume: 启用简单子命令的 --no-systemd 标志(issue#36470, pr#24998, Alfredo Deza)
ceph-volume: 在 lvm 激活期间启用 ceph-osd(issue#24152, pr#23321, Dan van der Ster)
ceph-volume 确保始终使用编码字节(issue#24993, pr#23289, Alfredo Deza)
ceph-volume: 对需要 ceph.conf 才能运行的命令报错(issue#23941, pr#22724, Andrew Schoen)
ceph-volume 扩展 filestore 上多个设备的自动引擎(issue#24553, pr#23731, Andrew Schoen, Alfredo Deza)
ceph-volume: 扩展 filestore 上单一类型设备的自动引擎(issue#24960, pr#23532, Alfredo Deza)
ceph-volume 扩展 LVM API 以创建不同大小的多个 LV(issue#24020, pr#22426, Alfredo Deza)
ceph-volume: 提取 flake8 配置(pr#24674, Mehdi Abaakouk)
ceph-volume: 修复 py3 环境中的 Batch 对象(pr#25203, Jan Fajerski)
ceph-volume: 修复 lvm batch --report 中 journal 和 filestore 数据大小(issue#36242, pr#24274, Andrew Schoen)
ceph-volume: 修复 inventory 中的 JSON 输出(issue#37390, pr#25224, Sebastian Wagner)
ceph-volume: 修复 TypeError: join() 接受一个参数(给定 2 个)(issue#37595, pr#25469, Sebastian Wagner)
ceph-volume 修复 Python3 中使用 dmcrypt 时 TypeError(pr#26034, Alfredo Deza)
ceph-volume 修复 zap 不适用于 LV 的问题(issue#35970, pr#24077, Alfredo Deza)
ceph-volume: 在 Size 中实现 __format__ 以在 py3 中格式化大小(issue#38291, pr#26401, Jan Fajerski)
ceph-volume 初始自动子命令(pr#21803, Alfredo Deza)
ceph-volume: 引入策略的类层次结构(issue#37389, pr#25238, Jan Fajerski)
ceph-volume: lsblk 无法找到 PARTLABEL,必须回退到 blkid(issue#36098, pr#24330, Alfredo Deza)
ceph-volume lvm.activate 条件 mon-config 在 prime-osd-dir 上(issue#25216, pr#23375, Alfredo Deza)
ceph-volume lvm.activate 不搜索 MON 配置(pr#22393, Wido den Hollander)
ceph-volume: lvm batch 允许为 bluestore 添加额外标志(如 dmcrypt)(issue#26862, pr#23448, Alfredo Deza)
ceph-volume lvm.batch 删除不存在的 sys_api 属性(issue#34310, pr#23787, Alfredo Deza)
ceph-volume lvm.listing 仅包含存在的设备(issue#24952, pr#23129, Alfredo Deza)
ceph-volume lvm.prepare 更新帮助以指示需要分区,而不是设备(issue#24795, pr#24394, Alfredo Deza)
ceph-volume: 使 Device 可哈希以允许在 py3 中设置 Device 列表(issue#38290, pr#26399, Jan Fajerski)
ceph-volume: 使 lvm batch 幂等(issue#26864, pr#24404, Andrew Schoen)
ceph-volume: 如果设备属于 ceph-disk,则将其标记为不可用(pr#26084, Andrew Schoen)
ceph-volume: 将字符串到整数的转换中的逗号标准化为点(issue#37442, pr#25674, Alfredo Deza)
ceph-volume: 在测试时修补 Device(issue#36768, pr#25063, Alfredo Deza)
ceph-volume process.call 在 Python 3 中使用 stdin 修复(issue#24993, pr#23141, Alfredo Deza)
ceph-volume: 在缺少 ceph.conf 时提供友好的错误消息(pr#22828, Andrew Schoen)
ceph-volume: PVolumes.get() 在使用名称或 uuid 时应返回一个 PV(issue#24784, pr#23234, Andrew Schoen)
ceph-volume: 拒绝 zap 映射器设备(issue#24504, pr#22764, Andrew Schoen)
ceph-volume: 拒绝具有现有 GPT 头的设备 (issue#27062, pr#25098, Andrew Schoen)
ceph-volume: 移除 iteritems 实例 (issue#38299, pr#26403, Jan Fajerski)
ceph-volume: 使用 zap --destroy 时移除 LV (pr#25093, Alfredo Deza)
ceph-volume: 从帮助菜单中移除版本报告 (issue#36386, pr#24531, Alfredo Deza)
ceph-volume: 将 Device 属性 valid 重命名为 available (issue#36701, pr#25007, Jan Fajerski)
ceph-volume: 将 testinfra 命令替换为 py.test (issue#38568, pr#26739, Alfredo Deza)
ceph-volume: 恢复 SELinux 上下文 (pr#23278, Boris Ranto)
ceph-volume: 恢复分区作为磁盘 (issue#37506, pr#25390, Jan Fajerski)
ceph-volume: 运行测试,无需等待 ceph 仓库 (pr#23697, Andrew Schoen)
ceph-volume: 在测试中设置 OSD 端口数量 (pr#26753, Andrew Schoen)
ceph-volume: 在 prime-osd-dir 之前设置正确的权限 (issue#37486, pr#25477, Andrew Schoen, Alfredo Deza)
ceph-volume: simple scan 现在将扫描所有运行中的 ceph-disk OSD (pr#26826, Andrew Schoen)
ceph-volume: 扫描系统磁盘时,跳过处理不存在的设备 (issue#36247, pr#24372, Alfredo Deza)
ceph-volume: 排序并对齐 lvm list 输出 (pr#21812, Theofilos Mouratidis)
ceph-volume systemd import main 以使 console_scripts 对可执行文件起作用 (issue#36648, pr#24840, Alfredo Deza)
ceph-volume tests: 在监视器主机上销毁 osd (pr#22437, Alfredo Deza)
ceph-volume tests: OSD 节点不包含 admin keyring (issue#24417, pr#22399, Alfredo Deza)
ceph-volume tests/functional: 将 mgrs daemon 添加到 lvm 测试 (issue#26879, pr#23489, Alfredo Deza)
ceph-volume tests.functional: 为 ceph-ansible 添加 notario 依赖 (pr#22116, Alfredo Deza)
ceph-volume tests/functional: 声明 ceph-ansible 角色而不是导入它们 (issue#37805, pr#25820, Alfredo Deza)
ceph-volume tests.functional: 修复 filestore 中停止 osd.0 时的拼写错误 (issue#37675, pr#25594, Alfredo Deza)
ceph-volume: tests.functional: 从 ansible 继承 SSH_ARGS (issue#34311, pr#23788, Alfredo Deza)
ceph-volume tests/functional: OSD 部署后运行 lvm list (issue#24961, pr#23116, Alfredo Deza)
ceph-volume tests/functional: 使用 Ansible 2.6 (pr#23182, Alfredo Deza)
ceph-volume tests: 安装 ceph-ansible 的 requirements.txt 依赖项 (issue#36672, pr#24881, Alfredo Deza)
ceph-volume tests: 始终模仿 stdin 密钥的 __release__ 补丁 (pr#23398, Alfredo Deza)
ceph-volume tests.systemd: 更新 systemd 模块的导入 (issue#36704, pr#24937, Alfredo Deza)
ceph-volume: 使用多个 NVME 驱动器进行测试 (issue#37409, pr#25354, Andrew Schoen)
ceph-volume: 在 zapping 之前正确卸载 lvs (issue#24796, pr#23117, Andrew Schoen)
ceph-volume: 更新测试 playbook ‘deploy.yml’ (pr#26397, Guillaume Abrioux)
ceph-volume: 为简单测试更新 ansible 版本到 2.6.x (pr#23263, Andrew Schoen)
ceph-volume: 使用 console_scripts (issue#36601, pr#24773, Mehdi Abaakouk)
ceph-volume: 使用我们自己的 testinfra 套件进行功能测试 (pr#26685, Andrew Schoen)
ceph-volume util.encryption: 不将 stderr 推送到终端 (issue#36246, pr#24399, Alfredo Deza)
ceph-volume util.encryption: 稳健的 blkid+lsblk 锁盒检测 (pr#24977, Alfredo Deza)
ceph-volume zap: 关联 OSD ID 和/或 OSD FSID 的设备 (pr#25429, Alfredo Deza)
ceph-volume zap: 改进 zapping 以移除所有分区和所有 LV,无论是否加密 (issue#37449, pr#25330, Alfredo Deza)
cleanup: 清理警告 (pr#23919, Adam C. Emerson)
cli: 将 osd-fsid 作为 osd find
的一部分转储 (pr#26015, Noah Watkins) cmake: 添加 "add_npm_command()" 命令 (pr#22636, Kefu Chai)
cmake: 为 vstart target 添加 cls_opt (pr#22538, Ali Maredia)
cmake: 如果 dpdk 已构建或找到,则添加 dpdk::dpdk (issue#24948, pr#23620, Nathan Cutler, Kefu Chai)
cmake: 添加选项 WITH_LIBRADOSSTRIPER (pr#23732, Kefu Chai)
cmake: 允许在构建期间设置 CTest 超时 (pr#22800, Willem Jan Withagen)
cmake: 始终首选本地符号 (issue#25154, pr#23320, Kefu Chai)
cmake: 始终关闭 bjam 调试输出 (pr#22204, Kefu Chai)
cmake: 将所需的 boost 版本提高到 1.67 (pr#22392, Kefu Chai)
cmake: 提高所需的 fmt 版本 (pr#23283, Kefu Chai)
cmake: 清理 (pr#23166, Kefu Chai)
cmake: 清理 (pr#23279, Kefu Chai)
cmake: 清理 (pr#23300, Kefu Chai)
cmake,crimson/net: 添加 keepalive 支持,并在 "make check" 中启用 unittest_seastar_messenger (pr#23642, Kefu Chai)
cmake: 使用 CHECK_C_COMPILER_FLAG 检测 armv8 crc 和 crypto 功能 (issue#17516, pr#24168, Kefu Chai)
cmake: 为 rocksdb 禁用 -Werror-stringop-truncation (pr#22591, Kefu Chai)
cmake: 不再检查 aligned_alloc() (issue#23653, pr#22046, Kefu Chai)
cmake: 如果不使用捆绑的 dpdk,则不依赖 ${DPDK_LIBRARIES} (issue#24449, pr#22938, Kefu Chai)
cmake: 不安装 hello 演示模块 (pr#21886, John Spray)
cmake: 不链接 common_crc_aarch64 (pr#23366, Kefu Chai)
cmake: 在 FreeBSD 上不向链接器传递 -B{symbolic,symbolic-functions} (pr#24920, Willem Jan Withagen)
cmake: 不向 setup.py 传递不必要的参数 (pr#25186, Kefu Chai)
cmake: 不使用 Findfmt.cmake 检查 libfmt-dev (pr#23390, Kefu Chai)
cmake: 不使用 plain target_link_libraries(rgw_a …) (pr#24515, Kefu Chai)
cmake: 为调试和发布 RocksDB 构建启用 RTTI (pr#22286, Igor Fedotov)
cmake: 为 gtest-parallel 找到 python2 解释器 (pr#22931, Kefu Chai)
cmake: 使用正确的名称查找 liboath (pr#22430, Kefu Chai)
cmake: 修复 -DALLOCATOR=jemalloc 时出现的 cmake 错误 (pr#23380, Jianpeng Ma)
cmake: 修复 WITH_SYSTEM_BOOST=ON 构建 (pr#23510, Kefu Chai)
cmake: 修复 distcc 和其他编译器包装器编译问题 (pr#24605, Alexey Sheplyakov, Kefu Chai)
cmake: 修复 test/CMakeFile.txt 中的 cython 目标 (pr#22295, Jan Fajerski)
cmake: 修复 Debug 构建 WITH_SEASTAR=ON (pr#23567, Kefu Chai)
cmake: 修复以 clang 和 GCC 启用 WITH_ASAN 的问题 (pr#24692, Kefu Chai)
cmake: 修复查找系统 rockdb (pr#22439, Alexey Shabalin)
cmake: 修复 std::filesystem 检测并将 sanitizer 检测提取到其自己的模块中 (pr#23384, Kefu Chai)
cmake: 修复 set() 的语法错误 (pr#26582, Kefu Chai)
cmake: 修复 WITH_DPDK=ON 构建 (pr#23650, Kefu Chai, Casey Bodley)
cmake: 修复 Findfmt 的版本匹配 (pr#23996, Mohamad Gebai)
cmake: 修复 "WITH_STATIC_LIBSTDCXX" (pr#22990, Kefu Chai)
cmake: 让 rbd_api 依赖 librbd-tp (pr#25641, Kefu Chai)
cmake: 以更好的方式链接 gtest (pr#23628, Kefu Chai)
cmake: 静态链接 ceph-osd 与 common (pr#22720, Radoslaw Zarzynski)
cmake: 以现代方式链接压缩器插件到库 (pr#23852, Kefu Chai)
cmake: 使 -DWITH_MGR=OFF 工作 (pr#22077, Jianpeng Ma)
cmake: 更认真地测试查找 Filesystem 的功能 (pr#26316, Willem Jan Withagen)
cmake: 模块化 src/perfglue (pr#23254, Kefu Chai)
cmake: 将 ceph-osdomap-tool, ceph-monstore-tool 移出 ceph-test (pr#19964, runsisi)
cmake: 移动 crypto_plugins 目标 (pr#21891, Casey Bodley)
cmake: 如果 WITH_LIBRADOSSTRIPER=OFF,则没有 libradosstriper 头文件 (issue#35922, pr#24029, Nathan Cutler, Kefu Chai)
cmake: 定义前无需添加 "-D" (pr#23795, Kefu Chai)
cmake: oath 位于 liboath 中 (pr#22494, Willem Jan Withagen)
cmake: 仅当 WITH_SEASTAR 时才构建额外的 boost 库 (pr#22521, Kefu Chai)
cmake: 移除对 GCC 5.1 的检查 (pr#24477, Kefu Chai)
cmake: 从 CMakeLists.txt 中移除已删除的 rgw_request.cc (pr#22186, Casey Bodley)
cmake: 移除嵌入式 'cephd' 代码 (pr#21940, Dan Mick)
cmake: 移除支持 cmake 2.x 的变通方法 (pr#22912, Kefu Chai)
cmake: rgw_common 应该依赖于 tracing 头文件 (pr#22367, Kefu Chai)
cmake: rocksdb 相关清理 (pr#23441, Kefu Chai)
cmake: 如果 libcxx/libstdc++ 不提供,则应链接 libatomic (pr#22952, Kefu Chai)
cmake: 将 fio 版本从 3.5 更新到 540e235dcd276e63c57 (pr#22019, Jianpeng Ma)
cmake: 为默认 $CEPH_BUILD_VIRTUALENV 使用 $CMAKE_BINARY_DIR (issue#36737, pr#26091, Kefu Chai)
cmake: 使用 javac -h 创建 JNI 本机头文件 (issue#24012, pr#21822, Kefu Chai)
cmake: 使用 OpenSSL::Crypto 代替 OPENSSL_LIBRARIES (pr#24368, Kefu Chai)
cmake: vstart target 可以构建 WITH_CEPHFS/RBD/MGR=OFF (pr#25204, Casey Bodley)
common: 为 seastar::temporary_buffer 添加适配器 (pr#22454, Kefu Chai, Casey Bodley)
common: 添加一个通用的异步 Completion,用于 boost::asio (pr#21914, Casey Bodley)
common: 添加无锁 md_config_t (pr#22710, Kefu Chai)
common: async/dpdk: 启用 dpdk 时,多个消息队列存在缺陷 (pr#25404, zhangyongsheng)
common: auth/cephx: 小幅代码清理 (pr#21155, runsisi)
common: auth, common: 清理 (pr#26383, Kefu Chai)
common: auth,common: 使用 ceph::mutex 而不是 LockMutex (pr#24263, Kefu Chai)
common: 避免在 NDEBUG 构建中
ANNOTATE_HAPPENS_*的开销 (pr#25129, Radoslaw Zarzynski)common: 如果设置 PID-file 失败,则提供更多信息 (pr#23647, Willem Jan Withagen)
common: blkdev: 重做 API 并添加 FreeBSD 支持 (pr#24658, Alan Somers)
common: buffer: 将迭代器特性标记为 "public" (pr#25409, Kefu Chai)
common: 即时计算标准差 (pr#21461, Yao Zongyou)
common: ceph.in: 为 cmd 标志使用正确的模块 (pr#26454, Patrick Donnelly)
common: ceph-volume: 将 device_id 添加到清单列表中 (pr#25201, Jan Fajerski)
common: 针对 fc30 上的 FTBFS 更改 (pr#26301, Kefu Chai)
common: common/admin_socket: 添加新 API unregister_commands(AdminSocketHook … (pr#21718, Jianpeng Ma)
common: common,auth,crimson: 向 crimson 添加日志记录 (pr#23957, Kefu Chai)
common: common/buffer: 修复启用 DEBUG_BUFFER 时的编译器错误 (pr#25848, Jianpeng Ma)
common: common/buffer: 移除重复的条件检查 (pr#25420, Jianpeng Ma)
common: common/config: 为 crimson 添加 ConfigProxy (pr#23074, Kefu Chai)
common: common/config: 修复 ConfigProxy::diff() 中的锁 (pr#23276, Kefu Chai)
common: common/config_values: friend md_config_impl<> (pr#23020, Mykola Golub, Kefu Chai)
common: common: 从 SharedLRU 中删除未使用的函数 (pr#26224, Radoslaw Zarzynski)
common: common/KeyValueDB: 移除 validate 参数 (pr#25377, Adam Kupczyk)
common: common/numa: 添加 FreeBSD NUMA 的 shim 例程 (pr#25920, Willem Jan Withagen)
common: common, osd: 默认将 mclock 优先级设置为 1 (pr#26022, Abhishek Lekshmanan)
common: common/random_cache: 移除未使用的 RandomCache (pr#26253, Kefu Chai)
common: common/shared_cache: 添加无锁 SharedLRU (pr#22736, Kefu Chai)
common: common/shared_cache: 如果键存在,则将其移到 LRU 的前面 (pr#25370, Jianpeng Ma)
common: common/shared_cache: 修复竞争问题 (pr#25150, Jianpeng Ma)
common: common/util: 在 kubernetes/rook 容器中运行时传递真实主机名 (pr#23798, Sage Weil)
common: 当我们将 average 或 max 设置为 0 时,完成所有节流阻滞器 (issue#36715, pr#24965, Dongsheng Yang)
common,core: msg/async: 在调度时清理本地缓冲区 (issue#35987, pr#24111, Greg Farnum)
common,core,tests: qa/tests: 更新 centos 最新链接指向 7.5 (pr#22923, Vasu Kulkarni)
common/crc/aarch64: 添加了 cpu 功能 pmull 并使 aarch64 特定… (pr#22178, Adam Kupczyk)
common: crimson/common: 在 shard.0 上同步写入配置 (pr#23284, Kefu Chai)
common,crimson: 将 perfcounters 移植到 seastar (pr#24141, chunmei Liu)
common: crypto: 用于 RGW 的 QAT 基于加密 (pr#19386, Ganesh Maharaj Mahalingam)
common: crypto: 对断言使用 ceph_assert_always (pr#23654, Casey Bodley)
common: 如果尚未定义,则定义 BOOST_COROUTINES_NO_DEPRECATION_WARNING (pr#26502, Kefu Chai)
common: 从 bufferlist 中删除分配跟踪 (pr#25454, Radoslaw Zarzynski)
common: 从 bufferlist 中删除 append_buffer。改用简单 carriage (pr#25077, Radoslaw Zarzynski)
common: 从 buffer::ptr 中删除 at_buffer_{head,tail} (pr#25422, Radoslaw Zarzynski)
common: 删除/标记 palign 的 buffer::raw getter 为 final (pr#24087, Radoslaw Zarzynski)
common: 删除 static_assert.h,因为它看起来未使用 (pr#22743, Radoslaw Zarzynski)
common: 删除未使用的 buffer::raw_mmap_pages (pr#24040, Radoslaw Zarzynski)
common: 删除 ceph::bufferlist 中未使用的零拷贝功能 (pr#24031, Radoslaw Zarzynski)
common: 删除 buffer.cc 中未使用的 get_max_pipe_size() (pr#25432, Radoslaw Zarzynski)
common: ec: lrc 不再依赖于 bufferlist 之间的交叉通信 (pr#25595, Radoslaw Zarzynski)
common: 在 parse_argv() 中扩展 meta (pr#23474, Kefu Chai)
common: 修复访问并为令牌桶节流器添加名称 (pr#25372, Shiyang Ruan)
common: 修复 Alpine TEMP_FAILURE_RETRY 和 ACCESSPERMS 兼容性 (pr#24813, Willem Jan Withagen)
common: 修复 PerfCounters::perf_counter_data_any_d::read_avg 中的竞争问题 (issue#25211, pr#23362, ludehp)
common: 修复损坏的 rbdmap 参数解析 (pr#24446, Marc Schoechlin)
common: 修复缺少 include boost/noncopyable.hpp (pr#24278, Willem Jan Withagen)
common: 修复 rados bench write JSON 输出中的拼写错误 (issue#24199, pr#22112, Sandor Zeestraten)
common: 修复 BackoffThrottle 中的拼写错误 (pr#24691, Shiyang Ruan)
common: Formatters: 提高浮点数的精度 (pr#25745, Коренберг Марк)
common: .gitignore: 忽略 .idea 目录 (pr#24237, Volker Theile)
common: 相应地提示 bufferlist 的 buffer_track_c_str (pr#25424, Radoslaw Zarzynski)
common: hypercombined bufferlist (pr#24882, Radoslaw Zarzynski)
common: include/compat.h: 在可用时使 pthread_get_name_np 工作 (pr#23641, Willem Jan Withagen)
common: include include/types.h early, 否则 Clang 会出错 (pr#22493, Willem Jan Withagen)
common: include/types: 将 operator<< 移动到正确的命名空间 (pr#23767, Kefu Chai)
common: include/types: 数字和单位之间有空格 (pr#22063, Sage Weil)
common: librados,rpm,deb: 针对 librados3 转换和 librados 清理的各种修复 (pr#24896, Kefu Chai)
common: 使 CEPH_BUFFER_ALLOC_UNIT 在编译时可知 (pr#26259, Radoslaw Zarzynski)
common: 将 BlkDev::serial() const 标记为与声明匹配 (pr#24702, Willem Jan Withagen)
common: messages: 内联定义 HEAD_VERSION 和 COMPAT_VERSION (pr#23623, Kefu Chai)
common,mgr: mgr/MgrClient: 如果没有 mgr daemon 正在运行,则向用户发出一些提示 (pr#23492, Sage Weil)
common: mon/MonClient: 通过 finisher 设置配置 (issue#24118, pr#21984, Sage Weil)
common: msg/async: 修复 dpdk 的 FTBFS (pr#23168, Kefu Chai)
common: msg/async: 跳过对同一链接的重复处理 (pr#20952, shangfufei)
common: msg/msg_types.h: 不将 ceph_entity_name 转换为 entity_name_t 进行打印 (pr#26315, Kefu Chai)
common: msgr/async/rdma: 从带有 EINTR 的 poll 系统调用返回时应重试 (pr#25138, Stig Telfer)
common: Mutex -> ceph::mutex (issue#12614, pr#25105, Kefu Chai, Sage Weil)
common: 优化 bufferlist 中的引用计数 (pr#25082, Radoslaw Zarzynski)
common: 当 nref == 0 时 OpTracker 不访问 TrackedOp (issue#24037, pr#22156, Radoslaw Zarzynski)
common: os/filestore: 修复节流配置 (pr#21926, Li Wang)
common,performance: auth,common: 添加无锁 auth (pr#23591, Kefu Chai)
common,performance: common/assert: 使用 [[gnu::cold]] 标记断言帮助程序 (pr#23326, Kefu Chai)
common,performance: compressor: 添加 QAT 支持 (pr#19714, Qiaowei Ren)
common,performance: denc: 修复解码 bl 中 ptr 时的内部碎片问题 (pr#25264, Kefu Chai)
common,rbd: misc: 将构造函数标记为 explicit (pr#21637, Danny Al-Gaaf)
common: 在 clear 时重新初始化 StackStringStream (pr#25751, Patrick Donnelly)
common: 重新引入异步 SharedMutex (issue#24124, pr#22698, Casey Bodley)
common: 反向删除包含 (pr#23838, Willem Jan Withagen)
common: 回退 "common: add an async SharedMutex" (issue#24124, pr#21986, Casey Bodley)
common,rgw: cls/rbd: 使用已知值初始化局部变量 (pr#25588, Kefu Chai)
common,tests: run-standalone.sh: 需要双引号来处理所有发行版上 core_pattern 中的 | (issue#38325, pr#26436, David Zafman)
common,tests: test_shared_cache: 修复内存泄漏 (pr#25215, Jianpeng Ma)
common: vstart: 不要尝试为现有集群重新初始化仪表板 (pr#23261, Jason Dillaman)
core: 添加对 osd_delete_sleep 配置值的支持 (issue#36474, pr#24749, David Zafman)
core: auth: 移除 AuthClientHandler 中的 RWLock (pr#23699, Kefu Chai)
core: auth/krb: 修复 Kerberos 构建警告 (pr#25639, Daniel Oliveira)
core: build: 为 nautilus 禁用 kerberos (pr#26258, Sage Weil)
core: ceph_argparse: 修复 --verbose (pr#25961, Patrick Nawracay)
core: ceph.in: EPERM 时显示更友好的消息 (issue#25172, pr#23330, John Spray)
core: ceph.in: 在 raw_write() 中将字节写入 stdout (pr#25280, Kefu Chai)
core: ceph_test_rados_api_misc: 移除过时的 LibRadosMiscPool.PoolCreationRace (issue#24150, pr#22042, Sage Weil)
core: Clang 缺少
include (pr#23768, Willem Jan Withagen) core: common/blkdev.h: 使用 std::string (pr#25783, Neha Ojha)
core: common/options: 移除未使用的 ms async affinity 选项 (pr#26099, Josh Durgin)
core: common/util.cc: 为元数据添加 CONTAINER_NAME 处理 (pr#25383, Dan Mick)
core: compressor: QAT 解压缩的构建错误 (pr#22609, Qiaowei Ren)
core: crush, osd: 在应用 pg upmap 时正确处理多个父项 (issue#23921, pr#21815, xiexingguo)
core: erasure-code: 添加 clay codes (issue#19278, pr#24291, Myna V, Sage Weil)
core: erasure-code: 修复 clay code 与 jerasure, cauchy_orig 一起使用时的对齐问题 (pr#24586, Myna)
core: global/signal_handler.cc: 将 assert_file 报告为正确的名称 (pr#23738, Dan Mick)
core: include/rados: 澄清 copy_from 的标志位置 (pr#24497, Ilya Dryomov)
core: include/rados.h: 从 ceph -s 隐藏 CEPH_OSDMAP_PGLOG_HARDLIMIT (pr#25887, Neha Ojha)
core: kv/KeyValueDB: 将 PriCache 实现移动到 ShardedCache (pr#25925, Mark Nelson)
core: kv/KeyValueDB: 从 MergeOperator::name() 返回 const char* (issue#26875, pr#23477, Sage Weil)
core: messages/MOSDPGScan: 修复 query_epoch 的初始化 (pr#22408, wumingqiao)
core: mgr/balancer: 添加命令以列出所有计划 (issue#37418, pr#21937, Yang Honggang)
core: mgr/BaseMgrModule: 为 ceph_send_command 删除 GIL (issue#38537, pr#26723, Sage Weil)
core: mgr/MgrClient: 保护 daemon_health_metrics (issue#23352, pr#23404, Kjetil Joergensen, Brad Hubbard)
core,mgr: mon/MgrMonitor: 将 'unresponsive' 消息更改为 info 级别 (issue#24222, pr#22158, Sage Weil)
core,mgr,rbd: mgr: 泛化 osd perf 查询并使模块可以访问计数器 (pr#25114, Mykola Golub)
core,mgr,rbd: osd: 支持更动态的 perf 查询子键类型 (pr#25371, Mykola Golub)
core,mgr,rbd,rgw: rgw, common: 修复 SCA 问题 (pr#22007, Danny Al-Gaaf)
core: mgr/smart: 移除过时的 smart 模块 (pr#26411, Sage Weil)
core: mon/LogMonitor: 在被忽略的日志消息上调用 no_reply() (pr#22098, Sage Weil)
core: mon/MonClient: 避免为 MAuth::protocol 使用幻数 (pr#23747, Kefu Chai)
core: mon/MonClient: 提取 MonSub (pr#23688, Kefu Chai)
core: mon/MonClient: 使用 scoped_guard 而不是 goto (pr#24304, Kefu Chai)
core,mon: mon,osd: 在 "mon metadata" 中转储 "compression_algorithms" (issue#22420, pr#21809, Kefu Chai, Casey Bodley)
core,mon: mon/OSDMonitor: 对 MOSDFailure 消息进行 no_reply (issue#24322, pr#22259, Sage Weil)
core,mon: mon/OSDMonitor: expected_num_objects 警告 (issue#24687, pr#23072, Douglas Fuller)
core: mon/OSDMonitor: 两个 "ceph osd crush class rm" 修复 (pr#24657, xie xingguo)
core: mon/PGMap: 修复 PGMapDigest 解码 (pr#22066, Sage Weil)
core: mon/PGMap: 在 'pg ls' 中包含未知 PG (pr#24032, Sage Weil)
core: msg/async: 在连接阶段,不要从连接故障触发 RESETSESSION (issue#36612, pr#25343, Sage Weil)
core: msg/async/Event: 在关机时清除 time_events (issue#24162, pr#22093, Sage Weil)
core: msg/async: 修复 ProtocolV2 中的 banner_v1 检查 (pr#26714, Yingxin Cheng)
core: msg/async: 修复 frames_v2.h 中的包含 (pr#26711, Yingxin Cheng)
core: msg/async: 修复 is_queued() 语义 (pr#24693, Ilya Dryomov)
core: msg/async: 仅在实际发送时保持连接活动 (pr#24301, Haomai Wang, Kefu Chai)
core: os/bluestore: 修复对磁盘静默错误的深度 scrub 操作 (pr#23629, Xiaoguang Wang)
core: os/bluestore: 修复 flush_commit 锁定 (issue#21480, pr#22083, Sage Weil)
core: OSD: 添加 filestore 实现以获取 dbstatistics (issue#24591, pr#22633, lvshuhua)
core: osdc: 将 'bool budgeted' 更改为 'int budget' 以避免重新计算 (pr#21242, Jianpeng Ma)
core: OSD: ceph-osd 父进程在 fork 后需要重启日志服务 (issue#24956, pr#23090, redickwang)
core: osdc/Objecter: 修复 split 与 reconnect 竞争 (issue#22544, pr#23850, Sage Weil)
core: osdc/Objecter: 不再需要对 op->session 进行空指针检查 (pr#25230, runsisi)
core: osdc/Objecter: 连接重置可能存在竞争条件 (issue#36183, pr#24276, Jason Dillaman)
core: osdc: 自管理快照助手应捕获解码异常 (issue#24000, pr#21804, Jason Dillaman)
core: osd, librados: 添加 unset-manifest 操作 (pr#21999, Myoungwon Oh)
core: osd,mds: 使 'config rm …' 幂等 (issue#24408, pr#22395, Sage Weil)
core: osd/mon: 修复 pg log hard limit 升级问题 (issue#36686, pr#25816, Neha Ojha, Yuri Weinstein)
core: osd,mon: 将 mon_max_pg_per_osd 增加到 250 (pr#23251, Neha Ojha)
core: osd,mon,msg: 使用 intrusive_ptr 持有 Connection::priv (issue#20924, pr#22292, Kefu Chai)
core: osd/OSD: 更仔细地选择心跳对等体 (pr#23487, xie xingguo)
core: osd/OSD: 删除额外/错误的 *unregister_pg* (pr#21816, xiexingguo)
core: osd/OSDMap: 在尝试平衡时更积极 (issue#37940, pr#26039, xie xingguo)
core: osd/OSDMap: 在 calc_pg_upmaps 中删除本地池过滤器 (pr#26605, xie xingguo)
core: osd/OSDMap: 将 CEPHX_V2 osd 要求修复为 nautilus,而不是 mimic (pr#23249, Sage Weil)
core: osd/OSDMap: 修复纠删码 PG 的 upmap 错误清除 (pr#25365, ningtao, xie xingguo)
core: osd/OSDMap: 潜在的访问违规修复 (issue#37881, pr#25930, xie xingguo)
core: osd/OSDMap: 使用 std::vector::reserve 减少内存重新分配 (pr#26478, xie xingguo)
core: osd/OSD: 如果我们卡在 __waiting_for_healthy__,则 ping 监视器 (pr#23958, xie xingguo)
core: osd/OSD: 为 _get_pgs/_get_pgids 预分配以避免重新分配 (pr#25434, Jianpeng Ma)
core: osd/PG: 异步恢复应遵守历史缺失对象 (pr#24004, xie xingguo)
core: osd/PG.cc: 无论 last_complete 如何,都计算缺失集 (issue#37919, pr#26175, Neha Ojha)
core: osd/PG: 在 last_peering_reset 周期从激活创建新的 PG (issue#24452, pr#22478, Sage Weil)
core: osd/PG: 不选择 stray osd 作为 async_recovery_targets (pr#22330, Neha Ojha)
core: osd/PG: 修复误用 FORCE_RECOVERY[BACKFILL] 标志 (issue#27985, pr#23904, xie xingguo)
core: osd/PGLog.cc: 检查 complete_to 是否指向 log.end() (pr#23450, Neha Ojha)
core: osd/PGLog: trim - 避免解引用无效迭代器 (pr#23546, xie xingguo)
core: osd/PG: 移除未使用的函数 (pr#26155, Kefu Chai)
core: osd/PG: osd down->up 时重置 PG;标准化查询处理 (issue#24373, pr#22456, Sage Weil)
core: osd/PG: 限制 async_recovery_targets 为 up osd (pr#22664, Neha Ojha)
core: osd/PG: 如果使用 local-les,则取消设置 history_les_bound (pr#22524, Kefu Chai)
core: osd/PG: 在删除与合并竞争后恢复 PG 时写入 pg epoch (issue#35923, pr#24061, Sage Weil)
core: osd/PrimaryLogPG: 不计算 delta_stats 中失败的读取 (pr#25687, Kefu Chai)
core: osd/PrimaryLogPG: 修复 manifest 刷新时的 last_peering_reset 检查 (pr#26778, xie xingguo)
core: osd/PrimaryLogPG: 修复 stray clone 上的 on_local_recover 崩溃 (pr#22396, Sage Weil)
core: osd/PrimaryLogPG: 修复潜在的 pg-log 过度修剪 (pr#23317, xie xingguo)
core: osd/PrimaryLogPG: 修复同步读取的 extent 长度错误 (pr#25584, Xiaofei Cui)
core: osd/PrimaryLogPG: 修复 try_flush_mark_clean 写入竞争情况 (issue#24174, pr#22084, Sage Weil)
core: osd/PrimaryLogPG: 优化恢复顺序 (pr#23587, xie xingguo)
core: osd/PrimaryLogPG: 更仔细地更新 missing_loc (issue#35546, pr#23895, xie xingguo)
core: osd/ReplicatedBackend: 移除无用的 assert (pr#21243, Jianpeng Ma)
core: osd/Session: 修复 Session::have_backoff() 中无效迭代器解引用 (issue#24486, pr#22497, Sage Weil)
core: osd: 将 "debug dump_missing" 输出写入 stdout (pr#21960, Коренберг Маркr)
core: os/kstore: 支持 db 统计 (pr#21487, Yang Honggang)
core: os/memstore: 使用 ceph::mutex 和相关函数 (pr#26026, Kefu Chai)
core,performance: core: 避免在 OSD 热路径上不必要的 OSDMap 引用计数 (pr#24743, Radoslaw Zarzynski)
core,performance: msg/async: 避免在 write_lock 中放置消息 (pr#20731, Haomai Wang)
core,performance: os/bluestore: 使 osd shard-thread 执行 oncommits (pr#22739, Jianpeng Ma)
core,performance: osd/filestore: 将默认 filestore_merge_threshold 更改为 -10 (issue#24686, pr#22761, Douglas Fuller)
core,performance: osd/OSDMap: 在 calc_pg_upmaps 中以较小的批次映射 pgs (pr#23734, huangjun)
core: PG: 回填完成后释放预留 (issue#23614, pr#22255, Neha Ojha)
core: pg 停留在 backfill_wait,磁盘空间充足 (issue#38034, pr#26375, xie xingguo, David Zafman)
core,pybind: pybind/rados: 用于操作自管理快照的新方法 (pr#22579, Jason Dillaman)
core: qa/suites/rados: 小幅修复 (pr#22195, Neha Ojha)
core: qa/suites/rados/thrash-erasure-code*/thrashers/*: 不太可能注入 resv 拒绝 (pr#24667, Sage Weil)
core: qa/suites/rados/thrash-old-clients: 仅限 centos 和 16.04 (pr#22106, Sage Weil)
core: qa/suites: 在 cfuse_workunit_suites_fsync.yaml 中设置 osd_pg_log_dups_tracked (pr#21909, Neha Ojha)
core: qa/suites/upgrade/luminous-x: 禁用版本之间的 c-o-t 导入/导出测试 (issue#38294, pr#27018, Sage Weil)
core: qa/suites/upgrade/mimic-x/parallel: 启用所有类 (pr#27011, Sage Weil)
core: qa/workunits/mgr/test_localpool.sh: 使用新的配置语法 (pr#22496, Sage Weil)
core: qa/workunits/rados/test_health_warnings: 防止 osd 出错 (issue#37776, pr#25732, Sage Weil)
core: rados.pyx: 使所有异常接受关键字参数 (issue#24033, pr#21853, Rishabh Dave)
core: rados: 在 'lock info' 中返回旧地址 (pr#26150, Jason Dillaman)
core: scrub 警告检查错误地使用了 mon scrub interval (issue#37264, pr#25112, David Zafman)
core: src: 用户命令输出中没有 'dne' 首字母缩写 (pr#21094, Gu Zhongyan)
core,tests: 测试和日志输出中的小幅清理 (issue#38631, issue#38678, pr#26899, David Zafman)
core,tests: qa/overrides/short_pg_log.yaml: 减少 osd_{min,max}_pg_log_entries (issue#38025, pr#26101, Neha Ojha)
core,tests: qa/suites/rados/thrash: 在 rados_api_tests 中将 crush_tunables 更改为 jewel (issue#38042, pr#26122, Neha Ojha)
core,tests: qa/suites/upgrade/luminous-x: 少量修复 (pr#22092, Sage Weil)
core,tests: qa/tests: 设置 ansible-version: 2.5 (issue#24926, pr#23123, Yuri Weinstein)
core,tests: 删除损坏副本的快照会导致 osd 崩溃 (issue#23875, pr#22476, David Zafman)
core,tests: test: 验证日志修剪是否修剪了 dup_index (pr#26533, Brad Hubbard)
core,tools: osdmaptool: 修复错误的 test_map_pgs_dump_all 输出 (pr#22280, huangjun)
core,tools: rados: 为用户提供更有意义的错误消息 (pr#26275, Mykola Golub)
core,tools: tools/rados: 允许重用对象进行写入测试 (pr#25128, Li Wang)
core: vstart.sh: 在 Ceph 开发部署中支持 SPDK (pr#22975, tone.zhang)
crimson: 添加 MonClient (pr#23849, Kefu Chai)
crimson: 使用 LRU 缓存缓存 osdmap (pr#26254, Kefu Chai, Jianpeng Ma)
crimson/common: 也在 shard.0 上应用配置更改 (pr#23631, Yingxin)
crimson/connection: 杂项更改 (pr#23044, Kefu Chai)
crimson: crimson/mon: 从 mon::Client::authenticate() 移除超时支持 (pr#24660, Kefu Chai)
crimson/mon: 将 mon::Connection 移入 .cc (pr#24619, Kefu Chai)
crimson/net: SocketMessenger 的并发调度 (pr#24090, Casey Bodley)
crimson/net: 使用状态封装协议实现 (pr#25176, Yingxin, Kefu Chai)
crimson/net: 使用状态封装协议实现 (剩余部分) (pr#25207, Yingxin)
crimson/net: 修复 banner 交换期间的地址 (pr#25580, Yingxin)
crimson/net: 修复 test_alien_echo.cc 中的编译错误 (pr#24629, Yingxin)
crimson/net: 修复 crimson msgr 错误泄漏到调用者 (pr#25716, Yingxin)
crimson/net: 修复段错误和测试失败的杂项问题 (pr#25939, Yingxin Cheng, Kefu Chai)
crimson/net: 修复 promise on_message 的竞争问题 (pr#24097, Yingxin)
crimson/net: 修复 unittest_seastar_messenger 错误 (pr#23539, Yingxin)
crimson/net: 实现接受/连接状态 (pr#24608, Yingxin)
crimson/net: seastar-msgr 的杂项修复和功能 (pr#23816, Yingxin, Casey Bodley)
crimson/net: crimson-messenger 测试的杂项修复和功能 (pr#26221, Yingxin Cheng)
crimson/net: seastar-msgr 重构 (pr#24576, Yingxin)
crimson/net: s/repeat/keep_doing/ (pr#23898, Kefu Chai)
crimson/osd: 添加心跳支持 (pr#26222, Kefu Chai)
crimson/osd: 添加更多心跳对等体 (pr#26255, Kefu Chai)
crimson/osd: 纠正传递给 OSD::_preboot() 的参数顺序 (pr#26774, chunmei Liu)
crimson/osd: crimson osd 驱动程序 (pr#25304, Radoslaw Zarzynski, Kefu Chai)
crimson/osd: 从 ms_get_authorizer() 中移除 "force_new" (pr#26054, Kefu Chai)
crimson/osd: 在启动时发送已知地址 (pr#26452, Kefu Chai)
crimson: 持久化/从存储加载 osdmap (pr#26090, Kefu Chai)
crimson: 将 messenger 移植到 seastar (pr#22491, Kefu Chai, Casey Bodley)
crimson/thread: 添加线程池 (pr#22565, Kefu Chai)
crimson/thread: 将线程池固定到给定的 CPU (pr#22776, Kefu Chai)
crush/CrushWrapper: 静默编译器警告 (pr#25336, Li Wang)
crush: 修复未填充/空权重集的 device_class_clone (issue#23386, pr#22127, Sage Weil)
crush: 修复内存泄漏 (pr#25959, xie xingguo)
crush: 修复 upmap 过度清除 (issue#37968, pr#26179, xie xingguo)
dashboard/mgr: 保存按钮不会阻止保存无效表单 (issue#36426, pr#24577, Patrick Nawracay)
dashboard: 如果费率不可用,则返回浮点数 (pr#22313, Boris Ranto)
doc: 将 Ceph Manager Dashboard 添加到顶层 TOC (pr#26390, Nathan Cutler)
doc: 添加 ceph-volume 盘点部分 (pr#25092, Jan Fajerski)
doc: 添加 iostat 文档 (pr#22034, Mohamad Gebai)
doc: 添加了演示文档更改部分 (pr#24791, James McClune)
doc: 添加 rbd 默认功能 (pr#24720, Gaurav Sitlani)
doc: 添加了一些 Civetweb 配置选项 (pr#24073, Anton Oks)
doc: 添加了一些关于如何使用 ccache 进一步加速构建的提示 (pr#25394, Lenz Grimmer)
doc: 添加关于使用 "serve-doc" 预览构建文档的说明 (pr#24471, Kefu Chai)
doc: 添加 mds 状态转换图 (issue#22989, pr#22996, Patrick Donnelly)
doc: 添加 ceph osd pool stats 的提及 (pr#25575, Thore Kruess)
doc: 添加缺失的 12.2.11 发行说明 (pr#26596, Nathan Cutler)
doc: 添加关于 LVM 卷的注释到 ceph-deploy 快速入门 (pr#23879, David Wahler)
doc: 添加 12.2.11 luminous 的发行说明 (pr#26228, Abhishek Lekshmanan)
doc: 为子命令引用添加空格 (pr#24669, James McClune)
doc: 为 rbd-nbd 添加 "--timeout" 选项 (pr#24302, Stefan Kooman)
doc/bluestore: 修复压缩部分中的小拼写错误 (pr#22874, David Disseldorp)
doc: 故障排除监视器页面上的链接损坏 (pr#25312, James McClune)
doc: 提高 sphinx 和 pyyaml 版本 (pr#26044, Kefu Chai)
doc: ceph-deploy 将不再支持 --cluster 选项 (pr#26471, Tatsuya Naganawa)
doc: ceph: 在 ceph man 页面中描述应用程序子命令 (pr#20645, Rishabh Dave)
doc: ceph-iscsi-api 端口不应面向公众 (pr#24248, Jason Dillaman)
doc: ceph-volume 更好地描述了从 ceph-disk 迁移的选项 (issue#24036, pr#21890, Alfredo Deza)
doc: ceph-volume dmcrypt 和 activate --all 文档更新 (issue#24031, pr#22062, Alfredo Deza)
doc: ceph-volume: 解释 ceph-disk 被替换的原因 (pr#23194, Alfredo Deza)
doc: ceph-volume: lvm batch 文档和 man 页面更新 (issue#24970, pr#23443, Alfredo Deza)
doc: ceph-volume: 更新批处理文档以解释 filestore 策略 (issue#34309, pr#23785, Alfredo Deza)
doc: ceph-volume: zfs, 首次提交 (pr#23674, Willem Jan Withagen)
doc: 清理了 OSD 故障排除文档 (pr#23519, James McClune)
doc: 清理 ServiceDescription 中的字段名称并添加服务字段 (pr#26006, Jeff Layton)
doc: 清理: 修剪 Argonaut 特定的措辞 (pr#22899, Nathan Cutler)
doc: 清理渲染语法 (pr#22389, Mahati Chamarthy)
doc: 清理快照一致性说明 (pr#25655, Greg Farnum)
doc: common,mon: 添加隐式 #include 头文件 (pr#23930, Kefu Chai)
doc: common/options: 添加 osd 对象存储后端描述 (issue#24147, pr#22040, Alfredo Deza)
doc: 更正 iscsiadm 命令选项 (pr#26395, ZhuJieWen)
doc: 更正 rbytes 描述 (pr#24966, Xiang Dai)
doc: 描述 RBD QoS 设置 (pr#25202, Mykola Golub)
doc: doc/bluestore: 数据不使用两个分区 (ceph-disk 时代) (pr#22604, Alfredo Deza)
doc: doc/cephfs: 修正 add/remove mds 文档 (pr#23836, liu wei)
doc: doc/cephfs: 移除关于 multimds 的“实验性”注释 (pr#22852, John Spray)
doc: doc/dashboard: 不建议 mgr_initial_modules (pr#22808, John Spray)
doc: doc/dashboard: 修复 Grafana 指令的格式问题-2 (pr#22706, Jos Collin)
doc: doc/dashboard: 修复 Grafana 指令的格式问题 (pr#22657, John Spray)
doc: doc/dev/cephx_protocol: 修复几个错误 (pr#23750, Kefu Chai)
doc: doc/dev/index: 更新 rados 引导 (pr#24160, Josh Durgin)
doc: doc/dev/msgr2.rst: banner 和认证阶段的更新 (pr#20094, Ricardo Dias)
doc: doc/dev/seastore.rst: 初步草稿说明 (pr#21381, Sage Weil)
doc: doc/dev: 更新了组件负责人表 (pr#24238, Lenz Grimmer)
doc: doc: 修复 releases/schedule.rst 中的链接 (pr#22364, Kefu Chai)
doc: doc/man: 在 rados man 页面中提及 import 和 export 命令 (issue#4640, pr#23186, Nathan Cutler)
doc: doc: 在 Mimic 发行说明中提及 PURGED_SNAPDIRS 和 RECOVERY_DELETES (pr#22711, Florian Haas)
doc: doc/mgr/dashboard: 修复 mgr ssl 设置中的拼写错误 (pr#24790, Mehdi Abaakouk)
doc: doc/mgr: 提及如何清除配置设置 (pr#22157, John Spray)
doc: doc/mgr: 插件中需要 module.py 文件 (pr#22622, John Spray)
doc: doc/mgr/orchestrator: 添加架构图像 (pr#26331, Sebastian Wagner, Kefu Chai)
doc: doc/mgr/orchestrator: 添加 wal 到 blink lights (pr#25634, Sebastian Wagner)
doc: doc/mgr/prometheus: 重新添加关于自定义实例标签的部分 (pr#25182, Jan Fajerski)
doc: doc/orchestrator: 将文档与规范对齐 (pr#25893, Sebastian Wagner)
doc: doc/orchestrator: 将 CLI 规范集成到文档中 (pr#25119, Sebastian Wagner)
doc: doc: purge 子命令链接损坏 (pr#24785, James McClune)
doc: doc/rados: 添加 bluestore 内存自动调优文档 (pr#25069, Mark Nelson)
doc: doc/rados/configuration: 添加 osd scrub {begin,end} week day (pr#25924, Neha Ojha)
doc: doc/rados/configuration/msgr2: 关于 msgr2 的一些文档 (pr#26867, Sage Weil)
doc: doc/rados/configuration: 刷新 osdmap 部分 (pr#26120, Ilya Dryomov)
doc: doc/rados: 修正 troubleshooting-mon.rst 中的 osd 路径 (pr#24964, songweibin)
doc: doc/rados: 修复命中集类型链接 (pr#23833, James McClune)
doc: doc/radosgw/s3.rst: 将 AWS S3 Storage Class 添加为 Not Supported (pr#19571, Katie Holly)
doc: doc/rados/operations: 添加 balancer.rst 到 TOC (pr#23684, Kefu Chai)
doc: doc/rados/operations: 添加 clay 到 erasure-code-profile (pr#26902, Kefu Chai)
doc: doc/rados/operations/crush-map-edits: 修复 'take' 语法 (pr#24868, Remy Zandwijk, Sage Weil)
doc: doc/rados/operations/pg-states: 修复 PG 状态名称,第 2 部分 (pr#23165, Nathan Cutler)
doc: doc/rados/operations/pg-states: 修复 PG 状态名称 (pr#21520, Jan Fajerski)
doc: doc/rados: 更新 bluestore 迁移上无效的 bash (issue#34317, pr#23801, Alfredo Deza)
doc: doc/rbd: 纠正 Glance 池的 OpenStack Cinder 权限 (pr#22443, Jason Dillaman)
doc: doc/rbd: 明确指出镜像需要与集群的连接 (pr#24433, Jason Dillaman)
doc: doc/rbd/iscsi-target-cli: 更新 auth 命令 (pr#26788, Ricardo Marques)
doc: doc/rbd/iscsi-target-cli: 更新磁盘分隔符 (pr#26669, Ricardo Marques)
doc: doc/release/luminous: v12.2.6 和 v12.2.7 发行说明 (pr#23057, Abhishek Lekshmanan, Sage Weil)
doc: doc/releases: 添加 luminous 版本 12.2.9 和 10 (pr#25361, Brad Hubbard)
doc: doc/releases: 添加 Mimic 版本 13.2.2 (pr#24509, Brad Hubbard)
doc: doc/releases: 标记 Jewel EOL (pr#23698, Brad Hubbard)
doc: doc/releases: 将 Mimic 首次发布标记为六月 (pr#24099, Brad Hubbard)
doc: doc/releases/mimic.rst: 注意 13.2.2 升级错误 (pr#24979, Neha Ojha)
doc: doc/releases/mimic: 调整 RBD 主要功能 (pr#22011, Jason Dillaman)
doc: doc/releases/mimic: 更新了仪表板描述 (pr#22016, Lenz Grimmer)
doc: doc/releases/mimic: 升级步骤 (pr#21987, Sage Weil)
doc: doc/releases/nautilus: 仪表板软件包说明 (pr#26815, Kefu Chai)
doc: doc/releases/schedule: 添加 Luminous 12.2.8 (pr#23972, Brad Hubbard)
doc: doc/releases/schedule: 添加 mimic 列 (pr#22006, Sage Weil)
doc: doc/releases: 更新版本到 2018 年 8 月 (pr#23360, Brad Hubbard)
doc: doc/rgw: 文档化放置目标和存储类 (issue#24508, issue#38008, pr#26997, Casey Bodley)
doc: docs: 添加 Clay 代码插件文档 (pr#24422, Myna)
doc: docs: 修复 swift 客户端认证失败 (pr#23729, Dai Dang Van)
doc: docs: radosgw: ldap-auth: 修复选项名称 'rgw_ldap_searchfilter' (issue#23081, pr#20526, Konstantin Shalygin)
doc: doc/start: fix kube-helm.rst typo: docuiment -> document (pr#23423, Zhou Peng)
doc: doc/SubmittingPatches.rst: use Google style guide for doc patches (pr#22190, Nathan Cutler)
doc: Document correction (pr#23926, Gangbiao Liu)
doc: Document mappings of S3 Operations to ACL grants (pr#26827, Adam C. Emerson)
doc: document sizing for block.db (pr#23210, Alfredo Deza)
doc: document vstart options (pr#22467, Mao Zhongyi)
doc: doc/user-management: Remove obsolete reset caps command (issue#37663, pr#25550, Brad Hubbard)
doc: edit on github (pr#24452, Neha Ojha, Noah Watkins)
doc: erasure-code-clay fixes typos (pr#24653, Myna)
doc: erasure-code-jerasure: removed default section of crush-device-class (pr#21279, Junyoung Sung)
doc: examples/librados: Remove not needed else clauses (pr#24939, Marcos Paulo de Souza)
doc: explain ‘firstn v indep’ in the CRUSH docs (pr#24255, Greg Farnum)
doc: Fix a couple typos and improve diagram formatting (pr#23496, Bryan Stillwell)
doc: fix a typo in doc/mgr/telegraf.rst (pr#22267, Enming Zhang)
doc: fix cephfs spelling errors (pr#23763, Chen Zhenghua)
doc: fix/cleanup freebsd osd disk creation (pr#23600, Willem Jan Withagen)
doc: Fix Create a Cluster url in Running Multiple Clusters (issue#37764, pr#25705, Jos Collin)
doc: Fix EC k=3 m=2 profile overhead calculation example (pr#20581, Charles Alva)
doc: fixed broken urls (pr#23564, James McClune)
doc: fixed grammar in restore rbd image section (pr#22944, James McClune)
doc: fixed links in Pools section (pr#23431, James McClune)
doc: fixed minor typo in Debian packages section (pr#22878, James McClune)
doc: fixed restful mgr module SSL configuration commands (pr#21864, Lenz Grimmer)
doc: Fixed spelling errors in configuration section (pr#23719, Bryan Stillwell)
doc: Fixed syntax in iscsi initiator windows doc (pr#25467, Michel Raabe)
doc: Fixed the paragraph and boxes (pr#25094, Scoots Hamilton)
doc: Fixed the wrong numbers in mgr/dashboard.rst (pr#22658, Jos Collin)
doc: fixed typo in add-or-rm-mons.rst (pr#26250, James McClune)
doc: fixed typo in cephfs snapshots (pr#23764, Kai Wagner)
doc: fixed typo in CRUSH map docs (pr#25953, James McClune)
doc: fixed typo in man page (pr#24792, James McClune)
doc: Fix incorrect mention of ‘osd_deep_mon_scrub_interval’ (pr#26522, Ashish Singh)
doc: Fix iSCSI docs URL (pr#26296, Ricardo Marques)
doc: fix iscsi target name when configuring target (pr#21906, Venky Shankar)
doc: fix long description error for rgw_period_root_pool (pr#23814, yuliyang)
doc: fix some it’s -> its typos (pr#22802, Brad Fitzpatrick)
doc: Fix some typos (pr#25060, mooncake)
doc: Fix Spelling Error In File “ceph.rst” (pr#23917, Gangbiao Liu)
doc: Fix Spelling Error In File dynamicresharding.rst (pr#24175, xiaomanh)
doc: Fix Spelling Error of Rados Deployment/Operations (pr#23746, Li Bingyang)
doc: Fix Spelling Error of Radosgw (pr#23948, Li Bingyang)
doc: Fix Spelling Error of Radosgw (pr#24000, Li Bingyang)
doc: Fix Spelling Error of Radosgw (pr#24021, Li Bingyang)
doc: Fix Spelling Error of Rados Operations (pr#23891, Li Bingyang)
doc: Fix Spelling Error of Rados Operations (pr#23900, Li Bingyang)
doc: Fix Spelling Error of Rados Operations (pr#23903, Li Bingyang)
doc: fix spelling errors in rbd doc (pr#23765, Chen Zhenghua)
doc: fix spelling errors of cephfs (pr#23745, Chen Zhenghua)
doc: fix the broken urls (issue#25185, pr#23310, Jos Collin)
doc: fix the formatting of HTTP Frontends documentation (pr#25723, James McClune)
doc: fix typo and format issues in quick start documentation (pr#23705, Chen Zhenghua)
doc: fix typo in add-or-rm-mons (pr#25661, Jos Collin)
doc: Fix typo in ceph-fuse(8) (pr#22214, Jos Collin)
doc: fix typo in erasure coding example (pr#25737, Arthur Liu)
doc: Fix typos in Developer Guide (pr#24067, Li Bingyang)
doc: fix typos in doc/releases (pr#24186, Li Bingyang)
doc: */: fix typos in docs,messages,logs,comments (pr#24139, Kefu Chai)
doc: Fix Typos of Developer Guide (pr#24094, Li Bingyang)
doc: fix typos (pr#22174, Mao Zhongyi)
doc: .githubmap, .mailmap, .organizationmap: update contributors (pr#24756, Tiago Melo)
doc: githubmap, organizationmap: cleanup and add/update contributors/affiliation (pr#22734, Tatjana Dehler)
doc: give pool name if default pool rbd is not created (pr#24750, Changcheng Liu)
doc: Improve docs osd_recovery_priority, osd_recovery_op_priority and related (pr#26705, David Zafman)
doc: Improve OpenStack integration and multitenancy docs for radosgw (issue#36765, pr#25056, Florian Haas)
doc: install build-doc deps without git clone (pr#24416, Noah Watkins)
doc: Luminous v12.2.10 release notes (pr#25034, Nathan Cutler)
doc: Luminous v12.2.9 release notes (pr#24779, Nathan Cutler)
doc: make it easier to reach the old dev doc TOC (pr#23253, Nathan Cutler)
doc: mention CVEs in luminous v12.2.11 release notes (pr#26312, Nathan Cutler, Abhishek Lekshmanan)
doc: mgr/dashboard: Add documentation about supported browsers (issue#27207, pr#23712, Tiago Melo)
doc: mgr/dashboard: Added missing tooltip to settings icon (pr#23935, Lenz Grimmer)
doc: mgr/dashboard: Add hints to resolve unit test failures (pr#23627, Stephan Müller)
doc: mgr/dashboard: Cleaner notifications (pr#23315, Stephan Müller)
doc: mgr/dashboard: Cleanup of summary refresh test (pr#25504, Stephan Müller)
doc: mgr/dashboard: Document custom RESTController endpoints (pr#25322, Stephan Müller)
doc: mgr/dashboard: Fixed documentation link on RGW page (pr#24612, Tina Kallio)
doc: mgr/dashboard: Fix some setup steps in HACKING.rst (pr#24788, Ranjitha G)
doc: mgr/dashboard: Improve prettier scripts and documentation (pr#22994, Tiago Melo)
doc: mgr/dashboard/qa: add missing dashboard suites (pr#25084, Tatjana Dehler)
doc: mgr/dashboard: updated SSO documentation (pr#25943, Alfonso Martínez)
doc: mgr/dashboard: Update I18N documentation (pr#25159, Tiago Melo)
doc: mgr/orch: Fix remote_host doc reference (issue#38254, pr#26360, Ernesto Puerta)
doc/mgr/plugins.rst: explain more about the plugin command protocol (pr#22629, Dan Mick)
doc: mimic is stable! (pr#22350, Abhishek Lekshmanan)
doc: mimic rc1 release notes (pr#20975, Abhishek Lekshmanan)
doc: Multiple spelling fixes (pr#23514, Bryan Stillwell)
doc: numbered eviction situations (pr#24618, Scoots Hamilton)
doc: osdmaptool/cleanup: Completed osdmaptool’s usage (issue#3214, pr#13925, Vedant Nanda)
doc: osd/PrimaryLogPG: avoid dereferencing invalid complete_to (pr#23894, xie xingguo)
doc: osd/PrimaryLogPG: rename list_missing -> list_unfound command (pr#23723, xie xingguo)
doc: PendingReleaseNotes: note newly added CLAY code (pr#24491, Kefu Chai)
doc: print pg peering in SVG instead of PNG (pr#20366, Aleksei Gutikov)
doc: Put command template into literal block (pr#24999, Alexey Stupnikov)
doc: qa/mgr/selftest: handle always-on module fall out (issue#26994, pr#23681, Noah Watkins)
doc: qa: Task to emulate network delay and packet drop between two given h… (pr#23602, Shilpa Jagannath)
doc: qa/workunits/rbd: replace usage of ‘rados rmpool’ (pr#23942, Mykola Golub)
doc: release/mimic: correct the changelog to the latest version (pr#22319, Abhishek Lekshmanan)
doc: release notes for 12.2.8 luminous (pr#23909, Abhishek Lekshmanan)
doc: release notes for 13.2.2 mimic (pr#24266, Abhishek Lekshmanan)
doc: releases: mimic 13.2.1 release notes (pr#23288, Abhishek Lekshmanan)
doc: releases: release notes for v10.2.11 Jewel (pr#22989, Abhishek Lekshmanan)
doc: remove CZ mirror (pr#21797, Tomáš Kukrál)
doc: remove deprecated ‘scrubq’ from ceph(8) (issue#35813, pr#23959, Ruben Kerkhof)
doc: remove documentation for installing google-perftools on Debian systems (pr#22701, James McClune)
doc: remove duplicate python packages (pr#22203, Stefan Kooman)
doc: Remove upstart files and references (pr#23582, Brad Hubbard)
doc: Remove value ‘mon_osd_max_split_count’ (pr#26584, Kai Wagner)
doc: replace rgw_namespace_expire_secs with rgw_nfs_namespace_expire_secs (pr#20794, chnmagnus)
doc: rewrote the iscsi-target-cli installation (pr#23190, Massimiliano Cuttini)
doc: rgw: fix tagging support status (issue#24164, pr#22206, Abhishek Lekshmanan)
doc: rgw: fix the default value of usage log setting (issue#37856, pr#25892, Abhishek Lekshmanan)
doc: Rook/orchestrator doc fixes (pr#23472, John Spray)
doc: s/doc/ref for dashboard urls (pr#22772, Jos Collin)
doc: sort releases by date and version (pr#25972, Noah Watkins)
doc: Spelling fixes in BlueStore config reference (pr#23715, Bryan Stillwell)
doc: Spelling fixes in Network config reference (pr#23727, libingyang)
doc: SubmittingPatches: added inline markup to important references (pr#25978, James McClune)
docs: update rgw info for mimic (pr#22305, Yehuda Sadeh)
doc: test/crimson: do not use unit.cc as the driver of unittest_seastar_denc (pr#23937, Kefu Chai)
doc: test/fio: Added tips for compilation of fio with ‘rados’ engine (pr#24199, Adam Kupczyk)
doc: test/msgr: add missing #include (pr#23947, Kefu Chai)
doc: Tidy up description wording and spelling (pr#22599, Anthony D’Atri)
doc: tweak RBD iSCSI docs to point to merged tooling repo (pr#24963, Jason Dillaman)
doc: typo fixes, s/Requered/Required/ (pr#26406, Drunkard Zhang)
doc: update blkin changes (pr#22317, Mahati Chamarthy)
doc: Update cpp.rst to accommodate the new APIs in libs3 (pr#22162, Zhanhao Liu)
doc: Updated Ceph Dashboard documentation (pr#26626, Lenz Grimmer)
doc: updated Ceph documentation links (pr#25797, James McClune)
doc: updated cluster map reference link (pr#24460, James McClune)
doc: updated crush map tunables link (pr#24462, James McClune)
doc: Updated dashboard documentation (features, SSL config) (pr#22059, Lenz Grimmer)
doc: Updated feature list and overview in dashboard.rst (pr#26143, Lenz Grimmer)
doc: updated get-involved.rst for ceph-dashboard (pr#22663, Jos Collin)
doc: Updated Mgr Dashboard documentation (pr#24030, Lenz Grimmer)
doc: updated multisite documentation (issue#26997, pr#23660, James McClune)
doc: updated reference link for creating new disk offerings in cloudstack (pr#22250, James McClune)
doc: updated reference link for log based PG (pr#26611, James McClune)
doc: updated rgw multitenancy link (pr#25929, James McClune)
doc: updated the overview and glossary for dashboard (pr#22750, Jos Collin)
doc: updated wording from federated to multisite (pr#24670, James McClune)
doc: Update mgr/zabbix plugin documentation with link to Zabbix template (pr#24584, Wido den Hollander)
doc: update the description for SPDK in bluestore-config-ref.rst (pr#22365, tone-zhang)
doc: use :command: for subcommands in ceph-bluestore-tool manpage (issue#24800, pr#23114, Nathan Cutler)
doc: use preferred commands for ceph config-key (pr#26527, Changcheng Liu)
doc: warn about how ‘rados put’ works in the manpage (pr#25757, Greg Farnum)
doc: Wip githubmap (pr#25950, Greg Farnum)
erasure-code,test: silence -Wunused-variable warnings (pr#25200, Kefu Chai)
example/librados: remove dependency on Boost system library (issue#25054, pr#23159, Nathan Cutler)
githubmap: update contributors (pr#22522, Kefu Chai)
git: Ignore tags anywhere (pr#26159, David Zafman)
include/buffer.h: do not use ceph_assert() unless __CEPH__ is defined (pr#23803, Kefu Chai)
install-deps.sh: Fixes for RHEL 7 (pr#26393, Zack Cerza)
kv/MemDB: add perfcounter (pr#10305, Jianpeng Ma)
librados: add a rados_omap_iter_size function (issue#26948, pr#23593, Jeff Layton)
librados: block MgrClient::start_command until mgrmap (pr#21811, John Spray, Kefu Chai)
librados: fix admin/build-doc warning (pr#25706, Jos Collin)
librados: fix buffer overflow for aio_exec python binding (pr#21775, Aleksei Gutikov)
librados: fix unitialized timeout in wait_for_osdmap (pr#24721, Casey Bodley)
librados: Include memory for unique_ptr definition (issue#35833, pr#23992, Brad Hubbard)
librados: Reject the invalid pool create request at client side, rath… (pr#21299, Yang Honggang)
librados: return ENOENT if pool_id invalid (pr#21609, Li Wang)
librados: split C++ and C APIs into different source files (pr#24616, Kefu Chai)
librados: use ceph::async::Completion for asio bindings (pr#21920, Casey Bodley)
librados: use steady clock for rados_mon_op_timeout (pr#20004, Mohamad Gebai)
librbd: add missing shutdown states to managed lock helper (issue#38387, pr#26523, Jason Dillaman)
librbd: add new configuration option to always move deleted items to the trash (pr#24476, Jason Dillaman)
librbd: add rbd image access/modified timestamps (pr#21114, Julien Collet)
librbd: add trash purge api calls (pr#24427, Julien Collet, Theofilos Mouratidis, Jason Dillaman)
librbd: always open first parent image if it exists for a snapshot (pr#23733, Jason Dillaman)
librbd: avoid aggregate-initializing any static_visitor (pr#26876, Willem Jan Withagen)
librbd: blacklisted client might not notice it lost the lock (issue#34534, pr#23829, Jason Dillaman)
librbd: block_name_prefix is not created randomly (issue#24634, pr#22675, hyun-ha)
librbd: bypass pool validation if “rbd_validate_pool” is false (pr#26878, Jason Dillaman)
librbd: commit IO as safe when complete if writeback cache is disabled (issue#23516, pr#22342, Jason Dillaman)
librbd: corrected usage of ImageState::open flag parameter (pr#25428, Mykola Golub)
librbd: deep_copy: don’t hide parent if zero overlap for snapshot (issue#24545, pr#22587, Mykola Golub)
librbd: deep copy optionally support flattening cloned image (issue#22787, pr#21624, Mykola Golub)
librbd: deep_copy: resize head object map if needed (issue#24399, pr#22415, Mykola Golub)
librbd: deep-copy should not write to objects that cannot exist (issue#25000, pr#23132, Jason Dillaman)
librbd: disable image mirroring when moving to trash (pr#25509, Mykola Golub)
librbd: disallow trash restoring when image being migrated (pr#25529, songweibin)
librbd: don’t do create+truncate for discards with copyup (pr#26825, Ilya Dryomov)
librbd: ensure compare-and-write doesn’t skip compare after copyup (issue#38383, pr#26519, Ilya Dryomov)
librbd: extend API to include parent/child namespaces and image ids (issue#36650, pr#25194, Jason Dillaman)
librbd: fix crash when opening nonexistent snapshot (issue#24637, pr#22676, Mykola Golub)
librbd: fixed assert when flattening clone with zero overlap (issue#35702, pr#24045, Jason Dillaman)
librbd: fix missing unblock_writes if shrink is not allowed (issue#36778, pr#25055, runsisi)
librbd: fix possible unnecessary latency when requeue request (pr#23815, Song Shun)
librbd: fix potential live migration after commit issues due to not refreshed image header (pr#23839, Mykola Golub)
librbd: fix were_all_throttled() to avoid incorrect ret-value (issue#38504, pr#26688, Dongsheng Yang)
librbd: flatten operation should use object map (issue#23445, pr#23941, Mykola Golub)
librbd: force ‘invalid object map’ flag on-disk update (issue#24434, pr#22444, Mykola Golub)
librbd: get_parent API method should properly handle migrating image (issue#37998, pr#26337, Jason Dillaman)
librbd: handle aio failure in ManagedLock and PreReleaseRequest (pr#20112, liyichao)
librbd: improve object map performance under high IOPS workloads (issue#38538, pr#26721, Jason Dillaman)
librbd: journaling unable request can not be sent to remote lock owner (issue#26939, pr#23649, Mykola Golub)
librbd: keep access/modified timestamp updates out of IO path (issue#37745, pr#25883, Jason Dillaman)
librbd: make it possible to migrate parent images (pr#25945, Mykola Golub)
librbd: move mirror peer attribute handling from CLI to API (pr#25096, Jason Dillaman)
librbd: namespace create/remove/list support (pr#22608, Jason Dillaman)
librbd: object copy state machine might dereference a deleted object (issue#36220, pr#24293, Jason Dillaman)
librbd: object map improperly flagged as invalidated (issue#24516, pr#24105, Jason Dillaman)
librbd: optionally limit journal in-flight appends (pr#22983, Mykola Golub)
librbd:optionally support FUA (force unit access) on write requests (issue#19366, pr#22945, ningtao)
librbd: pool and image level config overrides (pr#23743, Mykola Golub)
librbd: potential object map race with copyup state machine (issue#24516, pr#24253, Jason Dillaman)
librbd: potential race on image create request complete (issue#24910, pr#23639, Mykola Golub)
librbd: prevent the use of internal feature bits from external users (issue#24165, pr#22072, Jason Dillaman)
librbd: prevent use of namespaces on pre-nautilus OSDs (pr#23823, Jason Dillaman)
librbd: properly filter out trashed non-user images on purge (pr#26079, Mykola Golub)
librbd: properly handle potential object map failures (issue#36074, pr#24179, Jason Dillaman)
librbd: race condition possible when validating RBD pool (issue#38500, pr#26683, Jason Dillaman)
librbd: reduce the TokenBucket fill cycle and support bursting io configuration (pr#24214, Shiyang Ruan)
librbd: remove template declaration of a non-template function (pr#23790, Shiyang Ruan)
librbd: reset snaps in rbd_snap_list() (issue#37508, pr#25379, Kefu Chai)
librbd: restart io if migration parent gone (issue#36710, pr#25175, Mykola Golub)
librbd: send_copyup() fixes and cleanups (pr#26483, Ilya Dryomov)
librbd: simplify config override handling (pr#24450, Jason Dillaman)
librbd: skip small, unaligned discard extents by default (issue#38146, pr#26432, Jason Dillaman)
librbd: support bps throttle and throttle read and write seperately (pr#21635, Dongsheng Yang)
librbd: support migrating images with minimal downtime (issue#18430, issue#24439, issue#26874, issue#23659, pr#15831, Patrick Donnelly, Sage Weil, Alfredo Deza, Kefu Chai, Patrick Nawracay, Pavani Rajula, Mykola Golub, Casey Bodley, Yingxin, Jason Dillaman)
librbd: support v2 cloning across namespaces (pr#23662, Jason Dillaman)
librbd: use object map when doing snap rollback (pr#23110, songweibin)
librbd: utilize the journal disabled policy when removing images (issue#23512, pr#22327, Jason Dillaman)
librbd: validate data pool for self-managed snapshot support (pr#22737, Mykola Golub)
librbd: workaround an ICE of GCC (issue#37719, pr#25733, Kefu Chai)
log: avoid heap allocations for most log entries (pr#23721, Patrick Donnelly)
lvm: when osd creation fails log the exception (issue#24456, pr#22627, Andrew Schoen)
mailmap,organization: Update sangfor affiliation (pr#25225, Zengran Zhang)
mds: add reference when setting Connection::priv to existing session (pr#22384, “Yan, Zheng”)
mds: fix leak of MDSCacheObject::waiting (issue#24289, pr#22307, “Yan, Zheng”)
mds: fix some memory leak (issue#24289, pr#22240, “Yan, Zheng”)
mds,messages: silence -Wclass-memaccess warnings (pr#21845, Kefu Chai)
mds: properly journal root inode’s snaprealm (issue#24343, pr#22320, “Yan, Zheng”)
mds: remove obsolete comments (pr#25549, Patrick Donnelly)
mds: reply session reject for open request from blacklisted client (pr#21941, Yan, Zheng, “Yan, Zheng”)
mgr: Add ability to trigger a cluster/audit log message from Python (pr#24239, Volker Theile)
mgr: Add HandleCommandResult namedtuple (pr#25261, Sebastian Wagner)
mgr: add limit param to osd perf query (pr#25151, Mykola Golub)
mgr: add per pool force-recovery/backfill commands (issue#38456, pr#26560, xie xingguo)
mgr: add per pool scrub commands (pr#26532, xie xingguo)
mgr: Allow modules to get/set other module options (pr#25651, Volker Theile)
mgr: Allow rook to scale the mon count (pr#26405, Jeff Layton)
mgr: always on modules v2 (pr#23970, Noah Watkins)
mgr/ansible: Add/remove hosts (pr#26241, Juan Miguel Olmo Martínez)
mgr/ansible: Replace Ansible playbook used to retrieve storage devices data (pr#26023, Juan Miguel Olmo Martínez)
mgr/ansible: Replace deprecated <get_config> calls (pr#25964, Juan Miguel Olmo Martínez)
mgr: Centralize PG_STATES to MgrModule (pr#22594, Wido den Hollander)
mgr: ceph-mgr: hold lock while accessing the request list and submitting request (pr#25048, Jerry Lee)
mgr: change ‘bytes’ dynamic perf counters to COUNTER type (pr#25908, Mykola Golub)
mgr: create always on class of modules (pr#23106, Noah Watkins)
mgr: create shell OSD performance query class (pr#24117, Mykola Golub)
mgr/dashboard: About modal proposed changes (issue#35693, pr#25376, Kanika Murarka)
mgr/dashboard: Add ability to list,set and unset cluster-wide OSD flags to the backend (issue#24056, pr#21998, Patrick Nawracay)
mgr/dashboard: Add a ‘clear filter’ button to configuration page (issue#36173, pr#25712, familyuu)
mgr/dashboard: add a script to run an API request on a rook cluster (pr#25991, Jeff Layton)
mgr/dashboard: Add a unit test form helper class (pr#24633, Stephan Müller)
mgr/dashboard: Add backend support for changing dashboard configuration settings via the REST API (pr#22457, Patrick Nawracay)
mgr/dashboard: Add breadcrumbs component (issue#24781, pr#23414, Tiago Melo)
mgr/dashboard: add columns to Pools table (pr#25791, Alfonso Martínez)
mgr/dashboard: Add decorator to skip parameter encoding (issue#26856, pr#23419, Tiago Melo)
mgr/dashboard: Add description to menu items on mobile navigation (pr#26198, Sebastian Krah)
mgr/dashboard: added command to tox.ini (pr#26073, Alfonso Martínez)
mgr/dashboard: added ‘env_build’ to ‘npm run e2e’ (pr#26165, Alfonso Martínez)
mgr/dashboard: Added new validators (pr#22526, Stephan Müller)
mgr/dashboard: Add error handling on the frontend (pr#21820, Tiago Melo)
mgr/dashboard: add Feature Toggles (issue#37530, pr#26102, Ernesto Puerta)
mgr/dashboard: Add Filesystems list component (pr#21913, Tiago Melo)
mgr/dashboard: Add filtered rows number in table footer (pr#22504, Tiago Melo)
mgr/dashboard: Add gap between panel footer buttons (pr#23796, Volker Theile)
mgr/dashboard: Add guideline how to brand the UI and update the color scheme (pr#25988, Sebastian Krah)
mgr/dashboard: Add help menu entry (pr#22303, Ricardo Marques)
mgr/dashboard: Add i18n support (pr#24803, Sebastian Krah, Tiago Melo)
mgr/dashboard: Add implicit wait in e2e tests (pr#26384, Tiago Melo)
mgr/dashboard: Add info to Pools table (pr#25489, Alfonso Martínez)
mgr/dashboard: Add iSCSI discovery authentication UI (pr#26320, Tiago Melo)
mgr/dashboard: Add iSCSI Target Edit UI (issue#38014, pr#26367, Tiago Melo)
mgr/dashboard: Add left padding to helper icon (pr#24631, Stephan Müller)
mgr/dashboard: Add missing frontend I18N (issue#36719, pr#25654, Tiago Melo)
mgr/dashboard: Add missing test requirement “werkzeug” (pr#24628, Stephan Müller)
mgr/dashboard: Add NFS status endpoint (issue#38399, pr#26539, Tiago Melo)
mgr/dashboard: Add ‘no-unused-variable’ rule to tslint (pr#22328, Tiago Melo)
mgr/dashboard: Add permission validation to the “Purge Trash” button (issue#36272, pr#24370, Tiago Melo)
mgr/dashboard: Add pool cache tiering details tab (issue#25158, pr#25602, familyuu)
mgr/dashboard: Add Pool update endpoint (pr#21881, Sebastian Wagner, Stephan Müller)
mgr/dashboard: Add Prettier formatter to the frontend (pr#21819, Tiago Melo)
mgr/dashboard: add profiles to set cluster’s rebuild performance (pr#24968, Tatjana Dehler)
mgr/dashboard: add pytest plugin: faulthandler (pr#25053, Alfonso Martínez)
mgr/dashboard: Add REST API for role management (pr#23322, Ricardo Marques)
mgr/dashboard: Add scrub action to the OSDs table (pr#22122, Tiago Melo)
mgr/dashboard: Adds custom timepicker for grafana iframes (pr#25583, Kanika Murarka)
mgr/dashboard: Adds ECP management to the frontend (pr#24627, Stephan Müller)
mgr/dashboard: Add shared Confirmation Modal (pr#22601, Tiago Melo)
mgr/dashboard: add supported flag information to config options documentation (pr#22760, Tatjana Dehler)
mgr/dashboard: Add support for iSCSI’s multi backstores (UI) (pr#26575, Tiago Melo)
mgr/dashboard: Add support for managing individual OSD settings/characteristics in the frontend (issue#36487, issue#36444, issue#35448, issue#36188, issue#35811, issue#35816, issue#36086, pr#24606, Patrick Nawracay)
mgr/dashboard: Add support for managing individual OSD settings in the backend (issue#24270, pr#23491, Patrick Nawracay)
mgr/dashboard: Add support for managing RBD QoS (issue#37572, issue#38004, issue#37570, issue#37936, issue#37574, issue#36191, issue#37845, issue#37569, pr#25233, Patrick Nawracay)
mgr/dashboard: Add support for RBD Trash (issue#24272, pr#23351, Tiago Melo)
mgr/dashboard: Add support for URI encode (issue#24621, pr#22672, Tiago Melo)
mgr/dashboard: Add table actions component (pr#23779, Stephan Müller)
mgr/dashboard: Add table of contents to HACKING.rst (pr#25812, Sebastian Krah)
mgr/dashboard: Add token authentication to Grafana proxy (pr#22459, Patrick Nawracay)
mgr/dashboard: Add TSLint rule “no-unused-variable” (pr#24699, Alfonso Martínez)
mgr/dashboard: Add UI for Cluster-wide OSD Flags configuration (pr#22461, Tiago Melo)
mgr/dashboard: Add UI for disabling ACL authentication (issue#38218, pr#26388, Tiago Melo)
mgr/dashboard: Add UI to configure the telemetry mgr plugin (pr#25989, Volker Theile)
mgr/dashboard: Add unique validator (pr#23802, Volker Theile)
mgr/dashboard: Allow “/” in pool name (issue#38302, pr#26408, Tiago Melo)
mgr/dashboard: Allow insecure HTTPS in run-backend-api-request (pr#21882, Sebastian Wagner)
mgr/dashboard: Allow renaming an existing Pool (issue#36560, pr#25107, guodan1)
mgr/dashboard: Audit REST API calls (pr#24475, Volker Theile)
mgr/dashboard: Auto-create a name for RBD image snapshots (pr#23735, Volker Theile)
mgr/dashboard: avoid blank content in Read/Write Card (pr#25563, Alfonso Martínez)
mgr/dashboard: awsauth: fix python3 string decode problem (pr#21794, Ricardo Dias)
mgr/dashboard: Can’t handle user editing when tenants are specified (pr#24757, Volker Theile)
mgr/dashboard: Catch LookupError when checking the RGW status (pr#24028, Volker Theile)
mgr/dashboard: CdFormGroup (pr#22644, Stephan Müller)
mgr/dashboard: Ceph dashboard user management from the UI (pr#22758, Ricardo Marques)
mgr/dashboard: Change ‘Client Recovery’ title (pr#26883, Ernesto Puerta)
mgr/dashboard: Changed background color of Masthead to brand gray (issue#35690, pr#25628, Neha Gupta)
mgr/dashboard: Changed default value of decimal point to 1 (pr#22386, Tiago Melo)
mgr/dashboard: Change icon color in notifications (pr#26586, Volker Theile)
mgr/dashboard: Check content-type before decode json response (pr#24350, Ricardo Marques)
mgr/dashboard: check for existence of Grafana dashboard (issue#36356, pr#25154, Kanika Murarka)
mgr/dashboard: Cleanup of OSD list methods (pr#24823, Stephan Müller)
mgr/dashboard: Cleanup of the cluster and audit log (pr#26188, Sebastian Krah)
mgr/dashboard: Cleanup (pr#24831, Patrick Nawracay)
mgr/dashboard: Clean up pylint’s disable:no-else-return (pr#26509, Patrick Nawracay)
mgr/dashboard: Cleanup Python code (pr#26743, Volker Theile)
mgr/dashboard: Cleanup RGW config checks (pr#22669, Volker Theile)
mgr/dashboard: Close modal dialogs on login screen (pr#23328, Volker Theile)
mgr/dashboard: code cleanup (pr#25502, Alfonso Martínez)
mgr/dashboard: Color variables for color codes (issue#24575, pr#22695, Kanika Murarka)
mgr/dashboard config options add (issue#34528, issue#24996, issue#24455, issue#36173, pr#23230, Tatjana Dehler)
mgr/dashboard: Config options integration (read-only) depends on #22422 (pr#21460, Tatjana Dehler)
mgr/dashboard: config options table cleanup (issue#34533, pr#24523, Tatjana Dehler)
mgr/dashboard: config option type names update (issue#37843, pr#25876, Tatjana Dehler)
mgr/dashboard: configs textarea disallow horizontal resize (issue#36452, pr#24614, Tatjana Dehler)
mgr/dashboard: Configure all mgr modules in UI (pr#26116, Volker Theile)
mgr/dashboard: Confirmation modal doesn’t close (pr#24544, Volker Theile)
mgr/dashboard: Confusing tilted time stamps in the CephFS performance graph (pr#25909, Volker Theile)
mgr/dashboard: consider config option default values (issue#37683, pr#25616, Tatjana Dehler)
mgr/dashboard: controller infrastructure refactor and new features (pr#22210, Patrick Nawracay, Ricardo Dias)
mgr/dashboard: Correct permission decorator (pr#26135, Tina Kallio)
mgr/dashboard: CRUSH map viewer (issue#35684, pr#24766, familyuu)
mgr/dashboard: CRUSH map viewer RFE (issue#37794, pr#26162, familyuu)
mgr/dashboard: Dashboard info cards refactoring (pr#22902, Alfonso Martínez)
mgr/dashboard: Datatable error panel blinking on page loading (pr#23316, Volker Theile)
mgr/dashboard: Deletion dialog falsely executes deletion when pressing ‘Cancel’ (pr#22003, Volker Theile)
mgr/dashboard: Disable package-lock.json creation (pr#22061, Tiago Melo)
mgr/dashboard: Disable RBD actions during task execution (pr#23445, Ricardo Marques)
mgr/dashboard: disallow editing read-only config options (part 2) (pr#26450, Tatjana Dehler)
mgr/dashboard: disallow editing read-only config options (pr#26297, Tatjana Dehler)
mgr/dashboard: Display logged in user (issue#24822, pr#24213, guodan1, guodan)
mgr/dashboard: Display notification if RGW is not configured (pr#21785, Volker Theile)
mgr/dashboard: Display RGW user/bucket quota max size in human readable form (pr#23842, Volker Theile)
mgr/dashboard: Do not fetch pool list on RBD edit (pr#22404, Ricardo Marques)
mgr/dashboard: Do not require cert for http (issue#36069, pr#24103, Boris Ranto)
mgr/dashboard: Drop iSCSI gateway name parameter (pr#26984, Ricardo Marques)
mgr/dashboard: enable coverage for API tests (pr#26851, Alfonso Martínez)
mgr/dashboard: Escape regex pattern in DeletionModalComponent (issue#24902, pr#23420, Tiago Melo)
mgr/dashboard: Exception.message doesn’t exist on Python 3 (pr#24349, Ricardo Marques)
mgr/dashboard: Extract/Refactor Task merge (pr#23555, Stephan Müller, Tiago Melo)
mgr/dashboard: Filter out tasks depending on permissions (pr#25426, Tina Kallio)
mgr/dashboard: Fix /api/grafana/validation (pr#25997, Zack Cerza)
mgr/dashboard: Fix bug in user form when changing password (pr#23939, Volker Theile)
mgr/dashboard: Fix cherrypy static content URL prefix config (pr#23183, Ricardo Marques)
mgr/dashboard: Fix duplicate error messages (pr#23287, Stephan Müller)
mgr/dashboard: Fix duplicate tasks (pr#24930, Tiago Melo)
mgr/dashboard: Fix e2e script (pr#22903, Tiago Melo)
mgr/dashboard: Fixed performance details context for host list row selection (issue#37854, pr#26020, Neha Gupta)
mgr/dashboard: Fixed typos in environment.build.js (pr#26650, Lenz Grimmer)
mgr/dashboard: Fix error when clicking on newly created OSD (issue#36245, pr#24369, Patrick Nawracay)
mgr/dashboard: Fixes documentation link- to open in new tab (pr#22237, a2batic)
mgr/dashboard: Fixes Grafana 500 error (issue#37809, pr#25830, Kanika Murarka)
mgr/dashboard: Fix failing QA test: test_safe_to_destroy (issue#37290, pr#25149, Patrick Nawracay)
mgr/dashboard: Fix flaky QA tests (pr#24024, Patrick Nawracay)
mgr/dashboard: Fix Forbidden Error with some roles (issue#37293, pr#25141, Ernesto Puerta)
mgr/dashboard: fix for ‘Cluster >> Hosts’ page (pr#24974, Alfonso Martínez)
mgr/dashboard: Fix formatter service unit test (pr#22323, Tiago Melo)
mgr/dashboard: fix for using ‘::’ on hosts without ipv6 (pr#26635, Noah Watkins)
mgr/dashboard: Fix growing table in firefox (issue#26999, pr#23711, Tiago Melo)
mgr/dashboard: Fix HttpClient Module imports in unit tests (pr#24679, Tiago Melo)
mgr/dashboard: Fix iSCSI mutual password input type (pr#26854, Ricardo Marques)
mgr/dashboard: Fix iSCSI service unit tests (pr#26319, Tiago Melo)
mgr/dashboard: Fix issues in controllers/docs (pr#26738, Volker Theile)
mgr/dashboard: Fix Jest conflict with coverage files (pr#22155, Tiago Melo)
mgr/dashboard: Fix layout issues in UI (issue#24525, pr#22597, Volker Theile)
mgr/dashboard: Fix links to external documentation (pr#24829, Patrick Nawracay)
mgr/dashboard: fix lint error caused by codelyzer update (pr#22693, Tiago Melo)
mgr/dashboard: fix lint error (pr#22417, Tiago Melo)
mgr/dashboard: Fix long running RBD cloning / copying message (pr#24641, Ricardo Marques)
mgr/dashboard: Fix missing failed restore notification (issue#36513, pr#24664, Tiago Melo)
mgr/dashboard: Fix modified files only (frontend) (pr#25346, Patrick Nawracay)
mgr/dashboard: Fix moment.js deprecation warning (pr#21981, Tiago Melo)
mgr/dashboard: Fix more layout issues in UI (pr#22600, Volker Theile)
mgr/dashboard: Fix navbar focused color (pr#25769, Volker Theile)
mgr/dashboard: Fix notifications in user list and form (pr#23797, Volker Theile)
mgr/dashboard: Fix OSD down error display (issue#24530, pr#23754, Patrick Nawracay)
mgr/dashboard: Fix pool usage not displaying on filesystem page (pr#22453, Tiago Melo)
mgr/dashboard: Fix problem with ErasureCodeProfileService (pr#24694, Tiago Melo)
mgr/dashboard: Fix Python3 issue (pr#24617, Patrick Nawracay)
mgr/dashboard: fix query parameters in task annotated endpoints (issue#25096, pr#23229, Ricardo Dias)
mgr/dashboard: Fix RBD actions disable (pr#24637, Ricardo Marques)
mgr/dashboard: Fix RBD features style (pr#22759, Ricardo Marques)
mgr/dashboard: Fix RBD object size dropdown options (pr#22830, Ricardo Marques)
mgr/dashboard: Fix RBD task metadata (pr#22088, Tiago Melo)
mgr/dashboard: Fix redirect to login page on session lost (pr#23388, Ricardo Marques)
mgr/dashboard: fix reference to oA (pr#24343, Joao Eduardo Luis)
mgr/dashboard: Fix regression on rbd form component (issue#24757, pr#22829, Tiago Melo)
mgr/dashboard: Fix reloading of pool listing (pr#26182, Patrick Nawracay)
mgr/dashboard: Fix renaming of pools (pr#25423, Patrick Nawracay)
mgr/dashboard: Fix search in Source column of RBD configuration list (issue#37569, pr#26765, Patrick Nawracay)
mgr/dashboard: fix skipped backend API tests (pr#26172, Alfonso Martínez)
mgr/dashboard: Fix some datatable CSS issues (pr#22216, Volker Theile)
mgr/dashboard: Fix spaces around status labels on OSD list (pr#24607, Patrick Nawracay)
mgr/dashboard: Fix summary refresh call stack (pr#25984, Tiago Melo)
mgr/dashboard: Fix test_full_health test (issue#37872, pr#25913, Tatjana Dehler)
mgr/dashboard: Fix test_remove_not_expired_trash qa test (issue#37354, pr#25221, Tiago Melo)
mgr/dashboard: fix: toast notifications hiding utility menu (pr#26429, Alfonso Martínez)
mgr/dashboard: fix: tox not detecting deps changes (pr#26409, Alfonso Martínez)
mgr/dashboard: Fix ts error on iSCSI page (pr#24715, Ricardo Marques)
mgr/dashboard: Fix typo in NoOrchesrtatorConfiguredException class name (pr#26334, Volker Theile)
mgr/dashboard: Fix typo in pools management (pr#26323, Lenz Grimmer)
mgr/dashboard: Fix typo (pr#23363, Volker Theile)
mgr/dashboard: Fix unit tests cli warnings (pr#21933, Tiago Melo)
mgr/dashboard: Format small numbers correctly (issue#24081, pr#21980, Stephan Müller)
mgr/dashboard: Get user ID via RGW Admin Ops API (pr#22416, Volker Theile)
mgr/dashboard: Grafana dashboard updates and additions (pr#24314, Paul Cuzner)
mgr/dashboard: Grafana graphs integration with dashboard (pr#23666, Kanika Murarka)
mgr/dashboard: Grafana proxy backend (pr#21644, Patrick Nawracay)
mgr/dashboard: Group buttons together into one menu on OSD page (issue#37380, pr#26189, Tatjana Dehler)
mgr/dashboard: Handle class objects as regular objects in KV-table (pr#24632, Stephan Müller)
mgr/dashboard: Handle errors during deletion (pr#22002, Volker Theile)
mgr/dashboard: Hide empty fields and render all objects in KV-table (pr#25894, Stephan Müller)
mgr/dashboard: Hide progress bar in case of an error (pr#22419, Volker Theile)
mgr/dashboard: Implement OSD purge (issue#35811, pr#26242, Patrick Nawracay)
mgr/dashboard: Improve CRUSH map viewer (pr#24934, Volker Theile)
mgr/dashboard: Improved support for generating OpenAPI Spec documentation (issue#24763, pr#26227, Tina Kallio)
mgr/dashboard: Improve error message handling (pr#24322, Volker Theile)
mgr/dashboard: Improve error panel (pr#21851, Volker Theile)
mgr/dashboard: Improve exception handling in /api/rgw/status (pr#25836, Volker Theile)
mgr/dashboard: Improve exception handling (issue#23823, pr#21066, Sebastian Wagner)
mgr/dashboard: Improve HACKING.rst (pr#22281, Patrick Nawracay)
mgr/dashboard: 改进 rbd 表单上的“无存储池”消息 (pr#22150, Ricardo Marques)
mgr/dashboard: 改进 RBD 表单 (issue#38303, pr#26433, Tiago Melo)
mgr/dashboard: 改进 RGW 地址解析器 (pr#25870, Volker Theile)
mgr/dashboard: 改进 RgwUser 控制器 (pr#25300, Volker Theile)
mgr/dashboard: 改进 Grafana 设置文档 (issue#36371, pr#24511, Kanika Murarka)
mgr/dashboard: 改进 str_to_bool (pr#22757, Volker Theile)
mgr/dashboard: 改进 SummaryService 和 TaskWrapperService (pr#22906, Tiago Melo)
mgr/dashboard: 改进表格分页样式 (pr#22065, Ricardo Marques)
mgr/dashboard: 引入将布尔值转换为文本的管道 (pr#26507, Volker Theile)
mgr/dashboard: iscsi: 添加 CLI 命令以启用/禁用 API SSL 验证 (pr#26891, Ricardo Dias)
mgr/dashboard: iSCSI - 添加对带有点的存储池/镜像名称的支持 (pr#26503, Ricardo Marques)
mgr/dashboard: iSCSI - 添加对禁用 ACL 认证的支持 (后端) (pr#26382, Ricardo Marques)
mgr/dashboard: iSCSI 发现认证 API (pr#26115, Ricardo Marques)
mgr/dashboard: iSCSI - 支持多个后端存储的基础设施 (后端) (pr#26506, Ricardo Marques)
mgr/dashboard: iSCSI 管理 API (pr#25638, Ricardo Marques, Ricardo Dias)
mgr/dashboard: iSCSI 管理 UI (pr#25995, Ricardo Marques, Tiago Melo)
mgr/dashboard: iSCSI - 支持带有“/”的 iSCSI 密码 (pr#26790, Ricardo Marques)
mgr/dashboard: JWT 认证 (pr#22833, Ricardo Dias)
mgr/dashboard: 登陆页面:图表改进 (pr#24810, Alfonso Martínez)
mgr/dashboard: 登陆页面:信息可见性 (pr#24513, Alfonso Martínez)
mgr/dashboard: 日志前端错误 + @UiController (pr#22285, Ricardo Marques)
mgr/dashboard: 登录失败应返回 HTTP 400 (pr#22403, Ricardo Marques)
mgr/dashboard: 登陆页面中的“日志”链接权限 (pr#25231, Alfonso Martínez)
mgr/dashboard: 使删除对话框更适合触摸设备 (pr#23897, Volker Theile)
mgr/dashboard: 将 dev “releases” 映射到 master (pr#24763, Zack Cerza)
mgr/dashboard: 模块 dashboard.services.ganesha 存在多个 lint 问题 (pr#26378, Volker Theile)
mgr/dashboard: 表格 updateSelectionOnRefresh 的更多配置 (pr#24015, Ricardo Marques)
mgr/dashboard: 将集群/审计日志从首页移至专用日志页面 (pr#23834, Diksha Godbole)
mgr/dashboard: 将 unit-test-helper 移至新的 testing 文件夹 (pr#22857, Tiago Melo)
mgr/dashboard: 导航栏下拉按钮在移动浏览器中无响应 (pr#21967, Volker Theile)
mgr/dashboard: 新登陆页面:里程碑 2 (pr#24326, Alfonso Martínez)
mgr/dashboard: 新登陆页面 (pr#23568, Alfonso Martínez)
mgr/dashboard: nfs-ganesha: 控制器 API 文档 (pr#26716, Ricardo Dias)
mgr/dashboard: NFS 管理 UI (pr#26085, Tiago Melo)
mgr/dashboard: ng serve 绑定到 0.0.0.0 (pr#22058, Ricardo Marques)
mgr/dashboard: 用户创建失败时无副作用 (pr#24200, Joao Eduardo Luis)
mgr/dashboard: 通知队列 (pr#25325, Stephan Müller)
mgr/dashboard: npm run e2e:dev (pr#25136, Stephan Müller)
mgr/dashboard: 性能计数器进度条无限循环 (pr#24448, Volker Theile)
mgr/dashboard: 永久隐藏饼图切片 (pr#25276, Alfonso Martínez)
mgr/dashboard: PGs 将按预期更新 (pr#26589, Stephan Müller)
mgr/dashboard: 存储池管理 (pr#21614, Stephan Müller)
mgr/dashboard: 存储池统计信息默认不返回 (pr#25635, Alfonso Martínez)
mgr/dashboard: 解决一些仪表盘计时问题的可能修复 (issue#36107, pr#24219, Patrick Nawracay)
mgr/dashboard: 美化 package.json (pr#22401, Ricardo Marques)
mgr/dashboard: 美化 RGW JS 代码 (pr#22278, Volker Theile)
mgr/dashboard: 防止每次按键都进行 API 调用 (pr#23391, Volker Theile)
mgr/dashboard: 在值和单位之间打印一个空格 (pr#22387, Volker Theile)
mgr/dashboard: TableKeyValueComponent 中的进度条不停止 (pr#24016, Volker Theile)
mgr/dashboard: Prometheus 集成 (pr#25309, Stephan Müller)
mgr/dashboard: 提供所有四个“强制” OSD 标志 (issue#37857, pr#25905, Tatjana Dehler)
mgr/dashboard/qa: 修复 ECP 创建测试 (pr#25120, Stephan Müller)
mgr/dashboard/qa: 修复 vstart_runner.py 的各种问题 (issue#36581, pr#24767, Volker Theile)
mgr/dashboard: 重定向 /block 到 /block/rbd (pr#24722, Zack Cerza)
mgr/dashboard: 减少 CI 中的 Jest 日志 (pr#24764, Tiago Melo)
mgr/dashboard: 重构 autofocus 指令 (pr#23910, Volker Theile)
mgr/dashboard: DeletionModalComponent 的重构 (pr#24005, Patrick Nawracay)
mgr/dashboard: 重构性能计数器 (pr#21673, Volker Theile)
mgr/dashboard: 重构 RGW 后端 (pr#21784, Volker Theile)
mgr/dashboard: 重构角色管理 (pr#23960, Volker Theile)
mgr/dashboard: 重新定位空管道 (pr#26588, Volker Theile)
mgr/dashboard: 从单元测试中删除不必要的假服务 (pr#22473, Stephan Müller)
mgr/dashboard: 使用 CdTable 时移除字段集 (pr#23730, Tiago Melo)
mgr/dashboard: 从 CdFormGroup 中移除 _filterValue (issue#26861, pr#24719, Stephan Müller)
mgr/dashboard: 移除 husky 包 (pr#21971, Tiago Melo)
mgr/dashboard: 移除 karma 包 (pr#23181, Tiago Melo)
mgr/dashboard: 调用 notificationService.show 时移除参数 (pr#26447, Volker Theile)
mgr/dashboard: 移除右上角操作文本并添加“关于”页面 (pr#22762, Ricardo Marques)
mgr/dashboard: 移除未使用的代码 (pr#25439, Patrick Nawracay)
mgr/dashboard: 移除无用代码 (pr#23911, Volker Theile)
mgr/dashboard: 移除无用的可观察取消订阅 (pr#21928, Ricardo Marques)
mgr/dashboard: 将配置 HTML 表格替换为 cd-table (pr#21643, Tatjana Dehler)
mgr/dashboard: 导航栏中将“Pool”替换为“Pools” (pr#22715, Lenz Grimmer)
mgr/dashboard: 替换 RGW 代理控制器 (issue#24436, pr#22470, Volker Theile)
mgr/dashboard: 将设置重置为默认值 (pr#22298, Patrick Nawracay)
mgr/dashboard: 解决 TestBed 性能问题 (pr#21783, Stephan Müller)
mgr/dashboard: rest: 添加对查询参数的支持 (pr#22318, Ricardo Dias)
mgr/dashboard: RestClient 无法处理 ProtocolError 异常 (pr#23347, Volker Theile)
mgr/dashboard: restcontroller: 小改进和错误修复 (pr#22528, Ricardo Dias)
mgr/dashboard: 如果定义了 URL 前缀,RGW 不工作 (pr#23200, Volker Theile)
mgr/dashboard: RGW 代理无法处理自签名 SSL 证书 (pr#22735, Volker Theile)
mgr/dashboard: 基于角色的认证/授权系统 (issue#23796, pr#22283, Ricardo Marques, Ricardo Dias)
mgr/dashboard: UI 中的角色管理 (pr#23409, Ricardo Marques)
mgr/dashboard: 搜索带有空值的条目时损坏 (issue#38583, pr#26766, Patrick Nawracay)
mgr/dashboard: 通过父类设置 errno (pr#21945, Kefu Chai, Ricardo Dias)
mgr/dashboard: 设置 MODULE_OPTIONS 类型和默认值 (pr#26386, Volker Theile)
mgr/dashboard: 在 RestClient 调用中设置超时 (pr#23224, Volker Theile)
mgr/dashboard: 设置服务 (pr#25327, Stephan Müller)
mgr/dashboard: 根据用户角色显示/隐藏 Grafana 选项卡 (issue#36655, pr#24851, Kanika Murarka)
mgr/dashboard: 为 block-mgr 显示存储池下拉菜单 (issue#37295, pr#25144, Ernesto Puerta)
mgr/dashboard: 在 RGW 表单中显示成功通知 (pr#26482, Volker Theile)
mgr/dashboard: PoolForm 方法的简化 (pr#24892, Patrick Nawracay)
mgr/dashboard: 简化 OSD 禁用操作测试 (pr#24824, Stephan Müller)
mgr/dashboard: run-backend-rook-api-request.sh 中 minikube 的特殊情况 (pr#26600, Jeff Layton)
mgr/dashboard: SSO - SAML 2.0 支持 (pr#24489, Ricardo Marques, Ricardo Dias)
mgr/dashboard: SSO - 用户不存在页面 (pr#26058, Alfonso Martínez)
mgr/dashboard: ‘js-error’ 端点上的堆栈跟踪是可选的 (pr#22402, Ricardo Marques)
mgr/dashboard: 状态信息卡改进 (pr#25155, Alfonso Martínez)
mgr/dashboard: 存储用户表格配置 (pr#20822, Stephan Müller)
mgr/dashboard: KV 表中 Stringify 对象数组 (pr#22422, Stephan Müller)
mgr/dashboard: 基于 Swagger-UI 的 Dashboard REST API 页面 (issue#23898, pr#22282, Ricardo Dias)
mgr/dashboard: 将列样式与 UI 的其余部分同步 (pr#26407, Volker Theile)
mgr/dashboard: tasks.mgr.dashboard.test_osd.OsdTest 失败 (pr#24947, Volker Theile)
mgr/dashboard: 任务包装器服务 (pr#22014, Stephan Müller)
mgr/dashboard: RGW 后端无法正确处理 IPv6 (pr#24222, Volker Theile)
mgr/dashboard: typescript 清理 (pr#26338, Alfonso Martínez)
mgr/dashboard: 单元测试清理 (pr#24591, Tiago Melo)
mgr/dashboard: 更新 Angular 包 (pr#23706, Tiago Melo)
mgr/dashboard: 更新 Angular 到版本 6 (pr#22082, Tiago Melo)
mgr/dashboard: 更新 bootstrap 到 v3.4.1 (pr#26410, Tiago Melo)
mgr/dashboard: 更新 PG 状态图表中的颜色 (pr#26203, Alfonso Martínez)
mgr/dashboard: 更新健康 API 测试 (pr#25813, Alfonso Martínez)
mgr/dashboard: 404 页面上的图像已更新 (pr#23820, Lenz Grimmer)
mgr/dashboard: 更新前端包 (pr#23466, Tiago Melo)
mgr/dashboard: 更新 I18N 翻译 (pr#26649, Tiago Melo)
mgr/dashboard: 更新 npm 包 (pr#24681, Tiago Melo)
mgr/dashboard: 更新 npm 包 (pr#25656, Tiago Melo)
mgr/dashboard: 更新 npm 包 (pr#26437, Tiago Melo)
mgr/dashboard: 更新 npm 包 (pr#26647, Tiago Melo)
mgr/dashboard: 更新 python 依赖 (pr#24928, Alfonso Martínez)
mgr/dashboard: 更新 RxJS 到版本 6 (pr#21826, Tiago Melo)
mgr/dashboard: 升级 python dev 依赖 (pr#26007, Alfonso Martínez)
mgr/dashboard: 升级 Swimlane 的数据表 (pr#21880, Volker Theile)
mgr/dashboard: 在 dev 代理配置和 HACKING.rst 中使用 HTTPS (pr#21777, Volker Theile)
mgr/dashboard: 在迷你图上使用人类可读的单位 (issue#25075, pr#23446, Tiago Melo)
mgr/dashboard: 用户密码应为可选 (pr#24128, Ricardo Marques)
mgr/dashboard: 验证 OSD 恢复优先级表单输入值 (issue#37436, pr#25472, Tatjana Dehler)
mgr/dashboard: 验证重复的 RGW 用户电子邮件 (issue#37369, pr#25334, Kanika Murarka)
mgr: 为 MgrStandbyModule 定义选项默认值 (pr#25734, Kefu Chai)
mgr: devicehealth: 不在字典 iteritems 上出错 (pr#22827, Abhishek Lekshmanan)
mgr: 磁盘预测云在配置更改时激活 (pr#25165, Rick Chen)
mgr: 如果 EOPNOTSUPP 则不写入输出 (issue#37444, pr#25317, Kefu Chai)
mgr: 启用模块间调用 (pr#22951, John Spray)
mgr: 向 python 模块公开 avgcount (pr#22010, Boris Ranto)
mgr: 为长时间运行的 avg 公开 avg 数据 (pr#22420, Boris Ranto)
mgr: 通过管理器公开 ec 配置 (pr#23010, Noah Watkins)
mgr: 扩展批处理以接受显式设备列表 (issue#37502, issue#37086, issue#37590, pr#25542, Jan Fajerski)
mgr: 修复死锁引起的信标中断 (pr#23482, Yan Jun)
mgr: 修复由于名称相同的守护程序有多个会话而导致的崩溃 (pr#25534, Mykola Golub)
mgr: 修复 balancer execute 上的权限 (issue#25345, pr#23387, John Spray)
mgr: 修复 rook 规范并让 service_describe 为 nfs 服务提供 rados_config_location 字段 (pr#25970, Jeff Layton)
mgr: 修复变量名中的拼写错误并清理 (pr#22069, Kefu Chai)
mgr: 修复处于未知状态的 pgs 显示 (issue#25103, pr#23622, huanwen ren)
mgr: 如果没有返回元数据则忽略守护程序 (pr#22794, Wido den Hollander)
mgr: 忽略 __pycache__ 和 wheelhouse 目录 (pr#26481, Volker Theile)
mgr: 改进 ActivePyModules::get_typed_config 实现 (pr#26149, Volker Theile)
mgr: 改进 MgrModule 方法的文档 (pr#22792, John Spray)
mgr: 动态 osd 性能计数器的改进 (pr#25488, Mykola Golub)
mgr: 在 SLOW_OPS 输出中包含守护程序详细信息 (issue#23205, pr#21750, Brad Hubbard)
mgr: 为 clang #include <vector> (pr#22756, Willem Jan Withagen)
mgr: 保持状态,均衡器始终开启 (pr#23558, Sage Weil)
mgr: 使模块错误消息更具描述性 (pr#25537, Joao Eduardo Luis)
mgr: mgr/ansible: Ansible 编排器模块 (pr#24445, Juan Miguel Olmo Martínez)
mgr: mgr/ansible: 创建/移除 OSD (pr#25497, Juan Miguel Olmo Martínez)
mgr: mgr/ansible: Python 3 修复 (pr#25645, Sebastian Wagner)
mgr: mgr/balancer: 为工作日添加 min/max 字段并与 C 兼容 (pr#26505, xie xingguo)
mgr: mgr/balancer: 自动平衡存储池列表 (pr#25940, xie xingguo)
mgr: mgr/balancer: 如果 upmap 实际不工作则报错 (pr#25941, xie xingguo)
mgr: mgr/balancer: deepcopy 最佳计划 - 否则我们得到最新计划 (issue#27000, pr#23682, Stefan Priebe)
mgr: mgr/balancer: 将自动平衡限制为特定工作日 (pr#26440, xie xingguo)
mgr: mgr/balancer: 跳过对有待处理 pg-merge 的存储池的自动平衡 (pr#25626, xie xingguo)
mgr: mgrc: 通过 mgr_stats_threshold 启用禁用统计信息 (issue#25197, pr#23352, John Spray)
mgr: mgr/crash: 添加按小时粒度的崩溃摘要 (pr#23121, Noah Watkins)
mgr: mgr/crash: 向崩溃元数据添加进程名称 (pr#25244, Mykola Golub)
mgr: mgr/crash: 修复 python3 无效语法问题 (pr#23800, Ricardo Dias)
mgr: mgr/DaemonServer: 为“ceph osd safe-to-destroy”添加 js-output (pr#24799, xie xingguo)
mgr: mgr/DaemonServer: 将 pgmap 使用情况记录到集群日志 (pr#26105, Neha Ojha)
mgr: mgr/dashboard: 添加禁用 SSL 的选项 (pr#22593, Wido den Hollander)
mgr: mgr/dashboard: 禁用后端测试覆盖率 (pr#24193, Alfonso Martínez)
mgr: mgr/dashboard: 修复仪表盘关机/重启 (pr#22159, Boris Ranto)
mgr: mgr/dashboard: 默认监听端口 8443 而不是 8080 (pr#22409, Wido den Hollander)
mgr: mgr/dashboard: 使用 orchestrator_cli 后端设置 (pr#26325, Jeff Layton)
mgr: mgr/deepsea: 始终对 salt-api 认证使用“password”参数 (pr#26904, Tim Serong)
mgr: mgr/deepsea: 在启动事件读取器时检查正在进行的完成,清理日志和注释 (pr#25391, Tim Serong)
mgr: mgr/deepsea: DeepSea 编排器模块 (pr#24610, Tim Serong)
mgr: mgr/devicehealth: 清理错误处理 (pr#23205, John Spray)
mgr: mgr/devicehealth: 修复 is_valid_daemon_name 拼写错误 (pr#24822, Lan Liu)
mgr: mgr/diskprediction_cloud: 修复 total_size 为 0 时除以零的错误 (pr#26045, Rick Chen)
mgr: mgr/diskprediction_cloud: 移除 requirements 文件中不必要的库 (issue#37533, pr#25433, Rick Chen)
mgr: mgr/influx: 使用队列存储需要写入的点 (pr#23464, Wido den Hollander)
mgr: mgr/insights: insights 报告模块 (pr#23497, Noah Watkins)
mgr: mgr/mgr_module.py: 修复 set_store/set_store_json 的文档 (pr#22654, Dan Mick)
mgr: mgr/orchestrator: 添加 RGW 服务支持 (pr#23702, Rubab-Syed)
mgr: mgr/orchestrator: 添加 service_action 方法 (pr#25649, Tim Serong)
mgr: mgr/orchestrator: 添加对“ceph orchestrator service ls”的支持 (pr#24863, Jeff Layton)
mgr: mgr/orchestrator: 改进调试能力 (pr#24147, Sebastian Wagner)
mgr: mgr/orchestrator: 改进文档字符串,添加类型提示 (pr#25669, Sebastian Wagner)
mgr: mgr/orchestrator: 简化 Orchestrator 等待实现 (pr#25401, Juan Miguel Olmo Martínez)
mgr: mgr/orchestrator: 在 Completion 类中使用 result 属性 (pr#24672, Tim Serong)
mgr: mgr/progress: 改进+测试 OSD out 处理 (pr#23146, John Spray)
mgr: mgr/progress: 引入 progress 模块 (pr#22993, John Spray)
mgr: mgr/prometheus: 添加恢复指标 (pr#26880, Paul Cuzner)
mgr: mgr/prometheus: 获取 osd_objectstore 一次而不是两次 (pr#26558, Konstantin Shalygin)
mgr: mgr/restful: 修复 deep-scrub 拼写错误 (issue#36720, pr#24841, Boris Ranto)
mgr: mgr/restful: 修复获取 osd 信息时 python 出现异常 (pr#21138, zouaiguo)
mgr: mgr/restful: 将字符串格式化更新为 str.format() (pr#26210, James McClune)
mgr: mgr/rook: 修复最近 rook 更改的 API 版本和对象类型 (pr#25452, Jeff Layton)
mgr: mgr/rook: 修复 Rook 集群名称检测 (pr#24560, Sebastian Wagner)
mgr: mgr/rook: 更新到 v1beta1 API (pr#23570, John Spray)
mgr: mgr/status: 添加 standby-replay MDS ceph 版本 (pr#23624, Zhi Zhang)
mgr: mgr/status: 输出到 stdout,而不是 stderr (issue#24175, pr#22089, John Spray)
mgr: mgr/telegraf: 向 Telegraf 发送更多 PG 状态信息 (pr#22436, Wido den Hollander)
mgr: mgr/telegraf: Ceph Mgr 的 Telegraf 模块 (pr#21782, Wido den Hollander)
mgr: mgr/telegraf: 使用 Python 生成器并捕获 OSError (pr#22418, Wido den Hollander)
mgr: mgr/telemetry: 添加 Ceph Telemetry 模块以将报告发送回项目 (pr#21982, Wido den Hollander)
mgr: mgr/telemetry: 检查布尔值是否为 False 或不存在 (pr#22223, Wido den Hollander)
mgr: mgr/telemetry: 修复各种问题 (pr#25770, Volker Theile)
mgr: mgr/volumes: 修复编排器移除操作 (pr#25339, Jeff Layton)
mgr: mgr/zabbix: 移除“total_objects”字段 (pr#26052, Kefu Chai)
mgr: mgr/zabbix: 向 Zabbix 发送更多 PG 信息 (pr#22434, Wido den Hollander)
mgr: 其他小 mgr 修复 (pr#22893, John Spray)
mgr: 使用 @CLICommand 装饰器声明模块 CLI 命令 (pr#25543, Ricardo Dias)
mgr,mon: mgr,mon: 修复以应用更改的 mon_stat_smooth_intervals (pr#23481, Yan Jun)
mgr/orchestrator: 为 ServiceDescription 添加有用的属性 (pr#25468, Ricardo Dias)
mgr/orchestrator: 将主机 mon mgr 管理添加到接口 (pr#26314, Sebastian Wagner, Noah Watkins)
mgr/orchestrator: 为 CLI 命令添加 JSON 输出 (pr#25340, Sebastian Wagner)
mgr: orchestrator: 添加移除服务的功能 (pr#25366, Jeff Layton)
mgr/orchestrator: 允许编排器扩展 NFS 服务器计数 (pr#26633, Jeff Layton)
mgr/orchestrator: 澄清关于 kubernetes python 模块的错误消息 (pr#24525, Jeff Layton)
mgr/orchestrator_cli: 修复 README.md (pr#26443, Sebastian Wagner)
mgr/orchestrator: 扩展 DriveGroupSpec (pr#25912, Sebastian Wagner)
mgr/orchestrator: 修复带有 None 属性的设备美观打印 (pr#26357, Ricardo Dias)
mgr/orchestrator: 修复 _list_services 显示 (pr#25610, Jeff Layton)
mgr/orchestrator: 修复 rook osd 创建调度程序 (pr#26317, Jeff Layton)
mgr/orchestrator: 利用 @CLICommand (pr#26094, Sebastian Wagner)
mgr/orchestrator: 移除 unicode 空格 (pr#25323, Sebastian Wagner)
mgr/orchestrator/rook: 允许在目录中创建 OSD (pr#26570, Jeff Layton)
mgr/orchestrator: 统一 osd create 和 osd add (pr#26171, Sebastian Wagner)
mgr/orch: 库存查询的刷新选项 (pr#26346, Noah Watkins)
mgr: prometheus: 将 bluestore db 和 wal/journal 设备添加到 ceph_disk_occupation 指标 (issue#36627, pr#24821, Konstantin Shalygin)
mgr: prometheus: 公开降级/错放/未找到对象的数量 (pr#21793, Boris Ranto)
mgr: prometheus: 修复指标重置 (pr#22732, Boris Ranto)
mgr: prometheus: 修复 prometheus 关机/重启 (pr#21748, Boris Ranto)
mgr: pybind/mgr: 将 osd 空间利用率添加到 insights 报告 (pr#25122, Noah Watkins)
mgr: pybind/mgr: PEP 8 代码清理和修复拼写错误 (pr#26181, Lei Liu)
mgr,pybind: mgr/prometheus: 向 osd 元数据添加接口和对象存储 (pr#25234, Jan Fajerski)
mgr: pybind/mgr/restful: 解码 b64decode 的输出 (issue#38522, pr#26712, Brad Hubbard)
mgr,pybind: mgr/rook: 修复 urljoin 导入 (pr#24626, Jeff Layton)
mgr,pybind: mgr/volumes: 修复 Python 3 导入错误 (pr#25344, Sebastian Wagner)
mgr,pybind: pybind/mgr: 移除不必要的 iterkeys 使用以兼容 py-3 (issue#37581, pr#25457, Mykola Golub)
mgr,pybind: pybind/mgr: 识别无效 fs (pr#24392, Jos Collin)
mgr,pybind: src/script: 添加 run_mypy 以在 Python 代码上运行静态类型检查 (pr#26715, Sebastian Wagner)
mgr: “service status” 中守护程序状态和服务映射之间的竞争 (issue#36656, pr#24878, Mykola Golub)
mgr,rbd: mgr/prometheus: 通过 osd 动态性能计数器提供 RBD 统计信息 (pr#25358, Mykola Golub)
mgr,rbd: pybind/mgr/prometheus: 改进“rbd_stats_pools”参数解析 (pr#25860, Mykola Golub)
mgr,rbd: pybind/mgr/prometheus: rbd 统计信息命名空间支持 (pr#25636, Mykola Golub)
mgr: 在 always_on 上替换“未知错误”字符串 (pr#23645, John Spray)
mgr: restful: 修复遍历叶节点时的回归 (pr#26421, Boris Ranto)
mgr/rook: 移除死代码并修复 url 获取代码中的错误 (pr#26032, Jeff Layton)
mgr: 静音 GCC 警告 (pr#25199, Kefu Chai)
mgr/ssh: 修复类型和文档错误 (pr#26630, Sebastian Wagner)
mgr/telemetry: 修复 total_objects (issue#37976, pr#26046, Sage Weil)
mgr,tests: mgr/dashboard: 使用专用 tox 工作目录 (pr#25290, Noah Watkins)
mgr,tests: mgr/insights: 使用专用 tox 工作目录 (pr#25146, Noah Watkins)
mgr,tests: mgr/selftest: 修复禁用模块选择 (pr#24517, John Spray)
mgr: 监控器和管理器之间及时更新健康状态 (pr#23294, Noah Watkins)
mgr: 必要时更新 daemon_state (issue#37753, pr#25725, Xinying Song)
mgr: 更新 MMgrConfigure 消息以包含可选的 OSD 性能查询 (pr#24180, Julien Collet)
mgr: 使用 Py_BuildValue 创建参数元组 (pr#26240, Volker Theile)
mgr: volumes mgr 模块修复 (pr#25331, Jeff Layton)
misc: 用“override”说明符标记函数 (pr#21790, Danny Al-Gaaf)
mon: 添加“osd destroy-new”命令,只销毁新的 osd 插槽 (issue#24428, pr#22429, Sage Weil)
mon: 处于 PG_STATE_REPAIR 状态的 PG 并不意味着数据损坏,PG_STATE_IN... (issue#38070, pr#26178, David Zafman)
mon: 将 monitor compact 命令改为异步运行 (issue#24160, issue#24159, pr#22056, penglaiyxy)
mon: common/cmdparse: cmd_getval_throws -> cmd_getval (pr#23557, Sage Weil)
mon: 对无操作应用程序操作不提交 osdmap (pr#23528, John Spray)
mon: 修复 mgr 模块配置选项处理 (issue#35076, pr#23846, Sage Weil)
mon: 修复 pg_sum_old 未正确复制 (pr#26110, Yao Zongyou)
monitoring/grafana: 修复 OSD 容量利用率 Grafana 图表 (pr#24426, Maxime)
mon: 使排名排序显式化 (不与 mon 地址排序绑定) (pr#22193, Sage Weil)
mon: mon/config-key: 增加最大键条目大小 (pr#24250, Joao Eduardo Luis)
mon: mon/MonClient: 移除 my_addr (pr#26449, Kefu Chai)
mon: mon/MonClient: 在 ping_monitor 期间使用 mon_client_ping_timeout (pr#23563, Yao Zongyou)
mon: mon/MonMap: 为其方法添加更多 constness (pr#23709, Kefu Chai)
mon: mon/MonMap: 移除 get_rank 中的重复代码 (pr#23547, Yao Zongyou)
mon: mon,osd: 避免在解析中复制 str (pr#25640, Jos Collin)
mon: mon/OSDMonitor: 为存储池 recovery_priority 添加边界检查 (issue#38578, pr#26729, xie xingguo)
mon: mon/PGMap: 添加更多 #include (pr#26420, Kefu Chai)
mon: mon/PGMap: 命令“ceph df -f json”输出添加 total_percent_used (pr#23588, Yanhu Cao)
mon: 仅在认证后共享 monmap (pr#23741, Sage Weil)
mon: 提前关闭 messenger 以避免访问已删除的日志记录器 (issue#37780, pr#25760, ningtao)
mon: 一些与类前向声明相关的小清理 (pr#26219, Yao Zongyou)
mon,tests: qa/cephtool: 测试存储池 hit_set_* 的边界 (pr#24858, Joao Eduardo Luis)
mon: 设置前验证 hit_set 值 (issue#22659, pr#19983, lijing)
msg: addr -> addrvec (第 1 部分) (pr#22306, Sage Weil)
msg/async: 不强制内联更新旋转密钥 (pr#25859, yanjun, xie xingguo)
msg/async/Protocol*: 如果现有连接获胜,则发送 keep alive (issue#38493, pr#26668, xie xingguo)
msg/async/rdma: 添加 iWARP RDMA 协议支持 (pr#20297, Haodong Tang)
msg/async/rdma: 删除重复的头文件 (pr#25392, Jianpeng Ma)
msg/async/rdma: 接收消息时将 IBSYNMsg.lid 解析为十六进制 (pr#26525, Peng Liu)
msg/async: 减少额外的 ceph_msg_header 复制 (pr#25938, Jianpeng Ma)
msg/async: handle_connect_msg 中不需要 ceph_abort (pr#21751, shangfufei)
msg: 当消息服务器中有足够的接受者错误时 ceph_abort() (issue#23649, pr#23306, penglaiyxy@gmail.com)
msg: 清除编码消息缓冲区时清除消息中间部分 (pr#24289, "Yan, Zheng")
msg: entity_addr_t::parse 不执行 memset(this, 0, ...) 以进行清理 (issue#26937, pr#23573, Radoslaw Zarzynski)
nautilus: mgr/dashboard: 验证 ceph-iscsi 配置版本 (pr#26951, Ricardo Marques)
objecter: 避免在重置下线 osd 会话时发生竞争 (pr#25437, Zengran Zhang)
orchestrator_cli: 修复 _status() 中的 HandleCommandResult 调用 (pr#25329, Jeff Layton)
osd: 将 creating 添加到 pg_string_state (issue#36174, pr#24262, Dan van der Ster)
osd: 在 ceph-osd 帮助信息中添加 --dump-journal 选项 (pr#24969, yuliyang)
osd: osd “bench” 命令的附加字段 (pr#21962, Коренберг Маркr)
osd: pg reg next scrub 时添加日志 (pr#23690, lvshuhua)
osd: 将所需的 cls 库添加为 osd 的依赖项 (pr#24373, Mohamad Gebai)
osd: 允许修复所有副本上 object_info 中 data_digest 错误的对象 (pr#23217, David Zafman)
osd: 始终为 MOSDPGLog 显式设置 query_epoch (pr#22487, Kefu Chai)
osd: 避免使用空 agent_state (pr#25393, Zengran Zhang)
osd: 将 assert() 更改为在转换中遗漏的 ceph_assert() (pr#23918, David Zafman)
osd: 将 osd_skip_data_digest 默认值更改为 false 并使其为 LEVEL_DEV (issue#24950, pr#23083, Sage Weil, David Zafman)
osdc: 在延迟提交失败时调用 notify finish context (issue#23966, pr#21831, Kefu Chai, Jason Dillaman)
osd: 清理并避免 PrimaryLogPG::log_op_stats 中额外的引用计数 (pr#23016, Radoslaw Zarzynski)
osd: 清理智能探针 (issue#23899, pr#21950, Sage Weil, Gu Zhongyan)
osd: 在启用查询时收集客户端性能统计信息 (pr#24265, Julien Collet, Mykola Golub)
osd: 将恢复/擦洗/快照计时器合并为一个 (pr#21711, Jianpeng Ma)
osd: 如果预期回填大小超过回填限制,则拒绝预留 (issue#24801, issue#19753, pr#22797, David Zafman)
osd: 如果不需要,则不包含 Messenger.h (pr#22483, Kefu Chai)
osd: 不要高估带有 trimtrunc 的读取对象的大小 (issue#21931, issue#22330, pr#24564, Neha Ojha)
osd: 不将 IO 提示视为 PG 统计信息的 IOP (issue#24909, pr#23029, Jason Dillaman)
osd: 处理 copy-get 时不检查覆盖标志 (issue#21756, pr#18241, huangjun)
osd: 即使抢占已以较小块重新启动,也不驱逐 (pr#21892, David Zafman)
osd: do_sparse_read(): 提前验证校验和,以便我们可以尝试修复 (issue#24875, pr#23377, David Zafman)
osd: 移除未使用的 request_redirect_t::osd_instructions (pr#24458, Radoslaw Zarzynski)
osd: ec 在大多数情况下节省对内存的写入访问 (pr#26053, Zengran Zhang, Kefu Chai)
osd: 修复 build_incremental_map_msg (issue#38282, pr#26413, Sage Weil)
osd: 修复 EC 快速错误读取中的内存泄漏 (pr#22500, xiaofei cui)
osd: 修复恢复和回填优先级处理 (issue#38041, pr#26213, David Zafman)
osd: 修复 shard_info_wrapper 编码 (issue#37653, pr#25548, David Zafman)
osd: 独立处理 omap 和数据摘要 (issue#24366, pr#22346, David Zafman)
osd: 增加默认硬 PG 限制 (pr#22187, Josh Durgin)
osd: 即使操作会使缓存无效,也继续使用缓存 (pr#25490, Zengran Zhang)
osd: 在所有情况下限制 pg 日志长度 (pr#23098, Neha Ojha)
osd: 使 OSD::HEARTBEAT_MAX_CONN 内联 (pr#23424, Kefu Chai)
osd: 使随机混洗符合 C++17 (pr#23533, Willem Jan Withagen)
osd/OSDMap: 将 osd 状态添加到利用率转储器 (issue#35544, pr#23921, Paul Emmerich)
osd: 每个存储池的 osd 统计信息收集 (pr#19454, Igor Fedotv, Igor Fedotov)
osd: 防止回填预留导致本地发送到对等体的 num_bytes 为负值 (issue#38344, pr#26465, David Zafman)
osd: EC 恢复时读取对象属性失败 (pr#22196, xiaofei cui)
osd: 如果我们比记录的 require_osd_release 大于 N+2,则拒绝启动 (issue#38076, pr#26177, Sage Weil)
osd: 可靠地向 mon 发送 pg_created 消息 (issue#37775, pr#25731, Sage Weil)
osd: 移除已被回填取代的旧 bft= (issue#36170, pr#24256, David Zafman)
osd: 移除多余的 derr (pr#24042, Sage Weil)
osd: 移除未使用的类 read_log_and_missing_error (pr#26057, Yao Zongyou)
osd: 移除未使用的字段 (pr#26021, Jianpeng Ma)
osd: 移除未使用的函数 (pr#26223, Jianpeng Ma)
osd: 移除无用的条件 (pr#21766, Jianpeng Ma)
osd: 一些恢复改进和清理 (pr#23663, xie xingguo)
osd: 两个心跳修复 (pr#25126, xie xingguo)
osd: 调整 osd 设置时解锁 osd_lock (issue#37751, pr#25726, Kefu Chai)
osd: service.shutdown() 后卸载存储 (issue#37975, pr#26043, Kefu Chai)
osd: 动态性能统计的加权随机抽样 (pr#25582, Mykola Golub)
osd: 可能时在 build_push_op() 中检查 CRC,以便修复最终停止 (issue#25084, pr#23518, David Zafman)
osd: 将“bench”输出写入 stdout (issue#24022, pr#21905, John Spray)
os: 描述事务的注释中的小修复 (pr#22329, Bryan Stillwell)
performance: 添加性能计数器面包屑 (pr#22060, Ricardo Marques)
performance: mgr/dashboard: 启用 gzip 压缩 (issue#36453, pr#24727, Zack Cerza)
performance: mgr/dashboard: 替换仪表盘服务 (issue#36675, pr#24900, Zack Cerza)
performance: msg/async: 改进读取预取逻辑 (pr#25758, xie xingguo)
performance: qa/tasks/cbt.py: 在 bionic 上运行的更改 (pr#22405, Neha Ojha)
performance,rbd: common/Throttle: TokenBucketThrottle: 使用对 m_blockers.front() 的引用 (issue#36475, pr#24604, Dongsheng Yang)
performance,rbd: pybind/rbd: 优化 rbd_list2 (pr#25445, Mykola Golub)
防止异步任务期间出现重复行 (pr#22148, Ricardo Marques)
prometheus: 修复占用值顺序 (pr#22149, Boris Ranto)
pybind: 不检查 MFLAGS (pr#23601, Kefu Chai)
pybind: pybind/ceph_daemon: 将 daemonperf 统计信息的数量级扩展到 ZB (issue#23962, pr#21765, Guan yunfei)
pybind: pybind/rbd: 使代码更简洁 (pr#23664, Zheng Yin)
pybind,rbd: pybind/rbd: 添加 allow_shrink=True 作为 def resize 的参数 (pr#23605, Zheng Yin)
pybind,rbd: pybind/rbd: 修复 metadata_get 注释中的拼写错误 (pr#26138, songweibin)
pybind,rgw: pybind/rgw: 将标志传递给回调函数 (pr#25766, Kefu Chai)
pybind: 简化 run_in_thread() 中的超时处理 (pr#24733, Kefu Chai)
qa/btrfs/test_rmdir_async_snap: 移除二进制文件 (pr#24108, Cleber Rosa)
qa,pybind,tools: 正确使用 collections.abc (pr#25318, James Page)
qa/test: 添加 rados、rbd 和 fs 以每周运行两次 (pr#21839, Yuri Weinstein)
qa/tests: 添加了 mimic-x 套件的第一个草案 (pr#23292, Yuri Weinstein)
qa/tests - 添加了所有受支持的发行版 (pr#22647, Yuri Weinstein)
qa/tests - 添加了所有受支持的发行版到组合中,... (pr#22674, Yuri Weinstein)
qa/tests: 添加了 client-upgrade-luminous 套件 (pr#21947, Yuri Weinstein)
qa/tests: 添加了 --filter-out=”ubuntu_14.04” (pr#21949, Yuri Weinstein)
qa/tests - 添加了 luminous-p2p 套件到计划中 (pr#22666, Yuri Weinstein)
qa/tests: 添加了 mimic-x 到计划中 (pr#23302, Yuri Weinstein)
qa/tests - 添加了 powercycle 套件以每周在 master 和 mimic 上运行 (pr#22606, Yuri Weinstein)
qa/tests: 添加了 powercycle 套件支持的发行版 (pr#22185, Yuri Weinstein)
qa/tests: 更改了 ceph qa 电子邮件地址以绕过 dreamhost 的垃圾邮件过滤器 (pr#23456, Yuri Weinstein)
qa/tests: 更改了 disto 符号链接以指向使用受支持操作系统的全新方式 (pr#22536, Yuri Weinstein)
qa/tests: 修复拼写错误 (pr#21858, Yuri Weinstein)
qa/tests: 删除了所有 jewel 运行并减少了 ovh 上的运行 (pr#22531, Yuri Weinstein)
rbd: 添加“config global”命令以在 mon config db 中获取/存储覆盖 (pr#24428, Mykola Golub)
rbd: 添加对 trash purge 的数据池支持 (issue#22872, pr#21247, Mahati Chamarthy)
rbd: 添加组快照回滚方法 (issue#23550, pr#23896, songweibin)
rbd: 在 snap list 中添加 protected (pr#23853, Zheng Yin)
rbd: 在 rbd info 中添加快照计数 (pr#21292, Zheng Yin)
rbd: 添加调整镜像大小的判断 (pr#21770, zhengyin)
rbd: 对命名空间内镜像的基本支持 (issue#24558, pr#22673, Jason Dillaman)
rbd: bench 中断时关闭镜像 (pr#26693, Mykola Golub)
rbd: cls/lock: 始终在 locker_info_t 中存储 v1 地址 (pr#25948, Sage Weil)
rbd: cls/rbd: 修复构建 (pr#22078, Kefu Chai)
rbd: cls/rbd: 修复未初始化变量的编译器警告 (pr#26896, Jason Dillaman)
rbd: cls/rbd: 修复方法注释 (pr#23277, Zheng Yin)
rbd: cls/rbd: 静音获取元数据错误的日志 (pr#25436, songweibin)
rbd: 更正命名空间参数并在 set_namespace 前验证 (pr#23770, songweibin)
rbd: dashboard: 支持配置块镜像池和对等体 (pr#25210, Jason Dillaman)
rbd: 对打开多个镜像的操作禁用缓存 (issue#24092, pr#21946, Jason Dillaman)
rbd: disk-usage 现在可以可选地计算确切的磁盘使用量 (issue#24064, pr#21912, Jason Dillaman)
rbd: 文档新 RBD 功能标志和版本支持 (pr#25192, Valentin Lorentz)
rbd: 最初不从监控器加载配置覆盖 (pr#21910, Jason Dillaman)
rbd: 如果新大小等于原始大小则报错 (pr#22637, zhengyin)
rbd: 公开存储池统计信息摘要工具 (pr#24830, Jason Dillaman)
rbd: 从 snap_list 中过滤掉组/回收站快照 (pr#23638, songweibin)
rbd: 修复错误输出中的拼写错误 (pr#25931, Dongsheng Yang)
rbd: 修复 trash move 的延迟时间计算 (pr#25896, Mykola Golub)
rbd: 修复输入为管道时导入错误 (issue#34536, pr#23835, songweibin)
rbd: 修复 rbd_group_image_list() 获取 -ENOENT 时段错误 (issue#38468, pr#26622, songweibin)
rbd: 修复一些拼写错误 (pr#25083, Shiyang Ruan)
rbd: 实现新的“rbd perf image iostat/iotop”命令 (issue#37913, pr#26133, Jason Dillaman)
rbd: 改进的回收站快照命名空间处理 (issue#23398, pr#23191, Jason Dillaman)
rbd: 对象映射/快速差异特征互锁 (pr#21969, Mao Zhongyi)
rbd: 为 rbd map 引入 abort_on_full 选项 (pr#25662, Dongsheng Yang)
rbd: journal: 允许在日志池满时移除集合 (pr#25166, kungf)
rbd: journal: 修复关闭对象记录器时潜在的竞争 (pr#26425, Mykola Golub)
rbd: journal: 将最大日志顺序设置为 26 (issue#37541, pr#25743, Mykola Golub)
rbd: krbd: 支持命名空间内镜像 (pr#23841, Ilya Dryomov)
rbd: librbd/api: 杂项修复迁移 (pr#25765, songweibin)
rbd: librbd: 确保在移除同步点快照时获得独占锁 (issue#24898, pr#23095, Mykola Golub)
rbd: librbd: 杂项修复潜在的无效指针 (pr#25462, songweibin)
rbd: 确保返回值为“r”将被返回 (pr#24891, Shiyang Ruan)
rbd: mgr/dashboard: 整合 RBD 整体性能 grafana 仪表盘 (issue#37867, pr#25927, Jason Dillaman)
rbd-mirror: 始终尝试重新启动已取消的状态更新任务 (issue#36500, pr#24646, Jason Dillaman)
rbd-mirror: 引导程序需要处理本地镜像 ID 冲突 (issue#24139, pr#22043, Jason Dillaman)
rbd-mirror: 创建并向 mgr 导出复制性能计数器 (pr#25834, Mykola Golub)
rbd-mirror: 确保如果存储池被删除,守护程序可以干净退出 (pr#22348, Jason Dillaman)
rbd-mirror: 确保远程降级在本地重放 (issue#24009, pr#21823, Jason Dillaman)
rbd-mirror: 修复关机期间潜在的崩溃 (issue#24008, pr#21817, Jason Dillaman)
rbd-mirror: 保护对镜像重放性能计数器的访问 (pr#26097, Mykola Golub)
rbd-mirror: 在更改状态之前实例化状态格式化程序 (issue#36084, pr#24181, Jason Dillaman)
rbd-mirror: 可选地从 config-key 中提取对等秘密 (issue#24688, pr#24036, Jason Dillaman)
rbd-mirror: 可选支持主动/主动复制 (pr#21915, Mykola Golub, Jason Dillaman)
rbd-mirror: 运行 asok“flush”命令时潜在的死锁 (issue#24141, pr#22027, Mykola Golub)
rbd-mirror: 防止父级正在同步时创建克隆 (issue#24140, pr#24063, Jason Dillaman)
rbd-mirror: 调度 rebalancer 以平衡实例负载 (issue#24161, pr#22304, Venky Shankar)
rbd-mirror: 停止时更新镜像状态 (issue#36659, pr#24864, Jason Dillaman)
rbd-mirror: 默认使用主动/主动策略 (issue#38453, pr#26603, Jason Dillaman)
rbd: 移除时将镜像移至回收站作为第一步 (issue#24226, issue#38404, pr#25438, Mahati Chamarthy, Jason Dillaman)
rbd-nbd: 打印用法后不 ceph_abort() (issue#36660, pr#24815, Shiyang Ruan)
rbd-nbd: 支持命名空间 (issue#24609, pr#25260, Mykola Golub)
rbd: 不允许在镜像正在删除时恢复镜像 (issue#25346, pr#24078, songweibin)
rbd: 镜像的在线重新稀疏化 (pr#26226, Mykola Golub)
rbd: pybind/rbd: 添加命名空间辅助 API 方法 (issue#36622, pr#25206, Jason Dillaman)
rbd: qa/workunits: 修复 rbd-mirror 的 mon 地址解析 (issue#38385, pr#26521, Jason Dillaman)
rbd: rbd: 修复获取键时参数解析错误 (pr#25152, songweibin)
rbd: rbd-fuse: 在标准位置查找 ceph.conf (issue#12219, pr#20598, Jason Dillaman)
rbd: rbd-fuse: 命名空间支持 (pr#25265, Mykola Golub)
rbd: rbd-ggate: 支持命名空间 (issue#24608, pr#25266, Mykola Golub)
rbd: rbd-ggate: 使用 need_dynamic 标记“level” (pr#22557, Kefu Chai)
rbd: rbd_mirror: 销毁 InstanceWatcher 时断言没有请求 (pr#25666, Mykola Golub)
rbd: rbd_mirror: 如果镜像重放取消,则不报告错误 (pr#25789, Mykola Golub)
rbd: rbd-mirror: 使用存储池级别配置覆盖 (pr#24348, Mykola Golub)
rbd: rbd: 在镜像镜像状态输出中显示镜像守护程序实例的信息 (pr#24717, Mykola Golub)
rbd: 当源命名空间和目标命名空间不同时返回错误代码 (pr#24893, Shiyang Ruan)
rbd: 简化代码以移除 do_clear_limit 函数 (pr#23954, Zheng Yin)
rbd: 支持镜像迁移的命名空间 (issue#26951, pr#24836, Jason Dillaman)
rbd: systemd/rbdmap.service: 在 remote-fs-pre.target 之前排序 (issue#24713, pr#22769, Ilya Dryomov)
rbd: test/librbd: 移除未使用的变量“num_aios” (pr#23085, songweibin)
rbd,tests: krbd: alloc_size map 选项和测试 (pr#26244, Ilya Dryomov)
rbd,tests: librbd,test: 移除未使用的 context_cb() 函数,静音 GCC 警告 (pr#24673, Kefu Chai)
rbd,tests: pybind/rbd: 在 test set_snap 中添加 assert_raise (pr#22570, Zheng Yin)
rbd,tests: qa: krbd_exclusive_option.sh: 将 lock_timeout 增加到 60 秒 (issue#25080, pr#22648, Ilya Dryomov)
rbd,tests: qa: krbd_msgr_segments.t: 过滤 lvcreate 输出 (pr#22665, Ilya Dryomov)
rbd,tests: qa: krbd命名空间测试 (pr#26339, Ilya Dryomov)
rbd,tests: qa: krbd的对象存储片段 (pr#26279, Ilya Dryomov)
rbd,tests: qa: rbd_workunit_kernel_untar_build: 安装构建依赖项 (issue#35074, pr#23840, Ilya Dryomov)
rbd,tests: qa: rbd/workunits: 将“rbd bench-write”替换为“rbd bench --io-type write” (pr#26168, Shyukri Shyukriev)
rbd,tests: qa/suites/krbd: 更多fsx测试 (pr#24354, Ilya Dryomov)
rbd,tests: qa/suites/rbd: 随机选择一个受支持的发行版 (pr#22008, Jason Dillaman)
rbd,tests: qa/tasks/cram: 任务现在必须存在于仓库中 (pr#23976, Ilya Dryomov)
rbd,tests: qa/tasks/cram: 所有cram作业都使用suite_repo仓库 (pr#23905, Ilya Dryomov)
rbd,tests: qa/tasks/qemu: 使用唯一的克隆目录以避免与工作单元的竞争 (issue#36542, pr#24696, Jason Dillaman)
rbd,tests: qa/workunits/rbd: 修复cli通用命名空间测试 (pr#24457, Mykola Golub)
rbd,tests: qa/workunits/rbd: 强制命名空间测试使用v2镜像格式 (pr#24512, Mykola Golub)
rbd,tests: qa/workunits/rbd: 替换'rados mkpool'的使用 (pr#23938, Jason Dillaman)
rbd,tests: qa/workunits: 在fsstress.sh中用'readlink -f'替换'realpath' (issue#36409, pr#24550, Jason Dillaman)
rbd,tests: test/cli-integration/rbd: 添加新的父镜像属性 (pr#25415, Jason Dillaman)
rbd,tests: test/librados_test_stub: 确定性地加载cls共享库 (pr#21524, Jason Dillaman)
rbd,tests: test/librados_test_stub: 优雅处理对象不存在的情况 (pr#25667, Mykola Golub)
rbd,tests: test/librbd: 修复编译器-Wsign-compare警告 (pr#23657, Mykola Golub)
rbd,tests: test/librbd: 修复快照回滚测试中的gmock警告 (pr#23736, Jason Dillaman)
rbd,tests: test/librbd: 修复TestMockIoImageRequestWQ.AcquireLockError中的gmock警告 (pr#22778, Mykola Golub)
rbd,tests: test/librbd: 修复get_modify_timestamp调用中的gmock警告 (pr#23707, Mykola Golub)
rbd,tests: test/librbd: 修复'Uninteresting mock function call'警告 (pr#26322, Mykola Golub)
rbd,tests: test/librbd: 修复valgrind警告 (pr#23827, Mykola Golub)
rbd,tests: test/librbd: 修复-Wsign-compare警告 (pr#23608, Kefu Chai)
rbd,tests: test/librbd: 配置的元数据键应以
conf_为前缀 (pr#25209, runsisi)rbd,tests: test/librbd: 迁移支持命名空间测试 (pr#24919, Mykola Golub)
rbd,tests: test/librbd: 迁移测试未删除附加池 (pr#24009, Mykola Golub)
rbd,tests: test: 将OpenStack devstack测试移动到rocky版本 (issue#36410, pr#24563, Jason Dillaman)
rbd,tests: test/pybind: 修复test_rbd.TestClone.test_trash_snapshot (issue#25114, pr#23256, Mykola Golub)
rbd,tests: test/pybind/test_rbd: 过滤掉未知list_children2键 (issue#37729, pr#25832, Mykola Golub)
rbd,tests: test/rbd-mirror: 禁用gtest-parallel的使用 (pr#22694, Jason Dillaman)
rbd,tests: test/rbd_mirror: 修复gmock警告 (pr#25863, Mykola Golub)
rbd,tests: test/rbd_mirror: TestMockImageMap.AddInstancePingPongImageTest中的竞争条件 (issue#36683, pr#24897, Mykola Golub)
rbd,tests: test/rbd_mirror: WaitingOnLeaderReleaseLeader中的竞争条件 (issue#36236, pr#24300, Mykola Golub)
rbd,tests: test/rbd_mirror: 等待完全释放leader锁 (pr#25935, Mykola Golub)
rbd,tests: test/rbd: rbd_ggate测试改进 (pr#23630, Willem Jan Withagen)
rbd,tests: test: 消除-Wsign-compare警告 (pr#23655, Kefu Chai)
rbd: tools/rbd/action: 左对齐列标题 (pr#22566, Sage Weil)
rbd: tools/rbd: assert(g_ceph_context) 而不是 g_conf (pr#23167, Kefu Chai)
rbd: tools/rbd: rbd du显示的小幅修复 (pr#23311, songweibin)
rbd,tools: rbd-mirror,common: 修复日志消息和注释中的拼写错误 (pr#25197, Shiyang Ruan)
rbd,tools: tools/rbd: assert(g_ceph_context) 而不是 g_conf (pr#23008, Kefu Chai)
rbd: 当bench中断时等待所有IO完成 (pr#26918, Mykola Golub)
rbd: 解决llvm链接器问题,避免std::pair析构函数 (pr#25301, Willem Jan Withagen)
Revert "cephfs-journal-tool: enable purge_queue journal's event comma... (pr#23465, "Yan, Zheng")
Revert "ceph-fuse: Delete inode's bufferhead was in Tx state would le... (pr#21975, "Yan, Zheng")
rgw: abort_bucket_multiparts()忽略单个NoSuchUpload错误 (issue#35986, pr#24110, Casey Bodley)
rgw: 为RGWGetObj调整AioThrottle (pr#25208, Casey Bodley)
rgw: 添加追加对象api (pr#22755, zhang Shaowen, Zhang Shaowen)
rgw: 在显示/修剪使用量时添加bucket作为选项 (pr#23819, lvshuhua)
rgw: 添加可配置的AWS兼容无效范围获取行为 (issue#24317, pr#22231, Matt Benjamin)
rgw: 添加curl_low_speed_limit和curl_low_speed_time配置以避免 (pr#23058, Mark Kogan, Zhang Shaowen)
rgw: 在响应头中添加Http头'Server' (pr#23282, Zhang Shaowen)
rgw: 为角色添加文档 (pr#24714, Pritha Srivastava)
rgw: 在请求完成的日志中添加延迟信息 (pr#23906, lvshuhua)
rgw: 添加列出用户管理员OP API (pr#25073, Oshyn Song)
rgw: 在radosgw-admin帮助信息中添加--op-mask (pr#24848, yuliyang)
rgw: 向block_while_resharding()添加optional_yield (pr#25357, Casey Bodley)
rgw: 添加宽松区域强制选项 (issue#24507, pr#22533, Matt Benjamin)
rgw: 添加rgw xml单元测试 (pr#26682, Yuval Lifshitz)
rgw: 添加s3通知子资源 (pr#23405, yuliyang)
rgw: 管理rest api支持op-mask (pr#24869, yuliyang)
rgw: 管理/用户操作转储用户'system'标志 (pr#17414, fang.yuxiang)
rgw: All Your Fault (issue#24962, pr#23099, Adam C. Emerson)
rgw: 将配额配置应用于通过外部身份验证创建的用户 (issue#24595, pr#24177, Casey Bodley)
rgw: 归档区域 (pr#25137, Yehuda Sadeh, Javier M. Mellid)
rgw: 异步sync_object和remove_object不访问协程内存 (issue#35905, pr#24007, Tianshan Qu)
rgw: 异步观察注册 (pr#21838, Yehuda Sadeh)
rgw: 避免RGWHTTPClient::wait()中的竞争条件 (pr#21767, cfanz)
rgw: beast前端以级别4记录套接字错误 (pr#24677, Casey Bodley)
rgw: beast前端解析ipv6地址 (issue#36662, pr#24887, Casey Bodley)
rgw: beast前端重构暂停/停止并在主体IO期间让出 (pr#21271, Casey Bodley)
rgw: bucket完全同步处理删除标记 (issue#38007, pr#26081, Casey Bodley)
rgw: bucket限制检查对于>max-entries的bucket行为不正常 (通常... (pr#26800, Matt Benjamin)
rgw: bucket同步状态改进,第1部分 (pr#21788, Casey Bodley)
rgw: 版本控制并发中的错误,列表和获取存在一致性问题 (pr#26197, Wang Hao)
rgw: 捕获librados::NObjectIterator中的异常 (issue#37091, pr#25081, Casey Bodley)
rgw: 将默认rgw_thread_pool_size更改为512 (issue#24544, pr#22581, Douglas Fuller)
rgw: 将“rgw admin status”的“num_shards”输出更改为有符号整数 (issue#37645, pr#25538, Mark Kogan)
rgw: 检查RGWGetACLs中不存在的bucket (pr#26212, Matt Benjamin)
rgw: civetweb: 更新URL验证修复程序 (issue#24158, pr#22054, Abhishek Lekshmanan)
rgw: civetweb: 在等待套接字时使用poll而不是select (issue#24364, pr#24027, Abhishek Lekshmanan)
rgw: 清理——确保C++源代码文件包含编辑器指令 (pr#25495, J. Eric Ivancich)
rgw: 同步跟踪的清理工作 (pr#23828, Casey Bodley)
rgw: 清理——使用枚举类表示统计类别 (pr#25450, J. Eric Ivancich)
rgw: cls/rgw: 不要在decode_list_index_key()中断言 (issue#24117, pr#22440, Yehuda Sadeh)
rgw: cls/rgw: 提高bi_log_iterate_entries输出的调试级别 (pr#25570, Casey Bodley)
rgw: cls/user: cls_user_remove_bucket写入修改后的头 (issue#36496, pr#24645, Casey Bodley)
rgw: STS认证代码 (pr#23504, Pritha Srivastava)
rgw: common/options: 修正rgw_enable_lc_threads选项的描述 (pr#23511, excellentkf)
rgw: 在dir_suggest中继续enoent索引 (issue#24640, pr#22937, Tianshan Qu)
rgw: 在reshard期间从源分片复制实际统计信息 (issue#36290, pr#24444, Abhishek Lekshmanan)
rgw: 复制对象数据应为新对象生成新的尾部标签 (issue#24562, pr#22613, Zhang Shaowen)
rgw: 修正非S3操作签名计算逻辑 (pr#26098, Pritha Srivastava)
rgw: cors规则数量限制 (pr#23434, yuliyang)
rgw: crypto: 添加openssl支持RGW加密 (pr#15168, Qiaowei Ren)
rgw: 数据同步接受remove_object()上的ERR_PRECONDITION_FAILED (issue#37448, pr#25310, Casey Bodley)
rgw: 数据同步在租约失败时清空租约堆栈 (issue#38479, pr#26639, Casey Bodley)
rgw: 数据同步尊重error_retry_time用于error_repo上的退避 (issue#26938, pr#23571, Casey Bodley)
rgw: 删除多对象数量限制 (pr#23544, yuliyang)
rgw: 删除一些关于std::regex的未使用代码 (pr#23221, Xueyu Bai)
rgw: [DNM] rgw: 通过策略控制STS认证 (pr#24818, Pritha Srivastava)
rgw: 在RGWPutObj::execute中不要忽略EEXIST (issue#22790, pr#23033, Matt Benjamin)
rgw: 如果参数未设置,则不修改电子邮件 (pr#22024, Volker Theile)
rgw: 不要访问已取消请求的rgw_http_req_data::client (issue#35851, pr#23988, Casey Bodley)
rgw: 在S3策略中匹配ARN的资源字段时,不要特殊对待冒号 (issue#23817, pr#25145, Adam C. Emerson)
rgw: 丢弃main()中未使用的tmp (pr#23899, luomuyao)
rgw: 在RGWOp_Metadata_List::execute中转义标记 (issue#23099, pr#22721, Matt Benjamin)
rgw: ES同步:对对象系统属性更具限制性 (issue#36233, pr#24492, Abhishek Lekshmanan)
rgw: rgw复制结果响应体中的etag而不是头中 (pr#23751, yuliyang)
rgw: 功能——记录成功的bucketresharding事件 (pr#25510, J. Eric Ivancich)
rgw: fetch_remote_obj过滤掉olh attrs (issue#37792, pr#25794, Casey Bodley)
rgw: reshard后修复版本化bucket上错误的user stats (pr#25414, J. Eric Ivancich)
rgw: 修复构建 (pr#22194, Yehuda Sadeh)
rgw: 修复构建 (pr#23248, Matt Benjamin)
rgw: 修复大于1MiB的块分块编码 (issue#35990, pr#24114, Robin H. Johnson)
rgw: 修复pubsub冲突后的编译 (pr#25568, Casey Bodley)
rgw: 修复复制响应头etag格式不正确的问题 (issue#24563, pr#22614, Tianshan Qu)
rgw: 修复CreateBucket在默认区域组下BucketLocation参数失败的问题 (pr#22312, Enming Zhang)
rgw: 修复RGWIndexCompletionManager::stop上的死锁 (issue#26949, pr#23590, Yao Zongyou)
rgw: 修复依赖/target_link_libraries (pr#23056, Michal Jarzabek)
rgw: 修复版本化对象的同步 (issue#24367, pr#22347, Casey Bodley)
rgw: 修复与用户策略相关的权限评估问题 (pr#25180, Pritha Srivastava)
rgw: 修复multipart复制响应中的Etag错误 (pr#23749, yuliyang)
rgw: 修复STS op_post()中的缓冲区溢出 (issue#36579, pr#24510, Pritha Srivastava, Marcus Watts)
rgw: 修复s3命令中的SignatureMismatchError (pr#26204, Pritha Srivastava)
rgw: 修复abca9805引入的FTBFS (pr#23046, Kefu Chai)
rgw: 修复索引完成缺失zones_trace设置 (issue#24590, pr#22632, Tianshan Qu)
rgw: 修复dir_suggest_changes中的索引更新 (issue#24280, pr#22217, Tianshan Qu)
rgw: 修复ldap秘密解析 (pr#25796, Matt Benjamin)
rgw: 修复关闭时curl句柄的泄漏 (issue#35715, pr#23986, Casey Bodley)
rgw: 修复gc_iterate_entries的日志级别 (issue#23801, pr#22868, iliul)
rgw: 修复radosgw-admin和REST Admin API中的max-size (pr#24062, Nick Erdmann)
rgw: 修复元数据和数据通知线程缺失停止cr管理器 (issue#24589, pr#22631, Tianshan Qu)
rgw: 修复即使设置了deleteobject策略,对象仍可被删除的问题 (issue#37403, pr#25278, Enming.Zhang)
rgw: 修复radosgw-admin构建错误 (pr#21599, cfanz)
rgw: 修复rgw_data_sync_info::json_decode() (issue#38373, pr#26494, Casey Bodley)
rgw: 修复RGWSyncTraceNode在重新加载时崩溃的问题 (issue#24432, pr#22432, Tianshan Qu)
rgw: 修复reshard后版本化bucket的统计信息 (pr#25333, J. Eric Ivancich)
rgw: 修复未初始化访问 (pr#25002, Yehuda Sadeh)
rgw: 修复当对象名称被修饰时无序的bucket列表 (issue#38486, pr#26658, J. Eric Ivancich)
rgw: 修复RGWReadDataSyncRecoveringShardsCR中vector索引越界问题 (issue#36537, pr#24680, Casey Bodley)
rgw: 修复版本桶统计信息 (issue#21429, pr#17789, Shasha Lu)
rgw: 修复版本化对象复制生成标签的问题 (issue#37588, pr#25473, Abhishek Lekshmanan)
rgw: 修复rgw_build_bucket_policies()中与用户ACL相关的错误调试 (issue#19514, pr#14369, Radoslaw Zarzynski)
rgw: 获取或设置realm zonegroup zone需要检查用户的caps (pr#25178, yuliyang, Casey Bodley)
rgw: 获取用于签名请求的用户元数据 (pr#22390, Volker Theile)
rgw: 处理区域删除周围的情况 (issue#37328, pr#25160, Abhishek Lekshmanan)
rgw: 处理带有元数据的S3版本2预签名URL (pr#24683, Matt Benjamin)
rgw: 具有可配置的认证顺序 (issue#23089, pr#21494, Abhishek Lekshmanan)
rgw: http客户端:在curl失败时打印curl错误消息 (pr#23318, Abhishek Lekshmanan)
rgw: STS Lite文档的改进 (pr#24847, Pritha Srivastava)
rgw: AssumeRoleWithWebIdentity的首次提交 (pr#26002, Pritha Srivastava)
rgw: 初始RGWRados重构工作 (pr#24014, Yehuda Sadeh, Casey Bodley)
rgw: OPA-Ceph集成的初步工作 (pr#22624, Ashutosh Narkar)
rgw: librgw: 为多站点初始化curl和http客户端 (issue#36302, pr#24402, Casey Bodley)
rgw: librgw: 支持符号链接 (pr#19684, Tao Chen)
rgw: 生命周期:不拒绝带有空前缀的复合规则 (issue#37879, pr#25926, Matt Benjamin)
rgw: 限制单个bucket上的生命周期规则数量 (issue#24572, pr#22623, Zhang Shaowen)
rgw: 当启用bucket版本控制时,列表bucket不能显示由RGWPostObj上传的对象 (pr#24341, yuliyang)
rgw: 如果可用,使用op前缀记录http状态 (pr#25102, Casey Bodley)
rgw: 数据同步的日志重构 (pr#23843, Casey Bodley)
rgw: 元数据同步的日志重构 (pr#23950, Casey Bodley, Ali Maredia)
rgw: 使beast成为rgw_frontends的默认值 (pr#26599, Casey Bodley)
rgw: AssumeRole的次要修复以符合boto (pr#24845, Pritha Srivastava)
rgw: radosgw-admin命令对角色的次要修复 (pr#24730, Pritha Srivastava)
rgw: 将所有reshard配置选项移出legacy_config_options (pr#25356, J. Eric Ivancich)
rgw: 将keystone密钥从ceph.conf移动到文件 (issue#36621, pr#24816, Matt Benjamin)
rgw: 多个ES相关修复和改进 (issue#22877, issue#38028, issue#38030, issue#36092, pr#26106, Yehuda Sadeh, Abhishek Lekshmanan)
rgw: 在列表构造函数中需要一个类型 (pr#25161, Willem Jan Withagen)
rgw: 新的librgw_admin_us (pr#21439, Orit Wasserman, Matt Benjamin)
rgw: 策略:修复NotAction, NotPricipal, NotResource不生效的问题 (pr#23625, xiangxiang)
rgw: 策略:修复s3:x-amz-grant-read-acp关键词错误 (pr#23610, xiangxiang)
rgw: 策略:修改一些操作权限关键词 (issue#24061, pr#20974, xiangxiang)
rgw: 发布-订阅 (pr#23298, Yehuda Sadeh)
rgw: qa/suites/rgw/verify/tasks/cls_rgw: 测试cls_rgw (pr#22919, Sage Weil)
rgw: radogw-admin reshard status命令应该打印reshard状态的文本 (issue#23257, pr#20779, Orit Wasserman)
rgw: radosgw-admin: 添加mfa相关命令和选项 (pr#23416, Enming.Zhang)
rgw: radosgw-admin bucket rm … --purge-objects 可能挂起 (issue#38134, pr#26231, J. Eric Ivancich)
rgw: “radosgw-admin objects expire”即使进程失败也始终返回ok (issue#24592, pr#22635, Zhang Shaowen)
rgw: radosgw-admin: 'sync error trim'循环直到完成 (issue#24873, pr#23032, Casey Bodley)
rgw: radosgw-admin: 翻译reshard状态码 (简单) (issue#36486, pr#24638, Matt Benjamin)
rgw: RADOS::Obj::operate接受optional_yield (pr#25068, Casey Bodley)
rgw: rados分层 (issue#19510, pr#25774, yuliyang, Yehuda Sadeh, Zhang Shaowen)
rgw: 提高冗余数据同步错误消息的调试级别 (issue#35830, pr#23981, Casey Bodley)
rgw: 将默认rgw_curl_low_speed_time提高到300秒 (issue#27989, pr#23759, Casey Bodley)
rgw: 重构gc和lc中的日志记录 (pr#24530, Ali Maredia)
rgw: 重构PutObjProcessor堆栈 (pr#24453, Casey Bodley)
rgw: 拒绝validate_cors_rule_method中的无效方法 (issue#24223, pr#22145, Jeegn Chen)
rgw: 删除所有cls replica_log的痕迹 (pr#21680, Casey Bodley)
rgw: 删除重复的
RGWRados::list_buckets_助手 (pr#25240, Casey Bodley)rgw: 从缓存中删除过期条目 (issue#23379, pr#22410, Mark Kogan)
rgw: 删除RGWHandler_REST_Obj_S3中重复的条件语句 (pr#24162, Zhang Shaowen)
rgw: 删除rgw_aclparser.cc (issue#36665, pr#24866, Matt Benjamin)
rgw: 删除RGWHandler_REST_Obj_S3中无用的is_cors_op (pr#22114, Zhang Shaowen)
rgw: 删除未使用的aio helper函数 (pr#25239, Casey Bodley)
rgw: 续订resharding锁以防止过期 (issue#27219, issue#34307, pr#24406, Orit Wasserman, J. Eric Ivancich)
rgw: 修复被同步破坏的olh属性 (issue#37792, pr#26157, Casey Bodley)
rgw: 运行radosgw-admin orphans find需要--yes-i-really-mean-it (issue#24146, pr#22036, Matt Benjamin)
rgw: reshard add: 在bucket不存在时正确失败 (issue#36449, pr#24594, Abhishek Lekshmanan)
rgw: reshard清理和相关提交 (pr#25142, J. Eric Ivancich)
rgw: reshard改进 (pr#25003, J. Eric Ivancich)
rgw: reshard陈旧实例清理 (issue#24082, pr#24662, Abhishek Lekshmanan)
rgw: 解决垃圾回收代码中的错误并进行清理 (issue#38454, pr#26601, J. Eric Ivancich)
rgw: 解决垃圾回收期间标记未推进的错误 (issue#38408, pr#26545, J. Eric Ivancich)
rgw: 当MaxAgeSeconds为无效整数时返回err_malformed_xml (issue#26957, pr#23626, Chang Liu)
rgw: 在bucket_stats函数中返回tenant字段 (pr#24895, Volker Theile)
rgw: 返回有效的Location元素,PostObj (issue#22927, pr#20330, yuliyang)
rgw: 在版本暂停的bucket中删除对象时返回x-amz-version-id: null (issue#35814, pr#23927, yuliyang)
rgw: Revert "rgw: lifcycle: don't reject compound rules with empty prefix" (pr#26491, Matt Benjamin)
rgw: rgw-admin: 为'sync error trim'添加“--trim-delay-ms”介绍 (pr#23342, Enming.Zhang)
rgw: rgw-admin: 修复主区域的数据同步报告 (pr#23925, cfanz)
rgw: RGWAsyncGetBucketInstanceInfo不访问协程内存 (issue#35812, pr#23987, Casey Bodley)
rgw: rgw/beast: 绑定端口后放弃特权 (issue#36041, pr#24271, Paul Emmerich)
rgw: RGWBucket::link支持tenant (issue#22666, pr#23119, Casey Bodley)
rgw: rgw: 改变sysobj过滤原始属性的方式,修复bucket同步状态扩展属性 (issue#37281, pr#25123, Yehuda Sadeh)
rgw: rgw, cls: 删除cls_statelog和rgw opstate跟踪 (pr#24059, Casey Bodley)
rgw: rgw_file: 深度状态处理 (issue#24915, pr#23038, Matt Benjamin)
rgw: rgw_file: 创建文件时不检查max_objects (pr#24846, Tao Chen)
rgw: rgw_file: 使用正确的密钥检查认证 (pr#26130, MinSheng Lin)
rgw: rgw_file: librgw初始化后用户信息从未同步 (pr#25406, Tao Chen)
rgw: [rgw]: 修复radosgw-admin user info在没有uid时的帮助信息 (pr#25078, Marc Koderer)
rgw: rgwgc:在某些特殊情况下处理coredump (issue#23199, pr#25430, zhaokun)
rgw: rgw多站点:异步rados请求不访问协程内存 (issue#35543, pr#23920, Casey Bodley)
rgw: rgw多站点:bucket同步在OP_SYNCSTOP上转换回StateInit (issue#26895, pr#23574, Casey Bodley)
rgw: rgw多站点:强制执行数据完全同步的spawn_window (issue#26897, pr#23534, Casey Bodley)
rgw: rgw-multisite: 修复RGWBucketShardIncrementalSyncCR中的无限循环 (issue#24603, pr#22660, cfanz)
rgw: rgw多站点:增量数据同步使用截断标志检测列表结束 (issue#26952, pr#23596, Casey Bodley)
rgw: rgw多站点:仅在ENODATA上更新last_trim标记 (issue#38075, pr#26190, Casey Bodley)
rgw: rgw多站点:使用本地DataChangesLog跟踪活动bucket进行修剪 (issue#36034, pr#24221, Casey Bodley)
rgw: rgw/pubsub: 添加amqp推送端点 (pr#25866, Yuval Lifshitz)
rgw: rgw/pubsub: 添加pubsub测试 (pr#26299, Yuval Lifshitz)
rgw: RGWRadosGetOmapKeysCR通过shared_ptr获取结果 (issue#21154, pr#23634, Casey Bodley)
rgw: RGWRadosGetOmapKeysCR使用omap_get_keys2()的“more”标志 (pr#23401, Casey Bodley, Sage Weil)
rgw: 删除rgw_rados.cc中重复的包含头文件 (pr#18578, Sibei Gao)
rgw: rgw_sync: 从mdlog中删除ENOENT错误日志 (pr#26971, Abhishek Lekshmanan)
rgw: 稳健通知 (issue#24963, pr#23100, Adam C. Emerson)
rgw: s3: awsv4删除对x-amz-credential的特殊处理 (issue#26965, pr#23652, Abhishek Lekshmanan)
rgw: 在v4认证中从日志输出中清除客户加密密钥 (issue#37847, pr#25881, Casey Bodley)
rgw: 调度器 (pr#26008, Casey Bodley, Abhishek Lekshmanan)
rgw: 如果RGWCloneMetaLogCoroutine中aio_read错误返回,则设置cr状态 (issue#24566, pr#22617, Tianshan Qu)
rgw: 设置默认objecter_inflight_ops = 24576 (issue#25109, pr#23242, Matt Benjamin)
rgw: 计算s3 v4认证时应重新编码canonical_uri (issue#23587, pr#21286, yuliyang)
rgw: ES同步的一些修复 (issue#23842, issue#23841, pr#21622, Tianshan Qu, Shang Ding)
rgw: 支持通过用户的访问密钥获取管理员rest api用户信息 (pr#22790, yuliyang)
rgw: 当SSL在代理中终止时支持服务器端加密 (issue#27221, pr#24700, Casey Bodley)
rgw: Swift SLO size_bytes成员是可选的 (issue#18936, pr#22967, Matt Benjamin)
rgw: Swift的TempURL可以处理ISO8601格式的temp_url_expires (issue#20795, pr#16658, Radoslaw Zarzynski)
rgw: 同步模块:避免在日志中打印对象的attrs (issue#37646, pr#25541, Abhishek Lekshmanan)
rgw: 测试bi列表 (issue#24483, pr#21772, Orit Wasserman)
rgw: test/rgw: 为HAVE_BOOST_CONTEXT添加ifdef (pr#25744, Casey Bodley)
rgw,tests: qa: 为https://github.com/ceph/ceph/pull/22790添加测试 (pr#23143, yuliyang)
rgw,tests: qa/rgw: 将cls_lock/log/refcount/version测试添加到verify套件 (pr#25381, Casey Bodley)
rgw,tests: qa/rgw: 添加缺失的导入行 (pr#25298, Shilpa Jagannath)
rgw,tests: qa/rgw: 将radosgw-admin-rest任务添加到singleton套件 (pr#23145, Casey Bodley)
rgw,tests: qa/rgw: 禁用ec-cache池上的测试 (issue#23965, pr#22126, Casey Bodley)
rgw,tests: qa/rgw: 修复radosgw_admin_rest.py中无效的语法错误 (issue#37440, pr#25305, Casey Bodley)
rgw,tests: qa/rgw: 将ragweed升级测试移到upgrade/luminous-x (pr#21707, Casey Bodley)
rgw,tests: qa/rgw: 为radosgw覆盖valgrind --max-threads (issue#25214, pr#23372, Casey Bodley)
rgw,tests: qa/rgw: 补丁keystone requirements.txt (issue#23659, pr#23402, Casey Bodley)
rgw,tests: qa/rgw: 减少多站点日志分片数量 (pr#24011, Casey Bodley)
rgw,tests: qa/rgw: 重组验证任务 (pr#22249, Casey Bodley)
rgw,tests: qa/rgw/tempest: 强制os_type或选择随机发行版 (pr#25996, Yehuda Sadeh)
rgw,tests: test/rgw: 修复bucket检查点 (issue#24212, pr#22124, Casey Bodley)
rgw,tests: test/rgw: 修复test_rgw_reshard_wait中的竞争条件 (pr#26741, Casey Bodley)
rgw,tests: test/rgw: 消除-Wsign-compare警告 (pr#26364, Kefu Chai)
rgw: 对象过期生成的删除标记应具有所有者属性 (issue#24568, pr#22619, Zhang Shaowen)
rgw: 获取cors时rgw返回的错误码与amz s3不同 (issue#26964, pr#23646, ashitakasam)
rgw: 将DoutPrefixProvider线程化到RGW::Auth_S3::authorize (pr#24409, Ali Maredia)
rgw,tools: ceph-dencoder: 添加RGWRealm和RGWPeriod支持 (pr#25057, yuliyang)
rgw,tools: cls: refcount: 向ceph-dencoder添加obj_refcount (pr#25441, Abhishek Lekshmanan)
rgw,tools: cls/rgw: 准备rgw_usage_log_entry通过ceph-dencoder提取 (issue#34537, pr#22344, Vaibhav Bhembre)
rgw,tools: vstart: 使beast作为rgw的默认前端 (pr#26566, Abhishek Lekshmanan)
rgw,tools: vstart: rgw: 禁用lc调试间隔选项 (pr#25487, Abhishek Lekshmanan)
rgw,tools: vstart: 在conf中为RGW设置admin socket (pr#23983, Abhishek Lekshmanan)
rgw: 更新cls_rgw.cc和cls_rgw_const.h (pr#24001, yuliyang)
rgw: 覆盖时更新ObjectCacheInfo::time_added (issue#24346, pr#22324, Casey Bodley)
rgw: 更新使用和文档中的--url (pr#22100, Jos Collin)
rgw: 使用分块编码更快地获取部分结果 (issue#12713, pr#23940, Robin H. Johnson)
rgw: 使用coarse_real_clock表示req_state::time (pr#21893, Casey Bodley)
rgw: 使用DoutPrefixProvider为日志输出添加更多上下文 (pr#21700, Casey Bodley)
rgw: 在RGWLC中使用部分排序的bucket列表,添加可配置的处理延迟 (issue#23956, pr#21755, Matt Benjamin)
rgw: 用户策略 (pr#21379, Pritha Srivastava)
rgw: 用户统计考虑了重新分片的bucket (pr#24595, Casey Bodley)
rgw: 如果区域不包含所有zg的放置目标,则发出警告 (pr#22452, Abhishek Lekshmanan)
rgw: 网站路由规则数量限制 (pr#23429, yuliyang)
rgw: 当独占锁因现有锁失败时,记录附加信息 (issue#38171, pr#26272, J. Eric Ivancich)
rgw: 区域服务只提供对其数据的const访问 (pr#25412, Casey Bodley)
rocksdb: 采用修复以实现向后兼容 (issue#25146, pr#25070, Kefu Chai)
script: build-integration-branch: 避免Unicode错误 (issue#24003, pr#21807, Nathan Cutler)
script/kubejacker: 添加基于openSUSE的镜像 (pr#24055, Sebastian Wagner)
scripts: backport-create-issue: 抱怨重复并支持mimic (issue#24071, pr#21634, Nathan Cutler)
seastar: 修复POSIX堆栈中的段错误 (pr#25861, Kefu Chai)
spec: 添加缺失的rbd mirror bootstrap目录 (pr#24856, Sébastien Han)
src: 平衡std::hex和std::dec操纵符 (pr#22287, Kefu Chai)
src/ceph.in: dev模式: 将构建路径添加到PATH的开头,而不是末尾 (issue#24578, pr#22628, Dan Mick)
src: 消除Fedora 28中的新警告 (pr#21898, Adam C. Emerson)
test/crimson: unittest_seastar_echo的修复 (pr#26419, Yingxin Cheng, Kefu Chai)
test/fio: 修复编译器失败 (pr#22728, Jianpeng Ma)
test/fio: 控制文件预分配的新选项 (pr#23410, Igor Fedotov)
tests: 为ceph-objectstore-tool的dump命令添加hashinfo测试 (issue#38053, pr#26158, David Zafman)
tests: 添加ubuntu 18.04 dockerfile (pr#25251, Kefu Chai)
tests: auth, test: 修复NSS -> OpenSSL过渡后ARM上的构建 (pr#22129, Radoslaw Zarzynski)
tests: ceph_kvstorebench: 包含<errno.h>而不是asm-generic/errno.h (pr#25256, Kefu Chai)
tests: ceph-volume: 功能测试,添加libvirt自定义 (pr#25895, Jan Fajerski)
tests: 不检查无效的k/m组合 (issue#16500, pr#25046, Kefu Chai)
tests: 独立测试的修复 (pr#22480, David Zafman)
tests: 修复MessengerTest.NameAddrTest中对server_conn的检查 (pr#23931, Yingxin)
tests: 使ceph-admin-commands.sh记录其操作 (issue#37089, pr#25080, Nathan Cutler)
tests: 使test_ceph_argparse.py在仅支持py3的系统上通过 (issue#24816, pr#22922, Nathan Cutler)
tests: mgr/ansible: 添加安装tox==2.9.1 (pr#26313, Kefu Chai)
tests: mgr/dashboard: 添加了对集群菜单的额外面包屑和选项卡测试 (pr#26151, Nathan Weinberg)
tests: mgr/dashboard: 为集群添加了额外的面包屑测试 (pr#25010, Nathan Weinberg)
tests: mgr/dashboard: 添加了对池菜单的面包屑和选项卡测试 (pr#25572, Nathan Weinberg)
tests: mgr/dashboard: 添加了对块菜单项的面包屑测试 (pr#25143, Nathan Weinberg)
tests: mgr/dashboard: 添加了对文件系统菜单的面包屑测试 (pr#26592, Nathan Weinberg)
tests: mgr/dashboard: 添加了NFS Ganesha套件到QA测试 (pr#26510, Laura Paduano)
tests: mgr/dashboard: 添加了对块菜单项的选项卡测试 (pr#26243, Nathan Weinberg)
tests: mgr/dashboard: 添加Jest Runner (pr#22031, Tiago Melo)
tests: mgr/dashboard: 为controller/erasure_code_profile.py添加单元测试用例 (pr#24789, Ranjitha G)
tests: mgr/dashboard: 为前端api服务添加单元测试 (pr#22284, Tiago Melo)
tests: mgr/dashboard: 为所有前端管道添加单元测试 (pr#22182, Tiago Melo)
tests: mgr/dashboard: 为前端服务添加单元测试 (pr#22244, Tiago Melo)
tests: mgr/dashboard: 修复一个损坏的ECP控制器测试 (pr#25363, Zack Cerza)
tests: mgr/dashboard: 修复测试运行器的PYTHONPATH (pr#25359, Zack Cerza)
tests: mgr/dashboard: 改进max-line-length tslint规则 (pr#22279, Tiago Melo)
tests: mgr/dashboard: RbdMirroringService测试套件在dev模式下失败 (issue#37841, pr#25865, Stephan Müller)
tests: mgr/dashboard: 运行teuthology测试的小幅改进 (pr#25121, Zack Cerza)
tests: mgr/dashboard: 更新了API测试 (pr#25653, Alfonso Martínez)
tests: mgr/dashboard: 更新了API测试以反映ModuleInfo中的更改 (pr#25761, Kefu Chai)
tests: mgr/test_orchestrator: 修正ceph-volume路径 (issue#37773, pr#25839, Kefu Chai)
tests: be_select_auth_object()中发现的对象错误没有以相同方式记录 (issue#25108, pr#23376, David Zafman)
tests: osd/OSDMap: 根据配置设置pg_autoscale_mode (pr#25746, Kefu Chai)
tests: os/tests: 修复store_test套件中的garbageCollection测试用例 (pr#23752, Igor Fedotov)
tests: os/tests: 消除-Wsign-compare警告 (pr#25072, Kefu Chai)
tests: qa: 为升级测试添加librados3到exclude_packages (pr#25037, Kefu Chai)
tests: qa: 添加构建示例librados程序的测试 (issue#35989, issue#15100, pr#23131, Nathan Cutler)
tests: qa/ceph-ansible: 将ceph_stable_release设置为mimic (issue#38231, pr#26328, Brad Hubbard)
tests: qa/distros: 添加openSUSE Leap 42.3和15.0 (pr#24380, Nathan Cutler)
tests: qa: 移动日志时不要使用sudo (pr#22763, David Zafman)
tests: qa: 为thrash-old-clients测试降级librados2,librbd1 (issue#37618, pr#25463, Kefu Chai)
tests: qa: 修复管理器模块路径 (pr#23637, Noah Watkins, David Zafman)
tests/qa - 修复夜间版本的mimic子集 (pr#21931, Yuri Weinstein)
tests: qa: 修复“ceph fs set cephfs allow_new_snaps”测试 (pr#21829, Kefu Chai)
tests: qa: 修复升级测试和test_envlibrados_for_rocksdb.sh (pr#25106, Kefu Chai)
tests: qa: 对于teuthology,将日志复制到teuthology期望的位置 (pr#22702, David Zafman)
tests: qa/mgr/dashboard: 修复类型注释错误 (pr#25235, Sebastian Wagner)
tests: qa/mon: 修复monmap引导的集群支持 (issue#38115, pr#26205, Casey Bodley)
tests: qa/standalone: 小幅测试改进 (issue#35912, pr#24018, David Zafman)
tests: qa/standalone/scrub: 如果可能,除了常规diff之外,还显示并排diff (pr#22727, David Zafman)
tests: qa/standalone: 独立测试修正 (issue#35982, pr#24088, David Zafman)
tests: qa/suites/rados/upgrade: 删除多余链接 (pr#22460, Sage Weil)
tests: qa/suites/rados/upgrade: 将require-osd-release设置为nautilus (issue#37432, pr#25314, Kefu Chai)
tests: qa/suites/rados/verify: 删除random-distro$ (pr#22057, Kefu Chai)
tests: qa/suites/upgrade/mimic-x: 修复rhel运行 (pr#25781, Neha Ojha)
tests: qa/tasks/mgr: 修复test_pool.py (issue#24077, pr#21943, Kefu Chai)
tests: qa/tasks/thrashosds-health.yaml: 白名单慢请求 (issue#25104, pr#23237, Neha Ojha)
tests: qa/tasks: 更新maven的镜像链接 (pr#23944, Vasu Kulkarni)
tests: qa/tests: 添加过滤器以支持客户端升级测试的发行版测试 (pr#22096, Yuri Weinstein)
tests: qa/tests - 添加了mimic-p2p套件 (pr#22726, Yuri Weinstein)
tests: qa/tests: 添加了mimic运行,删除了大型套件(rados、rbd等)运行... (pr#21827, Yuri Weinstein)
tests: qa/tests: 添加了“-n 7”以确保mimic-x在已构建的主分支上运行 (pr#25038, Yuri Weinstein)
tests: qa/tests: 添加了rhel 7.6 (pr#25919, Yuri Weinstein)
tests: qa/tests: 修复在ovh中运行时卷大小的问题 (pr#21961, Vasu Kulkarni)
tests: qa/tests: 将ceph-ansible测试移至ansible版本2.7 (issue#37973, pr#26068, Brad Hubbard)
tests: qa/tests: 从ceph-deploy中删除ceph-disk测试,并默认所有测试使用ceph-volume (pr#22921, Vasu Kulkarni)
tests: qa/upgrade: nautilus的清理工作 (pr#23305, Nathan Cutler)
tests: qa: 使用$TESTDIR进行mkfs测试 (pr#22246, Kefu Chai)
tests: qa: 等待osd刷新pg stats更长时间 (issue#24321, pr#22275, Kefu Chai)
tests: qa/workunits/ceph-disk: --no-mon-config (pr#21942, Kefu Chai)
tests: qa/workunits/mon/test_mon_config_key.py: 提高大小限制 (issue#36260, pr#24340, Kefu Chai)
tests: qa/workunits/rados/test_envlibrados_for_rocksdb: 安装g++而不是g++-4.7 (pr#22103, Kefu Chai)
tests: qa/workunits/rados/test_librados_build.sh: 从显式git分支获取文件 (pr#25268, Nathan Cutler)
tests: run-make-check: 将fs.aio-max-nr增加到1048576 (pr#23689, Kefu Chai)
tests: test,common: 消除GCC警告 (pr#23692, Kefu Chai)
tests: test/crimson: 为test_async_echo添加dummy_auth (pr#26783, Yingxin Cheng)
tests: test/crimson: 修复test_alien_echo的构建失败 (pr#26308, chunmei Liu)
tests: test/crimson: 修复arm64上unittest_seastar_perfcounters的FTBFS (pr#25647, Kefu Chai)
tests: test/crimson: 将async-msgr从alien_echo中分离出来 (pr#26620, Yingxin Cheng)
tests: test/dashboard: 修复导入dm.xmlsec.binding时发生的段错误 (issue#37081, pr#25139, Kefu Chai)
tests: test: 在scrub测试期间禁用重复请求命令测试 (pr#25675, David Zafman)
tests: test/docker-test-helper.sh: 将“cp .git/HEAD”移出循环 (pr#22978, Kefu Chai)
tests: test/encoding: 修复encoding/types.h文件中的拼写错误 (pr#22332, TommyLike)
tests: test/fio: 以不同方式将配置参数传递给对象存储 (pr#23267, Igor Fedotov)
tests: test: 修复test/crimson/test_config.cc中的编译错误 (pr#23724, Yingxin)
tests: test: 修复Log.GarbleRecovery中libc++崩溃 (pr#25135, Casey Bodley)
tests: test/librados: 修复LibRadosList.ListObjectsNS (pr#22771, Kefu Chai)
tests: test: 限制等待force-backfill/force-recovery发生的循环次数 (issue#38309, pr#26416, David Zafman)
tests: test: 需要在grep的log-whitelist中转义括号 (pr#22074, David Zafman)
tests: test: osd-backfill-stats.sh 修复多backfill OSD的检查,跳过re... (pr#26330, David Zafman)
tests: test/pybind/test_rados.py: 为“bench”命令收集标准输出 (pr#21957, Kefu Chai)
tests: test: run-standalone.sh: 将LD_LIBRARY_PATH指向$(pwd)/lib (issue#38262, pr#26371, David Zafman)
tests: tests/qa: 尝试$ distro mix (pr#21895, Yuri Weinstein)
tests: test: 开始使用GNU awk并修复存档目录 (pr#23955, Willem Jan Withagen)
tests: test/strtol: 为解析十六进制数添加测试用例 (pr#21582, Jan Fajerski)
tests: test: 也在其测试中抑制核心转储 (pr#25311, Willem Jan Withagen)
tests: test: 在 FreeBSD 上切换到 GNU sed (pr#26318, Willem Jan Withagen)
tests: test: test_get_timeout_delays() 修复 (pr#22837, David Zafman)
tests: test: 使用在所有操作系统上都应该存在的文件 (pr#22428, David Zafman)
tests: test: 使用在不同版本中都有效的 grep 模式 (issue#35845, pr#24013, David Zafman)
tests: test: 使用 pids 而不是错误的 jobspecs (issue#27056, pr#23695, David Zafman)
tests: test: wait_for_pg_stats() 在最后 13 秒后应该再检查一次 (pr#22198, David Zafman)
tests: test: 白名单修正 (pr#22164, David Zafman)
tests: test: 将日志文件写入当前目录 (issue#36737, pr#25704, Kefu Chai)
tests,tools: ceph-objectstore-tool: 转储哈希信息 (issue#37597, pr#25483, David Zafman)
tests: 更新 Dockerfile 以支持 fc-29 (pr#26311, Kefu Chai)
tests: upgrade/luminous-x: 修复 final-workload 目录的顺序 (pr#23162, Nathan Cutler)
tests: upgrade/luminous-x: rados_mon_thrash 的白名单 REQUEST_SLOW (issue#25051, pr#23160, Nathan Cutler)
tests: Wip 38027 38195: osd/osd-backfill-space.sh 失败 (issue#38027, issue#38195, pr#26290, David Zafman)
tools: 向 objectstore 工具添加 clear-data-digest 命令 (pr#25403, Li Yichao)
tools: 为“rados”负载生成器添加 offset-align 选项 (pr#20683, Zengran Zhang)
tools: backport-create-issue: 限制速率以避免看起来像垃圾邮件发送者 (pr#24243, Nathan Cutler)
tools: ceph-menv: mrun shell 环境 (pr#22132, Yehuda Sadeh)
tools: ceph-objectstore-tool: 允许目标级别作为第一个位置参数 (issue#35846, pr#23989, David Zafman)
tools: 修正 osdomap 工具中 Allowed 选项的描述 (pr#23488, xiaomanh)
tools, mgr: 消除 clang 警告 (pr#23430, Kefu Chai)
tools: mstop.sh 允许在未能终止进程后使用 kill -9 (pr#26680, Yuval Lifshitz)
tools/rados: 修复错误路径中的内存泄漏 (pr#25410, Li Wang)
tools: script/kubejacker: 包含 cls 库 (pr#23569, John Spray)
tools: script: 新的 ceph-backport.sh 脚本 (pr#22875, Nathan Cutler)
tools: tools: ceph-authtool: 创建 keyring 时报告正确的 caps 数量 (pr#23304, Nathan Cutler)
tools: tools/ceph_kvstore_tool: 修复 rocksdb 时不要打开它 (pr#25108, Kefu Chai)
tools: tools/ceph_kvstore_tool: 将 StoreTool 提取到 kvstore_tool.cc (pr#26041, Kefu Chai)
tools: tools/ceph_kvstore_tool: 将摘要输出移动到 print_summary (pr#26666, Brad Hubbard)
tools: tools/rados: 允许在池中特定 pg 中列出对象 (pr#19041, Li Wang)
tools: tools/rados: 在 exit() 前总是调用 rados.shutdown() (issue#36732, pr#24990, Li Wang)
tools: tools/rados: 修正 bench 的读取偏移量 (pr#23667, Xiaofei Cui)
tools: tools/rados: 修正 target-throughput 的单位 (pr#23683, Xiaofei Cui)
vstart: rbd 未构建时禁用 dashboard (pr#23336, Noah Watkins)
vstart.sh: 修复 monmaptool 的参数生成 (issue#38174, pr#26273, Yehuda Sadeh)