配置 MDS 和文件系统亲和性(pacific版本)
您可能希望有一个用于特定文件系统的 MDS。或者,也许您在更好的硬件上拥有更强大的 MDS,应该优先于在较少或过度配置的硬件上的最后手段备用。为了表达这种偏好,CephFS 为 MDS 提供了一个名为mds_join_fs
的配置选项,它强制执行这种关联。
作为任何故障转移的一部分,Ceph MON将优先选择与具有故障等级的文件系统名称相同的mds_join_fs
备用守护进程。如果不存在与文件系统名称相同的mds_join_fs
备用数据库,它将选择一个普通备用数据库(没有设置mds_join_fs
)作为替换或任何其他可用备用数据库作为最后的手段。请注意,这不会改变在查看其他备用数据库之前始终选择standby-replay
守护进程的行为。
更进一步,MON会在稳定时定期检查 CephFS 文件系统,以检查是否有具有更强亲和力的备用数据库可以替换具有较低亲和力的 MDS。这个过程也适用于standby-replay 守护进程:如果一个普通的standby 比standby-replay MDS 有更强的亲和力,它将替换standby-replay MDS。
例如,给定这个稳定且健康的文件系统:
$ ceph fs dump
dumped fsmap epoch 399
...
Filesystem 'cephfs' (27)
...
e399
max_mds 1
in 0
up {0=20384}
failed
damaged
stopped
...
[mds.a{0:20384} state up:active seq 239 addr [v2:127.0.0.1:6854/966242805,v1:127.0.0.1:6855/966242805]]
Standby daemons:
[mds.b{-1:10420} state up:standby seq 2 addr [v2:127.0.0.1:6856/2745199145,v1:127.0.0.1:6857/2745199145]]
您可以设置mds_join_fs
备用以强制执行您的偏好:
$ ceph config set mds.b mds_join_fs cephfs
自动故障转移后:
$ ceph fs dump
dumped fsmap epoch 405
e405
...
Filesystem 'cephfs' (27)
...
max_mds 1
in 0
up {0=10420}
failed
damaged
stopped
...
[mds.b{0:10420} state up:active seq 274 join_fscid=27 addr [v2:127.0.0.1:6856/2745199145,v1:127.0.0.1:6857/2745199145]]
Standby daemons:
[mds.a{-1:10720} state up:standby seq 2 addr [v2:127.0.0.1:6854/1340357658,v1:127.0.0.1:6855/1340357658]]
请注意,在上面的示例中,mds.b
现在有join_fscid=27
. 在此输出中,文件系统名称从mds_join_fs
更改为文件系统标识符 (27)。如果使用相同的名称重新创建文件系统,则备用数据库将按预期遵循新文件系统。
最后,如果文件系统降级或容量不足,则不会发生故障转移来强制执行mds_join_fs
。