Ceph mds高可用
mds_standby_replay:值为ture或false,true表示开启replay模式,这种模式下主MDS内的数量将实时与从MDS同步,如果主宕机,从可以快速的切换,如果为false只有宕机的时候采取同步数据,这样会有一段时间的中断。
mds_standby_for_name:设置当前MDS进程只用于备份宇指定名称的MDS。
mds_standby_for_rank:设置当前MDS进程只用于备份于哪个Rank(上级节点),通常为Rank编号。另外在存在多个CephFS文件系统中,还可以使用mds_standby_for_fscid参数来为指定不同的文件系统。
mds_standby_for_fscid:指定CephFS文件系统ID,需要联合mds_standby_for_rank生效,如果设置mds_standby_for_rank,那么就是用于指定文件系统的指定Rank,如果没有设置,就是指定文件系统的所有Rank。
当前的mds状态
ceph mds stat
现在是mgr1上装的mds,在mgr2、mon2、mon3都装上ceph-mds服务
apt install ceph-mds -y
在deploy添加mds服务
ceph-deploy --overwrite-conf mds create ceph-mgr2
ceph-deploy --overwrite-conf mds create ceph-mon2
ceph-deploy --overwrite-conf mds create ceph-mon3
这样就可以看到一个主多个备了
查看当前文件系统状态,可以看到max_mds是1
ceph fs get my cephfs
设置处于激活状态mds的数量并查看
ceph fs set mycephfs max_mds 2
ceph fs get mycephfs
ceph mds stat
ceph fs status
MDS高可用优化
我现在是mgr1和mgr2节点是主节点,让mon2成为mgr1的备节点,mon3成为mgr2的备节点
修改ceph配置
vim /etc/ceph/ceph.conf
[mds.ceph-mgr1]
mds_standby_for_name = ceph-mon2
mds_standby_replay = true
[mds.ceph-mgr2]
mds_standby_for_name = ceph-mon3
mds_standby_replay = true
[mds.ceph-mon2]
mds_standby_for_name = ceph-mgr1
mds_standby_replay = true
[mds.ceph-mon3]
mds_standby_for_name = ceph-mgr2
mds_standby_replay = true
把配置文件推送到mgr1 mgr2 mon3 mon3
ceph-deploy --overwrite-conf config push ceph-mon3
ceph-deploy --overwrite-conf config push ceph-mon2
ceph-deploy --overwrite-conf config push ceph-mgr1
ceph-deploy --overwrite-conf config push ceph-mgr2
重启服务
systemctl restart ceph-mds@ceph-mon2.service # mon2
systemctl restart ceph-mds@ceph-mon3.service # mon3
systemctl restart ceph-mds@ceph-mgr2.service # mgr2
systemctl restart ceph-mds@ceph-mgr1.service # mgr1
重启之后在查看下。可以看到mon2成为主了
ceph fs status
我把mon2停掉,mgr就成主了
systemctl stop ceph-mds@ceph-mon2.service # mon2
在把mon2起来,mon2就成备了
systemctl start ceph-mds@ceph-mon2.service # mon2