Ceph 集群运行久了,需要对其进行停机维护。 而停止 Ceph 服务需要按照一定的流程来进行,以避免 Ceph 集群出现性能问题。
Table of Contents 停机维护 开机启动 Ceph 集群 参考
停机维护
关掉所有使用 Ceph 集群的客户端
保证集群的健康状态(healthy state) 为 OK
设置 OSD flags
1 2 3 4 5 6 7 8 9 10 11 $ ceph osd set noout $ ceph osd set nobackfill $ ceph osd set norecover $ ceph osd set norebalance $ ceph osd set nodown $ ceph osd set pause
依次关掉 Ceph 的客户端节点
查看 Ceph Service
1 2 3 4 5 6 7 8 9 10 $ ceph -s cluster: id: 1272c14d-2389-48db-a313-02600a50212f health: HEALTH_OK services: mon: 3 daemons, quorum ceph01,ceph02,ceph03 mgr: ceph03(active), standbys: ceph02, ceph01 mds: cephfs-1/1/1 up {0=ceph03=up:active}, 2 up:standby osd: 18 osds: 18 up, 18 in
依次关掉 Ceph MDS/FUSE 服务
1 2 3 4 5 for i in ceph0{1..3}; do ssh $i "systemctl stop ceph-fuse@-ceph.service; systemctl stop ceph-mds@${i} .service" done
依次关停 Ceph 的 OSD 服务
1 2 3 4 5 6 for i in $(ceph osd status | awk '/ceph/{print $2 ":" $4}' );do idx=$(echo $i |awk -F : '{print $1}' ) host=$(echo $i | awk -F : '{print $2}' ) ssh $host "systemctl stop ceph-osd@${idx} .service" done
依次关停 Ceph 的 Mon 服务
1 2 3 for i in ceph0{1..3};do ssh $i "systemctl stop ceph-mon@${i} .service" done
依次关停 Ceph 的 MGR 服务
1 2 3 for i in ceph0{1..3}; do ssh $i "systemctl stop ceph-mgr@${i} .service" done
进行关机等维护工作
开机启动 Ceph 集群
启动 MGR 节点
启动 MOM 节点
启动 OSD 节点
在所有节点启动上线后,确认所有服务都已正常
取消之前设置的 flags
1 2 3 4 5 6 $ ceph osd unset noout $ ceph osd unset nobackfill $ ceph osd unset norecover $ ceph osd unset norebalance $ ceph osd unset nodown $ ceph osd unset pause
检查 Ceph 健康状态,确定为 OK。
检查 Ceph 客户端是否能连接上 Ceph 集群
参考
How to do a Ceph cluster maintenance/shutdown
[ceph-users] Steps to stop/restart entire ceph cluster