CN103262044A - 虚拟机失效转移管理的方法及其支持系统 - Google Patents

虚拟机失效转移管理的方法及其支持系统 Download PDF

Info

Publication number
CN103262044A
CN103262044A CN2011800605850A CN201180060585A CN103262044A CN 103262044 A CN103262044 A CN 103262044A CN 2011800605850 A CN2011800605850 A CN 2011800605850A CN 201180060585 A CN201180060585 A CN 201180060585A CN 103262044 A CN103262044 A CN 103262044A
Authority
CN
China
Prior art keywords
virtual machine
main virtual
data
gathering together
failover
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.)
Granted
Application number
CN2011800605850A
Other languages
English (en)
Other versions
CN103262044B (zh
Inventor
A.J.麦克尼内
J.马尔卡伊
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103262044A publication Critical patent/CN103262044A/zh
Application granted granted Critical
Publication of CN103262044B publication Critical patent/CN103262044B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • 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
    • 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
    • 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/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • 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/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Abstract

在利用检查点程序控制数据从主要虚拟机(402)转移到次要虚拟机(406)的镜像虚拟机环境中,内部网络(400)使主要虚拟机能与其它虚拟机(404)交换网络分组而不必等待检查点发生。提供一种确保可看见特定虚拟机的网络流量的所有主要虚拟机在检查点完成之前不会影响外部环境的机制。这可通过同步化所有主要虚拟机之间的检查点,以及若其中之一失效则确保全部失效转移到相应次要虚拟机来实现。

Description

虚拟机失效转移管理的方法及其支持系统
技术领域
本发明涉及用于运行在计算机系统上的虚拟机的管理的方法,尤其是涉及其中备援(back-up)或取代虚拟机可用于从刚好失效或已经失效的虚拟机接管操作的容错系统。此外,本发明涉及实施此类方法的软件工具以及也涉及用于实施此类方法的计算机系统。
背景技术
在计算机系统中,虚拟机的使用越来越普及,其中相应的虚拟机用于处理相应程序的任何事或处理到全操作系统。相应处理器可能主持一个或多个此类虚拟机,其中支持虚拟机的处理器软件层被熟知为虚拟机监视器或超管理器(hypervisor)。使用虚拟机的特别优点在于其为彼此隔离,也在于在许多状况中虚拟机之间需要相互通讯。
在容错系统中(通常是例如服务器架构或警报系统等非常重要的系统),备援供应是在组件失效时可切换成替代者而在最小中断下让操作继续进行。在多个虚拟机的系统中,备援供应包含额外的处理能力,在某些实例中是在连接但实体分开的机器上,其中在失效发生时可实例化取代的虚拟机。如所得知,为了最小化延迟,取代的虚拟机应能尽快接管失效机的操作,因此应要知道失效机已进行到程序或例程的何处,并能从该点接收操作。一个选项为取代机与第一机同时执行,其中取代机接收与第一机相同的输入数据并不输出,使其成为第一机的确实镜像:此配置耗费双倍的处理功率以维持取代机的操作。美国专利申请案2008/0189468号(Schmidt等人)及美国专利7,213,246号(van Rietschote等人)描述了利用交替策略的多个虚拟机系统。在操作时,对特定虚拟机而言,周期性地收集并储存机器的说明及目前的机器状态,使得在第一机失效时能产生取代的虚拟机。美国专利申请公开案2008/0155208号(Hiltgen等人)描述了类似的系统并讨论了处理取得的状态数据的安全性观点。此种系统比执行并行的虚拟机具有较低的处理开销,但是在失效发生时转换较慢,因其在能接管操作前需要先实例化取代的虚拟机。
虚拟机镜像是一种在失效发生时几乎可立即在第二机重新开始的虚拟机执行方式。状态数据持续地在主要虚拟机与次要虚拟机之间交换。这是利用已知技术如将主要虚拟机作为检查点(checkpointing)来实现的,其中周期性获得主要虚拟机的状态并传送到次要虚拟机。检查点虚拟机系统的示例描述于美国专利申请案2010/0107158号(Chen等人)。在失效发生时,次要虚拟机为主要虚拟机在失效前的最后检查点的镜像,并可从该检查点接管操作。如所得知,检查点间的区间越短,次要虚拟机的状态越接近主要虚拟机。然而,检查点操作会产生处理开销,因此在开销与检查点频率之间必须取得平衡。检查点系统的另一问题在于为了避免复制主要虚拟机及其相应次要虚拟机在失效事件前后所产生的外部网络流量,主要虚拟机所产生的任何外部网络数据分组在通过下个检查点之前必须缓冲储存。此缓冲储存的要求造成操作延迟,使用相对长的检查点区间时尤其严重。
发明内容
因此,现有技术中需要解决上述问题。
根据本发明的第一方面,提供一种操作一丛集(cluster)的虚拟机的方法,该丛集包含两个或更多个主要虚拟机,其中每个虚拟机链接到外部数据总线且每个主要虚拟机可操作以产生数据并传送数据到该外部总线,以及可操作以从该外部总线接收并处理数据,包含:
a.针对该丛集的每个主要虚拟机,利用检查点程序,以维持相应次要虚拟机在失效转移发生时承担该主要虚拟机的任务;以及
b.在失效转移时,使每个次要虚拟机从紧接在失效转移发生前的检查点承担其相应主要虚拟机的任务,
其中该丛集的每个主要虚拟机被连接以经由内部总线接收该主要虚拟机或每个其它主要虚拟机的数据并在接收时处理数据,该方法还包含:
c.同步化该丛集的所有主要虚拟机的检查点;
d.针对该丛集的每个主要虚拟机,在下个检查点发生前避免将基于所收到的内部总线数据所产生的数据释出到外部总线;以及
e.在该丛集中的一个主要虚拟机失效转移时,使该丛集的所有主要虚拟机失效转移到它们相应的次要虚拟机。
通过使用内部总线,虚拟机可从丛集的其它虚拟机接收并处理数据,而不必等待检查点通过。通过同步化检查点并一起失效转移所有的主要虚拟机,可避免产生伪外部总线流量的可能性。
在此种方法中,针对丛集的至少一个主要虚拟机,在丛集内发生失效转移时,若确定该至少一个主要虚拟机自前个检查点后并未收到内部总线数据,则当丛集的其它主要虚拟机失效转移时,可防止该至少一个主要虚拟机失效转移到其相应的次要虚拟机。换言之,仅自从前个检查点开始已收到内部总线数据的那些主要虚拟机被失效转移。
丛集可还包含至少一个另一主要虚拟机,其中此方法还包含:当丛集的其它主要虚拟机失效转移时,停止该另一主要虚拟机的操作:如此能容许主要虚拟机没有相应次要虚拟机。在此种配置中,该丛集的该另一主要虚拟机或各另一主要虚拟机可被连接,以经由该内部总线接收该主要虚拟机或各其它主要虚拟机的数据并在接收时处理数据,其中此方法还包含:针对丛集的该另一主要虚拟机或各另一主要虚拟机,在下个检查点发生前,防止将基于所接收到的内部总线数据所产生的数据释出到外部总线。
在失效转移后,可于新丛集中重新指定各个次要虚拟机为主要虚拟机,并指定新的各个次要虚拟机。
再者,根据本发明提供一种包含计算机系统的设备,该计算机系统具有连接于一或多个数据储存装置的至少一个处理器装置,该系统被配置为用于操作一丛集的虚拟机,该丛集包含两个或更多个主要虚拟机,其中每个虚拟机链接到外部数据总线,其中:
1.每个主要虚拟机可操作以产生数据并传送数据到外部总线,以及可操作以从外部总线接收并处理数据;
2.针对该丛集的每个主要虚拟机,该系统利用检查点程序,维持相应次要虚拟机在失效转移发生时承担该主要虚拟机的任务;
3.在检测到失效转移时,该系统将每个主要虚拟机的任务转移到其相应次要虚拟机,其中每个次要虚拟机镜像紧接在失效转移发生前的检查点时其相应主要虚拟机的状态;
其中:
4.该系统控制该丛集的所有主要虚拟机的检查点以进行同步化;
5.该系统还包含内部总线机制,其中该丛集的每个主要虚拟机被连接,以经由该内部总线、从该主要虚拟机或各其它主要虚拟机接收数据,并在接收时处理该数据;
6.利用一个或多个储存装置,该丛集的每个主要虚拟机缓冲储存基于所收到的内部总线数据所产生的外部总线数据,并在下个检查点发生时将数据释出到外部总线;以及
7.在该丛集中的一个主要虚拟机失效转移时,该系统指示该丛集的所有主要虚拟机失效转移到它们相应的次要虚拟机。
在此种设备中,每个主要虚拟机及次要虚拟机经由相应超管理器链接到该系统的其余虚拟机。在一实施例中,该丛集的所有主要虚拟机由单一处理器装置主持,并经由单一超管理器链接。可替换地,该丛集的该些主要虚拟机可由两个或更多个处理器装置主持,其中连接相应超管理器以交换内部总线数据。
如上所述,针对该丛集的至少一个主要虚拟机,在丛集内发生失效转移时,该系统可确定该至少一个主要虚拟机自前个检查点后是否已收到内部总线数据,以及若未收到,则当丛集的其它主要虚拟机失效转移时,该系统可防止该至少一个主要虚拟机失效转移到其相应的次要虚拟机。
该丛集可还包含至少一个另一主要虚拟机,当丛集的其它主要虚拟机失效转移时,该系统停止该至少一个另一主要虚拟机的操作。该丛集的该另一主要虚拟机或各该另一主要虚拟机可被连接,以经由内部总线接收该主要虚拟机或各其它主要虚拟机的数据并在接收时处理数据,且可被配置为利用一个或多个储存装置,缓冲储存该另一主要虚拟机或各该另一主要虚拟机基于所收到的内部总线数据所产生的外部总线数据,并在下个检查点发生时将该数据释出到外部总线。
从另一方面看,本发明提供一种计算机程序产品,用于在客户计算机上创建第一计算机资源,该计算机程序产品包含:可由处理电路读取的、存储用于由处理电路执行的指令的计算机可读储存介质,用于执行一方法,用于执行本发明的上述步骤。
从另一方面看,本发明提供一种储存在计算机可读介质并可加载到数字计算机的内部存储器的计算机程序,包含:软件代码部分,其中在该程序执行于计算机上时,用于执行如本发明的上述步骤。
有利地,本发明提供一种改善网络通信性能的方法,特别是利用检查点减少运行于系统上的虚拟机之间的通信的等待时间。
本发明的发明内容不重复叙述本发明的所有必要特征,且该些特征的子组合也可包含本发明。
附图说明
现在将参考如附图所示的较佳实施例仅示例性地描述本发明:
图1为示出根据现有技术的计算机组件的方块图,其中可以实现本发明的较佳实施例;
图2表示根据本发明的较佳实施例的一对链接的处理器装置,每个处理器装置具有(host)多个虚拟机;
图3显示根据本发明的较佳实施例的检查点程序中的数据转移;
图4显示根据本发明的较佳实施例的、由于检查点程序造成的外部网络数据的延迟输出;以及
图5示出根据本发明的较佳实施例的、在检查点期间到期前内部网络的供应及数据的转移。
具体实施方式
图1示意地表示适合用于实施本发明的计算机系统的组件。中央处理单元(CPU)处理器10通过地址与数据总线16连接于随机存取存储器RAM12以及只读存储器ROM14。补充CPU10的功能的协处理器装置42也经由地址与数据总线16连接到CPU10,以处理例如浮点运算、图形处理、信号处理及加密的例程。这些内部硬件装置10、12、14、42各包含支持连接到总线16的各自接口(未显示)。这些接口在形式上是现有的而无须进一步详细描述。
多个外部硬件装置接口级(通常标示为18)也经由总线16连接到CPU10。第一接口级20支持外部输入/输出装置(例如鼠标22及/或键盘24)的连接。第二接口级26支持外部输出装置的连接,例如显示屏幕28及/或音频输出装置30(例如耳机或扬声器)。第三接口级32支持与计算机可读取介质形式的外部数据储存装置的连接,此种外部储存装置可如图所示为可移除光盘或磁盘34(其可让适当配置的盘片读取器36所存取)。可替换地或额外地,外部储存装置可为固态存储器装置,例如扩展驱动器或记忆卡。第四接口级38支持系统经由有线或无线网络40与远程装置的连接,例如经由局域网络LAN或因特网。
图2显示经由网络104连接的第一实体机100及第二实体机102,其中实体机为处理器装置。实体机100、102的每一个提供各自的超管理器106、108。第一超管理器106主持(host)两个主要虚拟机(VMP)110、112以及次要虚拟机(VMS)114。第二超管理器108主持一个主要虚拟机120及两个次要虚拟机116、118。这三个主要虚拟机110、112、120形成用于数据交换的丛集(在下文中详述),且各自与次要虚拟机116、118、114其中一个关联。虚拟机镜像是执行虚拟机(VM)的一种方法,其中若发生失效,几乎可立即重新在第二个机器上执行。在所示实例中,若主要虚拟机112失效,其操作重新在次要虚拟机118执行。
状态数据周期性地从主要虚拟机及其各自的次要机传递。这是利用进行主要虚拟机的检查点程序来执行的,其包含获得主要虚拟机状态并将数据传给次要虚拟机。在本文中所述的发明是一种改良网络通讯性能的方法,尤其是降低在相同或分开的实体机上执行的主要虚拟机VMP之间的通讯的等待时间。
图3显示了在检查点程序中主要虚拟机PRI及次要虚拟机SEC间的数据转移。当发生检查点时,发生多个操作:
1.200暂停主要虚拟机PRI的所有CPU线程。
2.202获得每个虚拟机线程的CPU状态。
3.204获得自从前个检查点已改变的存储器分页(MP)。
4.206转移存储器改变及CPU状态到次要虚拟机SEC。
5.208恢复主要虚拟机。
如本领域技术人员所知,某些操作可同时发生或以语义上等效的顺序发生。举例而言,主要虚拟机PRI可在传送到次要虚拟机SEC前恢复。次要虚拟机的些微时间偏差是由于在操作206传送所需的时间。主要虚拟机与次要虚拟机间有快速数据连接时,时间偏差是可忽略的:为简明之故,从下面的附图中省略时间偏差。程序中的两个设定区间是检查点区间CINT及检查点等待时间CLAT。由图中可知,检查点区间CINT最好是固定的时间区间,其先前由重新开始延迟及处理器开销(overhead)之间的取舍所决定。检查点等待时间CLAT是主要虚拟机获得及传送CPU202及存储器204的状态到次要虚拟机所需的时间,当加到主要虚拟机执行其指派工作的期间210时,则构成检查点区间CINT。
失效转移(failover)是次要虚拟机接管被镜像的主要虚拟机正在进行的工作的程序。当主要虚拟机或硬件失效时,会发生失效转移。当发生失效转移时,次要虚拟机会从前个检查点继续,而失去主要虚拟机在此检查点后所做的任何工作(例如CPU周期、存储器改变)。
计算机(虚拟或其它)不会独自存在。它们执行外部环境可见的操作。更显著的是,其发送网络流量并储存信息到盘片。本发明不涵盖储存方面,所以在此不赘言。
如上所述,当发生失效转移时,次要虚拟机在前个检查点继续。这意味着外部环境必须反映对应于该检查点的状态。以网络分组(packet)而言,这意味着直到次要虚拟机已收到检查点后,才能释出网络分组(可由外界看见)。如图4所示,主要虚拟机300及次要虚拟机302执行检查点操作,如图3且通常以304指示。在306,主要虚拟机产生经由外部总线或网络308向前传输的数据分组。此分组不会立即被释出,而是放置于队列310中,直到已完成下个检查点,在点312,其会被释出到外部网络。相对地,要送到主要虚拟机并在点314在外部网络接收的进入分组会无延迟地直接被传给虚拟机。
与外部环境间的控制互动是任何虚拟机镜像方案的重要部分,并且是判定任何此种方案性能的重要因素。网络操作的延迟(等待时间增加)会造成严重的性能衰退,因此可最小化此类衰退的任何方案都是较好的。
本发明容许其它虚拟机看见镜像虚拟机的网络分组而不必等候检查点发生。为达此作用,设置一种确保所有其它虚拟机可“看见”网络流量的机制:
1.在完成检查点前对外部环境不会有作用;以及
2.若发生传送者失效,则必须能回到看见网络流量前的状态。
通过以下方式配置其中所有虚拟机被镜像的环境,以达到目标:
·同步化所有虚拟机之间的检查点;以及
·若任何一个主要虚拟机失效,保证所有主要虚拟机失效转移到各自的次要虚拟机。此技术可描述为互相保证网络毁灭,因为若任何一个虚拟机失效,为了继续运行必须破坏(并重建)所有的虚拟机。
图5示出了在检查点之间会发生的某些网络事件。在以下说明中,显示本发明的操作以及可如何用于降低网络流量的等待时间,而仍能确保若失效发生,不应被看见的网络流量不会具有外部作用。在附图中,内部网络400视为镜像虚拟机402、404之间的网络,其中镜像虚拟机402、404以互相保证网络毁灭群或丛集方式链接。
在点420开始执行,其中时间朝右方增加。次要虚拟机406已存在,且以下步骤表示检查点区间可能发生的事件子集。
在点422,主要虚拟机402请求将网络分组传送到外部网络408上的机器:其储存在之后(接在下个检查点区间后)要准备传送的队列410中。
在点424,主要虚拟机402请求将网络分组传送到内部网络400上的机器404:其会直接传送到此虚拟机。
在点426,网络408接收到分组:其会立即传送到主要虚拟机402。通常不需要特殊处理:原因在于网络(例如以太网络)本质为耗损,且若虚拟机失效,可重传分组。操作中的应用程序(例如在流式音频广播中)通常进行是否要重传的确定,丢失的分组通常不会重传。
在点428,达到检查点,且主要虚拟机402临时地“暂停”。获得CPU状态及自从前个检查点后任何已修改的分页。开始传送CPU状态及修改的分页到次要虚拟机406。
在点430,完成CPU状态/修改的分页的传送。在此时,可说是做到了检查点:修改的分页及CPU状态应用到次要虚拟机402。现在可释出外部网络的队列网络流量。
只要丛集中的所有主要虚拟机正确地运行,就对每个检查点重复上述步骤。然而,若任何主要虚拟机失效,则所有主要虚拟机必须失效转移到对应的次要虚拟机。
互相保证毁灭群(pool)是虚拟机的丛集,其能不延迟地传输网络分组(经由内部网络400)。如上所述,通过同步化检查点以及确保若任何一个虚拟机失效,则将丛集中的所有虚拟机失效转移到次要虚拟机而达到此作用。
为了同步化检查点,控制每个虚拟机的超管理器必须沟通。最简单的作法是仅具有一个超管理器并使所有虚拟机在相同的实体机上操作。然而,在实体机之间可设置低等待时间通信链接,以容许有多个超管理器。在此种结构中,内部网络及外部网络可共享相同的实体连接,但是内部网络上的网络流量必须与外界(例如外部网络)隔离。
次要虚拟机在设置上并无限制:其可位于不同的实体机器且不需要任何特殊的网络连接。然而,在此结构中,机器失效转移到次要虚拟机后,互相保证网络毁灭群组不会继续操作,除非次要虚拟机是连接到内部网络,它们变成被指定成为主要虚拟机,且定义了新的各个次要虚拟机。
在上述系统的变型中,互相保证网络毁灭是部分的而不是全部的:若其中一个主要虚拟机失效,仅群组中可从该虚拟机得到流量的其它虚拟机也需要失效转移。因此,若系统建立成使其知道哪个虚拟机自最后检查点开始已从失效的机器接收到网络流量,则仅这些机器需要失效转移。这意味着若自最后检查点开始没有传送网络流量,则仅失效的虚拟机必须失效转移。
在又一变型中,虽然如先前所述在互相保证网络毁灭群组中所有的机器应被镜像,但是不一定必须如此。虽然这种结构可能是最有用的,但是其它结构也是有效的。不是所有的虚拟机都必须被镜像,然而所有虚拟机必须使所有外部可见的交易延迟,直到被镜像的虚拟机上的检查点已经完成。若在此状况下发生失效,则镜像机应失效转移(如上述),且非镜像机必须停止。
虽然本发明实施例已说明如上,但是本发明的技术范围不限于上述实施例的范畴。对本领域技术人员明显的是,这些实施例可有各种改变及改进。由所附权利要求书的描述清楚可知本发明的技术范围包含此种改变及改进的实施。

Claims (14)

1.一种用于操作一丛集的虚拟机的方法,所述丛集包含两个或更多个主要虚拟机,其中每个虚拟机链接到外部数据总线,且每个主要虚拟机可操作以产生数据并传送数据到所述外部总线,以及从所述外部总线接收并处理数据,包含:
a.针对所述丛集的每个主要虚拟机,利用检查点程序,以维持相应次要虚拟机在失效转移发生时承担该主要虚拟机的任务;以及
b.在失效转移时,使每个所述次要虚拟机从紧接在失效转移发生前的检查点承担其相应主要虚拟机的任务,
其中所述丛集的每个主要虚拟机被连接,以经由内部总线从所述主要虚拟机或每个其它主要虚拟接收数据,并在接收时处理数据,所述方法还包含:
c.同步化所述丛集的所有主要虚拟机的检查点;
d.针对所述丛集的每个主要虚拟机,在下个检查点发生前,防止将基于所接收的内部总线数据所产生的数据释出到该外部总线;以及
e.在所述丛集中的一个主要虚拟机失效转移时,使所述丛集的所有主要虚拟机失效转移到它们相应的次要虚拟机。
2.如权利要求1所述的方法,其中针对所述丛集的至少一个主要虚拟机,在所述丛集内发生失效转移时,确定所述至少一个主要虚拟机自所述前个检查点开始是否已收到内部总线数据,以及若未收到,则当所述丛集的其它主要虚拟机失效转移时,防止所述至少一个主要虚拟机失效转移到其相应的次要虚拟机。
3.如权利要求1或2所述的方法,其中所述丛集还包含至少一个另一主要虚拟机,所述方法还包含:当所述丛集的其它主要虚拟机失效转移时,停止所述至少一个另一主要虚拟机的操作。
4.如权利要求3所述的方法,其中所述丛集的所述另一主要虚拟机或每个所述另一主要虚拟机被连接,以经由所述内部总线从所述主要虚拟机或每个其它主要虚拟机接收数据,并在接收时处理数据,所述方法还包含:
针对所述丛集的所述另一主要虚拟机或每个另一主要虚拟机,在下个检查点发生前,防止将基于所接收到的内部总线数据所产生的数据释出到所述外部总线。
5.如权利要求1至4中任一项所述的方法,还包含:在失效转移后,在一新丛集中重新指定所述各个次要虚拟机为主要虚拟机,并指定新的各个次要虚拟机。
6.一种包含计算机系统的设备,所述计算机系统具有连接于一个或多个数据储存装置的至少一个处理器装置,所述系统被配置为操作一丛集的虚拟机,所述丛集包含两个或更多个主要虚拟机,其中每个虚拟机链接到外部数据总线,其中:
a.每个主要虚拟机可操作以产生数据并传送数据到所述外部总线,以及从所述外部总线接收并处理数据;
b.针对所述丛集的每个主要虚拟机,所述系统利用检查点程序,维持相应次要虚拟机在失效转移发生时承担该主要虚拟机的任务;
c.在检测到失效转移时,所述系统将每个主要虚拟机的任务转移到其相应次要虚拟机,其中每个次要虚拟机在紧接于失效转移发生前的检查点时镜像其相应主要虚拟机的状态;
其中:
d.该系统控制所述丛集的所有主要虚拟机的检查点以进行同步化;
e.该系统还包含内部总线机制,其中所述丛集的每个主要虚拟机被连接,以经由所述内部总线从所述主要虚拟机或每个其它主要虚拟机接收数据,并在接收时处理数据;
f.利用一个或多个储存装置,所述丛集的每个主要虚拟机缓冲储存基于所接收到的内部总线数据所产生的外部总线数据,并在下个检查点发生时将数据释出到所述外部总线;以及
g.在所述丛集中的一个主要虚拟机失效转移时,所述系统指示所述丛集的所有主要虚拟机失效转移到它们相应的次要虚拟机。
7.如权利要求6所述的设备,其中每个主要虚拟机及次要虚拟机经由相应超管理器链接到所述系统的其余虚拟机。
8.如权利要求7所述的设备,其中所述丛集的所有主要虚拟机由单一处理器装置主持,并经由单一超管理器链接。
9.如权利要求7所述的设备,其中所述丛集的该些主要虚拟机由两个或更多个处理器装置主持,并链接各个超管理器用于交换内部总线数据。
10.如权利要求6至9中的任一项所述的设别,其中针对所述丛集的至少一个主要虚拟机,在所述丛集内发生失效转移时,所述系统确定所述至少一个主要虚拟机自前个检查点开始是否已收到内部总线数据,以及若未收到,则当所述丛集的其它主要虚拟机失效转移时,所述系统防止所述至少一个主要虚拟机失效转移到其相应的次要虚拟机。
11.如权利要求6至10中的任一项所述的设备,其中所述丛集还包含至少一个另一主要虚拟机,当所述丛集的其它主要虚拟机失效转移时,所述系统停止所述至少一个另一主要虚拟机的操作。
12.如权利要求11所述的设备,其中所述丛集的所述另一主要虚拟机或每个所述另一主要虚拟机被连接,以经由所述内部总线从所述主要虚拟机或每个其它主要虚拟机接收数据,并在接收时处理数据;以及
利用所述一个或多个储存装置,所述丛集的所述另一主要虚拟机或每个另一主要虚拟机缓冲储存基于所接收的内部总线数据所产生的外部总线数据,并在下个检查点发生时将所述数据释出到所述外部总线。
13.一种储存在计算机可读介质上并可加载到数字计算机的内部存储器的计算机程序,包含:软件代码部分,其中当所述程序运行于计算机上时,用于执行如权利要求1至6中的任一项所述的方法。
14.一种计算机程序产品,用于在客户计算机上创建第一计算机资源,该计算机程序产品包含:
可由处理电路读取的、存储用于由处理电路执行的指令的计算机可读储存介质,所述指令用于执行如权利要求1至6中的任一项所述的方法。
CN201180060585.0A 2010-12-21 2011-12-19 虚拟机失效转移管理的方法及其支持系统 Active CN103262044B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10196296 2010-12-21
EP10196296.7 2010-12-21
PCT/EP2011/073262 WO2012084839A1 (en) 2010-12-21 2011-12-19 Method for virtual machine failover management and system supporting the same

Publications (2)

Publication Number Publication Date
CN103262044A true CN103262044A (zh) 2013-08-21
CN103262044B CN103262044B (zh) 2016-03-30

Family

ID=45406750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180060585.0A Active CN103262044B (zh) 2010-12-21 2011-12-19 虚拟机失效转移管理的方法及其支持系统

Country Status (7)

Country Link
US (1) US9690662B2 (zh)
JP (1) JP6128526B2 (zh)
CN (1) CN103262044B (zh)
DE (1) DE112011104471T5 (zh)
GB (1) GB2501204B (zh)
TW (1) TWI537828B (zh)
WO (1) WO2012084839A1 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
CN103493021B (zh) * 2011-04-21 2016-06-22 国际商业机器公司 用于故障监视和修复的方法和系统
JP5821631B2 (ja) * 2011-12-28 2015-11-24 富士通株式会社 再生装置、再生方法、及び再生プログラム
US9021294B2 (en) * 2012-03-16 2015-04-28 Sungard Availability Services Lp Discovering boot order sequence of servers belonging to an application
CN102819465B (zh) * 2012-06-29 2014-09-24 华中科技大学 一种虚拟化环境中故障恢复的方法
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9069594B1 (en) 2012-12-27 2015-06-30 Emc Corporation Burst buffer appliance comprising multiple virtual machines
US9262090B2 (en) * 2013-02-26 2016-02-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Asynchronous data mirroring in memory controller
US20140280800A1 (en) * 2013-03-14 2014-09-18 Alcatel-Lucent Bell Labs France Apparatus and method to maintain consistent operational states in in cloud-based infrastructures
US9208015B2 (en) 2013-06-18 2015-12-08 Vmware, Inc. Hypervisor remedial action for a virtual machine in response to an error message from the virtual machine
US9483352B2 (en) * 2013-09-27 2016-11-01 Fisher-Rosemont Systems, Inc. Process control systems and methods
US10341245B2 (en) * 2014-03-24 2019-07-02 Vmware, Inc. Bursty data transmission in a congestion controlled network
US9582373B2 (en) * 2014-03-31 2017-02-28 Vmware, Inc. Methods and systems to hot-swap a virtual machine
CN107077366B (zh) * 2014-10-08 2021-12-03 英特尔公司 用于主与辅虚拟机之间的检查点/传递的方法和设备
US10374924B1 (en) * 2014-12-05 2019-08-06 Amazon Technologies, Inc. Virtualized network device failure detection
US9483360B1 (en) 2015-05-27 2016-11-01 Red Hat Israel, Ltd. Guest-driven virtual machine backups
EP3300298B1 (en) * 2015-06-30 2020-11-25 Huawei Technologies Co., Ltd. Method and apparatus for switching vnf
FR3039347B1 (fr) * 2015-07-20 2017-09-08 Bull Sas Procede de sauvegarde de l'environnement de travail d'une session d'un utilisateur sur un serveur
CN108139925B (zh) 2016-05-31 2022-06-03 安华高科技股份有限公司 虚拟机的高可用性
US9934095B2 (en) * 2016-06-29 2018-04-03 International Business Machines Corporation System, method and recording medium for antifragile computing problem management
TWI592796B (zh) 2016-09-19 2017-07-21 Univ Nat Central 運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品
US10908998B2 (en) * 2017-08-08 2021-02-02 Toshiba Memory Corporation Managing function level reset in an IO virtualization-enabled storage device
US11113270B2 (en) 2019-01-24 2021-09-07 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
US10866870B2 (en) * 2019-01-31 2020-12-15 Hewlett Packard Enterprise Development Lp Data store and state information handover
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
US11599546B2 (en) 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11340834B2 (en) 2020-05-22 2022-05-24 EMC IP Holding Company LLC Scaling of an ordered event stream
US11360992B2 (en) 2020-06-29 2022-06-14 EMC IP Holding Company LLC Watermarking of events of an ordered event stream
US11599420B2 (en) * 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11340792B2 (en) 2020-07-30 2022-05-24 EMC IP Holding Company LLC Ordered event stream merging
US11288143B2 (en) * 2020-08-26 2022-03-29 Stratus Technologies Ireland Ltd. Real-time fault-tolerant checkpointing
US11354444B2 (en) 2020-09-30 2022-06-07 EMC IP Holding Company LLC Access control for an ordered event stream storage system
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
US11599293B2 (en) 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
US11354054B2 (en) 2020-10-28 2022-06-07 EMC IP Holding Company LLC Compaction via an event reference in an ordered event stream storage system
KR102411260B1 (ko) * 2020-11-06 2022-06-21 한국전자기술연구원 러기드 환경에서 관리 모듈간 데이터 이중화 처리 방법
US11347568B1 (en) 2020-12-18 2022-05-31 EMC IP Holding Company LLC Conditional appends in an ordered event stream storage system
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US11526297B2 (en) 2021-01-19 2022-12-13 EMC IP Holding Company LLC Framed event access in an ordered event stream storage system
US11740828B2 (en) 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
US11513714B2 (en) 2021-04-22 2022-11-29 EMC IP Holding Company LLC Migration of legacy data into an ordered event stream
US11954537B2 (en) 2021-04-22 2024-04-09 EMC IP Holding Company LLC Information-unit based scaling of an ordered event stream
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113109A1 (en) * 2007-10-26 2009-04-30 Vmware, Inc. Using Virtual Machine Cloning To Create a Backup Virtual Machine in a Fault Tolerant System
CN101593136A (zh) * 2008-05-30 2009-12-02 国际商业机器公司 使得计算机具有高可用性的方法和计算机系统
US20100107158A1 (en) * 2008-10-28 2010-04-29 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3258228B2 (ja) * 1996-03-15 2002-02-18 株式会社東芝 チェックポイント生成方法
GB2353113B (en) * 1999-08-11 2001-10-10 Sun Microsystems Inc Software fault tolerant computer system
US7213246B1 (en) 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
US7962545B2 (en) * 2002-12-27 2011-06-14 Intel Corporation Dynamic service registry for virtual machines
US8539137B1 (en) * 2006-06-09 2013-09-17 Parallels IP Holdings GmbH System and method for management of virtual execution environment disk storage
JP4923990B2 (ja) * 2006-12-04 2012-04-25 株式会社日立製作所 フェイルオーバ方法、およびその計算機システム。
US9354927B2 (en) 2006-12-21 2016-05-31 Vmware, Inc. Securing virtual machine data
US8554981B2 (en) 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
US7610510B2 (en) * 2007-02-16 2009-10-27 Symantec Corporation Method and apparatus for transactional fault tolerance in a client-server system
US8191063B2 (en) * 2007-09-30 2012-05-29 Symantex Corporation Method for migrating a plurality of virtual machines by associating files and state information with a single logical container
JP5288185B2 (ja) * 2009-01-07 2013-09-11 日本電気株式会社 ネットワークインタフェース、計算機システム、それらの動作方法、及びプログラム
US8201169B2 (en) * 2009-06-15 2012-06-12 Vmware, Inc. Virtual machine fault tolerance
US8145945B2 (en) * 2010-01-04 2012-03-27 Avaya Inc. Packet mirroring between primary and secondary virtualized software images for improved system failover performance
US8650564B2 (en) * 2010-10-19 2014-02-11 Vmware, Inc. Method and system for synchronizing fault-tolerant virtual machines and adjusting CPU resource limit based on execution latency
US9176829B2 (en) * 2011-07-01 2015-11-03 Microsoft Technology Licensing, Llc Managing recovery virtual machines in clustered environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113109A1 (en) * 2007-10-26 2009-04-30 Vmware, Inc. Using Virtual Machine Cloning To Create a Backup Virtual Machine in a Fault Tolerant System
CN101593136A (zh) * 2008-05-30 2009-12-02 国际商业机器公司 使得计算机具有高可用性的方法和计算机系统
US20100107158A1 (en) * 2008-10-28 2010-04-29 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MINJIA ZHANG ETL: "VirtCFT:A Transparent VM-Level Fault-Tolerant System for Virtual Clusters", 《PARALLEL AND DISTRIBUTED SYSTEMS》, 8 December 2010 (2010-12-08), pages 147 - 154, XP031855571 *

Also Published As

Publication number Publication date
GB2501204A (en) 2013-10-16
DE112011104471T5 (de) 2013-10-17
TWI537828B (zh) 2016-06-11
JP2014503904A (ja) 2014-02-13
US9690662B2 (en) 2017-06-27
TW201235947A (en) 2012-09-01
WO2012084839A1 (en) 2012-06-28
JP6128526B2 (ja) 2017-05-17
CN103262044B (zh) 2016-03-30
GB2501204B (en) 2020-01-15
GB201312920D0 (en) 2013-09-04
US20130275808A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
CN103262044B (zh) 虚拟机失效转移管理的方法及其支持系统
CN102594858B (zh) 云存储环境中的镜像解决方案
CN100403300C (zh) 镜像网络数据以建立虚拟存储区域网络
US20140201574A1 (en) System and Method for Writing Checkpointing Data
US10819641B2 (en) Highly available servers
CN103761166A (zh) 一种虚拟化环境下针对网络服务的双机热备份容灾系统及其方法
US7065623B2 (en) Bandwidth utilization in a PPRC system
CN101102256A (zh) 存储区域网系统以及在存储网络中确定数据路径的方法
JP2005157521A (ja) 遠隔記憶装置の状態情報監視方法および記憶サブシステム
US20150082087A1 (en) Checkpoint capture and tracking in a high availability system
CN1818882A (zh) 容错系统、其中所用的控制装置、访问控制方法及控制程序
CN113127270B (zh) 一种基于云计算的3取2安全计算机平台
CN111400086B (zh) 虚拟机容错的实现方法和系统
JP2012190175A (ja) フォールトトレラントシステム、サーバ、フォールトトレラント化方法およびプログラム
Scales et al. The design and evaluation of a practical system for fault-tolerant virtual machines
TWM432075U (en) Monitoring device and monitoring system applicable to cloud algorithm
GB2415069A (en) Expansion of the number of fabrics covering multiple processing nodes in a computer system
EP3167372B1 (en) Methods for facilitating high availability storage services and corresponding devices
Mpoeleng et al. From crash tolerance to authenticated Byzantine tolerance: A structured approach, the cost and benefits
EP1369784A2 (en) Computer system failure handling
CN114244638B (zh) 组播网络通信方法、装置、设备及介质
JP3176945B2 (ja) 情報処理装置、待機冗長型システムおよび待機冗長型システムの主系と待機系との間でチェックポイントをとる方法
US11947431B1 (en) Replication data facility failure detection and failover automation
US11853175B2 (en) Cluster system and restoration method that performs failover control
Brooks z/OS Parallel Sysplex Update

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant