Openstack 之 安全关闭HA集群_ha  Openstack 之 安全关闭HA集群_断电_02

 上面左边是我的个人微信,如需进一步沟通,请加微信。  右边是我的公众号“Openstack私有云”,如有兴趣,请关注。


前言

理论上,生产环境的OpenStack集群尽量不要关闭,但由于某些原因你肯定会遇到需要关闭整个集群的,如计划中的机房断电,版本升级等。特别是物理断电要特别谨慎,因为会导致磁盘故障,以及数据状态的混乱,从而导致各类问题的出现。我经常遇到的问题是,当物理断电后,mariadb galera 启动失败,这个组件可是核心组件,数据库起不来,那么整个openstack集群就停摆了。

一般关闭的顺序是这样的,先关闭OpenStack上的虚拟机,接着关闭计算节点、Ceph节点、控制节点。如果用了“超融合架构”,将Ceph和Compute放在一起了,关机计算节点之前 ,需要先执行ceph osd set noout,才能关闭。

步骤

1、通过Horizon web管理界面或者命令行关闭虚拟机

注意:请确认虚拟机之间是否有特殊的关闭顺序要求。

 

2、关闭Ceph OSD 节点

设置noout标记,防止因为Ceph节点断电引起重平衡

a、登陆到Controller节点或者Ceph OSD节点,执行:

ceph osd set noout

b、确认集群状态,可以看到noout 标记

# ceph -s
    cluster 7eb2b84a-c73e-4050-b735-3ba643ffc603
     health HEALTH_WARN
            noout flag(s) set

 

3、关闭计算节点

登陆每一个计算节点,执行:

poweroff

 

4、登陆到每个Ceph OSD节点,执行:

poweroff

5、关闭控制节点

假设你有3个控制节点(标配就是3个),首先判断哪一台主机上拥有keepalive主IP,首先关闭其他2台控制节点,最后关闭拥有keepalive主IP的控制节点,并且记住关闭的顺序,后面启动的时候需要相反的顺序启动

(1)首先判断哪一台主机上拥有keepalive主IP,假设192.168.1.140是HA地址,用命令  ip a |grep 192.168.1.140 判断,假设controller01拥有keepalive主IP

(2)登陆到其他两台控制节点controller02节点和controller03节点,分别执行:

poweroff

每个节点关闭完成,多等几分钟,使集群有充足的时间在剩余的控制节点之间重新分配服务。

(3)最后登陆到controller01节点,执行:

poweroff

 

至此,集群已经安全关闭。

重启集群过程正好相反,先启动控制节点,再启动Ceph节点,最后启动计算节点,启动计算节点后再登录web管理界面将相应的虚拟机启动。

需要特别注意的是,启动控制节点的时候,按照关闭相反的顺序进行启动。