一般情况下,我们希望实现主机宕机的时候,该主机上面的所有虚拟机资源都可以成功迁移到另外一台主机上面,不过在现阶段,CloudStack还未能实现这样的功能,仅仅提供了虚拟机高可用方案,也就是一台主机上面的虚拟机由于某些原因以外关机,可以在另外一台上面自动启动,并成功运行,前提是该以外关机的虚拟机资源是完整的,也就是需要保证该虚拟机是可以正常被重新启动的。

这样的情况是很有可能出现的,比如一台主机的资源消耗的很多,资源已经不再够其中虚拟机资源的使用,导致虚拟机以外宕机,此时,该主机也很有可能随时宕机,所以在一台虚拟机以外宕机之后,及时将其迁移至另外一台主机上面是很有道理的。

默认情况下,虚拟路由器跟弹性负载均衡虚拟机被自动配置成高可用特性,当启用高可用的实例出现宕机的时候,CloudStak会发现并自动重启同一个zone中的宕机实例。

HA特性只能用于同一个zone中,CloudStack重启虚拟机的策略,确保同一时间内没有同一个虚拟机的两个实例同时运行。管理节点尝试在同一个集群上的另外一个主机中启动虚拟机。并且HA特性需要共享存储支持

下面就是实现的步骤,主要分为如下几个步骤。

1.设置全局变量中的HA标签

2.给需要成为VM高可用特性的主机打上HA标签

3.创建支持VM高可用特性的计算方案

4.通过普通模板,HA计算方案,创建实例

5.对一台虚拟机实现关机操作,查看是否会自动迁移到另外一台主机上面

注意:以上的所有特性均需要提供VM高可用特性的主机处于同一集群中。

以下为相关步骤截图:

171710881.png

图 全局变量配置HA标签,重启生效


171716306.png

图 对主机1添加主机标签,跟全局变量设置一致

171719561.png

图 对主机2添加主机标签,跟全局变量设置一致

171723482.png

图 创建支持高可用特性的计算方案

171728789.png

图 创建高可用计算方案的实例

171756792.png

图 定义实例主机名

171800626.png

图 查看实例所在主机

171804807.png

图 创建文件,对实例做相关标记

171809502.png

图 对实例进行关机操作

171811673.png

图 Console断开连接,表明关机成功

171816564.png

图 显示实例正在自动启动

171820407.png

图 查看实例当前所在主机

171823404.png

图 查看实例中相关文件是否一致


注意:在后续的测试中发现,虚拟机不一定每次被关机后,都会在另外一台主机上面启动,也有可能在本机上面被重启,然而,不管怎样,这个功能还是在一定意义上面保证了虚拟机实例的高可用,意外关机后可以被自动启动,在一定程度上面满足了某些高可用定义。

在配置VM高可用之前,需要先让两个SSVM跟虚拟路由器启动,否则都会报错!