我们有 9 个节点的 Ceph 集群。Ceph 版本是 15.2.5。集群有 175 个 OSD (HDD) + 3 个 NVMe 用于“cephfs_data”池的缓存层。CephFS 池信息:
POOL ID STORED OBJECTS USED %USED MAX AVAIL
cephfs_data 1 350 TiB 179.53M 350 TiB 66.93 87 TiB
cephfs_metadata 3 3.1 TiB 17.69M 3.1 TiB 1.77 87 TiB
我们使用多个活动 MDS 实例:3 个“活动”和 3 个“备用”。每个 MDS 服务器有 128GB RAM,“mds 缓存内存限制”= 64GB。
故障转移到备用 MDS 实例需要 10-15 小时!客户端一直无法访问 CephFS。MDS 实例一直处于“up:replay”状态。看起来 MDS 恶魔在此步骤中检查了所有文件夹。我们有数百万个包含数百万个小文件的文件夹。完成文件夹/子文件夹扫描后,CephFS 将再次处于活动状态。我相信 MDS 故障转移期间 10 小时的停机时间是出乎意料的行为。有什么方法可以强制 MDS 将状态更改为活动并在后台运行所有必需的目录检查?如何定位根本原因?
PS:我们尝试了standby-replay,它有帮助,但不能消除根本原因。