CN104615476B - 用于所选择的虚拟机复制和虚拟机重新启动的方法和系统 - Google Patents
用于所选择的虚拟机复制和虚拟机重新启动的方法和系统 Download PDFInfo
- Publication number
- CN104615476B CN104615476B CN201410597262.0A CN201410597262A CN104615476B CN 104615476 B CN104615476 B CN 104615476B CN 201410597262 A CN201410597262 A CN 201410597262A CN 104615476 B CN104615476 B CN 104615476B
- Authority
- CN
- China
- Prior art keywords
- virtual machines
- fault
- virtual machine
- restarting
- subset
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2002—Error 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 interconnections or communication control functionality are redundant
- G06F11/2007—Error 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 interconnections or communication control functionality are redundant using redundant communication media
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/006—Identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Abstract
在此提供了用于所选择的VM复制和VM重新启动技术的方法、系统和制造品。一种方法包括:在识别系统中包括多个VM的集合中的一个或多个故障VM之前,从包括多个VM的集合中选择将被复制的包括一个或多个VM的子集;在识别包括多个VM的集合中的一个或多个故障VM之前,复制包括一个或多个VM的子集;在识别系统中包括多个VM的集合中的一个或多个故障VM后,选择将被重新启动的包括所识别的一个或多个故障VM的子集;以及在识别包括多个VM的集合中的一个或多个故障VM后,重新启动包括所识别的一个或多个故障VM的子集。
Description
技术领域
本发明的实施例一般涉及信息技术,更具体地,涉及虚拟机(VM)管理。
背景技术
故障恢复场景在VM管理的背景下提出了很多挑战。VM和/或服务的高可用性和灾难恢复可通过复制和/或重新启动成为可能。中央处理单元(CPU)、内存和存储器可以都被包括在复本中。云中的VM的完全复制需要所有被复制的VM的CPU、内存状态和存储器,这将产生高的开销成本。因此,需要选择特定的一组VM以在故障恢复场景中复制以减小开销成本。
另外,当资源不充足时,并非所有的故障VM都可以被重新启动。而且,当资源充足时,由于计算资源将可能造成瓶颈,因此,重新启动所有故障VM可能花费很长时间。因此,需要选择特定的一组VM以比系统中的其它VM更早重新启动。
发明内容
在本发明的一个方面中,提供了用于所选择的VM复制和VM重新启动的技术。典型的计算机实现的方法可包括以下步骤:在识别系统中包括多个VM的集合中的一个或多个故障VM之前,从该包括多个VM的集合中选择将被复制的包括一个或多个VM的子集;在识别包括多个VM的集合中的一个或多个故障VM之前,复制包括一个或多个VM的子集;在识别系统中包括多个VM的集合中的一个或多个故障VM后,选择将被重新启动的包括所识别的一个或多个故障VM的子集;以及在识别包括多个VM的集合中的一个或多个故障VM后,重新启动包括所识别的一个或多个故障VM的子集。
本发明或其要素的另一方面可以采用有形地体现计算机可读指令的制造品的形式实现,其中该计算机可读指令在实现时使计算机执行如在此所描述的多个方法步骤。另外,本发明或其要素的另一方面可以采用包括存储器和至少一个耦合到存储器并被配置为执行所指明的方法步骤的处理器的装置的形式实现。更进一步地,本发明或其要素的另一方面可以采用用于执行在此描述的方法步骤的装置或其要素的形式实现;该装置可以包括硬件模块或硬件和软件模块的组合,其中软件模块被存储在有形的计算机可读存储介质中(或多个这种介质中)。
本发明的这些和其它目的、特性和优点将从以下的本发明的说明性实施例的具体描述中变得明显,其将结合附图一起阅读。
附图说明
图1是示出根据本发明的实施例的示例实施例的示意图;
图2是示出根据本发明的实施例的示例实施例的示意图;
图3是示出根据本发明的实施例的技术的流程图;
图4是示出根据本发明的实施例的技术的流程图;
图5是示出其上可实现本发明的至少一个实施例的典型计算机系统的系统图。
具体实施方式
如在此所描述的,本发明的一个方面包括在增强具有相互依赖的组件的服务的可用性中用于所选择的VM复制和VM重新启动的技术。例如,本发明的至少一个实施例包括所选择的VM复制,其可以是主动式(proactive)的(即,包括在故障前采取的措施)。在这种实施例中,一定数量的空闲资源被留出,并选择将要在空闲资源中被复制的VM集合以在发生故障时最大化服务值。在本发明的至少一个实施例中,这些资源在应用或云系统执行之前和/或应用或云系统执行时被用户或系统管理员留出。这种实施例中的复制因子是可配置的。被留出作为空闲资源的资源的百分比也是可配置的,并可基于用于复制的资源开销与可用性增强之间的权衡。
另外,本发明的至少一个实施例包括所选择的VM重新启动,其可以是反应式的(即,包括当故障VM没有复本时在故障后采取的措施)。在这种实施例中,选择将被重新启动的故障VM的集合以在计算能力(如果需要,还包括用于镜像复制的网络带宽容量)的约束下最大化服务值。
在所选择的VM复制和/或所选择的VM重新启动中,VM组可以被形成和/或被识别以遵守复合应用中共同有助于服务的提供的VM之间的依赖关系。根据本发明的一个或多个实施例,选择用于复制和/或重新启动的VM可以在多个环境内执行。例如,在一个这种环境中,每一个VM在组中对于服务的提供都是同等重要的。另外,在另一个这种环境中,每一个VM在组内对于服务的提供都被分配一个权重。另外,本发明的至少一个实施例包括基于有关应用的企业优先级和单独VM的故障行为的组合信息而从组中选择有故障倾向的VM以用于复制。
图1是示出根据本发明的实施例的示例实施例的示意图。举例说明,图1描绘了由用户和/或云提供者设置的服务水平协议(SLA)102,其可基于和/或来源于包括可用性SLA、商业或企业值和/或优先级、VM类型、性能SLA(诸如响应时间,吞吐量等)、管理员指定的计算方法等因素。SLA 102被提供给服务值估计引擎104,其与所选择的复制/重新启动引擎(SR2引擎)106进行交互。服务值估计引擎104通过按照由用户和/或系统管理员指定的公式从诸如以上所列出的因素中计算服务值。
在常态行为期间,在系统中没有故障,服务值估计引擎104向(SR2引擎106的)所选择的复制组件107提供输入,所选择的复制组件107利用该输入以确定哪个VM应当在空闲资源中复制。然后,如果发生VM的故障,则所选择的复制组件107确定是否所有的故障VM都有复本可用;如果复本可用,则该复本成为故障VM的主用VM;如果任意一个复本不可用,则那些具有可用复本的故障VM使得它们的复本成为主用VM,而那些没有可用复本的故障VM被(SR2引擎106的)所选择的重新启动组件109重新启动。该过程被表示为图1中在所选择的复制组件107和所选择的重新启动组件109的右侧的两个箭头。
在所选择的重新启动组件重新启动故障VM期间,服务值估计引擎的输入用于确定VM的重新启动的优先级和顺序(如通过图1中从服务值估计引擎104到所选择的重新启动组件109的箭头表示)。在所有故障VM被重新启动后,在系统中没有故障,并且系统在无故障状态下正常执行。然后,所选择的复制组件107重新开始选择哪些VM将被复制的任务(这通过图1中从所选择的重新启动组件109到所选择的复制组件107的箭头表示)。
在本发明的至少一个实施例中,SR2引擎106包括处理服务组件和/或VM之间的依赖关系的能力。在本发明的至少一个示例实施例中,对于任何运行中的VM v,存在至少一个v起作用的可用服务。如在此所指出的,用户和服务提供者具有灵活地定义服务值和分配适当值的能力。
如在此详细描述的,本发明的一个或多个实施例的目的是当考虑故障行为时达到最大服务值。如在此描述的,SR2引擎106的所选择的复制组件107最小化高价值服务故障的可能性。根据本发明的一个或多个实施例,故障发生在个别VM上而不是一次发生在服务的所有VM上。另外,VM故障是随机过程,没有必要使服务的所有VM都被复制(除非客户要求用于灾难恢复(DR)的复制策略)。
SR2引擎106的所选择的重新启动组件109在任何相关资源约束的背景下最大化被恢复的服务的值。
图2是示出根据本发明的实施例的示例实施例的示意图。举例说明,图2描绘了SR2引擎106,其从故障检测器组件202接收输入。故障检测器组件202与诸如管理程序1(H1)204(其包括vm11和vm12)、管理程序2(H2)206(其包括vm21和vm22)和管理程序3(H3)208(包括vm31和vm32)的管理程序进行交互。故障检测器组件202检测VM的任何故障,并将所检测到的故障通知SR2引擎106。另外,基于由故障检测器组件202提供的输入,SR2引擎106向相关的管理程序(例如,管理程序204、206和208)提供输入和/或指令。SR2引擎的所选择的复制组件和所选择的重新启动组件确定哪些VM复本应当被识别为主用VM和/或哪些VM应当被重新启动,并还请求相关的管理程序执行主用VM识别和VM重新启动。
图3是示出根据本发明的实施例的技术的流程图。步骤302包括使用所选择的复制算法周期性地选择和复制某些VM。例如,所选择的复制算法可选择VM的集合并复制所选择的VM的集合。在所选择的复制中可以考虑多个因素,这些因素是用于在图3的流程图中描绘的架构的值和/或输入。
举例说明,假设存在服务路径知识以及哪些服务路径更重要。在本发明的至少一个实施例中,监控和/或追踪工具可用于此目的。这种知识还可以从用户输入,其表示值分配阶段。
另外,在起点处,假设每个VM至少有主用副本在运行。如果VM发生故障,则步骤304包括确定故障VM是否有实时(live)复本。如果故障VM有实时复本,则在步骤306中,该复本成为主用,流程返回流程图的起点。另外,如在此使用的,成为主用(以及其各种类似表述)表明复本代替故障VM。当复本变成主用时,故障VM不存在。如果故障VM没有复本,则流程继续到所选择的重新启动阶段(到步骤308)。如在此详细描述的,本发明的至少一个实施例包括检测VM故障和检测是否有实时复本在运行的检测器。
步骤308包括运行所选择的重新启动算法以重新启动故障VM并恢复服务路径。本发明的至少一个实施例包括最大化所恢复的服务路径的值而尽可能多地满足SLA。该值可例如包括满足SLA的测量。如果没有可用于重新启动故障VM的资源,则实时复本可以被关闭以创建足够的用于重新启动的资源。
另外,步骤310包括确定故障VM是否已被成功地重新启动。如果所有故障VM已被重新启动并且所有服务路径已被所选择的重新启动算法恢复,则流程返回流程图的起点。如果由于资源不充足而导致所有故障VM还没有被成功地重新启动,则在步骤312中,仍然可以利用剩余资源执行复制。进一步地,本发明的至少一个实施例包括当资源可用并且充足时,周期性地尝试重新启动故障VM。
本发明的至少一个实施例包括使用与服务节点集合(即,共同提供服务的VM组)相关联的值以控制VM资源分配决策。SNS值可以从商业值(包括用户输入)中导出,VM的值可以由SNS的数量和值确定,其中这些SNS的VM是成员。
因此,本发明的至少一个实施例包括优化用于所有提供的服务的SNS的总值,其中,例如一个VM的故障可以使得多个SNS的值无效,并且约束包括管理程序的资源容量的约束。另外,本发明的这种实施例包括将复制和重新启动操作合并到整体架构中以生成高数值SNS和有故障倾向的VM的合并保护。
本发明的至少一个实施例还包括处理容纳相互依赖的组件的VM的故障。因此,处理服务请求的执行流程涉及一个或多个VM中的软件组件。VM故障导致在VM中的任何软件组件发生故障,并且软件组件的故障中断任何包括该组件的请求处理执行流程。另外,值(例如,商业值和/或SLA)被分配给不同的服务和/或不同类型的服务请求。为了确定VM故障对不同服务和/或不同类型的服务请求的值有多大影响,本发明的至少一个实施例包括处理服务类型级别值与执行流程级别故障之间的差距。
如在此使用的,执行路径是指处理服务请求的软件组件的执行顺序。另外,执行路径节点集合是指在执行路径中包含的VM的集合,而服务节点集合,如上文指出的,是指在任何处理一种类型的服务请求的执行路径中包含的VM的集合。进一步地,不同的服务和不同类型的服务请求可具有相同的SNS,VM可以在一个或多个SNS中。
服务路径集合(SPS)是指处理一种类型的服务请求的所有执行路径的集合。另外,SPS值测量由SPS提供的工作的重要性,其中该值与一种类型的服务请求相关联。
存在与一种类型的服务请求相关联的SPS和SNS。当SNS中的每个VM对于SPS都是同等重要时,SNS中的任何VM的故障导致SPS的零值,SNS中的所有VM的权重被设置为相同,SNS中的所有VM被包含在SPS的每个元素(执行路径)中。本发明的至少一个实施例包括将不同的重要性权重分配给SNS中的VM。另外,本发明的至少一个实施例包括从文献(例如,某些故障模型对应于某些工作负载)和/或经验和/或历史数据中获得VM的故障率。故障和/或误差模型(即,故障的类型)包括瞬时误差,其包括那些由安全性和/或可靠性易损性导致的误差。
另外,以下符号在此用于描述SR2引擎架构的目的:
-VMj是指VM,其中j=1,2,...n;
-Hi是指管理程序,其中i=1,2,...m;
-SPSk是指服务路径集合,其中k=1,2,...l;
-SNSk是指用于SPSk的服务节点集合;
-uk是指SPSk的值;
-yk,j是指SNSk中VMj的权重,如果VMj不在SNSk中,则权重为0;
-rj是指正由VMj使用的资源;
-Ri是指Hi中的资源;
-当VMj(或其复本)在Hi上时,xi,j为1,否则为0。
-当VMj(或其复本)在任意管理程序上运行时,Xj为1,否则为0。
仅仅对于所选择的复制,α代表复制因子,λj代表VMj的故障率。
如在此详细描述的,本发明的至少一个实施例包括执行所选择的复制以经由复制保护VM以免发生故障,同时在资源容量的约束下最大化运行中的服务的总值。考虑以下的例子(其中d=2,仅作为示例):
-对于没有被复制的VMj:
-Pr{Xj(t)=0}=1-e-λ,t,
-其中t是自VMj启动后的时间。
-对于被复制的VMj:
-Pr{Xj(t)=0}=1-2e-λ,t+e-2λ,t,
-其中t是自VMj启动后的时间。
另外,在时间t由云提供的服务值的总和通过将实时SPS的值相加而获得(对于其中所有VM在SNSk中都是同等重要的情况):
其中Pk={j|yk,j=1,1≤j≤n}。
目标包括通过选择符合以下条件的xi,j来最大化E(S):
以上的S的公式可以对于SNS中的VM不是同等重要的情况而进行扩展,例如,通过将所有实时执行路径(SPS的元素)的值相加。因此,uk值被分发给这些执行路径。另外,本发明的至少一个实施例包括复制因子α,其可以如下解释:
对于所有j(1≤j≤n),以使得
关于所选择的复制,本发明的至少一个实施例包括考虑VM(v)的有效值,其包括对应的SNS包括该VM的那些SPS的加权值的总和:
其中Mj={k|yk,j>0},1≤j≤n
这种实施例可包括使用启发式算法以选择具有由于故障而导致的有效值的最大预期损失的那些VM,其中:
-Xj=0的概率被表示为pj;以及
-VMj的故障的预期损失是pj*vj。
因此,本发明的至少一个实施例包括周期性地执行以下算法以选择将复制的VM的集合:
1.Q={未计划通过该算法复制的VM;最初为空};C={将被复制的候选VM};(O(n))(C最初是n个VM)。
2.按照递增顺序根据C中所有VM的(p*v/r)比率对C中的所有VM排序(O(nlogn));(p*v/r测量每个资源单元的每个VM的故障的预期损失)。
3.确定C中的VM是否可以在资源容量内的空闲资源上被复制(排除Q中的VM)(O(nm))(其中m表示管理程序的数量):
-确定用于复制的总资源是否仅仅是空闲资源;
-如果是,则在测试期间应用首次拟合或最佳拟合多维背包问题(MKP)启发式算法;以及
-如果成功,则进行到步骤5;否则,去往步骤4;
4.Q=Q+{不在Q中的具有最小(p*v/r)值的VM};去往步骤3;
-步骤3和步骤4的复杂度:(O(n2m));以及
5.C-Q是被选择用于复制的VM的最终集合(O(n))。算法复杂度是(O(n2m))。
再如在此详细描述的,本发明的一个方面还包括重新启动故障VM,同时在资源容量的约束下最大化运行中的服务路径的总值。因此,本发明的至少一个实施例可以包括执行以下步骤:
-确定其中Pk={j|yk,j=1,1≤j≤n}(对于其中所有VM在SNSk中都是同等重要的情况)。因此,本发明的至少一个实施例包括正确地选择符合以下条件的xi,j:
以上的公式可以被扩展,例如,对于其中SNS中的VM对于彼此不是同等重要的情况(与所选择的复制的方式类似)。
另外,本发明的至少一个实施例可以包括通过以下算法选择将提供和/或重新启动的一批VM。可以通过多次运行该算法来选择多批VM。
1.P={未计划通过该算法重新启动的SNS;最初为空};
C={将被重新启动的故障SNS};(O(k))(k=|C|);
2.按照递增顺序根据C中所有SNS的u/sum(r)比率对C中的所有VM排序(O(klogk))(其中sum(r)是该SNS中所有VM的资源使用率);(u是每个uk的一般表示,如在此定义的,类似地,r是每个rj的一般表示,也如在此定义的。)
3.测试(C-P)的SNS中的VM是否可以在用于提供VM的计算资源(或其它资源)的容量内在管理程序上被提供和/或重新启动(O(jm))(其中j表示故障VM的数量,m表示管理程序的数量):
-在测试期间可以应用首次拟合或最佳拟合MKP启发式算法;
-如果成功,则进行到步骤5;否则,去往步骤4;
4.P=P+{具有最小u/sum(r)值且不在P中的C中的SNS};去往步骤3(其中,步骤3和步骤4的复杂度是(O(kjm)));
5.(C-P)的VM是被选择以重新启动的VM的最终集合(O(j))(其中算法复杂度是(O(klogk+kjm)))
图4是示出根据本发明的实施例的技术的流程图。步骤402包括在识别系统中包括多个虚拟机的集合中的一个或多个故障虚拟机之前,从该包括多个虚拟机的集合中选择将被复制的包括一个或多个虚拟机的子集,其中所述系统包括不足以复制包括多个虚拟机的集合中的每个虚拟机的资源。选择可以包括识别一个或多个有故障倾向的虚拟机。
在本发明的至少一个实施例中,故障虚拟机可以是包括多个虚拟机的组的成员,其中该组的每个虚拟机都有助于服务的提供。另外,该组虚拟机中的每个虚拟机可相对于组内对于服务的提供的优先级被同等地加权,或者组中的每个虚拟机可相对于组内对于服务的提供的优先级被不同地加权。
步骤404包括在识别包括多个虚拟机的集合中的一个或多个故障虚拟机之前,复制包括一个或多个虚拟机的子集,其中所述复制包括减小由于一个或多个故障虚拟机而导致的预期损失值。
步骤406包括在识别系统中包括多个虚拟机的集合中的一个或多个故障虚拟机后,选择将被重新启动的包括所识别的一个或多个故障虚拟机的子集,其中所述系统包括不足以重新启动包括多个虚拟机的集合中的每个故障虚拟机的资源。
步骤408包括在识别包括多个虚拟机的集合中的一个或多个故障虚拟机后,重新启动包括所识别的一个或多个故障虚拟机的子集,其中所述重新启动包括减小由于一个或多个故障虚拟机而导致的预期损失值。
图4中描绘的技术还可以包括重新启动一个或多个故障虚拟机。重新启动故障虚拟机可包括在至少一个约束内重新启动故障虚拟机,该约束例如是用于复制的计算能力和/或网络带宽容量。
图4中描绘的技术可以另外包括在所识别的故障之前分配用于复制的(可配置的)预先确定量的资源。另外,本发明的至少一个实施例包括在至少一个所选择的虚拟机的所识别的故障之前将包括一个或多个虚拟机的所选择的子集复制到预先确定量的资源内。所选择的虚拟机可以是有故障倾向的虚拟机,基于企业优先级信息和/或多个虚拟机的故障行为而被识别为有故障倾向的虚拟机。
如在此所描述的,图4中描绘的技术还可以包括提供一个系统,其中该系统包括不同的软件模块,每个不同的软件模块被体现在有形的计算机可读可记录存储介质上。例如,所有的模块(或者其任何子集)可以在同一个介质上,或者每个模块可以在不同的介质上。模块可以包括在图中示出和/或在此描述的任何或所有组件。在本发明的一个方面,模块可以例如在硬件处理器上运行。方法步骤然后可以使用系统的在硬件处理器上执行的不同软件模块执行,如上文所描述的。进一步地,计算机程序产品可以包括具有可被执行以执行在此描述的至少一个方法步骤的代码的有形的计算机可读可记录的存储介质,包括提供具有不同的软件模块的系统。
另外,图4描绘的技术可以通过计算机程序产品实现,其可以包括存储在数据处理系统中的计算机可读存储介质中的计算机可用程序代码,其中计算机可用程序代码通过网络从远程数据处理系统下载。另外,在本发明的一个方面,计算机程序产品可以包括存储在服务器数据处理系统中的计算机可读存储介质中的计算机可用程序代码,其中计算机可用程序代码通过网络被下载到远程数据处理系统,以在计算机可读存储介质中与远程系统一起使用。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
本发明的方面或其要素的一个方面可以采用包括存储器和耦合到存储器并被配置为执行示例方法步骤的至少一个处理器的装置的形式实现。
另外,本发明的一个方面可以利用在通用计算机或工作站上运行的软件。参考图5,这种实现可以采用例如处理器502、存储器504和由例如显示器506和键盘508构成的输入/输出接口。此处使用的术语“处理器”意在包括任何处理设备,诸如包括CPU(中央处理单元)和/或其它形式的处理电路的处理设备。进一步地,术语“处理器”可以是指超过一个单独的处理器。术语“存储器”意在包括与处理器或CPU相关联的存储器,诸如RAM(随机存取存储器)、ROM(只读存储器)、固定的存储器设备(例如硬盘驱动器)、可移除的存储器设备(例如磁盘)、闪存等。另外,此处使用的短语“输入/输出接口”意在包括例如用于将数据输入到处理单元的机制(例如鼠标)和用于提供与处理单元相关联的结果的机制(例如打印机)。处理器502、存储器504和诸如显示器506和键盘508的输入/输出接口可以例如通过作为数据处理单元512的一部分的总线510互连。适合的互连,例如通过总线510,还可以被提供给诸如网卡的网络接口514,其可被提供以与计算机网络相连,并且这种互连还可以被提供给诸如磁盘或CD-ROM驱动器的介质接口516,其可被提供以与介质518相连。
因此,包括用于执行如在此所描述的本发明的方法的指令或代码的计算机软件可以被存储在相关联的存储器设备中(例如ROM、固定或可移除的存储器),并在准备好被利用时,被部分或全部地加载(例如,加载到RAM)并被CPU实施。这种软件可以包括但不限于固件、常驻软件、微代码等。
适合存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线510直接或间接耦合到存储器单元504的处理器502。存储器单元可以包括在程序代码的实际实施期间采用的本地存储器、大容量存储器和高速缓冲存储器,其中高速缓冲存储器提供至少一些程序代码的暂时存储以减少在实施期间必须从大容量存储器中获取代码的次数。
输入/输出或I/O设备(包括但不限于键盘508、显示器506、定位设备等)可以直接地(诸如通过总线510)或者通过中间的I/O控制器(为清楚起见省略)耦合到系统。
诸如网络接口514的网络适配器还可以被耦合到系统,以使数据处理系统能够通过中间的专用或公共网络耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡只是一些目前可用的网络适配器类型。
如在此使用的,包括权利要求在内,“服务器”包括运行服务器程序的物理数据处理系统(例如,图5所示的系统512)。应当理解,这种物理服务器可以包括或者可以不包括显示器和键盘。
正如所指出的,本发明的一些方面可采用计算机程序产品的形式,计算机程序产品具体体现为一个在其上具有计算机可读程序代码的计算机可读介质。也可以采用计算机可读介质的任意组合。可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可用一个适当的介质传输,包括——但不限于——无线、有线、光缆、射频(RF)等等,或者上述的任意合适的组合。
可以以至少一种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在此将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。因此,本发明的一个方面包括具体包含计算机可读指令的制造品,当可读指令被执行时,会使计算机执行所描述的多个方法步骤。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、组件、程序段或代码的一部分,所述模块、程序段或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可用专用硬件与计算机指令的组合来实现。
应当注意,在此所描述的任何方法可以包括提供体现在计算机可读存储介质上的不同的软件模块的系统的附加步骤;模块可以包括例如任何或所有在此详细描述的组件。然后,方法步骤可以使用如以上所描述的在硬件处理器502上执行的系统的不同的软件模块和/或子模块实现。进一步地,计算机程序产品可包括具有适于实现以执行至少一个在此所描述的方法步骤的代码的计算机可读存储介质,包括提供具有不同的软件模块的系统。
在任何情况下,应当理解,此处所示例的组件可以通过硬件、软件或其组合的各种形式实现,例如专用集成电路(ASIC)、功能电路、具有相关存储器的被适当编程的通用数字计算机等。如果给定在此提供的本发明的教导,本领域技术人员将能够构思本发明的组件的其它实现方式。
在此使用的术语仅仅用于描述特定实施例的目的,而并非意在限制本发明。如在此使用的,单数形式“一”、“该”意在也包括复数形式,除非上下文另有明确表示。还应当进一步理解,术语“包括”和/或“包含”在本说明书中使用时指明存在所述的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或添加其它特征、整体、步骤、操作、单元、组件和/或它们的组合。
权利要求中的所有装置或步骤加功能单元的对应的结构、材料、动作和等同意在包括任何用于执行功能的结构、材料或动作与其它要求保护的要素相结合。
本发明的至少一个方面可以提供诸如使用与服务节点集合相关联的值以控制VM资源分配决策的有益效果。
已经给出了本发明的各种实施例的描述以用于说明的目的,但并不意味着穷尽或限制在此公开的实施例。对于本领域技术人员来说,在不脱离所描述的实施例的范围和精神的前提下,显然可以进行许多修改和变形。在此使用的术语被选择以最佳地解释本发明的原理、实际应用或对现有技术的技术改进,或者以使得本领域技术人员能够更好地理解在此公开的实施例。
Claims (15)
1.一种用于所选择的虚拟机复制和虚拟机重新启动的方法,包括:
在识别系统中包括多个虚拟机的集合中的一个或多个故障虚拟机之前,从所述包括多个虚拟机的集合中选择将被复制的包括一个或多个虚拟机的子集,其中所述系统包括不足以复制所述包括多个虚拟机的集合中的每个虚拟机的资源;
在识别所述包括多个虚拟机的集合中的一个或多个故障虚拟机之前,复制所述包括一个或多个虚拟机的子集,其中所述复制可以减小由于一个或多个故障虚拟机而导致的预期损失的服务值;
在识别所述系统中所述包括多个虚拟机的集合中的所述一个或多个故障虚拟机后,选择将被重新启动的包括所识别的一个或多个故障虚拟机的子集,其中所述系统包括不足以重新启动所述包括多个虚拟机的集合中的每个故障虚拟机的资源;以及
在识别所述包括多个虚拟机的集合中的所述一个或多个故障虚拟机后,重新启动所述包括所识别的一个或多个故障虚拟机的子集,其中所述重新启动可以减小由于一个或多个故障虚拟机而导致的预期损失的服务值;
其中所述选择步骤、所述复制步骤和所述重新启动步骤由计算设备执行。
2.根据权利要求1所述的方法,其中,所述重新启动包括在至少一个约束内重新启动所述包括所识别的一个或多个故障虚拟机的子集。
3.根据权利要求2所述的方法,其中,所述至少一个约束包括计算能力。
4.根据权利要求2所述的方法,其中,所述至少一个约束包括用于复制的网络带宽容量。
5.根据权利要求1所述的方法,包括:
在一个或多个虚拟机的所识别的故障之前,分配用于所述复制包括一个或多个虚拟机的子集的预先确定量的资源。
6.根据权利要求5所述的方法,包括:
将所述包括一个或多个虚拟机的子集复制到所述预先确定量的资源内。
7.根据权利要求5所述的方法,其中,所述预先确定量的资源是能够配置的。
8.根据权利要求1所述的方法,其中,所述选择包括识别一个或多个有故障倾向的虚拟机。
9.根据权利要求8所述的方法,包括:
基于企业优先级信息和/或多个虚拟机的故障行为,识别所述一个或多个有故障倾向的虚拟机。
10.根据权利要求1所述的方法,其中,所述一个或多个故障虚拟机的每一个是包括多个虚拟机的组的成员,其中所述多个虚拟机的每一个有助于服务的提供。
11.根据权利要求10所述的方法,其中,在所述包括多个虚拟机的组中的每个虚拟机相对于所述组内对于所述服务的提供的优先级而被同等地加权。
12.根据权利要求10所述的方法,其中,在所述包括多个虚拟机的组中的每个虚拟机相对于所述组内对于所述服务的提供的优先级而被不同地加权。
13.一种用于所选择的虚拟机复制和虚拟机重新启动的系统,包括:
被配置为在识别系统中包括多个虚拟机的集合中的一个或多个故障虚拟机之前从所述包括多个虚拟机的集合中选择将被复制的包括一个或多个虚拟机的子集的模块,其中所述系统包括不足以复制所述包括多个虚拟机的集合中的每个虚拟机的资源;
被配置为在识别所述包括多个虚拟机的集合中的一个或多个故障虚拟机之前复制所述包括一个或多个虚拟机的子集的模块,其中所述复制可以减小由于一个或多个故障虚拟机而导致的预期损失的服务值;
被配置为在识别所述系统中所述包括多个虚拟机的集合中的所述一个或多个故障虚拟机后选择将被重新启动的包括所识别的一个或多个故障虚拟机的子集的模块,其中所述系统包括不足以重新启动所述包括多个虚拟机的集合中的每个故障虚拟机的资源;以及
被配置为在识别所述包括多个虚拟机的集合中的所述一个或多个故障虚拟机后重新启动所述包括所识别的一个或多个故障的虚拟机的子集的模块,其中所述重新启动可以减小由于一个或多个故障的虚拟机而导致的预期损失的服务值。
14.根据权利要求13所述的系统,进一步包括:
被配置为在一个或多个虚拟机的所识别的故障之前分配用于所述复制包括一个或多个虚拟机的子集的预先确定量的资源的模块。
15.根据权利要求14所述的系统,进一步包括:
被配置为将所述包括一个或多个虚拟机的子集复制到所述预先确定量的资源内的模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/069,738 US9389970B2 (en) | 2013-11-01 | 2013-11-01 | Selected virtual machine replication and virtual machine restart techniques |
US14/069,738 | 2013-11-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104615476A CN104615476A (zh) | 2015-05-13 |
CN104615476B true CN104615476B (zh) | 2019-07-05 |
Family
ID=53007976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410597262.0A Active CN104615476B (zh) | 2013-11-01 | 2014-10-30 | 用于所选择的虚拟机复制和虚拟机重新启动的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9389970B2 (zh) |
CN (1) | CN104615476B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331472B2 (en) * | 2014-08-29 | 2019-06-25 | Hewlett Packard Enterprise Development Lp | Virtual machine service availability |
US9594649B2 (en) * | 2014-10-13 | 2017-03-14 | At&T Intellectual Property I, L.P. | Network virtualization policy management system |
CN105704180B (zh) * | 2014-11-27 | 2019-02-26 | 英业达科技有限公司 | 数据中心网络的配置方法及其系统 |
CN105812170B (zh) * | 2014-12-31 | 2019-01-18 | 华为技术有限公司 | 基于数据中心的故障分析方法和装置 |
WO2016154786A1 (en) * | 2015-03-27 | 2016-10-06 | Intel Corporation | Technologies for virtual machine migration |
US9760398B1 (en) | 2015-06-29 | 2017-09-12 | Amazon Technologies, Inc. | Automatic placement of virtual machine instances |
US9852035B2 (en) | 2015-08-25 | 2017-12-26 | International Business Machines Corporation | High availability dynamic restart priority calculator |
US9971664B2 (en) * | 2015-08-27 | 2018-05-15 | Vmware, Inc. | Disaster recovery protection based on resource consumption patterns |
US10268549B2 (en) | 2016-03-03 | 2019-04-23 | International Business Machines Corporation | Heuristic process for inferring resource dependencies for recovery planning |
US10268512B2 (en) | 2016-06-23 | 2019-04-23 | International Business Machines Corporation | Optimizing simultaneous startup or modification of inter-dependent machines with specified priorities |
US10318330B2 (en) * | 2016-11-30 | 2019-06-11 | Salesforce.Com, Inc. | Data-persisting temporary virtual machine environments |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101449258A (zh) * | 2006-05-18 | 2009-06-03 | 微软公司 | 基于工作负载表征将虚拟机部署到主机 |
CN102713893A (zh) * | 2010-01-11 | 2012-10-03 | 美国日本电气实验室公司 | 用于企业数据中心的虚拟化和整合分析引擎 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290017B1 (en) | 2001-09-20 | 2007-10-30 | Emc Corporation | System and method for management of data replication |
US9715401B2 (en) | 2008-09-15 | 2017-07-25 | International Business Machines Corporation | Securing live migration of a virtual machine from a secure virtualized computing environment, over an unsecured network, to a different virtualized computing environment |
US9817695B2 (en) | 2009-04-01 | 2017-11-14 | Vmware, Inc. | Method and system for migrating processes between virtual machines |
US9424094B2 (en) * | 2009-06-01 | 2016-08-23 | International Business Machines Corporation | Server consolidation using virtual machine resource tradeoffs |
US8484160B2 (en) | 2010-09-21 | 2013-07-09 | Symantec Corporation | Selective virtual machine image replication systems and methods |
US20120084445A1 (en) * | 2010-10-05 | 2012-04-05 | Brock Scott L | Automatic replication and migration of live virtual machines |
US8984330B2 (en) * | 2011-03-28 | 2015-03-17 | Siemens Corporation | Fault-tolerant replication architecture |
US8527990B1 (en) * | 2011-04-29 | 2013-09-03 | Symantec Corporation | Systems and methods for migrating virtual machines |
KR101512714B1 (ko) | 2011-05-06 | 2015-04-23 | 주식회사 케이티 | 가상머신 디스크 마이그레이션 장치 및 그 방법 |
US8984508B2 (en) * | 2011-06-02 | 2015-03-17 | Vmware, Inc. | System and method for restarting a workload based on global load balancing |
US9785523B2 (en) * | 2011-06-20 | 2017-10-10 | Microsoft Technology Licensing, Llc | Managing replicated virtual storage at recovery sites |
US9176829B2 (en) * | 2011-07-01 | 2015-11-03 | Microsoft Technology Licensing, Llc | Managing recovery virtual machines in clustered environment |
US20130091285A1 (en) | 2011-10-11 | 2013-04-11 | International Business Machines Corporation | Discovery-based identification and migration of easily cloudifiable applications |
US8893147B2 (en) * | 2012-01-13 | 2014-11-18 | Ca, Inc. | Providing a virtualized replication and high availability environment including a replication and high availability engine |
US9047108B1 (en) * | 2012-09-07 | 2015-06-02 | Symantec Corporation | Systems and methods for migrating replicated virtual machine disks |
-
2013
- 2013-11-01 US US14/069,738 patent/US9389970B2/en active Active
-
2014
- 2014-10-30 CN CN201410597262.0A patent/CN104615476B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101449258A (zh) * | 2006-05-18 | 2009-06-03 | 微软公司 | 基于工作负载表征将虚拟机部署到主机 |
CN102713893A (zh) * | 2010-01-11 | 2012-10-03 | 美国日本电气实验室公司 | 用于企业数据中心的虚拟化和整合分析引擎 |
Also Published As
Publication number | Publication date |
---|---|
US9389970B2 (en) | 2016-07-12 |
CN104615476A (zh) | 2015-05-13 |
US20150127970A1 (en) | 2015-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104615476B (zh) | 用于所选择的虚拟机复制和虚拟机重新启动的方法和系统 | |
US10838803B2 (en) | Resource provisioning and replacement according to a resource failure analysis in disaggregated data centers | |
CN108351806A (zh) | 分布式基于流的数据库触发器 | |
US11050637B2 (en) | Resource lifecycle optimization in disaggregated data centers | |
US9760420B1 (en) | Fleet host rebuild service implementing vetting, diagnostics, and provisioning pools | |
US9002997B2 (en) | Instance host configuration | |
US10379838B1 (en) | Update and rollback of code and API versions | |
AU2014209611B2 (en) | Instance host configuration | |
US20220188172A1 (en) | Cluster selection for workload deployment | |
US9003222B2 (en) | Configuration fault localization in shared resource environments | |
US8966025B2 (en) | Instance configuration on remote platforms | |
US10754720B2 (en) | Health check diagnostics of resources by instantiating workloads in disaggregated data centers | |
US11586963B2 (en) | Forecasting future states of a multi-active cloud system | |
US11188408B2 (en) | Preemptive resource replacement according to failure pattern analysis in disaggregated data centers | |
US10831580B2 (en) | Diagnostic health checking and replacement of resources in disaggregated data centers | |
US20190244321A1 (en) | Multiple source watermarking for surveillance | |
US11221943B2 (en) | Creating an intelligent testing queue for improved quality assurance testing of microservices | |
CN115812298A (zh) | 供应故障的区块链管理 | |
US11068487B2 (en) | Event-stream searching using compiled rule patterns | |
WO2022018626A1 (en) | Cross-environment event correlation using domain-space exploration and machine learning techniques | |
CN106571969B (zh) | 一种云服务可用性评估方法和系统 | |
JP2023044720A (ja) | クラッシュしたアプリケーションを修復するためのコンピュータ実装方法、コンピュータプログラム製品、およびリモートコンピュータサーバ(クラッシュしたプロセスのリモート修復) | |
Gupta et al. | Using Heat and Ceilometer for providing autoscaling in OpenStack | |
US11687399B2 (en) | Multi-controller declarative fault management and coordination for microservices | |
US11303582B1 (en) | Multi-layer network for metric aggregation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |