华为FusionSphere中有两个HA的概念,分别是主机组​​(Host Aggregate)​​​和高可用​​(Highly Available)​​。

一、Host Aggregate

​FusionSphere​​​可以在​​CPS​​​和​​OM​​​上配置主机组,但这两个系统的主机组不是同一个概念,这里主要是以​​OM​​上配置的主机组作为讲解。

  • CPS上的主机组:主要用于统一配置。即假设DC内有100台主机,需要配置相同的磁盘分区、物理网络、资源隔离等信息时,可以将这100台主机分配在同一个主机组上进行统一配置。​

此HA非彼HA!FusionSphere这两种HA你分清楚了吗?_优先级

  • OM上的主机组:主要用于资源隔离。与​​CPS​​上的主机组无关。在​​OM​​上可以将这100台主机划分成多个主机组进行使用。

概念:主机组,指的是多个相同配置的主机组成的集合。一个主机组包含多台主机,一台主机也可以加入多个主机组,在生产环境中,一般一台主机只属于一个主机组。作用

  • 隔离
  • 资源隔离:通过不同的主机组标签标识不同的主机,实现资源隔离。
  • 物理隔离:不同机房/机架的主机分别组成不同的主机组,实现隔离。

tips:当一个主机组存在不同配置的主机(硬件或配置)虚拟机迁移/HA可能会失败。

此HA非彼HA!FusionSphere这两种HA你分清楚了吗?_重启_02

二、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​​标签


我是运维少年,欢迎关注我的同名公众号~