v16.2.7 Pacific 发布
这是Pacific系列的第七个反向移植版本。我们建议所有用户更新到此版本。
重要变更 ¶
修复了OMAP格式升级中的关键错误。如果在pre-Pacific集群升级后设置了bluestore-quick-fix-on-mount参数为true或调用了ceph-bluestore-tool的quick-fix/repair命令,这可能会导致数据损坏(OMAP键格式不正确)。相关跟踪器:https://tracker.ceph.com/issues/53062。
bluestore-quick-fix-on-mount默认仍设置为false。MGR:pg_autoscaler将使用'scale-up'配置文件作为默认配置文件。16.2.6版本将默认配置文件更改为'scale-down',但我们遇到了device_health_metrics池消耗过多PG的问题,这不利于性能。因此,我们将继续默认使用'scale-up'配置文件,直到我们实现了对默认池应消耗的PG数量限制,并结合'scale-down'配置文件使用。
Cephadm & Ceph Dashboard:NFS管理已完全重构,以确保NFS导出在不同的Ceph组件中得到一致管理。在此之前,有3个不兼容的实现来配置NFS导出:Ceph-Ansible/OpenStack Manila、Ceph Dashboard和'mgr/nfs'模块。在此版本中,'mgr/nfs'方式成为官方接口,其余组件(Cephadm和Ceph Dashboard)均遵循它。虽然这可能需要从已弃用的实现手动迁移,但它将简化严重依赖NFS导出的用户的体验。
Dashboard:“集群扩展向导”。在'cephadm bootstrap'步骤之后,登录到Ceph Dashboard的用户将看到一个欢迎屏幕。如果他们选择按照安装向导进行操作,他们将被引导完成一系列步骤,以帮助他们配置Ceph集群:通过添加更多主机来扩展集群、检测和定义其存储设备,最后部署和配置不同的Ceph服务。
OSD:当使用mclock_scheduler进行QoS时,不再需要运行任何手动基准测试。OSD现在在初始化期间通过运行简单的基准测试自动为osd_mclock_max_capacity_iops设置适当的值。
MGR:progress模块中的全局恢复事件已得到优化,并在统计信息收集之间添加了5秒的sleep_interval,以减少progress模块对MGR的影响,特别是在大型集群中。
变更日志 ¶
*: s/virtualenv/python -m venv/ (pr#43002, Kefu Chai, Ken Dreyer)
admin/doc-requirements.txt: 将Sphinx固定在3.5.4版本 (pr#43748, Kefu Chai)
反向移植mgr/nfs位 (pr#43811, Sage Weil, Michael Fritch)
ceph-volume:
get\_first\_lv()重构 (pr#43960, Guillaume Abrioux)ceph-volume: 修复导致AttributeError的拼写错误 (pr#43949, Taha Jahangir)
ceph-volume: 修复具有多个PV的VG的db/wal槽大小计算错误 (pr#43948, Guillaume Abrioux, Cory Snyder)
ceph-volume: 修复 lvm activate --all --no-systemd (pr#43267, Dimitri Savineau)
ceph-volume: util/prepare 修复 osd_id_available() (pr#43708, Guillaume Abrioux)
ceph.spec: selinux脚本尊重 CEPH_AUTO_RESTART_ON_UPGRADE (pr#43235, Dan van der Ster)
cephadm: 十一月批次 (pr#43906, Sebastian Wagner, Sage Weil, Daniel Pivonka, Andrew Sharapov, Paul Cuzner, Adam King, Melissa Li)
cephadm: 十月批次 (pr#43728, Patrick Donnelly, Sage Weil, Cory Snyder, Sebastian Wagner, Paul Cuzner, Joao Eduardo Luis, Zac Dover, Dmitry Kvashnin, Daniel Pivonka, Adam King, jianglong01, Guillaume Abrioux, Melissa Li, Roaa Sakr, Kefu Chai, Brad Hubbard, Michael Fritch, Javier Cacheiro)
cephfs-mirror, test: 为cephfs镜像守护程序添加thrash测试,HA测试yamls (issue#50372, pr#43924, Venky Shankar)
cephfs-mirror: 终止时关闭ClusterWatcher (pr#43198, Willem Jan Withagen, Venky Shankar)
cmake: 链接 Threads::Threads 而非 CMAKE_THREAD_LIBS_INIT (pr#43167, Ken Dreyer)
cmake: s/Python_EXECUTABLE/Python3_EXECUTABLE/ (pr#43264, Michael Fritch)
crush: 取消 up set size != pool size 的upmaps (pr#43415, huangjun)
doc/radosgw/nfs: 添加有关NFSv3弃用的说明 (pr#43941, Michael Fritch)
doc: 文档化子卷(组)pin (pr#43925, Patrick Donnelly)
github: 将dashboard PR添加到Dashboard项目 (pr#43610, Ernesto Puerta)
librbd/cache/pwl: 持久缓存反向移植 (pr#43772, Kefu Chai, Yingxin Cheng, Yin Congmin, Feng Hualong, Jianpeng Ma, Ilya Dryomov, Hualong Feng)
librbd/cache/pwl: SSD缓存反向移植 (pr#43918, Yin Congmin, Jianpeng Ma)
librbd/object_map: rbd diff between two snapshots lists entire image content (pr#43805, Sunny Kumar)
librbd: 修复池验证锁定 (pr#43113, Ilya Dryomov)
mds/FSMap: 不要在旧FSMaps上断言allow_standby_replay (pr#43614, Patrick Donnelly)
mds: 为MClientSession添加新标志 (pr#43251, Kotresh HR)
mds: 在打开根目录时不要修剪stray dentries (pr#43815, Xiubo Li)
mds: 在
replay状态下跳过黑名单客户端的日志记录 (pr#43841, Venky Shankar)mds: 将mds_lock切换到公平互斥锁以修复性能缓慢问题 (pr#43148, Xiubo Li, Kefu Chai)
MDSMonitor: 升级到v16.2.5+期间的断言 (pr#43890, Patrick Donnelly)
MDSMonitor: 处理来自standby-replay的损坏状态 (pr#43200, Patrick Donnelly)
MDSMonitor: 集群部署后没有活动的MDS (pr#43891, Patrick Donnelly)
mgr/dashboard,prometheus: 修复server_addr的处理 (issue#52002, pr#43631, Scott Shambarger)
mgr/dashboard: 所有pyfakefs必须固定在同一版本 (pr#43930, Rishabh Dave)
mgr/dashboard: BATCH incl.: NFS集成、集群扩展工作流和Angular 11升级 (pr#43682, Alfonso Martínez, Avan Thakkar, Aashish Sharma, Nizamudeen A, Pere Diaz Bou, Varsha Rao, Ramana Raja, Sage Weil, Kefu Chai)
mgr/dashboard: cephfs MDS工作负载使用rate作为counter类型指标 (pr#43190, Jan Horacek)
mgr/dashboard: 清理控制器和API向后版本兼容性 (pr#43543, Ernesto Puerta, Avan Thakkar)
mgr/dashboard: 使用bootstrap类列出守护程序事件 (pr#44057, Nizamudeen A)
mgr/dashboard: Grafana仪表板中弃用变量的使用 (pr#43188, Patrick Seidensal)
mgr/dashboard: 设备健康状态未在主机部分列出 (pr#44053, Aashish Sharma)
mgr/dashboard: 编辑服务功能 (pr#43939, Nizamudeen A)
mgr/dashboard: 修复失败的配置仪表板e2e检查 (pr#43238, Nizamudeen A)
mgr/dashboard: 修复不稳定的库存e2e测试 (pr#44056, Nizamudeen A)
mgr/dashboard: 修复缺失的警报规则详情 (pr#43812, Ernesto Puerta)
mgr/dashboard: 修复 orchestrator/01-hosts.e2e-spec.ts 失败 (pr#43541, Nizamudeen A)
mgr/dashboard: 在rgw用户详情部分包含mfa_ids (pr#43893, Avan Thakkar)
mgr/dashboard: 不正确的MTU不匹配警告 (pr#43185, Aashish Sharma)
mgr/dashboard: 监控:radosgw仪表板的grafonnet重构 (pr#43644, Aashish Sharma)
mgr/dashboard: 将强制维护测试移至工作流测试套件 (pr#43347, Nizamudeen A)
mgr/dashboard: 为autopep8和pyfakefs固定版本 (pr#43646, Nizamudeen A)
mgr/dashboard: 在创建主机表单中预定义标签 (pr#44077, Nizamudeen A)
mgr/dashboard: RBD镜像表中的已配置值具有误导性 (pr#44051, Avan Thakkar)
mgr/dashboard: 将“Ceph-cluster”客户端连接替换为active-standby MGRs (pr#43523, Avan Thakkar)
mgr/dashboard: rgw守护程序列表:添加realm列 (pr#44047, Alfonso Martínez)
mgr/dashboard: 主机表单网络地址字段中的拼写错误 (pr#43973, Avan Thakkar)
mgr/dashboard: ceph dashboard的视觉回归测试 (pr#42678, Aaryan Porwal)
mgr/dashboard: 视觉测试:为dashboard组件添加更多忽略区域 (pr#43240, Aaryan Porwal)
mgr/influx: 对未知主机名使用“N/A” (pr#43368, Kefu Chai)
mgr/mirroring: 从守护程序状态命令中删除不必要的fs_name参数 (issue#51989, pr#43199, Venky Shankar)
mgr/nfs: nfs-rgw批次反向移植 (pr#43075, Sebastian Wagner, Sage Weil, Varsha Rao, Ramana Raja)
mgr/progress: 优化全局恢复 && 引入5秒间隔 (pr#43353, Kamoltat, Neha Ojha)
mgr/prometheus: 提供禁用缓存的能力 (pr#43931, Patrick Seidensal)
mgr/volumes: 修复使用mode创建subvol时的权限问题 (pr#43223, Kotresh HR)
mgr: 添加检查以防止mgr崩溃 (pr#43445, Aswin Toni)
mon,auth: 修复旋转密钥的提案(和mon db重建) (pr#43697, Sage Weil)
mon/MDSMonitor: 避免在解码旧FSMap epoch时崩溃 (pr#43615, Patrick Donnelly)
mon: 允许指定新的决胜监视器 (pr#43457, Greg Farnum)
mon: MonMap: 只要设置了disallowed_leaders,就显示它们 (pr#43972, Greg Farnum)
mon: MonMap: 在拉伸模式下不要增加mon_info_t的compatv,真的 (pr#43971, Greg Farnum)
monitoring: 网络负载中的以太网绑定过滤器 (pr#43694, Pere Diaz Bou)
msg/async/ProtocolV2: 在接收消息开始时设置recv_stamp (pr#43511, dongdong tao)
msgr/async: 修复unregister_conn()中的不安全访问 (pr#43548, Sage Weil, Radoslaw Zarzynski)
os/bluestore: _do_write_small 修复 head_pad (pr#43756, dheart)
os/bluestore: 在卷选择器中不选择不存在的设备 (pr#43970, Igor Fedotov)
os/bluestore: 修复升级到per-pg时无效的omap名称转换 (pr#43793, Igor Fedotov)
os/bluestore: 列出等于pend的对象 (pr#43512, Mykola Golub, Kefu Chai)
os/bluestore: 多个修复修复 (pr#43731, Igor Fedotov)
osd/OSD: mkfs需要等待事务完全完成 (pr#43417, Chen Fan)
osd: 修复重启osd后部分恢复变为整个对象恢复的问题 (pr#43513, Jianwei Zhang)
osd: 修复允许inc manifest泄漏 (pr#43306, Myoungwon Oh)
osd: 修复在调用set_chunk时恢复相邻克隆 (pr#43099, Myoungwon Oh)
osd: 在backfill和deep scrub期间优雅地处理不一致的哈希信息 (pr#43544, Ronen Friedman, Mykola Golub)
osd: 在每个peering state激活时重新缓存peer_bytes (pr#43437, Mykola Golub)
osd: 运行osd基准测试以覆盖mclock的默认最大osd容量 (pr#41731, Sridhar Seshasayee)
Pacific: BlueStore: Omap升级到per-pg修复修复 (pr#43922, Adam Kupczyk)
Pacific: client: 撤销时不要推迟释放cap (pr#43782, Xiubo Li)
Pacific: mds: 添加读/写io大小指标支持 (pr#43784, Xiubo Li)
Pacific: test/libcephfs: lookup后放置inodes (pr#43562, Patrick Donnelly)
pybind/mgr/cephadm: 在CephFS升级期间设置allow_standby_replay (pr#43559, Patrick Donnelly)
pybind/mgr/CMakeLists.txt: 排除运行时未使用的文件 (pr#43787, Duncan Bellamy)
pybind/mgr/pg_autoscale: 恢复默认配置文件 scale-up (pr#44032, Kamoltat)
qa/mgr/dashboard/test_pool: 不检查 HEALTH_OK (pr#43440, Ernesto Puerta)
qa/mgr/dashboard: 为测试添加额外等待时间 (pr#43351, Ernesto Puerta)
qa/rgw: pacific分支目标java_s3tests的ceph-pacific分支 (pr#43809, Casey Bodley)
qa/suites/orch/cephadm: mgr-nfs-upgrade: 添加缺失的0-distro目录 (pr#44201, Sebastian Wagner)
qa/tasks/kubeadm: 强制docker cgroup引擎为systemd (pr#43937, Sage Weil)
qa/tasks/mgr: 在python>=3.8上跳过test_diskprediction_local (pr#43421, Kefu Chai)
qa/tests: 高级版本以反映最新的16.2.6版本 (pr#43242, Yuri Weinstein)
qa: 升级期间在内核客户端禁用指标 (pr#44034, Patrick Donnelly)
qa: 延长fs map显示dead MDS的宽限期 (pr#43702, Patrick Donnelly)
qa: 杂项性能套件修复 (pr#44154, Neha Ojha)
qa: 减少dir_split counter测试的frag split配置 (pr#43828, Patrick Donnelly)
rbd-mirror: 修复镜像图像删除 (pr#43662, Arthur Outhenin-Chalandre)
rbd-mirror: 修复单向基于快照的镜像 (pr#43315, Ilya Dryomov)
rgw/notification: 使通知与桶重新分片无关 (pr#42946, Yuval Lifshitz)
rgw/notifications: 缓存对象大小以避免访问无效内存 (pr#42949, Yuval Lifshitz)
rgw/notifications: 在创建删除标记的情况下发送正确的大小 (pr#42643, Yuval Lifshitz)
rgw/notifications: 支持v4 auth用于主题和通知 (pr#42947, Yuval Lifshitz)
rgw/rgw_rados: 使RGW请求ID非确定性 (pr#43695, Cory Snyder)
rgw/sts: 修复使用sts进行复制对象操作 (pr#43703, Pritha Srivastava)
rgw/tracing: 统一librgw2包中的SO版本号 (pr#43619, Nathan Cutler)
rgw: 添加ops log目标抽象并添加文件记录器 (pr#43740, Casey Bodley, Cory Snyder)
rgw: 确保太旧而无法解码布局的桶具有布局日志 (pr#43823, Adam C. Emerson)
rgw: 修复桶清除不完整的multipart uploads (pr#43862, J. Eric Ivancich)
rgw: 修复S3消息结构中eTag的拼写错误 (pr#42945, Tom Schoonjans)
rgw: 修复sts内存泄漏 (pr#43348, yuliyang_yewu)
rgw: 为桶删除和mp上传中止删除prefix & delim参数 (pr#43975, J. Eric Ivancich)
rgw: 在s3 website retarget()中使用现有的s->bucket (pr#43777, Casey Bodley)
rpm, debian: 将smartmontools和nvme-cli移至ceph-base (pr#44164, Yaarit Hatuka)
snap-schedule: 按保留策略计算保留的快照数 (pr#43434, Jan Fajerski)
test: 测试结束后关闭mounter (pr#43475, Xiubo Li)