#18370·rook

Ceph mons wedge / 在 Ubuntu 26.04 HA 上永远不保持多数 (内核 7.0.0-31-generic); 22.04 上的相同堆栈健康

作者: magarpol创建于 2026年9月10日更新于 2026年9月18日
标签bug

如何重现此问题(尽可能简洁和精确): 1. 在 Kubernetes v1.31 上部署 Rook v1.17.0,使用 CNI Calico(IPIP,tunl0 MTU 1480)。 2. 节点:VMware VM(vmxnet3 网卡),Ubuntu 26.04(内核 7.0.0-31-generic);3 个控制平面 MON 和 4 个工作 OSD(每个工作节点一个原始设备)。 3. CephBlockPool:复制,大小为 2,故障域为区域,设备类型为 SSD。 4. 启动 CephCluster。 OSD 启动,集群暂时达到 HEALTH_OK,然后 MON 协议坍塌,rbdpool 保持 Progressing 状态。 此问题在 Ceph v19.2.1、v18.2.4(Reef)和 v19.2.6(最新的 Squid)中都可以重现,因此不属于 Ceph 版本特定问题。 通过直接测量排除了以下问题(所有节点均健康且无影响): - MON 之间的时钟偏移小于 0.3 秒;MON 磁盘 fsync 约 0.4 毫秒(rocksdb 无报告卡顿) - MON ↔ MON TCP 连接,包括通过 Service/kube-proxy 直接连接(绕过 Service/kube-proxy):所有连接正常 - kube-proxy 在 iptables 模式下 - 关闭集群范围内的网卡校验/分段卸载(vmxnet3):无变化 - 所有节点上都存在主机内核模块和 sysctl:br_netfilter、overlay、ip_vs、nf_conntrack 被加载;net.bridge.bridge-nf-call-iptables=1、net.ipv4.ip_forward=1 - MON 节点上的 dmesg 为清空 - 没有 OOM、挂起任务或网卡驱动错误 - 强制使用 msgr v1(ms_bind_msgr2=false):无变化 - 管理端口挂起与传输无关