前言
理论上, 生产环境的 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 管理界面将相应的虚拟机启动
需要特别注意的是, 启动控制节点的时候, 按照关闭相反的顺序进行启动
?
来源: http://www.bubuko.com/infodetail-2525976.html