本发明涉及云计算领域,特别涉及一种服务启动方法、装置、设备及存储介质。
背景技术:
1、随着云计算的发展,虚拟机取代实体物理机成为企业各种业务的运行环境已成为一个趋势,虚拟化可以把底层的物理资源进行整合,按照客户需以虚拟机的形式进行资源分配,客户在虚拟机中进行应用的部署。但是一旦物理主机出现问题或意外宕机时,在修复故障期间会中断服务,影响到客户的业务,可能给客户造成业务的暂停和数据的丢失。云计算双机热备场景基于传统的网络心跳容易受网路故障或波动的影响导致脑裂,此时会存在数据丢失风险,从而给企业带来很大的损失。
技术实现思路
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、若所述节点服务状态为所述运行状态,则确定所述判断结果为所述备虚拟机不满足所述预设服务运行要求;
28、若所述主虚拟机是心跳正常状态,则判断所述角色状态是否为备虚拟机状态;
29、若所述角色状态为所述备虚拟机状态,则所述判断结果为所述备虚拟机满足所述预设服务运行要求。
30、可选的,所述基于所述共享存储池判断所述主虚拟机是否心跳正常,包括:
31、从所述共享存储池中获取所述主虚拟机的所述主目标信息,并从所述主目标信息中获取最新的两个时间戳信息;
32、计算最新的两个所述时间戳信息之间的差值,以得到时间戳差值;
33、判断所述时间戳差值是否在预设阈值范围内,若所述时间戳差值在所述预设阈值范围内,则判定所述主虚拟机是心跳正常状态;
34、若所述时间戳差值不在所述预设阈值范围内,则判定时间不同步,并获取所述主目标信息中最新的预设数量个所述时间戳信息;
35、判断最新的预设数量个所述时间戳信息中的时间戳变化情况是否满足预设时间戳变化规则;
36、若所述时间戳变化情况满足所述预设时间戳变化规则,则判定所述主虚拟机是心跳正常状态;
37、若所述时间戳变化情况不满足所述预设时间戳变化规则,则判定所述主虚拟机不是心跳正常状态。
38、第二方面,本技术公开了一种服务启动装置,应用于备虚拟机,包括:
39、心跳链路判断模块,用于通过当前信息接收情况判断所述备虚拟机与主虚拟机之间的心跳链路是否正常;
40、信息获取模块,用于若所述备虚拟机与所述主虚拟机之间的所述心跳链路不正常,则从共享存储池中读取所述主虚拟机对应的主目标信息;
41、判断模块,用于基于所述主目标信息以及预设服务开启判断方法进行判断,以得到判断结果;
42、服务启动模块,用于若所述判断结果为所述备虚拟机满足预设服务运行要求,则在所述备虚拟机上启动所述目标服务。
43、第三方面,本技术公开了一种电子设备,包括:
44、存储器,用于保存计算机程序;
45、处理器,用于执行所述计算机程序,以实现如前述公开的服务启动方法的步骤。
46、第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如前述公开的服务启动方法。
47、可见,本技术提供了一种服务启动方法,包括:通过当前信息接收情况判断所述备虚拟机与主虚拟机之间的心跳链路是否正常;若所述备虚拟机与所述主虚拟机之间的所述心跳链路不正常,则从共享存储池中读取所述主虚拟机对应的主目标信息;基于所述主目标信息以及预设服务开启判断方法进行判断,以得到判断结果;若所述判断结果为所述备虚拟机满足预设服务运行要求,则在所述备虚拟机上启动所述目标服务。由此可见,本技术通过将主目标信息存储在共享存储池中,当主备虚拟机之间的心跳链路不正常时,通过共享存储池获取对端虚拟机的目标信息,并根据目标信息判断是否可以启动目标服务,通过读写共享存储池文件的方式来交换信息,降低了脑裂发生的可能性以及数据丢失的风险。