华为FusionSphere中有两个HA的概念,分别是主机组(Host Aggregate)
和高可用(Highly Available)
。
一、Host Aggregate
FusionSphere
可以在CPS
和OM
上配置主机组,但这两个系统的主机组不是同一个概念,这里主要是以OM
上配置的主机组作为讲解。
- CPS上的主机组:主要用于统一配置。即假设DC内有100台主机,需要配置相同的磁盘分区、物理网络、资源隔离等信息时,可以将这100台主机分配在同一个主机组上进行统一配置。
- OM上的主机组:主要用于资源隔离。与
CPS
上的主机组无关。在OM
上可以将这100台主机划分成多个主机组进行使用。
概念:主机组,指的是多个相同配置的主机组成的集合。一个主机组包含多台主机,一台主机也可以加入多个主机组,在生产环境中,一般一台主机只属于一个主机组。
作用:
- 隔离
- 资源隔离:通过不同的主机组标签标识不同的主机,实现资源隔离。
- 物理隔离:不同机房/机架的主机分别组成不同的主机组,实现隔离。
tips:当一个主机组存在不同配置的主机(硬件或配置)虚拟机迁移/HA可能会失败。
二、Highly Available
华为虚拟机的高可用机制称为HA,同样的机制在诺基亚平台遵循了OpenStack
的叫法,称为疏散机制
。实现虚拟机高可用的方式有:软件狗机制、虚拟机本地HA、虚拟机异地HA。
1、软件狗机制
1.1 概述
华为FusionSphere
有两种软件狗,分别是IPMI软件狗
和I6300软件狗
。这两种软件狗的具体实现不一样,但都为虚拟机提供一种心跳检测机制,用于监视VM内部系统的健康状态。
直白的说,FusionSphere
的软件狗就是通过qemu模拟一个软件狗设备挂载到虚拟机内部(如/dev/ipmi0
),虚拟机需要有程序定时对软件狗设备进行写入(这个过程也称为喂狗),通过设置预订的超时时间,给用户提供感知虚拟机的机制。
软件狗服务器通过不断向FusionSphere
平台发送心跳信息来表明其正常运行,当虚拟机OS内部发生卡死等故障后,FusionSphere
平台在用户设定的时间内如果没有收到来自软件狗服务的心跳消息,会根据用户设置的策略自动进行操作(告警、重启等)。
如果IPMI软件狗和I6300软件狗同时开启,只有I6300软件狗会生效,即I6300软件狗的优先级高于IPMI软件狗。
以公共的I6300
软件狗为例,该软件狗策略有三种,分别是空、none
和reset
:
- 空:标识不开启6300软件狗
- none:软件狗超时后,上报告警。
- reset:软件狗超时后,上报告警,并重启虚拟机。
1.2 配置
IPMI软件狗配置
1)全局配置:CPS > 配置 > OpenStack > Nova ,"IPMI软件狗开关"
2)多网元管理: CPS > 配置 > 多网元管理 > 主机组 > Nova,"IPMI软件狗开关"
3)单个虚拟机设置:
# 设置
nova meta <虚拟机ID> set __instance_vwatchdog=False/True
# 硬重启生效
nova reboot --hard <虚拟机ID>
I6300软件狗配置
1)全局配置:CPS > 配置 > OpenStack > Nova,“I6300 ESB软件狗策略预超时时间”和“I6300 ESB软件狗启动故障计时超时时间”
2)镜像配置:注册镜像时,有“I6300 ESB软件狗策略”参数,可以设置为空、none和reset。
3)Flovor:有参数控制VM的开关和配置
4)单个虚拟机设置:
# 设置
nova meta <虚拟机ID> set hw_watchdog_action=disable/none/reset
# 硬重启生效
nova reboot --hard <虚拟机ID>
tips:
1、I6300配置生效优先级:单个虚拟机 > 镜像 > 规格 > 全局
2、IPMI配置优先级:单个虚拟机 > 多网元主机组 > 全局
2、Highly Available
虚拟机HA机制可以在虚拟机出现异常时进行复位来恢复虚拟机;通过虚拟机本地自愈和异地重建功能,可以使虚拟机在自身出现故障或者物理节点出现故障时,自动进行恢复,提高虚拟机可用度,降低人工维护成本,缩短业务中断影响,有效提升虚拟机的可用性。
无论是本地HA还是异地HA,都是通过重新拉起虚拟机实现:
- 本地HA:在本机重新挂载故障虚拟机的磁盘等资源,拉起虚拟机,虚拟机OS内数据不会丢失。
- 异地HA:在其它满足条件的主机挂载故障虚拟机的磁盘等资源,拉起虚拟机,虚拟机OS内数据不会丢失。
Tips:
1、值得注意的是,虚拟机HA过程中,虚拟机服务是不可用的。
2、本地盘虚拟机异地HA:磁盘会被重置,即是一台新虚拟机。
FusionSphere在以下两种场景会出发虚拟机HA流程:
- 主机异常:主机管理面断连时,主机会处于异常状态,这时候会触发虚拟机HA流程
- 如果配置了探测VLAN,FusionSphere会通过探测平面去探测虚拟机的电源状态是否为running,如果为running,则终止HA流程。
- 如果配置了防脑裂,则会检测防脑裂是否通过,不通过则终止HA流程
- 开始异地HA,如失败,开始尝试本地HA,再失败,会继续尝试异地HA
- 虚拟机ERROR
- 如果配置了防脑裂,则会检测防脑裂是否通过,不通过则终止HA流程
- 开始异地HA,如失败,开始尝试本地HA,再失败,会继续尝试异地HA
Tips:开始HA流程不一定就会进行HA,当所有的流程条件都满足时才会进行HA
虚拟机不支持HA的情况:
1、HA开关关闭:nova-api
配置了ha_enable=False
2、处于删除态的虚拟机不会触发HA
3、指定主机创建的虚拟机不会触发HA
4、虚拟机所在的主机配置了ha_enable=False
标签
5、虚拟机所在主机组配置了__ha_enable=False
标签
6、虚拟机meta配置了_ha_policy_type=colse
7、使用直通盘、挂载了ISO等特殊类型虚拟机
8、虚拟机所在主机设置了reserve
标签
我是运维少年,欢迎关注我的同名公众号~