本申请涉及信息,尤其涉及一种基于存储心跳的虚拟机高可用实现方法、设备及计算机可读介质。
背景技术:
1、vm ha(virtual machine high availability,虚拟机高可用)是一种虚拟化技术,它旨在提高虚拟机的可用性和容错性。vm ha的核心概念是将多个物理服务器组成一个集群,将虚拟机在这些物理服务器之间进行动态迁移以实现故障转移。但是目前的vm ha技术大部分都是基于虚拟机代理同步的虚拟机状态,来判断是否需要执行高可用处理逻辑,因此当存储出现问题而导致虚拟机无法写入数据时,难以及时发现问题,会导致虚拟机上运行的业务长时间受到影响。
技术实现思路
1、本申请的一个目的是提供一种基于存储心跳的虚拟机高可用实现方法、设备及计算机可读介质。
2、为实现上述目的,本申请提供了一种基于存储心跳的虚拟机高可用实现方法,所述方法包括:
3、虚拟机代理定时向存储设备中的存储心跳文件写入所述虚拟机代理所在的第一物理服务器的心跳信息,所述存储心跳文件由服务器集群中由多个物理服务器共享,所述多个物理服务器中包括所述第一物理服务器;
4、当连续写入失败的次数达到最大尝试次数,所述虚拟机代理关闭所述第一物理服务器上的虚拟机,以使所述虚拟机的状态更新为停止状态;
5、当管理节点与第一物理服务器之间的网络中断时,所述管理节点通过所述服务器集群中的其它物理服务器访问所述存储心跳文件;
6、所述管理节点根据所述存储心跳文件中的心跳信息,判断所述第一物理服务器上的虚拟机是否已关闭;
7、若所述第一物理服务器上的虚拟机已关闭,所述管理节点根据高可用处理逻辑尝试在其它物理服务器上启动所述虚拟机。
8、进一步地,当连续写入失败的次数达到最大尝试次数,所述虚拟机代理关闭所述第一物理服务器上的虚拟机,以使所述虚拟机的状态更新为停止状态,包括:
9、当写入心跳信息失败,所述虚拟机代理记录一次写入失败的次数;
10、当写入失败的次数达到最大尝试次数之前,写入心跳信息成功,将写入失败的次数重置为零;
11、当写入失败的次数达到最大尝试次数,所述虚拟机代理关闭所述第一物理服务器上的虚拟机,以使所述虚拟机的状态更新为停止状态。
12、进一步地,所述方法还包括:
13、当管理节点与第一物理服务器之间的网络正常时,所述管理节点通过与所述第一物理服务器上的虚拟机代理,获取所述第一物理服务器上的虚拟机的状态;
14、若所述虚拟机的状态为停止状态,所述管理节点根据高可用处理逻辑尝试在其它物理服务器上启动所述虚拟机。
15、进一步地,当管理节点与第一物理服务器之间的网络中断时,所述管理节点通过所述服务器集群中的其它物理服务器访问所述存储心跳文件,包括:
16、当管理节点与第一物理服务器之间的网络中断时,所述管理节点检测第一物理服务器上的虚拟机代理是否正常;
17、若所述虚拟机代理正常,所述管理节点通过所述服务器集群中的其它物理服务器访问所述存储心跳文件。
18、进一步地,所述方法还包括:
19、若所述虚拟机代理不正常,所述管理节点不在其它物理服务器上启动所述虚拟机。
20、进一步地,所述方法还包括:
21、若所述第一物理服务器上的虚拟机未关闭,所述管理节点不在其它物理服务器上启动所述虚拟机。
22、进一步地,所述管理节点根据所述存储心跳文件中的心跳信息,判断所述第一物理服务器上的虚拟机是否已关闭,包括:
23、所述管理节点定时读取所述存储心跳文件中的心跳信息,若多次读取到的心跳信息相同,则判定所述第一物理服务器上的虚拟机已关闭;若多次读取到的心跳信息不相同,则判定所述第一物理服务器上的虚拟机未关闭。
24、进一步地,所述心跳信息为当前的系统时间或计数器次数。
25、基于本申请的另一方面,还提供了一种基于存储心跳实现虚拟机高可用的设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行所述基于存储心跳的虚拟机高可用实现方法。
26、本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现所述基于存储心跳的虚拟机高可用实现方法。
27、与现有技术相比,本申请提供了一种基于存储心跳的虚拟机高可用实现方案,该方案中虚拟机代理定时向存储设备中的存储心跳文件写入所述虚拟机代理所在的第一物理服务器的心跳信息;当连续写入失败的次数达到最大尝试次数,所述虚拟机代理关闭所述第一物理服务器上的虚拟机,以使所述虚拟机的状态更新为停止状态;当管理节点与第一物理服务器之间的网络中断时,所述管理节点通过所述服务器集群中的其它物理服务器访问所述存储心跳文件,若根据所述存储心跳文件中的心跳信息确定第一物理服务器上的虚拟机已关闭,即可根据高可用处理逻辑尝试在其它物理服务器上启动所述虚拟机。由于本方案是基于物理服务器与对应的存储设备之间的心跳信息来判断是否需要迁移虚拟机,不完全依赖于管理节点和虚拟机代理之间的状态同步,同时由于存储心跳文件是由服务器集群中由多个物理服务器共享的,因此通过集群中的其它物理服务器也可以访问到存储心跳文件,即使第一物理服务器网络中断,可以确保及时发现问题,避免虚拟机上运行的业务长时间受到影响。
1.一种基于存储心跳的虚拟机高可用实现方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,当连续写入失败的次数达到最大尝试次数,所述虚拟机代理关闭所述第一物理服务器上的虚拟机,以使所述虚拟机的状态更新为停止状态,包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,当管理节点与第一物理服务器之间的网络中断时,所述管理节点通过所述服务器集群中的其它物理服务器访问所述存储心跳文件,包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述管理节点根据所述存储心跳文件中的心跳信息,判断所述第一物理服务器上的虚拟机是否已关闭,包括:
8.根据权利要求1所述的方法,其特征在于,所述心跳信息为当前的系统时间或计数器次数。
9.一种基于存储心跳实现虚拟机高可用的设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行权利要求1至8中任一项所述的方法。
10.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如权利要求1至8中任一项所述的方法。