v14.2.1 Nautilus 发布
TheAnalyst
这是 Ceph Nautilus 发布系列中的第一个错误修复版本。我们建议所有 Nautilus 用户升级到此版本。要从较旧的 Ceph 版本升级,必须遵循 Nautilus 的通用升级指南:从 Mimic 或 Luminous 升级。
重要变更 ¶
mon_crush_min_required_version 的默认值已从 firefly 更改为 hammer,这意味着如果您的 CRUSH 调优项早于 hammer,集群将发出健康警告。切换到 hammer 调优项通常会导致少量(但非零)数据移动;有关更多信息,请参阅调优项。
如果可能,我们建议您将允许的最旧客户端设置为 hammer 或更高版本。您可以使用以下命令查看当前允许的最旧客户端:
ceph osd dump | min_compat_client
如果当前值早于 hammer,您可以通过使用以下命令验证当前没有早于 hammer 的客户端连接到集群,从而判断是否可以安全地进行此更改:
ceph features
较新的 straw2 CRUSH 存储桶类型是在 hammer 中引入的,确保所有客户端都是 hammer 或更新版本,允许使用仅支持 straw2 存储桶的新功能,包括Balancer的 crush-compat 模式。
Ceph 现在打包了 python3.6 而不是 python3.4 的 python 绑定,因为 EPEL7 最近将 python3.4 切换为 python3.6 作为原生 python3。有关此更改背景的更多详细信息,请参阅 epel 列表公告。
已知问题 ¶
- 基于 Nautilus 的 librbd 客户端无法打开存储在 Luminous 之前集群上的镜像
变更日志 ¶
- mgr/dashboard: 只读用户无法查看任何页面 (issue#39240, pr#27611, Stephan Müller)
- mgr/dashboard: 根据所需功能过滤 iSCSI 目标镜像 (issue#39002, pr#27363, Ricardo Marques)
- common/blkdev: get_device_id: 如果 model 是 lvm 且 id_model_enc 不存在,则正常运行 (pr#27158, Sage Weil)
- common/config: 将 --default-$option 解析为默认值 (pr#27217, Sage Weil)
- core: 自动修复的改进 (issue#38616, pr#27220, xie xingguo, David Zafman)
- dashboard: NFS: 在导出创建中禁用 NFSv3 失败 (issue#39104, issue#38997, pr#27368, Tiago Melo)
- doc/releases/nautilus: 修复配置更新步骤 (pr#27502, Sage Weil)
- 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 中存在但 osdmap 中不存在的 1 个 osd 会导致 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: 修复 run-tox.sh 的 env 变量 (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 Name”字段中的拼写错误 (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: 统一按钮/URL 操作命名 + 错误修复(添加白名单以保护) (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)
- mon/MonClient: 不要取消引用 auth_supported.end() (pr#27215, Kefu Chai)
- mon/MonmapMonitor: 清理 monmap 中空的 created stamp (issue#39085, pr#27399, 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)
- rook-ceph-system namespace 硬编码在 rook orchestrator 中 (issue#38799, issue#39250, pr#27496, Sebastian Wagner)
- rpm,cmake: 如果指定了 python3 版本,则使用它 (pr#27382, Kefu Chai)
- bluestore: ceph-bluestore-tool: 如果未配置 WAL,bluefs-bdev-expand cmd 可能会断言 (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 需要 numpy 和 scipy on SUSE,但这些软件包在 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’ object has no attribute ‘decode’ (pr#27531, Varsha Rao)
- cephfs: mds|kclient: RHEL 7.5 上的内联错误导致 MDS_CLIENT_LATE_RELEASE 警告 (issue#39225, pr#27500, “Yan, Zheng”)
- common,core: crush: weight-sets、osd_crush_update_weight_set 选项和测试的各种修复 (pr#27119, 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: 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 unlock 之前删除 obc ref (issue#38842, issue#38973, pr#27478, Zengran Zhang)
- doc: doc/orchestrator: 修复损坏的要点 (issue#39168, pr#27487, Sebastian Wagner)
- doc: doc: 次要 rados 相关文档修复 (issue#38896, issue#38903, pr#27189, David Zafman)
- doc: doc: rgw: 添加 Golang 的 library/package (issue#38730, issue#38867, pr#27549, Irek Fasikhov)
- 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: 使用 list;编辑主机;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: mon: 添加集群日志到文件选项 (pr#27346, Sage Weil)
- 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: trash move 对于迁移镜像返回 EBUSY 而不是 EINVAL (issue#38968, pr#27475, Mykola Golub)
- rbd: rbd: krbd: 轮询时返回 -ETIMEDOUT (issue#38792, issue#38977, pr#27539, Dongsheng Yang)
- rgw: multisite: 数据同步在到达末尾后循环回到 datalog 的开头 (issue#39075, issue#39033, pr#27498, Casey Bodley)
- rgw: orphans find 性能改进 (issue#39181, pr#27560, Abhishek Lekshmanan)
- rgw: rgw admin: 在 multisite 中禁用 stale instance deletion (issue#39015, pr#27602, Abhishek Lekshmanan)
- rgw: 为 Beast 添加 tcp_nodelay 选项 (issue#38926, pr#27355, Or Friedmann)
- rgw: 修复未找到 CORS 时 S3 兼容性错误 (issue#38923, issue#37945, pr#27331, Nick Janus)
- rgw: LC: 处理 resharded buckets (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 重新计算 etags (pr#27561, Casey Bodley)
- rgw: 修复 RGWDeleteMultiObj::verify_permission() (issue#38980, pr#27586, Irek Fasikhov)
- rgw: 修复 read not exists null version 返回错误 (issue#38811, issue#38909, pr#27306, Tianshan Qu)
- rgw: ldap: 修复 LDAPAuthEngine::init 中 uri 不为空时的提前返回 (issue#38754, pr#26972, Matt Benjamin)
- rgw: nfs: 跳过空(非 POSIX)路径段 (issue#38744, issue#38773, pr#27208, Matt Benjamin)
- rgw: nfs: svc-enable RGWLib (issue#38774, pr#27232, Matt Benjamin)
- rgw: 支持长度大于一个符号的分隔符 (issue#38777, pr#27548, Matt Benjamin)
- rgw: sse c 修复 (issue#38700, pr#27296, Adam Kupczyk, Casey Bodley, Abhishek Lekshmanan)