系统卡写入量过大之-------mon迁移

前言:

生产环境由于mon数据库放在系统卡上了,导致10个多月系统卡寿命%60被写没了,发现这个问题后,需要切换一下mon所在节点,另一方面需要投入解决mon数据库写入量过大的问题,见另一篇blog
下面是详细步骤:
1、查看当前mon所在节点、确定最终要迁移的节点

2、联系现场技术服务,停业务,询要平台设备ip,以及存储ip

3、停san服务
3.1、业务停止后,在存储上调用命令:bcli dm con cat /sys/kernel/scst_tgt/trace_cmds ,如果为空,表示io下发完毕。(大概最多等5min,若时间过久echo 3 > /proc/sys/vm/drop_caches刷缓存)。
3.2、从ceph层面确认没有数据下发:1、ceph -s看下io 基本为0即可
3.3、停止所有节点san业务:bcli dm /root/iraid/SCRIPTS/san_module.sh stop
3.4、查看业务停止是否成功:bcli dm lsmod|grep scst和bcli dm ps -ef|grep hsand| grep -v grep输出为空

4、停告警和重构
4.1、告警模块:bcli dm mv /b_iscsi/bn_cli/ceph_check_status /b_iscsi/bn_cli/ceph_check_status_bak
4.2、重构 ceph osd set nobackfill;ceph osd set norecover

5、移除mgr
5.1、停止mgr服务:systemctl stop ceph-mgr@`hostname`;systemctl disable ceph-mgr@`hostname`
5.2、删除mgr数据信息:rm -rf /var/lib/ceph/mgr/*;rm -rf /etc/systemd/system/ceph-mgr.target.wants

6、移除mon
6.1、停止mon服务:systemctl stop ceph-mon@`hostname`;systemctl disable ceph-mon@`hostname`
6.2、删除mon:ceph-deploy mon destroy `hostname`
6.3、删除mon数据库及服务文件:rm -rf /var/lib/ceph/mon/*;rm -rf /etc/systemd/system/ceph-mon.target.wants
6.4、ceph -s等待选举完成

7、config配置文件
7.1、修改/etc/ceph/ceph.conf配置文件,mon_initial_members和mon_host 两个配置项分别,添加一个新增成员,并删减一个成员(注意,mon leader最后一个替换)
7.2、修改完毕后,同步配置文件到所有节点:for i in {1…16};do scp /etc/ceph/ceph.conf node"$i":/etc/ceph/;done
7.3、同步完成后,检查所有节点配置文件MD5值相同:bcli dm md5sum /etc/ceph/ceph.conf

8、在新节点创建并启动mon和mgr
8.1、创建mon:cd /etc/ceph;ceph-deploy --overwrite-conf mon create `hostname`
8.2、创建mgr:cd /etc/ceph;ceph-deploy --overwrite-conf mgr create `hostname`
8.3、查看进程状态:systemctl status ceph-mon@`hostname`;systemctl status ceph-mgr@`hostname` 如果非active则手动拉起:systemctl enable ceph-mon@`hostname`
8.4、ceph -s等待选举完成
8.5、确认此时mon map已经修改完成:ceph mon getmap -o monmap;monmaptool --print monmap。查看mon map确实已经被修改完成。如果旧mon node没有删除或者新mon node没有加入,则全部mon,mgr迁移后,执行附件1

9、重复步骤5至步骤8,直至全部mon和mgr全部替换完成(这里ceph mon stat确认一下当前mon leader是谁,最后一个迁移leader)

10、后续工作
10.1、打开告警模块:bcli dm mv /b_iscsi/bn_cli/ceph_check_status_bak /b_iscsi/bn_cli/ceph_check_status
10.2、打开重构:ceph osd unset nobackfill;ceph osd unset norecover
10.3、重启san服务: bcli dm /b_iscsi/bn_cli/saninit
10.4、确认san服务已经启动:lsmod|grep scst和ps -ef|grep hsand存在正常输出,且客户端multipath -ll 查看磁盘路径是否正常,(active / ready)没有faulty状态的路径
10.5、重启录像业务

附件1:(解决mon map未修改问题)
1、获取mon map:ceph mon getmap -o monmap或者(如果mon挂掉无法执行命令)monmaptool --create --generate -c /etc/ceph/ceph.conf ./monmap
2、查看当前monmap信息:monmaptool --print monmap
3、删除指定mon map内容:monmaptool --rm node1 --rm node2 --rm node3 monmap
4、查看是否删除成功:monmaptool --print monmap
5、添加新mon map进mon map集群:monmaptool --add node1 10.112.101.141:6789 --add node2 10.112.101.143:6789 --add node3 10.112.101.142:6789 monmap
6、查看是否添加成功:monmaptool --print monmap
7、拷贝mon map文件到当前集群所有节点:for i in {1…16};do scp monmap node"$i":/home/;done
8、查看所有节点的mon map是否相同:bcli dm md5sum /home/monmap
9、mon节点,停止服务:systemctl stop ceph-mon@`hostname`
10、mon节点,注入最新mon map:systemctl stop ceph-mon@`hostname`;cd /home/;ceph-mon -i `hostname` --inject-monmap /home/monmap;systemctl restart ceph-mon@`hostname`
11、所有节点重启服务:bcli dm systemctl restart ceph.target

发布了297 篇原创文章 · 获赞 6 · 访问量 8565

猜你喜欢

转载自blog.csdn.net/qq_23929673/article/details/94461500