CN107491344B - 一种实现虚拟机高可用性的方法及装置 - Google Patents

一种实现虚拟机高可用性的方法及装置 Download PDF

Info

Publication number
CN107491344B
CN107491344B CN201710882792.3A CN201710882792A CN107491344B CN 107491344 B CN107491344 B CN 107491344B CN 201710882792 A CN201710882792 A CN 201710882792A CN 107491344 B CN107491344 B CN 107491344B
Authority
CN
China
Prior art keywords
physical machine
machine
virtual machine
heartbeat
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710882792.3A
Other languages
English (en)
Other versions
CN107491344A (zh
Inventor
徐庆洲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN201710882792.3A priority Critical patent/CN107491344B/zh
Publication of CN107491344A publication Critical patent/CN107491344A/zh
Application granted granted Critical
Publication of CN107491344B publication Critical patent/CN107491344B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及一种实现虚拟机高可用性的方法及装置。该方法包括:接收zookeeper发送的虚拟机集群中第一虚拟机的心跳异常的通知消息;根据第一虚拟机的标识信息,确定安装第一虚拟机的第一物理机;检测第一物理机的心跳;当确定第一物理机的心跳未发生异常时,定位业务系统发生故障的位置在第一虚拟机;或者,当确定第一物理机的心跳发生异常时,检测与第一物理机属于同一网段的第二物理机的心跳;根据第二物理机的心跳,确定业务系统发生故障的位置在第一物理机与服务器之间的网络或者为第一物理机。通过上述检测方法,可以确定发生故障的为第一虚拟机或第一物理机,又或者为第一物理机与服务器之间的网络。从而根据发生故障的位置不同,做出不同的处理。

Description

一种实现虚拟机高可用性的方法及装置
技术领域
本发明涉及电信领域,尤其涉及一种实现虚拟机高可用性的方法及装置。
背景技术
现有技术中,为了实现业务系统的高可用性(High Availability,简称HA),就是在业务系统发生中断时,将发生中断位置设置的虚拟机所承载的业务自动快速的迁移到虚拟机集群中其他虚拟机上,以此来保证业务的连续性。
具体监控业务系统是否发生中断,主要是利用server端对资源池中的虚拟机进行心跳监控。当server端检测不到虚拟机心跳时,则直接认为虚拟机故障,需要对虚拟机进行恢复,如果恢复失败,则对恢复失败的虚拟机进行迁移。
但是,实际上而言,业务系统中所包括的不仅仅是虚拟机,还包括承载虚拟机的物理机,物理机和其他设备之间建立通信连接的网络。如果仅仅是server监控不到虚拟机的心跳,就果断的认为业务系统中断是由虚拟机造成,然后将该虚拟机所承载的业务迁移到其他虚拟机上,势必会造成资源迁移、资源占用等情况,由此增加对集群资源的消耗,甚至会对业务造成连续性的影响。因此,如何精确的实现虚拟机高可用性,是亟待解决的技术问题。
发明内容
为解决上述技术问题,本发明提供了一种实现虚拟机高可用性的方法及装置。
第一方面,本发明提供了一种实现虚拟机高可用性的方法,该方法包括:
接收zookeeper发送的虚拟机集群中第一虚拟机的心跳异常的通知消息,其中通知消息中携带第一虚拟机的标识信息;
根据第一虚拟机的标识信息,确定安装第一虚拟机的第一物理机;
检测第一物理机的心跳;
当确定第一物理机的心跳未发生异常时,定位业务系统发生故障的位置在第一虚拟机;
或者,
当确定第一物理机的心跳发生异常时,检测与第一物理机属于同一网段的第二物理机的心跳;
根据第二物理机的心跳,确定业务系统发生故障的位置在第一物理机与服务器之间的网络或者在第一物理机。
本发明的有益效果是:当zookeeper检测到第一物理机的心跳异常时,发送通知消息至服务器。服务器则根据第一虚拟机的标识信息,确定承载第一虚拟机的第一物理机。然后检测第一物理机的心跳,根据第一物理机的心跳判断是否为第一虚拟机故障。若检测并非为第一虚拟机故障时,则还需要利用第二物理机检测第一物理机的心跳。通过上述方式,可以精确的确定发生故障的位置在第一虚拟机,还是第一物理机,由或是第一物理机和服务器之间的网络。从而根据发生故障的位置不同,做出不同的处理。而且,还可以避免一旦检测虚拟机故障,就将业务转移而造成的资源迁移、资源占用等情况,进而可以降低对集群资源的消耗,避免对业务造成连续性的影响,提升虚拟机的高可用性。
进一步,根据第二物理机的心跳,确定业务系统发生故障的位置在第一物理机与服务器之间的网络或者在第一物理机,具体包括:
当第二物理机的心跳发生异常时,确定业务系统发生故障的位置在第一物理机与服务器之间的网络;
或者,当第二物理机的心跳未发生异常时,控制第二物理机检测第一物理机的心跳;
当第二物理机检测第一物理机的心跳异常时,业务系统发生故障的位置在第一物理机。
采用上述进一步的方案的有益技术效果在于,如果确定第二物理机的心跳异常,则可以直接确定发生故障的位置在第一物理机和服务器之间的网络。而如果第二物理机的心跳并未发生异常,那么则可以利用第二物理机检测第一物理机的心跳。如果第二物理机检测第一物理机的心跳异常,那么就是服务器和第二物理机均不能够检测到第一物理机的心跳,则可以直接确定发生故障的位置在于第一物理机。
进一步,当第二物理机检测第一物理机的心跳未发生异常时,确定业务系统发生故障的位置在第一物理机与服务器之间的网络。
采用上述进一步的技术方案的有益技术效果在于,如果利用第二物理机检测第一物理机的心跳没有发生异常,而服务器确检测到第一物理的心跳异常,只能说明发生故障的位置在于第一物理机和服务器之间的网络。
进一步的,当确定业务系统发生故障的位置在第一虚拟机时,重新启动第一虚拟机;
若重新启动第一虚拟机后,检测第一虚拟机心跳仍然异常时,将第一虚拟机所承载的业务转移到虚拟机集群中除第一虚拟机之外的任一虚拟机上。
采用上述进一步的技术方案的有益技术效果在于:当确定第一虚拟机发生故障时,也即是业务系统发生故障的位置在第一虚拟机时,可以尝试通过重新启动第一虚拟机,以便第一虚拟机能够自动修复。而如果重新启动之后,也不能修复第一虚拟机,则需要将第一虚拟机所承载的业务转移到虚拟机集群中其他虚拟机上进行处理。
进一步的,当确定业务系统发生故障的位置在第一物理机与服务器之间的网络时,通知网络管理员修复第一物理机和服务器之间的网络;
或者,当确定业务系统发生故障的位置在第一物理机时,当确定业务系统发生故障的位置在第一物理机时,对第一物理机进行隔离和恢复;
若对第一物理机进行恢复失败时,则直接将第一虚拟机所承载的业务转移到虚拟机集群中除第一虚拟机之外的任一虚拟机上。
采用上述进一步的技术方案的有益技术效果在于:准确的确定业务系统发生故障的位置在第一物理机,还是在第一物理机和服务器之间的网络。如果是网络,则不需要迁移业务,只要恢复网络通信即可。而如果是第一物理机故障,则需要将第一虚拟机的业务进行迁移。通过精确的定位业务系统发生故障的位置,从而采取不同的处理方式。可以有效的避免一旦检测虚拟机故障,就将业务转移而造成的资源迁移、资源占用等情况,进而可以降低对集群资源的消耗,避免对业务造成连续性的影响,提升虚拟机的高可用性。
第二方面,本发明提供了一种实现虚拟机高可用性的装置,该装置包括:接收单元,用于接收zookeeper发送的虚拟机集群中第一虚拟机的心跳异常的通知消息,其中通知消息中携带第一虚拟机的标识信息;
定位单元,用于根据第一虚拟机的标识信息,确定安装第一虚拟机的第一物理机;
处理单元,用于检测第一物理机的心跳;
当确定第一物理机的心跳未发生异常时,定位业务系统发生故障的位置在第一虚拟机;
或者,
当确定第一物理机的心跳发生异常时,检测与第一物理机属于同一网段的第二物理机的心跳;
根据第二物理机的心跳,确定业务系统发生故障的位置在第一物理机与服务器之间的网络或者在第一物理机。
上述方案的有益技术效果在于,当zookeeper检测到第一物理机的心跳异常时,发送通知消息至服务器。服务器则根据第一虚拟机的标识信息,确定承载第一虚拟机的第一物理机。然后检测第一物理机的心跳,根据第一物理机的心跳判断是否为第一虚拟机故障。若检测并非为第一虚拟机故障时,则还需要利用第二物理机检测第一物理机的心跳。通过上述方式,可以精确的确定发生故障的位置在第一虚拟机,还是第一物理机,由或是第一物理机和服务器之间的网络。从而根据发生故障的位置不同,做出不同的处理。而且,还可以避免一旦检测虚拟机故障,就将业务转移而造成的资源迁移、资源占用等情况,进而可以降低对集群资源的消耗,避免对业务造成连续性的影响,提升虚拟机的高可用性。
进一步的,处理单元,具体用于:
当第二物理机的心跳发生异常时,确定业务系统发生故障的位置在第一物理机与服务器之间的网络;
或者,当第二物理机的心跳未发生异常时,控制第二物理机检测第一物理机的心跳;
当第二物理机检测第一物理机的心跳异常时,业务系统发生故障的位置在第一物理机。
采用上述进一步的方案的有益技术效果在于,如果确定第二物理机的心跳异常,则可以直接确定发生故障的位置在第一物理机和服务器之间的网络。而如果第二物理机的心跳并未发生异常,那么则可以利用第二物理机检测第一物理机的心跳。如果第二物理机检测第一物理机的心跳异常,那么就是服务器和第二物理机均不能够检测到第一物理机的心跳,则可以直接确定发生故障的位置在于第一物理机。
进一步的,处理单元,具体用于:
当第二物理机检测第一物理机的心跳未发生异常时,确定业务系统发生故障的位置在第一物理机与服务器之间的网络。
采用上述进一步的技术方案的有益技术效果在于,如果利用第二物理机检测第一物理机的心跳没有发生异常,而服务器确检测到第一物理的心跳异常,只能说明发生故障的位置在于第一物理机和服务器之间的网络。
进一步的,装置还包括:
启动单元,用于当处理单元确定业务系统发生故障的位置在第一虚拟机时,重新启动第一虚拟机;
处理单元还用于,若启动单元重新启动第一虚拟机后,检测第一虚拟机心跳仍然异常时,将第一虚拟机所承载的业务转移到虚拟机集群中除第一虚拟机之外的任一虚拟机上。
采用上述进一步的技术方案的有益技术效果在于,当确定第一虚拟机发生故障时,也即是业务系统发生故障的位置在第一虚拟机时,可以尝试通过重新启动第一虚拟机,以便第一虚拟机能够自动修复。而如果重新启动之后,也不能修复第一虚拟机,则需要将第一虚拟机所承载的业务转移到虚拟机集群中其他虚拟机上进行处理。
进一步的,处理单元还用于,当确定业务系统发生故障的位置在第一物理机与服务器之间的网络时,通知网络管理员修复第一物理机和服务器之间的网络;
或者,当确定业务系统发生故障的位置在第一物理机时,当确定业务系统发生故障的位置在第一物理机时,对第一物理机进行隔离和恢复;
若对第一物理机进行恢复失败时,则直接将第一虚拟机所承载的业务转移到虚拟机集群中除第一虚拟机之外的任一虚拟机上。
采用上述进一步的技术方案的有益技术效果在于,准确的确定业务系统发生故障的位置在第一物理机,还是在第一物理机和服务器之间的网络。如果是网络,则不需要迁移业务,只要恢复网络通信即可。而如果是第一物理机故障,则需要将第一虚拟机的业务进行迁移。通过精确的定位业务系统发生故障的位置,从而采取不同的处理方式。可以有效的避免一旦检测虚拟机故障,就将业务转移而造成的资源迁移、资源占用等情况,进而可以降低对集群资源的消耗,避免对业务造成连续性的影响,提升虚拟机的高可用性。
附图说明
图1为本发明实施例提供的一种实现虚拟机高可用性的方法流程示意图;
图2为本发明实施例提供的一种实现虚拟机高可用性的装置结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
图1为本发明实施例提供的一种实现虚拟机高可用性的方法流程示意图。具体如图1所示,该方法包括:
步骤110,接收zookeeper发送的虚拟机集群中第一虚拟机的心跳异常的通知消息,其中通知消息中携带第一虚拟机的标识信息。
具体的,服务器端和zookeeper端部署在管理网。物理机部署在生产网,每个物理机上均安装有虚拟机。每个虚拟机都注册在zookeeper上。Zookeeper用于监控虚拟机状态,而服务器则用于监控物理机状态。
当zookeeper检测到虚拟机集群中第一虚拟机的心跳异常时,则会向服务器端发送通知消息。其中,通知消息中可以携带第一虚拟机的标识信息。因为虚拟机均已经在zookeeper中注册过,所以每一个虚拟机的详细信息均可以在zookeeper中查询到。因此,当zookeeper确定某一虚拟机故障时,可以向服务器发送通知消息,并在通知消息中携带标识信息。该标识信息可以是编号信息、ID或者位置信息等等可以识别第一虚拟机的信息即可。
步骤120,根据第一虚拟机的标识信息,确定安装第一虚拟机的第一物理机。
而服务器则用于根据第一虚拟机的标识信息,确定安装第一虚拟机的第一物理机。
步骤130,检测第一物理机的心跳。
具体的,因为服务器端只检测物理机,所以服务器可以检测第一物理机的心跳。
步骤140,当确定第一物理机的心跳未发生异常时,定位业务系统发生故障的位置在第一虚拟机。
具体的,当第一物理机的心跳为发生异常时,则可以说明第一物理机没有发生故障,同时,第一物理机和服务器之间的网络同样没有发生故障。那么,则可以直接确定发生故障的位置为第一虚拟机。
或者,
步骤150,当确定第一物理机的心跳发生异常时,检测与第一物理机属于同一网段的第二物理机的心跳。
步骤160,根据第二物理机的心跳,确定业务系统发生故障的位置在第一物理机与服务器之间的网络或者在第一物理机。
具体的,当检测第一物理机的心跳发生异常时,那么可以排除第一虚拟机发生故障。但是,还不能确定此时业务系统发生故障的位置在第一物理机还是在第一物理机和服务器之间的网络。所以,需要检测与第一物理机同一网段的第二物理机的心跳。并根据第二物理机的心跳,确定业务系统发生故障的位置在第一物理机与服务器之间的网络,或者在第一物理机这里。
可选的,其具体的判断过程可以包括如下步骤:
A、当第二物理机的心跳发生异常时,确定业务系统发生故障的位置在第一物理机与服务器之间的网络。
具体的,如果服务器检测第一物理机的心跳发生异常,而且检测第二物理机的心跳发生异常。那么,无可厚非,必定是服务器和第一物理机之间的网络发生了异常。而两个物理机同时发生异常的概率可以视为0。当然,如果用户觉得也可能会有特殊情况,即很可能第一物理机和第二物理机均发生故障,而不是第一物理机和服务器之间的网络繁盛故障,那么用户还可以利用服务器检测同一网段的其他物理机的心跳。以便进一步证实是否为第一物理机和服务器之间的网络发生异常。
或者,
B、当第二物理机的心跳未发生异常时,控制第二物理机检测第一物理机的心跳。
具体的,如果第二物理机的心跳未发生异常,那么还不能明确的说明就是第二物理机故障。其原因在于,物理机和服务器之间的网络分为“外网”和“内网”,实际上物理机和服务器之间还包括一个交换机,服务器和交换机之间的网络即为“外网”,而交换机和第一物理机之间的网络则可以理解为“内网”。当,服务器检测第二物理机的心跳未发生异常时,可以确定服务器和交换机之间的外网没有问题,且交换机和第二物理机之间的网络连接没有异常。但是,并不能够确定交换机和第一物理机之间的网络连接没有异常情况(同一交换机,分别和第一物理机和第二物理机建立通信连接)。
所以,可选的,还需要确定第二物理机检测第一物理机的心跳是否异常。
当第二物理机检测第一物理机的心跳异常时,业务系统发生故障的位置在第一物理机。
即,只有当第二物理机检测第一物理机的心跳异常时,才能精确的确定业务系统发生故障的位置在第一物理机。而并非是第一物理机和交换机之间的“内网”。
相反,如果第二物理机检测第一物理机的心跳未发生异常时,则可以确定业务系统发生故障的位置在第一物理机和服务器之间的网络,即交换机和第一物理机之间的“内网”。
通过上述方式,已经可以精确的确定业务系统发生故障位置在第一虚拟机、第一物理机又或者是第一物理机和服务器之间的网络了。
进一步可选的,确定具体发生故障的位置后,还需要做相应的处理。具体包括如下过程:
当确定业务系统发生故障的位置在第一虚拟机时,重新启动第一虚拟机。
具体的,如果第一虚拟机故障,可以通过重新启动第一虚拟机的方式,尝试让第一虚拟机进行恢复。但是,这种方法不是万无一失的。所以,如果可以恢复,则第一虚拟机可以正常执行业务。
但是,若重新启动第一虚拟机后,检测第一虚拟机心跳仍然异常时,则需要将第一虚拟机所承载的业务转移到虚拟机集群中除第一虚拟机之外的任一虚拟机上。
可选的,当确定业务系统发生故障的位置并非在第一虚拟机,而是在第一物理机与服务器之间的网络时,则直接通知网络管理员修复第一物理机和服务器之间的网络。而不需要将第一虚拟机所承载的业务迁移到其他虚拟机上。
如果确定业务系统发生故障的位置并非为上述两种情况时,而是在第一物理机时,则需要将第一物理机进行隔离,恢复。该过程同虚拟机恢复的过程类似,这里不再赘述。但是,如果恢复失败则需要将第一虚拟机所承载的业务转移到虚拟机集群中除第一虚拟机之外的任一虚拟机上。
将上述方法应用到某生产环境中时,采用VMware在X86服务器上建立了虚拟机应用集群(集群节点在100台左右),应用集群划归到生产网段中。另在管理网中,用3台X86服务器部署server服务段,并做软负载均衡;用3台X86服务器建立zookeeper集群。管理网和生产网网络相通。所有虚拟机进程注册到zookeeper上做心跳检测;所有X86服务器都开放与server服务器的心跳检测服务。
使用本方案前,平均每周虚拟机被动迁移27次,影响业务累计时长200分钟,需要备份节点10台。使用本方案后,平均每周虚拟机被动迁移15次,影响业务累计时长120分钟,需要备份节点7台。由此,可以明显的看出,业务迁移次数大大降低,对业务的连续性所造成的影响也明显降低。
本发明实施例提供的一种实现虚拟机高可用性的方法,当zookeeper检测到第一物理机的心跳异常时,发送通知消息至服务器。服务器则根据第一虚拟机的标识信息,确定承载第一虚拟机的第一物理机。然后检测第一物理机的心跳,根据第一物理机的心跳判断是否为第一虚拟机故障。若检测并非为第一虚拟机故障时,则还需要利用第二物理机检测第一物理机的心跳。通过上述方式,可以精确的确定发生故障的位置在第一虚拟机,还是第一物理机,由或是第一物理机和服务器之间的网络。从而根据发生故障的位置不同,做出不同的处理。而且,还可以避免一旦检测虚拟机故障,就将业务转移而造成的资源迁移、资源占用等情况,进而可以降低对集群资源的消耗,避免对业务造成连续性的影响,提升虚拟机的高可用性。
相应地,本发明实施例还提供了一种实现虚拟机高可用性的装置。图2为本发明实施例提供的一种实现虚拟机高可用性的装置结构示意图。如图2所示,该装置包括:接收单元201,定位单元202以及处理单元203。
接收单元201,用于接收zookeeper发送的虚拟机集群中第一虚拟机的心跳异常的通知消息,其中通知消息中携带第一虚拟机的标识信息;
定位单元202,用于根据第一虚拟机的标识信息,确定安装第一虚拟机的第一物理机;
处理单元203,用于检测第一物理机的心跳;
当确定第一物理机的心跳未发生异常时,定位业务系统发生故障的位置在第一虚拟机;
或者,
当确定第一物理机的心跳发生异常时,检测与第一物理机属于同一网段的第二物理机的心跳;
根据第二物理机的心跳,确定业务系统发生故障的位置在第一物理机与服务器之间的网络或者在第一物理机。
可选的,处理单元203,具体用于:
当第二物理机的心跳发生异常时,确定业务系统发生故障的位置在第一物理机与服务器之间的网络。
或者,当第二物理机的心跳未发生异常时,控制第二物理机检测第一物理机的心跳;
当第二物理机检测第一物理机的心跳异常时,业务系统发生故障的位置在第一物理机。
进一步可选的,处理单元203,具体用于:
当第二物理机检测第一物理机的心跳未发生异常时,确定业务系统发生故障的位置在第一物理机与服务器之间的网络。
可选的,装置还包括:启动单元204,用于当处理单元203确定业务系统发生故障的位置在第一虚拟机时,重新启动第一虚拟机;
处理单元203还用于,若启动单元204重新启动第一虚拟机后,检测第一虚拟机心跳仍然异常时,将第一虚拟机所承载的业务转移到虚拟机集群中除第一虚拟机之外的任一虚拟机上。
进一步可选的,处理单元203还用于,当确定业务系统发生故障的位置在第一物理机与服务器之间的网络时,通知网络管理员修复第一物理机和服务器之间的网络;
或者,当确定业务系统发生故障的位置在第一物理机时,当确定业务系统发生故障的位置在第一物理机时,对第一物理机进行隔离和恢复;
若对第一物理机进行恢复失败时,则直接将第一虚拟机所承载的业务转移到虚拟机集群中除第一虚拟机之外的任一虚拟机上。
本发明实施例提供的一种实现虚拟机高可用性的装置中上述元器件所执行的功能均已经在上一实施例提供的一种实现虚拟机高可用性的方法中做了详细介绍,在此将不再赘述。
本发明实施例提供的一种实现虚拟机高可用性的装置,当zookeeper检测到第一物理机的心跳异常时,发送通知消息至服务器。服务器则根据第一虚拟机的标识信息,确定承载第一虚拟机的第一物理机。然后检测第一物理机的心跳,根据第一物理机的心跳判断是否为第一虚拟机故障。若检测并非为第一虚拟机故障时,则还需要利用第二物理机检测第一物理机的心跳。通过上述方式,可以精确的确定发生故障的位置在第一虚拟机,还是第一物理机,由或是第一物理机和服务器之间的网络。从而根据发生故障的位置不同,做出不同的处理。而且,还可以避免一旦检测虚拟机故障,就将业务转移而造成的资源迁移、资源占用等情况,进而可以降低对集群资源的消耗,避免对业务造成连续性的影响,提升虚拟机的高可用性。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (8)

1.一种实现虚拟机高可用性的方法,其特征在于,所述方法包括:
接收zookeeper发送的虚拟机集群中第一虚拟机的心跳异常的通知消息,其中所述通知消息中携带所述第一虚拟机的标识信息;
根据所述第一虚拟机的标识信息,确定安装所述第一虚拟机的第一物理机;
检测所述第一物理机的心跳;
当确定所述第一物理机的心跳未发生异常时,定位业务系统发生故障的位置在所述第一虚拟机;
或者,
当确定所述第一物理机的心跳发生异常时,检测与所述第一物理机属于同一网段的第二物理机的心跳;
根据所述第二物理机的心跳,确定所述业务系统发生故障的位置在所述第一物理机与服务器之间的网络或者在所述第一物理机;
根据所述第二物理机的心跳,确定所述业务系统发生故障的位置在所述第一物理机与服务器之间的网络或者在所述第一物理机,具体包括:
当所述第二物理机的心跳发生异常时,确定所述业务系统发生故障的位置在所述第一物理机与服务器之间的网络;
或者,当所述第二物理机的心跳未发生异常时,控制所述第二物理机检测所述第一物理机的心跳;
当所述第二物理机检测所述第一物理机的心跳异常时,所述业务系统发生故障的位置在所述第一物理机。
2.根据权利要求1所述的方法,其特征在于,当所述第二物理机检测所述第一物理机的心跳未发生异常时,确定所述业务系统发生故障的位置在所述第一物理机与服务器之间的网络。
3.根据权利要求1-2任一项所述的方法,其特征在于,当确定所述业务系统发生故障的位置在所述第一虚拟机时,重新启动所述第一虚拟机;
若重新启动所述第一虚拟机后,检测所述第一虚拟机心跳仍然异常时,将所述第一虚拟机所承载的业务转移到所述虚拟机集群中除所述第一虚拟机之外的任一虚拟机上。
4.根据权利要求1-2任一项所述的方法,其特征在于,当确定所述业务系统发生故障的位置在所述第一物理机与服务器之间的网络时,通知网络管理员修复所述第一物理机和所述服务器之间的网络;
或者,当确定所述业务系统发生故障的位置在所述第一物理机时,对所述第一物理机进行隔离和恢复;
若对所述第一物理机进行恢复失败时,则直接将所述第一虚拟机所承载的业务转移到所述虚拟机集群中除所述第一虚拟机之外的任一虚拟机上。
5.一种实现虚拟机高可用性的装置,其特征在于,所述装置包括:
接收单元,用于接收zookeeper发送的虚拟机集群中第一虚拟机的心跳异常的通知消息,其中所述通知消息中携带所述第一虚拟机的标识信息;
定位单元,用于根据所述第一虚拟机的标识信息,确定安装所述第一虚拟机的第一物理机;
处理单元,用于检测所述第一物理机的心跳;
当确定所述第一物理机的心跳未发生异常时,定位业务系统发生故障的位置在所述第一虚拟机;
或者,
当确定所述第一物理机的心跳发生异常时,检测与所述第一物理机属于同一网段的第二物理机的心跳;
根据所述第二物理机的心跳,确定所述业务系统发生故障的位置在所述第一物理机与服务器之间的网络或者在所述第一物理机;
所述处理单元,具体用于:
当所述第二物理机的心跳发生异常时,确定所述业务系统发生故障的位置在所述第一物理机与服务器之间的网络;
或者,当所述第二物理机的心跳未发生异常时,控制所述第二物理机检测所述第一物理机的心跳;
当所述第二物理机检测所述第一物理机的心跳异常时,所述业务系统发生故障的位置在所述第一物理机。
6.根据权利要求5所述的装置,其特征在于,所述处理单元,具体用于:
当所述第二物理机检测所述第一物理机的心跳未发生异常时,确定所述业务系统发生故障的位置在所述第一物理机与服务器之间的网络。
7.根据权利要求5-6任一项所述的装置,其特征在于,所述装置还包括:
启动单元,用于当所述处理单元确定所述业务系统发生故障的位置在所述第一虚拟机时,重新启动所述第一虚拟机;
所述处理单元还用于,若所述启动单元重新启动所述第一虚拟机后,检测所述第一虚拟机心跳仍然异常时,将所述第一虚拟机所承载的业务转移到所述虚拟机集群中除所述第一虚拟机之外的任一虚拟机上。
8.根据权利要求5-6任一项所述的装置,其特征在于,所述处理单元还用于,当确定所述业务系统发生故障的位置在所述第一物理机与服务器之间的网络时,通知网络管理员修复所述第一物理机和所述服务器之间的网络;
或者,当确定所述业务系统发生故障的位置在所述第一物理机时,当确定所述业务系统发生故障的位置在所述第一物理机时,对所述第一物理机进行隔离和恢复;
若对所述第一物理机进行恢复失败时,则直接将所述第一虚拟机所承载的业务转移到所述虚拟机集群中除所述第一虚拟机之外的任一虚拟机上。
CN201710882792.3A 2017-09-26 2017-09-26 一种实现虚拟机高可用性的方法及装置 Active CN107491344B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710882792.3A CN107491344B (zh) 2017-09-26 2017-09-26 一种实现虚拟机高可用性的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710882792.3A CN107491344B (zh) 2017-09-26 2017-09-26 一种实现虚拟机高可用性的方法及装置

Publications (2)

Publication Number Publication Date
CN107491344A CN107491344A (zh) 2017-12-19
CN107491344B true CN107491344B (zh) 2020-09-01

Family

ID=60653013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710882792.3A Active CN107491344B (zh) 2017-09-26 2017-09-26 一种实现虚拟机高可用性的方法及装置

Country Status (1)

Country Link
CN (1) CN107491344B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110046064B (zh) * 2018-01-15 2020-08-04 厦门靠谱云股份有限公司 一种基于故障漂移的云服务器容灾实现方法
CN112148485A (zh) * 2020-09-16 2020-12-29 杭州安恒信息技术股份有限公司 超融合平台故障恢复方法、装置、电子装置和存储介质
CN114090184B (zh) * 2021-11-26 2022-11-29 中电信数智科技有限公司 一种虚拟化集群高可用性的实现方法和设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346779A (zh) * 2011-10-18 2012-02-08 中国联合网络通信集团有限公司 分布式文件系统和主控节点的备份方法
CN103067242A (zh) * 2012-12-04 2013-04-24 中国电信股份有限公司云计算分公司 一种用于提供网络服务的虚拟机系统
CN103607296A (zh) * 2013-11-01 2014-02-26 杭州华三通信技术有限公司 一种虚拟机故障处理方法和设备
CN103810016A (zh) * 2012-11-09 2014-05-21 北京华胜天成科技股份有限公司 实现虚拟机迁移的方法、装置和集群系统
CN105095001A (zh) * 2014-05-08 2015-11-25 中国银联股份有限公司 分布式环境下虚拟机异常恢复方法
CN106850354A (zh) * 2017-02-22 2017-06-13 郑州云海信息技术有限公司 一种单点故障的处理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346779A (zh) * 2011-10-18 2012-02-08 中国联合网络通信集团有限公司 分布式文件系统和主控节点的备份方法
CN103810016A (zh) * 2012-11-09 2014-05-21 北京华胜天成科技股份有限公司 实现虚拟机迁移的方法、装置和集群系统
CN103067242A (zh) * 2012-12-04 2013-04-24 中国电信股份有限公司云计算分公司 一种用于提供网络服务的虚拟机系统
CN103607296A (zh) * 2013-11-01 2014-02-26 杭州华三通信技术有限公司 一种虚拟机故障处理方法和设备
CN105095001A (zh) * 2014-05-08 2015-11-25 中国银联股份有限公司 分布式环境下虚拟机异常恢复方法
CN106850354A (zh) * 2017-02-22 2017-06-13 郑州云海信息技术有限公司 一种单点故障的处理方法及装置

Also Published As

Publication number Publication date
CN107491344A (zh) 2017-12-19

Similar Documents

Publication Publication Date Title
US10491671B2 (en) Method and apparatus for switching between servers in server cluster
CN110798375B (zh) 一种增强容器集群高可用性的监控方法、系统及终端设备
CN102708018B (zh) 一种异常处理方法及系统、代理设备与控制装置
WO2015169199A1 (zh) 分布式环境下虚拟机异常恢复方法
CN107491344B (zh) 一种实现虚拟机高可用性的方法及装置
EP3472971B1 (en) Technique for resolving a link failure
EP3550436A1 (en) Method and apparatus for detecting and recovering fault of virtual machine
CN105933407A (zh) 一种实现Redis集群高可用的方法及系统
CN111385134B (zh) 接入设备动态迁移方法及设备接入平台
CN107453888B (zh) 高可用性的虚拟机集群的管理方法及装置
JP6421516B2 (ja) サーバ装置、冗長構成サーバシステム、情報引継プログラム及び情報引継方法
CN106411643B (zh) Bmc检测方法以及装置
CN109617716B (zh) 数据中心异常处理方法及装置
US11954509B2 (en) Service continuation system and service continuation method between active and standby virtual servers
CN107122228A (zh) 超融合系统的管理平台的部署方法和装置
CN111666170B (zh) 基于分布式框架的故障节点处理方法及装置
JP2015176168A (ja) 管理サーバおよび障害復旧方法、並びにコンピュータ・プログラム
CN114840495A (zh) 一种数据库集群防脑裂的方法、存储介质与设备
CN112612652A (zh) 分布式存储系统异常节点重启方法及系统
CN113794595A (zh) 一种基于工业互联网的IoT设备高可用方法
CN107547257B (zh) 一种服务器集群实现方法及装置
CN109412888B (zh) 虚拟交换机监控方法及装置
JP2015106226A (ja) 二重化システム
KR102262942B1 (ko) 무선 네트워크 시스템의 무선 브리지에 의한 게이트웨이 자가 복구방법
CN111698116B (zh) 一种资源释放方法、装置、设备及机器可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant