虚拟机恢复方法和虚拟机迁移方法以及装置与系统的制作方法

文档序号:6507858阅读:140来源:国知局
虚拟机恢复方法和虚拟机迁移方法以及装置与系统的制作方法
【专利摘要】本发明公开了一种虚拟机恢复方法,应用于虚拟化集群系统;该方法包括:管理节点预测每个计算节点以及每个计算节点上运行的每个虚拟机是否将要发生故障;若预测到第一计算节点上的至少一个虚拟机将要发生故障,则发送第一快照指示给所述第一计算节点,以便所述第一计算节点对将要发生故障的至少一个虚拟机进行快照;若预测到第二计算节点将要发生故障,则发送第二快照指示给所述第二计算节点,以便所述第二计算节点对第二计算节点上运行的所有虚拟机进行快照。本发明实施例还提供相应的装置与系统以及虚拟机迁移方法和装置与系统。本发明的虚拟机恢复方法可以明显的缩短虚拟机恢复时间,并且,可以保证业务的连续性。
【专利说明】虚拟机恢复方法和虚拟机迁移方法以及装置与系统
【技术领域】
[0001]本发明涉及通信【技术领域】,具体涉及一种虚拟机恢复方法和一种虚拟机迁移方法 以及装置与系统。
【背景技术】
[0002]随着计算机技术的飞速发展,越来越多的公司和研究机构开始关注如何降低能耗 和提高资源利用率,而云计算则是其中关键的计算模式。云计算将所有的计算机抽象成特 定的计算资源,然后将这些计算资源提供给用户,而不是像以前那样直接提供一台或多台 计算机。云计算模式最大的好处就是用户可以根据自己的需要来申请资源,避免不必要的 资源的浪费,提高资源利用率。
[0003]服务器虚拟化技术是云计算中基于基础设施层的关键技术。该技术通过对物理服 务器(后文简称为服务器)进行虚拟化,实现在单台物理节点上部署多台虚拟机,来提高服 务器的资源利用率,降低使用成本。
[0004]随着对计算机计算能力的需求不断提升,单独的服务器虚拟化所提供的计算能力 已经无法满足客户对于计算机的需求。这时,虚拟化集群就应运而生,虚拟化集群将多台虚 拟化服务器组成为一个有机的整体,从而提升虚拟化系统整体的计算能力。虚拟化集群对 多台服务器进行统一管理,通过虚拟化技术将物理资源抽象为存储、计算、网络等各种资源 组成的资源池,通过按需申请资源的方式提供虚拟机给用户。
[0005]为了能够提高虚拟化集群系统的业务连续性,使得当执行某个业务的虚拟机出现 故障时,能够及时地恢复该业务的运行,让业务中断的时间最小;虚拟化集群通常会支持高 可用技术(High Availability,HA)技术。HA技术可以定时监控虚拟机的业务状态,当发生 虚拟机故障时,能够及时地恢复故障的虚拟机,保证虚拟机运行的业务连续性。
[0006]开启了 HA技术的虚拟化集群被称为HA集群。HA集群中,每一台服务器都配置一 个HA代理,HA代理持续不断地检测其他服务器的状态。HA代理定时向其他服务器发送心 跳信号,假设一台服务器连续三次无法响应心跳信号,HA代理就会认为该服务器可能故障 了,而上报对应的故障。这时,HA代理会将故障服务器上的所有虚拟机在HA集群中的其他 服务器上重新启动来恢复虚拟机业务,这就使得虚拟机故障的情况对于客户来说完全是透 明的,从而保证业务的连续性。
[0007]在对现有技术的研究和实践过程中,本发明的发明人发现,通过在其他服务器上 重新启动虚拟机来实现对故障服务器上虚拟机的恢复,需要初始化操作系统等操作,总体 上需要一个较长的恢复时间。并且,恢复后,虚拟机之前运行的业务的大部分信息全部都丢 失了,这些业务需要重新执行,导致业务连续性无法得到有效保证。

【发明内容】

[0008]本发明实施例提供一种虚拟机恢复方法和装置与系统,以一定程度上解决现有的 虚拟机恢复方法需要较长的恢复时间以及不能保证业务连续性的问题。[0009]本发明实施例还提供一种虚拟机迁移方法和装置与系统,以缩短虚拟机迁移恢复 的时间。
[0010]本发明第一方面提供一种虚拟机恢复方法,应用于虚拟化集群系统;所述虚拟化 集群系统包括管理节点和至少一个计算节点,所述计算节点包括硬件层、运行在所述硬件 层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟机;所述方法包括:所述 管理节点预测每个计算节点以及每个计算节点上运行的每个虚拟机是否将要发生故障;若 预测到所述至少一个计算节点包括的第一计算节点上的至少一个虚拟机将要发生故障,则 发送第一快照指示给所述第一计算节点,以便所述第一计算节点对将要发生故障的至少一 个虚拟机进行快照;若预测到所述至少一个计算节点包括的第二计算节点将要发生故障, 则发送第二快照指示给所述第二计算节点,以便所述第二计算节点对第二计算节点上运行 的所有虚拟机进行快照。
[0011]在第一种可能的实现方式中,在所述管理节点预测每个计算节点以及每个计算节 点上运行的每个虚拟机是否将要发生故障的步骤之前还包括:获取每个计算节点的历史故 障信息以及每个计算节点上运行的每个虚拟机的历史故障信息;获取每个虚拟机的状态和 每个虚拟机的输入输出IO性能数据以及每个计算节点的环境温度。
[0012]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述管理 节点预测每个计算节点以及每个计算节点上运行的每个虚拟机是否将要发生故障包括:为 每个虚拟机确定一个表示疑似故障的第一多元组,所述第一多元组中的元素包括:虚拟机 的状态和虚拟机的IO性能数据以及根据虚拟机的历史故障信息计算得到的故障率;为每 个虚拟机确定一个表示故障的第二多元组,所述第二多元组中包括与所述第一多元组中的 每个元素分别对应的阈值;选取一个虚拟机,判断所选取虚拟机的第一多元组中的元素是 否落入的所选取虚拟机的第二多元组中对应的阈值范围内,若是,则预测所选取虚拟机将 要发生故障。
[0013]结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述管理 节点预测每个计算节点以及每个计算节点上运行的每个虚拟机是否将要发生故障包括:为 每个计算节点确定一个表示疑似故障的第三多元组,所述第三多元组中的元素包括:计算 节点的环境温度以及根据所述计算节点的历史故障信息计算得到的故障率;为每个计算节 点确定一个表示故障的第四多元组,所述第四多元组中包括与所述第三多元组中的每个元 素分别对应的阈值;选取一个计算节点,判断所选取计算节点的第三多元组中的元素是否 落入所选取计算节点的第四多元组中对应的阈值范围内,若是,则预测所选取计算节点将 要发生故障。
[0014]本发明第二方面提供一种虚拟机恢复方法,应用于虚拟化集群系统;所述虚拟化 集群系统包括管理节点和至少一个计算节点;所述计算节点包括硬件层、运行在所述硬件 层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟机VM ;所述方法包括:所 述计算节点接收所述管理节点发送的第一或第二快照指示,所述第一快照指示用于指示所 述计算节点上运行的至少一个虚拟机将要发生故障,所述第二快照指示用于指示所述计算 节点将要发生故障;根据所述第一快照指示对将要发生故障的虚拟机进行快照,或者,根 据所述第二快照指示对所述计算节点上运行的所有虚拟机进行快照,并保存对应的快照文 件;检测所述计算节点上是否有虚拟机已发生了故障,以及检测是否有其它计算节点已发生了故障;检测到所述计算节点上有虚拟机确实发生故障时,获取所述已发生故障的虚拟 机对应的快照文件,对发生故障的所述虚拟机进行恢复;检测到有其它计算节点确实发生 故障时,获取发生故障的其他计算节点对应的快照文件,对发生故障的其他计算节点上的 所有虚拟机进行恢复。
[0015]在第一种可能的实现方式中,所述方法还包括:获取发生故障的虚拟机的故障信 息,或者获取发生故障的其他计算节点的故障信息,上报给所述管理节点。
[0016]本发明第三方面提供一种管理节点,应用于虚拟化集群系统,所述虚拟化集群系 统包括所述管理节点和至少一个计算节点;所述管理节点上部署有虚拟机故障预测模块; 所述虚拟机故障预测模块包括:故障预测单元,用于预测虚拟化集群系统中的每个计算节 点以及每个计算节点上运行的每个虚拟机是否将要发生故障;指示发送单元,用于若故障 预测单元预测到所述至少一个计算节点包括的第一计算节点上的至少一个虚拟机将要发 生故障,则发送第一快照指示给所述第一计算节点,以便所述第一计算节点对将要发生故 障的至少一个虚拟机进行快照;若故障预测单元预测到所述至少一个计算节点包括的第二 计算节点将要发生故障,则发送第二快照指示给所述第二计算节点,以便所述第二计算节 点对第二计算节点上运行的所有虚拟机进行快照。
[0017]在第一种可能的实现方式中,所述虚拟机故障预测模块,还包括:获取单元,用于 获取每个计算节点的历史故障信息以及每个计算节点上运行的每个虚拟机的历史故障信 息;以及获取每个虚拟机的状态和每个虚拟机的输入输出IO性能数据以及每个计算节点 的环境温度。
[0018]结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述故障 预测单元包括:第一构造单元,用于为每个虚拟机确定一个表示疑似故障的第一多元组,所 述第一多元组中的元素包括:虚拟机的状态和虚拟机的IO性能数据以及根据虚拟机的历 史故障信息计算得到的故障率;第二构造单元,用于为每个虚拟机确定一个表示故障的第 二多元组,所述第二多元组中包括与所述第一多元组中的每个元素分别对应的阈值;第一 预测单元,用于选取一个虚拟机,判断所选取虚拟机的第一多元组中的元素是否落入的所 选取虚拟机的第二多元组中对应的阈值范围内,若是,则预测所选取虚拟机将要发生故障。
[0019]结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,所述故障 预测单元包括:第三构造单元,用于为每个计算节点确定一个表示疑似故障的第三多元组, 所述第三多元组中的元素包括:计算节点的环境温度以及根据所述计算节点的历史故障信 息计算得到的故障率;第四构造单元,用于为每个计算节点确定一个表示故障的第四多元 组,所述第四多元组中包括与所述第三多元组中的每个元素分别对应的阈值;第二预测单 元,用于选取一个计算节点,判断所选取计算节点的第三多元组中的元素是否落入所选取 计算节点的第四多元组中对应的阈值范围内,若是,则预测所选取计算节点将要发生故障。
[0020]本发明第四方面提供一种计算节点,应用于虚拟化集群系统;所述计算节点包括: 硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟 机VM ;所述Host上进一步部署有虚拟机动态快照模块、虚拟机故障检测模块和虚拟机故障 恢复模块;所述虚拟机动态快照模块,用于接收所述管理节点发送的第一或第二快照指示, 所述第一快照指示用于指示所述计算节点上运行的至少一个虚拟机将要发生故障,所述第 二快照指示用于指示所述计算节点将要发生故障;根据所述第一快照指示对将要发生故障的虚拟机进行快照,或者,根据所述第二快照指示对所述计算节点上运行的所有虚拟机进 行快照,并保存对应的快照文件;所述虚拟机故障检测模块,用于检测所述计算节点上是否 有虚拟机已发生了故障,以及检测是否有其它计算节点已发生了故障;虚拟机故障恢复模 块,用于在所述虚拟机故障检测模块检测到所述计算节点上有虚拟机确实发生故障时,获 取所述已发生故障的虚拟机对应的快照文件,对发生故障的所述虚拟机进行恢复;有其它 计算节点确实发生故障时,获取发生故障的其他计算节点的快照文件,对发生故障的其他 计算节点上的所有虚拟机进行恢复。
[0021]在第一种可能的实现方式中,所述虚拟机故障检测模块,还用于获取发生故障的 虚拟机的故障信息,或者获取发生故障的其它计算节点的故障信息,上报给所述管理节点。
[0022]本发明第五方面提供一种虚拟化集群系统,所述虚拟化集群系统包括管理节点和 至少一个计算节点;所述管理节点是如本发明第三方面所述的管理节点,所述计算节点是 如本发明第四方面所述的计算节点。
[0023]本发明第六方面提供一种虚拟机迁移方法,应用于虚拟化集群系统;所述虚拟化 集群系统包括至少两个计算节点,所述至少两个计算节点包括第一计算节点和第二计算节 点;其中,每个计算节点包括硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所 述Host之上的至少一个虚拟机VM ;所述方法包括:第一计算节点对所述第一计算节点上宿 主的待迁移的第一虚拟机进行快照,并保存对应的快照文件;在快照完成后,将所述第一虚 拟机挂起;将用于启动所述第一虚拟机所需要的第一启动信息向第二计算节点发送,以便 所述第二计算节点根据所述第一启动信息和所述快照文件在所述第二计算节点上,对所述 第一虚拟机进行恢复,使得被迁移后的所述第一虚拟机宿主在所述第二计算节点上。
[0024]在第一种可能的实现方式中,所述至少两个计算节点还包括第三计算节点,所述 方法还包括:第一计算节点接收第三计算节点发送的第二启动信息,所述第二启动信息是 用于启动所述第三节点上宿主的待迁移的第二虚拟机所需要的信息;第一计算节点根据所 述第二启动信息和相应的快照文件,对所述第二虚拟机进行恢复,使得被迁移后的所述第 二虚拟机宿主在所述第一计算节点上。
[0025]结合第六方面或者第六方面的第一种可能的实现方式,在第二种可能的实现方式 中,所述虚拟化集群系统还包括DRS,在所述第一计算节点对所述第一计算节点上的待迁 移的第一虚拟机进行快照的步骤之前,还包括:所述第一计算节点接收所述DRS发送的、用 于将所述第一虚拟机从第一计算节点迁移到第二计算节点的迁移命令;所述第一计算节点 对所述第一计算节点上的待迁移的第一虚拟机进行快照,并保存快照文件包括:响应于所 述迁移命令,所述第一计算节点对所述第一计算节点上宿主的待迁移的第一虚拟机进行快 照,并保存对应的快照文件。
[0026]本发明第七方面提供一种计算节点,应用于虚拟化集群系统;所述计算节点包括 硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟 机VM ;所述Host上进一步部署有虚拟机动态快照模块、虚拟机信息处理模块;所述虚拟机 动态快照模块,用于对所述计算节点上宿主的待迁移的第一虚拟机进行快照,并保存对应 快照文件;所述虚拟机信息处理模块,用于在快照完成后,将所述第一虚拟机挂起;并将用 于启动所述第一虚拟机所需要的启动信息向第二计算节点发送,以便所述第二计算节点根 据所述启动信息和所述快照文件在所述第二计算节点上对所述第一虚拟机进行恢复,使得被迁移后的所述第一虚拟机宿主在所述第二计算节点上。
[0027]在第一种可能的实现方式中,所述Host上还部署有虚拟机重启恢复模块;所述虚 拟机信息处理模块,还用于接收第三计算节点发送的第二启动信息,所述第二启动信息是 用于启动所述第三节点上宿主的待迁移的第二虚拟机所需要的信息;所述虚拟机重启恢复 模块,用于根据所述第二启动信息和相应的快照文件,对所述第二虚拟机进行恢复,使得被 迁移后的所述第二虚拟机宿主在所述第一计算节点上。
[0028]本发明第八方面提供一种虚拟化集群系统,所述虚拟化集群系统包括至少两个计 算节点;其中一个计算节点是如本发明第七方面所述的计算节点。
[0029]本发明实施例提供的虚拟机恢复方法,采用由管理节点对计算节点以及计算节点 上运行的虚拟机进行故障预测,如果预测到有虚拟机或者计算节点将要发生故障,则指示 计算节点对将要发生故障的虚拟机或者对将要发生故障的计算节点上的所有虚拟机进行 快照的技术方案,使得:虚拟化集群系统可以自行决定在何种时机对虚拟机进行快照,而不 必采用人工的方式;并且,进行快照的时机选择在虚拟机将要但还没有发生故障时;从而, 当虚拟机确实发生故障时,计算节点可以根据快照文件对虚拟机进行快速恢复。相对于传 统的重启虚拟机的技术手段,本实施例方法因减少了初始化操作系统等操作,可以明显的 缩短虚拟机恢复时间,并且,因为直接将业务恢复到将要发生故障时的状态,而不必重新执 行业务,可以保证业务的连续性。
[0030]本发明实施例提供的虚拟机迁移方法,采用快照技术进行虚拟机迁移,可以缩短 虚拟机迁移恢复的时间,还可以减少迁移过程中的计算资源和网络资源的消耗,避免加重 计算节点的负载,进而避免整个虚拟化集群系统的工作环境变差。
【专利附图】

【附图说明】
[0031]图1是本发明一个实施例提供的虚拟化集群系统的示意图;
[0032]图2是本发明一个实施例提供的虚拟机恢复方法的流程图;
[0033]图3是本发明实施例方法涉及的四种模块的示意图;
[0034]图4是本发明另一实施例提供的虚拟化恢复方法的流程图;
[0035]图5是本发明实施例提供的管理节点的示意图;
[0036]图6是本发明实施例提供的计算节点的示意图;
[0037]图7是本发明实施例提供的虚拟机迁移方法的流程图;
[0038]图8是本发明另一实施例提供的计算节点的示意图。
【具体实施方式】
[0039]本发明实施例提供一种虚拟机恢复方法和装置与系统,以一定程度上解决现有的 虚拟机恢复方法需要较长的恢复时间以及不能保证业务连续性的问题。本发明实施例还提 供一种虚拟机迁移方法和装置与系统,以缩短虚拟机迁移恢复的时间。
[0040]为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0041 ] 为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要 素;
[0042]虚拟机(VirtualMachine, VM):
[0043]通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而 这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚 拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计 算机中进行工作。
[0044]硬件层:
[0045]虚拟化环境运行的硬件平台。其中,硬件层可包括多种硬件,例如某计算节点的硬 件层可包括处理器(例如CPU)和存储器(例如内存),还可以包括网卡、存储器等等高速/低 速输入/输出(I/o, Input/Output)设备,及具有特定处理功能的其它设备,如输入输出内 存管理单兀(IOMMU, Input/Output Memory Management Unit),其中 IOMMU可用于虚拟机物 理地址和Host物理地址的转换。
[0046]宿主机(Host):
[0047]作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现 虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM, Virtual Machine Monitor); 此外,有时VMM和I个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运 行的各个虚拟机提供各种硬件资源,如提供虚拟CPU、内存、虚拟磁盘、虚拟网卡等等。其中, 该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机则运行在Host为其准备 的虚拟硬件平台上,Host上运行一个或多个虚拟机。
[0048]实施例一、
[0049]本发明实施例提供一种虚拟机恢复方法。该方法应用于虚拟化集群系统。
[0050]请参考图1,所述虚拟化集群系统包括管理节点210和至少一个计算节点220 ; 所述计算节点220包括硬件层、运行在所述硬件层之上的宿主机(Host)、以及运行在所述 Host之上的至少一个虚拟机。较佳的/可选的,所述虚拟化集群系统中的所述至少一个计 算节点220可以采用共享存储器,该共享存储器用于存储快照文件。
[0051]请参考图2,所述方法包括:
[0052]101、所述管理节点预测每个计算节点以及每个计算节点上运行的每个虚拟机是 否将要发生故障。
[0053]102、若预测到所述至少一个计算节点包括的第一计算节点上的至少一个虚拟机 将要发生故障,则发送第一快照指示给所述第一计算节点,以便所述第一计算节点对将要 发生故障的至少一个虚拟机进行快照。
[0054]103、若预测到所述至少一个计算节点包括的第二计算节点将要发生故障,则发送 第二快照指示给所述第二计算节点,以便所述第二计算节点对第二计算节点上运行的所有 虚拟机进行快照。
[0055]可选的,在步骤101之前还可以包括:获取每个计算节点的历史故障信息以及每 个计算节点上运行的每个虚拟机的历史故障信息;以及获取每个虚拟机的状态和每个虚拟 机的输入输出(10)性能数据以及每个计算节点的环境温度。则,步骤101中,可以根据所述历史故障信息和每个虚拟机的状态和每个虚拟机的IO性能数据以及每个计算节点的环 境温度进行故障预测。
[0056]一种实施方式中,所述管理节点210上可以部署有虚拟机故障预测模块,该虚拟 机故障预测模块可以具体部署于运行在所述管理节点210的硬件层之上的管理系统中;所 述计算节点220上可以部署有虚拟机故障检测模块、虚拟机动态快照模块和虚拟机故障恢 复模块,该三种模块具体可以部署在计算节点上运行的Host上。本实施例方法的各个步 骤,具体可以由上述的虚拟机故障预测模块、虚拟机故障检测模块、虚拟机动态快照模块和 虚拟机故障恢复模块来执行并完成。图3示出了虚拟机故障预测模块110,虚拟机动态快照 模块120,虚拟机故障检测模块130和虚拟机故障恢复模块140之间的相互关系。下面,对 上述四种模块进行详细说明:
[0057]虚拟机故障预测模块110,部署在虚拟化集群系统的管理节点上。上述步骤101、 102和103均可以由该虚拟机故障预测模块110执行并完成。该模块110可以通过定时检 测等方式获取虚拟化集群中每个虚拟机的状态和IO性能数据以及每个计算节点的环境温 度。所述IO性能数据具体包括读速率和写速率。该模块110可以接收计算节点上报的虚 拟机的故障信息以及计算节点的故障信息,并将收到的故障信息保存为历史故障信息。该 模块110可以以所述虚拟机的状态和IO性能数据以及虚拟机的历史故障信息为依据,对所 述虚拟机是否将要发生故障进行预测;可以以计算节点的环境温度和计算节点的历史故障 信息为依据,对计算节点是否将要发生故障进行预测。预测方法是预定义的,根据具体应用 场景的不同,可以预设不同的预测方法,在后文中有详细描述。
[0058]虚拟机动态快照模块120,部署在虚拟化集群系统的计算节点上。该模块120可以 获取虚拟机故障预测模块110发送的包含故障预测结果的快照指示。所述快照指示包括用 于指示所述计算节点上运行的至少一个虚拟机将要发生故障的第一快照指示,和用于指示 所述计算节点将要发生故障的第二快照指示。当某个计算节点上的一个或多个虚拟机被预 测为将要发生故障时,该计算节点上的虚拟机动态快照模块120可以在一个预定义的较短 时间内对将要发生故障的一个或多个虚拟机进行快照。当计算节点本身被预测为将要发生 故障时,该计算节点上的虚拟机动态快照模块120可以在一个预定义的较短时间内对该计 算节点上的所有虚拟机进行快照。快照生成的快照文件保存了虚拟机所有的内存和磁盘信 息,或者说,包括了虚拟机当前的运行信息。每个计算节点生成的快照文件都保存在共享存 储器中,各个计算节点均可自由访问共享存储器,从而每个计算节点可方便的获取任意计 算节点生成的快照文件。
[0059]虚拟机动态快照分为全量快照和增量快照两种。全量快照会保存虚拟机的所有 动态信息,但是需要较长时间;增量快照仅保存上一个全量快照的改变信息,保存时间较 快。当虚拟机动态快照模块收到第一快照指示,则先对将要发生故障的虚拟机做一次全量 快照,如果预先设置为还进行增量快照或者经管理节点判断有必要进行增量快照,则全量 快照之后每间隔一段时间例如30s进行一次增量快照,以保证能够尽量在接近虚拟机故障 的时刻保存虚拟机的运行信息,从而保证后续能够在故障最近状态恢复虚拟机;从全量快 照时起过一段时间后,可以认为故障高风险时段已经离开,所以可以根据预先设置在全量 快照时起过一段时间后停止继续快照。如果是计算节点故障,则需要对计算节点上所有的 虚拟机进行快照,由于快照工作量较大,则仅对该计算节点上所有的虚拟机进行一次全量快照即可,但本实施例并不排除后续进行增量快照的可能。
[0060]虚拟机故障检测模块130,部署在虚拟化集群系统的计算节点上。一方面,该模块 130定时检测所在的计算节点上的所有虚拟机的状态,判断是否有虚拟机发生故障,当确认 某个虚拟机确实发生故障时,将该虚拟机的故障信息发送给虚拟机故障预测模块110,作为 历史故障信息;同时,指示虚拟机故障恢复模块140对该虚拟机进行恢复。另一方面,该模 块130可以定时检测所有其它计算节点,以判断是否有其它计算节点发生故障,当确认某 个计算节点确实发生故障时,将该计算节点的故障信息发送给虚拟机故障预测模块110,作 为历史故障信息;同时,指示虚拟机故障恢复模块140在自身坐在的计算节点上,对发生故 障的其它计算节点上的所有虚拟机进行恢复。
[0061]虚拟机故障恢复模块140,部署在虚拟化集群系统的计算节点上。该模块140在收 到虚拟机故障检测模块130发送的恢复指示后,对发生故障的虚拟机或者发生故障的计算 节点上的所有虚拟机进行恢复。恢复虚拟机的方法是:首先获取虚拟机动态快照模块120 对在发生故障之前对虚拟机进行快照得到的快照文件,然后根据快照文件中保存的虚拟机 的运行信息对虚拟机进行快速恢复。其中,如果是本计算节点上的某个虚拟机发生了故障, 则仅对该故障的虚拟机进行恢复,如果是其它的某个计算节点发生了故障,则对故障的计 算节点上的所有虚拟机进行恢复。
[0062]实际应用中,所述的虚拟机故障预测模块110,可以按照预定的预测算法对虚拟机 和计算节点进行故障预测。为了使预测算法更有针对性,预测结果更准确,预测速度更快, 本发明实施例将虚拟机故障分为两大类,针对每一类虚拟机故障分别定义不同的预测算 法。所述两大类虚拟机故障中,第一类是单一的虚拟机故障,这类虚拟机故障通常是由于虚 拟机自身运行时访问虚拟机的关键数据失败导致的,也可以称为虚拟机自身的故障;第二 类是虚拟机所在的计算节点故障,这类虚拟机故障通常是由于计算节点长期处于高负载状 态下,硬件问题出现问题,例如中央处理器(CPU)温度过高导致的。下面分别对两大类的虚 拟机故障的预测算法进行说明:
[0063]针对单一的虚拟机故障:
[0064]由于虚拟机自身的故障通常和虚拟机的修改,以及虚拟机访问虚拟机镜像相关, 所以本发明实施例中,可以通过监控虚拟机的输入输出(IO)性能数据,并结合虚拟机的状 态信息和历史故障信息,进行这类故障的预测。
[0065]首先,可以在虚拟机故障预测模块中构造一个集合表示所有疑似故障的多元组, SP,为每一个虚拟机确定一个表示疑似故障的第一多元组,第一多元组中的各个元素包括: 所述虚拟机的状态和IO性能数据以及根据所述虚拟机的历史故障信息计算得到的故障 率。例如,该第一多元组的集合可以表示为Svm=KStatus,〈DisklO, Netffork10>, Rate〉},其 中,Status表示虚拟机的状态,DiskIO表示虚拟机的磁盘IO性能,NetfforkIO表示虚拟机 的网络IO性能,Rate表示故障率,即,根据虚拟机故障检测模块检测的历史故障信息得到 的该状态下虚拟机发生故障的概率。
[0066]其次,根据集合Svm,可以定义一个集合Fvm,表示故障的多元组,即,为每一个虚拟 机确定一个第二多元组,第二多元组中包括与所述第一多元组中的每个元素分别对应的阈 值。由于性能数据本身存在一定的波动,对于性能数据,本发明增加一个变动范围AP来判 断性能数据是否处于故障的多元组内。例如,第二多元组的集合可以表示如下:Fvm={〈Status,〈DisklO土 A P,NetWorkIO土 A P〉Ir>RATEFail, r is Rate value in Svm with<Status, 〈DisklO, NetWorklO〉〉}。其中,RATEFail为自定义的阈值,表示高于这个概率则认为虚拟机 将发生故障,r是一个概率值。由此可见,Fvffl中的一个元素为一个范围,当某个虚拟机的状 态和IO性能数据以及当前状态下的故障率落在Fvm中,则被认为该虚拟机很可能会发生故障。
[0067]虚拟机故障预测模块进行故障预测的过程具体包括:选取一个虚拟机,判断所选 取虚拟机的所述第一多元组中的元素是否落入该虚拟机的所述第二多元组中对应的阈值 范围内,若是,则预测所选取虚拟机将要发生故障;然后,继续选取下一个虚拟机进行预测, 直到全部预测完毕;可以是依次对每个虚拟机进行预测,也可以是同时预测多个虚拟机。举 例说明,可以定时检测虚拟化集群中的每个虚拟机的状态和IO的性能数据,如果发现有虚 拟机的第一多元组存在于Fvm集合中,则表示该虚拟机可能出现故障,就会发送快照指示给 虚拟机动态快照模块,由虚拟机动态快照模块对该虚拟机进行快照,进行故障前的保护。但 是,由于虚拟机的状态存在一定的互斥性,对于迁移状态中的虚拟机,无法进行快照操作。 所以在改变虚拟机状态之前,虚拟化集群系统的管理节点可以调用虚拟机故障预测模块, 传入虚拟机新的状态,如果新的状态加上虚拟机的IO性能数据在Fvm集合中,则需要进行快 照以备份数据,此时虚拟化集群系统的管理节点会通过业务优先级确定是否要立即进行快 照来预防虚拟机故障。
[0068]当虚拟机动态快照模块接收到虚拟机预测模块发送的有虚拟机将要发生故障的 快照指示后,会对虚拟机进行动态快照,保存虚拟机的运行状态信息。虚拟机动态快照分为 全量快照和增量快照两种。如果是单独虚拟机故障,原则上先做一次全量快照后,可选的, 之后每间隔一段时间例如30s进行一次增量快照,以保证能够在故障最近状态恢复虚拟 机,从全量快照时起经过一段时间后,可以认为故障高风险时段已经离开,所以可以停止继 续快照。是否进行增量快照,可以由管理节点进行判断,也可以预先设置。
[0069]其中,根据虚拟机处于不同的状态,对应的快照策略可以不同:
[0070]对于和快照操作不互斥的状态,如运行状态,则先进行一次全量快照,之后的风险 (Usk)时间内,每间隔一段时间例如一个临时变量(Atinteval)时间进行一次增量快照,保证 后续能够最快的恢复虚拟机状态;
[0071]对于和快照操作互斥的状态,如迁移状态,如果需要快照,则只进行一次全量快 照。
[0072]当虚拟机故障检测模块检测到虚拟机故障,需要将当时虚拟机的IO性能数据和 状态等信息,作为历史故障信息上报给虚拟机故障预测模块。虚拟机故障预测模块根据虚 拟机的历史故障信息建立或更新对应的多元组,并根据不同情况,更新Rate值:如果该虚 拟机故障在之前被虚拟机故障预测模块预测出来,则Rate增加2 ;如果该虚拟机故障没有 被预测过,则Rate增加I。
[0073]针对虚拟机所在的计算节点故障:
[0074]由于虚拟机是在具体的计算节点例如服务器上运行的,所以当虚拟机所在的计算 节点发生故障的时候,该计算节点上的所有虚拟机全部都会发生故障,这时,所有的虚拟机 都需要恢复,很容易造成业务中断等问题。
[0075]计算节点故障和计算节点附近的温度拥有直接关系,即温度越高,则计算节点出现故障的概率越大。所以本发明实施例通过监视计算节点的环境温度,并结合计算节点的历史故障信息,进行故障预测。
[0076]首先,在虚拟机故障预测模块中构造一个集合表示计算节点的所有疑似故障的多元组,即,为每一个计算节点确定一个表示疑似故障的第三多元组,该第三多元组中的元素包括:计算节点的环境温度以及根据所述计算节点的历史故障信息计算得到的故障率。例如,该第三多元组的集合可以表示如下Sltost= {〈T,t, Rate) | T>TFail},其中,T表示服务器的环境温度,并且只有温度高于预设的危险温度,才开始监控计算节点的状态,t表示计算节点稳定在温度T的时间,Rate表示故障率,即,根据虚拟机故障检测模块检测的历史故障信息得到的该状态下计算节点发生故障的概率。由于温度本身是一个连续取值变量,为了能够更好地监控,本发明将温度通过刻度划分为一个时间梯度,每AT作为一个档次,即O-AT 是一档(不包括AT),A T-2* A T是下一档,等等。
[0077]其次,根据Slfost,可以为每一个计算节点构造表示该计算节点的故障的第四多元组,第四多元组中包括与所述第一多元组中的每个元素分别对应的阈值。例如,第四多元组的集合可以表示为 FHQSt={〈T, t> I r>RATEFail, r is Rate value in Sttost with〈T, t>}。其中,RATEFail为自定义的阈值,表示高于这个概率则认为虚拟机将发生故障,r是一个概率值。
[0078]虚拟机故障预测模块进行故障预测的过程具体包括:选取一个计算节点,判断所选取计算节点的所述第三多元组中的元素是否落入所选取计算节点的所述第四多元组中对应的阈值范围内,若是,则确定所选取计算节点将要发生故障;然后,继续选取下一个计算节点进行预测,直到全部预测完毕;可以是依次对每个计算节点进行预测,也可以是同时预测多个计算节点。举例说明,可以定时监控计算节点的环境温度,当发现计算节点的环境温度超过TFail,就根据温度统计Slfost集合中的<T,t>的多元组。当发现有计算节点的 <T,t+At〉存在于集合Flfost中,则认为该计算节点在At时间后,可能发生故障,就会通知该计算节点上的虚拟机动态快照模块对该计算节点上的所有虚拟机进行快照,保存虚拟机的运行状态。此处,设置At目的主要是为虚拟机快照预留一定的时间,来保证虚拟机的信息能够有效保存。
[0079]当虚拟机动态快照模块接收到虚拟机故障预测模块发送的预测计算节点故障的快照指示后,会对计算节点上的所有虚拟机进行快照,以保存虚拟机状态。由于可能存在过多虚拟机需要快照,这时,可以仅对所有虚拟机进行一次全量快照,之后不进行增量快照, 以避免增加计算节点负载。
.[0080]另外,当虚拟机故障检测模块检测到计算节点故障时,会获取故障信息,作为历史故障信息上报给虚拟机故障预测模块,虚拟机故障预测模块会把当前对应的<T,t>的多元组更新到集合Sttost中,并且更新对应的Rate值,令Rate增加I。
[0081]由于虚拟机和计算节点故障都属于较低概率发生,所以对于集合S?,Fvffl, Saost, Flfost,本发明实施例中优选通过预先离线的测试方式收集一定的故障信息作为实际系统运行的初始状态信息。
[0082]以上,本发明实施例提供了一种虚拟机恢复方法,采用由管理节点对计算节点及运行于其上的虚拟机进行故障预测,如果预测到有虚拟机或者计算节点将要发生故障,则指示计算节点对将要发生故障的虚拟机进行快照或者对将要发生故障的计算节点上的所有虚拟机进行快照的技术方案,该方案使得:虚拟化集群系统可以自行决定在何种时机对 虚拟机进行快照,而不必采用人工的方式;并且,进行快照的时机选择在虚拟机将要但还没 有发生故障时;从而,当虚拟机确实发生故障时,计算节点可以根据快照文件将虚拟机快速 恢复到故障前的状态,相对于传统的重启虚拟机的技术,因减少了初始化操作系统等操作, 可以明显的缩短虚拟机恢复时间,并且,因为直接将业务恢复到将要发生故障时的状态,而 不必重新执行业务,保证了业务的连续性。
[0083]实施例二、
[0084]请参考图4,本发明实施例提供一种虚拟机恢复方法,应用于虚拟化集群系统。所 述虚拟化集群系统包括管理节点和至少一个计算节点,所述计算节点包括硬件层、运行在 所述硬件层之上的宿主机(Host)、以及运行在所述Host之上的至少一个虚拟机。较佳的 /可选的,所述虚拟化集群系统中的所述至少一个计算节点可以采用共享存储器,该共享存 储器用于存储快照文件;
[0085]本实施例方法以计算节点为执行主体,所述方法包括:
[0086]401、所述计算节点接收所述管理节点发送的第一或第二快照指示,所述第一快照 指示用于指示所述计算节点上运行的至少一个虚拟机将要发生故障,所述第二快照指示用 于指示所述计算节点将要发生故障;
[0087]402、根据所述第一快照指示对将要发生故障的虚拟机进行快照,或者,根据所述 第二快照指示对所述计算节点上运行的所有虚拟机进行快照,并保存快照文件;
[0088]403、检测所述计算节点上是否有虚拟机已发生了故障,以及检测是否有其它计算 节点已发生了故障;
[0089]404、检测到所述计算节点上有虚拟机确实发生故障时,获取所述已发生故障的虚 拟机对应的快照文件,对发生故障的所述虚拟机进行恢复;
[0090]405、检测到有其它计算节点确实发生故障时,获取发生故障的其他计算节点对应 的快照文件,对发生故障的其他计算节点上的所有虚拟机进行恢复。
[0091]可选的,所述方法还包括:
[0092]获取发生故障的虚拟机的故障信息,或者获取发生故障的其他计算节点的故障信 息,上报给所述管理节点。本步骤在403之后执行,可以在404和405之前、之后或者同时。
[0093]关于本实施例方法的更详细的说明,请参考实施例一中的描述。
[0094]以上,本发明实施例提供了一种虚拟机恢复方法,采用由管理节点对计算节点及 运行于其上的虚拟机进行故障预测,如果预测到有虚拟机或者计算节点将要发生故障,则 指示计算节点对将要发生故障的虚拟机进行快照或者对将要发生故障的计算节点上的所 有虚拟机进行快照的技术方案,该方案使得:虚拟化集群系统可以自行决定在何种时机对 虚拟机进行快照,而不必采用人工的方式;并且,进行快照的时机选择在虚拟机将要但还没 有发生故障时;从而,当虚拟机确实发生故障时,计算节点可以根据快照文件将虚拟机快速 恢复到故障前的状态,相对于传统的重启虚拟机的技术,因减少了初始化操作系统等操作, 可以明显的缩短虚拟机恢复时间,并且,因为直接将业务恢复到将要发生故障时的状态,而 不必重新执行业务,保证了业务的连续性。
[0095]实施例三、
[0096]请参考图5,本发明实施例提供一种管理节点210,用于虚拟化集群系统,所述虚拟化集群系统包括所述管理节点和至少一个计算节点。
[0097]所述管理节点210上部署有虚拟机故障预测模块110 ;
[0098]所述虚拟机故障预测模块110,包括:
[0099]故障预测单元1101,用于预测虚拟化集群系统中的每个计算节点以及每个计算节 点上运行的每个虚拟机是否将要发生故障;
[0100]指示发送单元1102,用于若故障预测单元预测到所述至少一个计算节点包括的 第一计算节点上的至少一个虚拟机将要发生故障,则发送第一快照指示给所述第一计算节 点,以便所述第一计算节点对将要发生故障的至少一个虚拟机进行快照;若故障预测单元 预测到所述至少一个计算节点包括的第二计算节点将要发生故障,则发送第二快照指示给 所述第二计算节点,以便所述第二计算节点对第二计算节点上运行的所有虚拟机进行快 照。
[0101]可选的,所述虚拟机故障预测模块,还可以包括:
[0102]获取单元,用于获取每个计算节点的历史故障信息以及每个计算节点上运行的每 个虚拟机的历史故障信息;以及获取每个虚拟机的状态和每个虚拟机的输入输出IO性能 数据以及每个计算节点的环境温度。
[0103]一种实施方式中,所述故障预测单元1101包括:
[0104]第一构造单元,用于为每个虚拟机确定一个表示疑似故障的第一多元组,所述第 一多元组中的元素包括:虚拟机的状态和虚拟机的IO性能数据以及根据虚拟机的历史故 障信息计算得到的故障率;
[0105]第二构造单元,用于为每个虚拟机确定一个表示故障的第二多元组,所述第二多 元组中包括与所述第一多元组中的每个元素分别对应的阈值;
[0106]第一预测单元,用于选取一个虚拟机,判断所选取虚拟机的第一多元组中的元素 是否落入的所选取虚拟机的第二多元组中对应的阈值范围内,若是,则预测所选取虚拟机 将要发生故障。
[0107]另一种实施方式中,所述故障预测单元1101包括:
[0108]第三构造单元,用于为每个计算节点确定一个表示疑似故障的第三多元组,所述 第三多元组中的元素包括:计算节点的环境温度以及根据所述计算节点的历史故障信息计 算得到的故障率;
[0109]第四构造单元,用于为每个计算节点确定一个表示故障的第四多元组,所述第四 多元组中包括与所述第三多元组中的每个元素分别对应的阈值;
[0110]第二预测单元,用于选取一个计算节点,判断所选取计算节点的第三多元组中的 元素是否落入所选取计算节点的第四多元组中对应的阈值范围内,若是,则预测所选取计 算节点将要发生故障。
[0111]以上,本发明实施例提供了一种管理节点,关于该管理节点的更详细的描述请参 考实施例一中记载的内容。该管理节点可以对计算节点以及计算节点上运行的虚拟机是否 将要发生故障进行预测,在虚拟机或者计算节点将要发生故障之前,指示计算节点对虚拟 机进行快照,以便当虚拟机或者计算节点确实发生故障时,计算节点可以根据快照得到的 快照文件对虚拟机进行快速恢复,从而,使得:虚拟化集群系统可以自行决定在何种时机对 虚拟机进行快照,而不必采用人工的方式;并且,使计算节点可以根据快照文件将虚拟机快速恢复到故障前的状态,相对于传统的重启虚拟机的技术,因减少了初始化操作系统等操 作,可以明显的缩短虚拟机恢复时间,因不必重新执行业务而保证了业务的连续性。
[0112]实施例四、
[0113]请参考图6,本发明实施例提供一种计算节点220,用于虚拟化集群系统。
[0114]所述计算节点220包括:硬件层、运行在所述硬件层之上的宿主机(Host)、以及 运行在所述Host之上的至少一个虚拟机;所述Host上进一步部署有虚拟机故障检测模块 130、虚拟机动态快照模块120和虚拟机故障恢复模块140 ;
[0115]所述虚拟机动态快照模块120,用于接收所述管理节点发送的第一或第二快照指 示,所述第一快照指示用于指示所述计算节点上运行的至少一个虚拟机将要发生故障,所 述第二快照指示用于指示所述计算节点将要发生故障;根据所述第一快照指示对将要发生 故障的虚拟机进行快照,或者,根据所述第二快照指示对所述计算节点上运行的所有虚拟 机进行快照,并保存对应的快照文件;
[0116]所述虚拟机故障检测模块130,用于检检测所述计算节点上是否有虚拟机已发生 了故障,以及检测是否有其它计算节点已发生了故障;
[0117]所述虚拟机故障恢复模块140,用于在所述虚拟机故障检测模块检测到所述计算 节点上有虚拟机确实发生故障时,获取所述已发生故障的虚拟机对应的快照文件,对发生 故障的所述虚拟机进行恢复;有其它计算节点确实发生故障时,获取发生故障的其他计算 节点的快照文件,对发生故障的其他计算节点上的所有虚拟机进行恢复。
[0118]可选的,所述虚拟机故障检测模块130,还用于获取发生故障的虚拟机的故障信 息,或者获取发生故障的其它计算节点的故障信息,上报给管理节点。
[0119]以上,本发明实施例公开了 一种计算节点,关于该计算节点的更详细的描述请参 考实施例一和二中记载的内容。该计算节点可以根据管理节点的指示,在计算节点或者计 算节点上运行的虚拟机将要发生故障之前,对虚拟机进行快照,当虚拟机或者计算节点确 实发生故障时,根据快照得到的快照文件将虚拟机快速恢复到故障前的状态,相对于传统 的重启虚拟机的技术,因减少了初始化操作系统等操作,可以明显的缩短虚拟机恢复时间, 因不必重新执行业务而保证了业务的连续性。
[0120]实施例五、
[0121]请参考图1,本发明实施例提供一种虚拟化集群系统。
[0122]所述虚拟化集群系统包括管理节点210和至少一个计算节点220,较佳的/可选 的,所述虚拟化集群系统中的所述至少一个计算节点220可以采用共享存储器,该共享存 储器用于存储快照文件;
[0123]其中,所述管理节点是实施例三中描述的管理节点,所述计算节点是如实施例四 中描述的计算节点。
[0124]关于该虚拟化集群系统的更详细的描述请参考实施例一至实施例四中记载的内容。
[0125]以上,本发明实施例提供了一种虚拟化集群系统,采用由管理节点对计算节点及 运行于其上的虚拟机进行故障预测,如果预测到有虚拟机或者计算节点将要发生故障,则 指示计算节点对虚拟机进行快照,当虚拟机或者计算节点确实发生故障时,计算节点可以 根据所做的快照对虚拟机进行快速恢复的技术方案,该方案使得:虚拟化集群系统可以自行决定在何种时机对虚拟机进行快照,而不必采用人工的方式;并且,进行快照的时机选择 在虚拟机将要但还没有发生故障时,从而,当虚拟机确实发生故障时,计算节点可以根据快 照文件将虚拟机快速恢复到故障前的状态,相对于传统的重启虚拟机的技术,因减少了初 始化操作系统等操作,可以明显的缩短虚拟机恢复时间,因不必重新执行业务而保证了业 务的连续性。
[0126]实施例六、
[0127]本发明实施例提供一种虚拟机迁移方法,应用于虚拟化集群系统。
[0128]现有技术中,当某台计算节点的负载过高的时候,虚拟化集群系统的分布式调度 资源实体(Distributed Resource Schedule,DRS)会通过热迁移将虚拟机迁移到其他负载 较低的计算节点上运行,从而降低负载高的计算节点的负载,使得整个系统更加稳定。当虚 拟化集群系统整体负载较低时,DRS会将低负载的服务器上的虚拟机全部迁移走,并且关闭 这些计算节点,节约集群的能耗。但是,这些迁移都是通过虚拟机热迁移技术进行调整的。 虽然虚拟机热迁移技术可以保证虚拟机迁移中业务中断时间非常小,但是热迁移过程中, 需要消耗额外的计算资源和网络资源,有可能导致计算节点的负载进一步升高,使得虚拟 机服务的效果变差。本发明实施例提供的虚拟机迁移方法即是针对上述问题提出的,目的 在于减少迁移过程中的计算资源和网络资源的消耗,避免加重计算节点的负载。
[0129]所述虚拟化集群系统包括至少两个计算节点,所述至少两个计算节点包括第一计 算节点和第二计算节点;其中,每个所述计算节点包括硬件层、运行在所述硬件层之上的宿 主机(Host)、以及运行在所述Host之上的至少一个虚拟机。较佳的/可选的,所述虚拟化 集群系统中的所述至少两个计算节点可以采用共享存储器,该共享存储器用于存储快照文 件。
[0130]请参考图7,本发明实施例提供的虚拟机迁移方法,包括:
[0131]701、第一计算节点对所述第一计算节点上宿主的待迁移的第一虚拟机进行快照, 并保存对应的快照文件;
[0132]702、在快照完成后,将所述第一虚拟机挂起;
[0133]703、将用于启动所述第一虚拟机所需要的第一启动信息向第二计算节点发送,以 便所述第二计算节点根据所述第一启动信息和所述快照文件在所述第二计算节点上,对所 述第一虚拟机进行恢复,使得被迁移后的所述第一虚拟机宿主在所述第二计算节点上。
[0134]其中,所述的第一启动信息包括:虚拟核数,内存总量,IO设备信息,虚拟磁盘信 息等第一虚拟机的主要配置信息。
[0135]可选的,所述虚拟化集群系统还包括DRS,在步骤701之前还可以包括:所述第一 计算节点接收所述DRS发送的、用于将所述第一虚拟机从第一计算节点迁移到第二计算节 点的迁移命令;则步骤701可以包括:响应于所述迁移命令,所述第一计算节点对所述第一 计算节点上宿主的待迁移的第一虚拟机进行快照,并保存对应的快照文件。
[0136]可选的,所述至少两个计算节点还包括第三计算节点,所述方法还包括:第一计算 节点接收第三计算节点发送的第二启动信息,所述第二启动信息是用于启动所述第三节点 上宿主的待迁移的第二虚拟机所需要的信息;根据第二启动信息和相应的快照文件,对所 述第二虚拟机进行恢复,使得被迁移后的所述第二虚拟机宿主在所述第一计算节点上。
[0137]其中,所述的第二启动信息包括:虚拟核数,内存总量,IO设备信息,虚拟磁盘信息等第二虚拟机的主要配置信息。
[0138]以上,本发明实施例提供了一种虚拟机迁移方法,该方法采用快照技术进行虚拟 机迁移,可以缩短虚拟机迁移恢复的时间,可以减少迁移过程中的计算资源和网络资源的 消耗,避免加重计算节点的负载,进而避免整个虚拟化集群系统的工作环境变差。
[0139]实施例七、
[0140]请参考图8,本发明实施例提供一种计算节点。
[0141]该计算节点应用于虚拟化集群系统;包括硬件层、运行在所述硬件层之上的宿主 机(Host)、以及运行在所述Host之上的至少一个虚拟机;
[0142]所述Host上进一步部署有虚拟机动态快照模块810、虚拟机信息处理模块820 ;
[0143]所述虚拟机动态快照模块810,用于对所述计算节点上宿主的待迁移的第一虚拟 机进行快照,并保存对应的快照文件;
[0144]所述虚拟机信息处理模块820,用于在快照完成后,将所述第一虚拟机挂起;并将 用于启动所述第一虚拟机所需要的启动信息向第二计算节点发送,以便所述第二计算节点 根据所述启动信息和所述快照文件在所述第二计算节点上对所述第一虚拟机进行恢复,使 得被迁移后的所述第一虚拟机宿主在所述第二计算节点上。
[0145]可选的,所述Host上还部署有虚拟机重启恢复模块830 ;所述虚拟机信息处理模 块820,还用于接收第三计算节点发送的第二启动信息,所述第二启动信息是用于启动所述 第三节点上宿主的待迁移的第二虚拟机所需要的信息;所述虚拟机重启恢复模块830,用 于根据所述第二启动信息和相应的快照文件对所述第二虚拟机进行恢复,使得被迁移后的 所述第二虚拟机宿主在所述第一计算节点上。
[0146]以上,本发明实施例提供了一种计算节点,关于该计算节点更详细的描述请参考 实施例六中记载的内容,所述计算节点采用快照技术进行虚拟机迁移,可以缩短虚拟机迁 移恢复的时间,可以减少迁移过程中的计算资源和网络资源的消耗,避免加重计算节点的 负载,进而避免整个虚拟化集群系统的工作环境变差。
[0147]实施例八、
[0148]本发明实施例提供一种虚拟化集群系统。所述虚拟化集群系统包括至少两个计算 节点,其中一个计算节点是如权利要求22或23所述的计算节点。较佳的/可选的,所述虚 拟化集群系统中的所述至少两个计算节点可以采用共享存储器,该共享存储器用于存储快 照文件。
[0149]可选的,所述虚拟化集群系统还包括:分布式调度资源实体(DRS);所述DRS,用于 发送将第一虚拟机从第一计算节点迁移到第二计算节点的迁移命令给所述第一计算节点。
[0150]以上,本发明实施例公开了一种虚拟化集群系统,关于该系统的更详细的描述请 参考实施例六中记载的内容。
[0151]本发明实施例提供的虚拟化集群系统,采用快照技术进行虚拟机迁移,可以缩短 虚拟机迁移恢复的时间,可以减少迁移过程中的计算资源和网络资源的消耗,避免加重服 务器的负载,进而避免整个虚拟化集群系统的工作环境变差。
[0152]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤可以 通过硬件来完成,也可以通过程序指令相关的硬件(例如处理器)来完成,该程序可以存储 于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机读取存储器、磁盘或光舟坐
Im -rf- o
[0153]以上对本发明实施例所提供的虚拟机恢复方法和装置与系统以及虚拟机迁移方 法和装置与系统进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及 其核心思想,不应理解为对本发明的限制。本【技术领域】的技术人员在本发明揭露的技术范 围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
【权利要求】
1.一种虚拟机恢复方法,其特征在于,应用于虚拟化集群系统;所述虚拟化集群系统包括管理节点和至少一个计算节点,所述计算节点包括硬件层、 运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟机; 所述方法包括:所述管理节点预测每个计算节点以及每个计算节点上运行的每个虚拟机是否将要发生故障;若预测到所述至少一个计算节点包括的第一计算节点上的至少一个虚拟机将要发生故障,则发送第一快照指示给所述第一计算节点,以便所述第一计算节点对将要发生故障的至少一个虚拟机进行快照;若预测到所述至少一个计算节点包括的第二计算节点将要发生故障,则发送第二快照指示给所述第二计算节点,以便所述第二计算节点对第二计算节点上运行的所有虚拟机进行快照。
2.根据权利要求1所述的方法,其特征在于,在所述管理节点预测每个计算节点以及每个计算节点上运行的每个虚拟机是否将要发生故障的步骤之前还包括:获取每个计算节点的历史故障信息以及每个计算节点上运行的每个虚拟机的历史故障信息;获取每个虚拟机的状态和每个虚拟机的输入输出IO性能数据以及每个计算节点的环境温度。
3.根据权利要求2所述的方法,其特征在于,所述管理节点预测每个计算节点以及每个计算节点上运行的每个虚拟机是否将要发生故障包括:为每个虚拟机确定一个.表示疑似故障的第一多元组,所述第一多元组中的元素包括: 虚拟机的状态和虚拟机的IO性能数据以及根据虚拟机的历史故障信息计算得到的故障率;为每个虚拟机确定一个表示故障的第二多元组,所述第二多元组中包括与所述第一多元组中的每个元素分别对应的阈值;选取一个虚拟机,判断所选取虚拟机的第一多元组中的元素是否落入的所选取虚拟机的第二多元组中对应的阈值范围内,若是,则预测所选取虚拟机将要发生故障。
4.根据权利要求2所述的方法,其特征在于,所述管理节点预测每个计算节点以及每个计算节点上运行的每个虚拟机是否将要发生故障包括:为每个计算节点确定一个表示疑似故障的第三多元组,所述第三多元组中的元素包括:计算节点的环境温度以及根据所述计算节点的历史故障信息计算得到的故障率;为每个计算节点确定一个表示故障的第四多元组,所述第四多元组中包括与所述第三多元组中的每个元素分别对应的阈值;选取一个计算节点,判断所选取计算节点的第三多元组中的元素是否落入所选取计算节点的第四多元组中对应的阈值范围内,若是,则预测所选取计算节点将要发生故障。
5.一种虚拟机恢复方法,其特征在于,应用于虚拟化集群系统;所述虚拟化集群系统包括管理节点和至少一个计算节点;所述计算节点包括硬件层、 运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟机VM ; 所述方法包括:所述计算节点接收所述管理节点发送的第一或第二快照指示,所述第一快照指示用于指示所述计算节点上运行的至少一个虚拟机将要发生故障,所述第二快照指示用于指示所述计算节点将要发生故障;根据所述第一快照指示对将要发生故障的虚拟机进行快照,或者,根据所述第二快照指示对所述计算节点上运行的所有虚拟机进行快照,并保存对应的快照文件;检测所述计算节点上是否有虚拟机已发生故障,以及检测是否有其它计算节点已发生故障;检测到所述计算节点上有虚拟机确实发生故障时,获取所述已发生故障的虚拟机对应的快照文件,对发生故障的所述虚拟机进行恢复;检测到有其它计算节点确实发生故障时,获取发生故障的其他计算节点对应的快照文件,对发生故障的其他计算节点上的所有虚拟机进行恢复。
6.根据权利要求5所述的方法,其特征在于,还包括:获取发生故障的虚拟机的故障信息,或者获取发生故障的其他计算节点的故障信息, 上报给所述管理节点。
7.—种管理节点,其特征在于,应用于虚拟化集群系统,所述虚拟化集群系统包括所述管理节点和至少一个计算节点;所述管理节点上部署有虚拟机故障预测模块;所述虚拟机故障预测模块包括:故障预测单元,用于预测虚拟化集群系统中的每个计算节点以及每个计算节点上运行的每个虚拟机是否将要发生故障;指示发送单元,用于若故障预测单元预测到所述至少一个计算节点包括的第一计算节点上的至少一个虚拟机将要发生故障,则发送第一快照指示给所述第一计算节点,以便所述第一计算节点对将要发生故障的至少一个虚拟机进行快照;若故障预测单元预测到所述至少一个计算节点包括的第二计算节点将要发生故障,则发送第二快照指示给所述第二计算节点,以便所述第二计算节点对第二计算节点上运行的所有虚拟机进行快照。
8.根据权利要求7 所述的管理节点,其特征在于:所述虚拟机故障预测模块,还包括:获取单元,用于获取每个计算节点的历史故障信息以及每个计算节点上运行的每个虚拟机的历史故障信息;以及获取每个虚拟机的状态和每个虚拟机的输入输出IO性能数据以及每个计算节点的环境温度。
9.根据权利要求8所述的管理节点,其特征在于:所述故障预测单元包括:第一构造单元,用于为每个虚拟机确定一个表示疑似故障的第一多元组,所述第一多元组中的元素包括:虚拟机的状态和虚拟机的IO性能数据以及根据虚拟机的历史故障信息计算得到的故障率;第二构造单元,用于为每个虚拟机确定一个表示故障的第二多元组,所述第二多元组中包括与所述第一多元组中的每个元素分别对应的阈值;第一预测单元,用于选取一个虚拟机,判断所选取虚拟机的第一多元组中的元素是否落入的所选取虚拟机的第二多元组中对应的阈值范围内,若是,则预测所选取虚拟机将要发生故障。
10.根据权利要求8所述的管理节点,其特征在于:所述故障预测单元包括:第三构造单元,用于为每个计算节点确定一个表示疑似故障的第三多元组,所述第三多元组中的元素包括:计算节点的环境温度以及根据所述计算节点的历史故障信息计算得到的故障率;第四构造单元,用于为每个计算节点确定一个表示故障的第四多元组,所述第四多元组中包括与所述第三多元组中的每个元素分别对应的阈值;第二预测单元,用于选取一个计算节点,判断所选取计算节点的第三多元组中的元素是否落入所选取计算节点的第四多元组中对应的阈值范围内,若是,则预测所选取计算节点将要发生故障。
11.一种计算节点,其特征在于,应用于虚拟化集群系统;所述计算节点包括:硬件层、 运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟机VM;所述Host上进一步部署有虚拟机动态快照模块、虚拟机故障检测模块和虚拟机故障恢复模块;所述虚拟机动态快照模块,用于接收所述管理节点发送的第一或第二快照指示,所述第一快照指示用于指示所述计算节点上运行的至少一个虚拟机将要发生故障,所述第二快照指示用于指示所述计算节点将要发生故障;根据所述第一快照指示对将要发生故障的虚拟机进行快照,或者,根据所述第二快照指示对所述计算节点上运行的所有虚拟机进行快照,并保存对应的快照文件;所述虚拟机故障检测模块,用于检测所述计算节点上是否有虚拟机已发生了故障,以及检测是否有其它计算节点已发生了故障;虚拟机故障恢复模块,用于在所述虚拟机故障检测模块检测到所述计算节点上有虚拟机确实发生故障时,获取所述已发生故障的虚拟机对应的快照文件,对发生故障的所述虚拟机进行恢复;有其它计算节点确实发生故障时,获取发生故障的其他计算节点的快照文件,对发生故障的其他计算节点上的所有虚拟机进行恢复。
12.根据权利要求11所述的计算节点,其特征在于:所述虚拟机故障检测模块,还用于获取发生故障的虚拟机的故障信息,或者获取发生故障的其它计算节点的故障信息,上报给所述管理节点。
13.—种虚拟化集群系统,其特征在于,所述虚拟化集群系统包括管理节点和至少一个计算节点;所述管理节点是如权利要求7至10中任一所述的管理节点,所述计算节点是如权利要求11或12所述的计算节点。
14.一种虚拟机迁移方法,其特征在于,应用于虚拟化集群系统;所述虚拟化集群系统包括至少两个计算节点,所述至少两个计算节点包括第一计算节点和第二计算节点;其中,每个计算节点包括硬件层、运行在所述硬件层之上的宿主机 Host、以及运行在所述Host之上的至少一个虚拟机VM ;所述方法包括:第一计算节点对所述第一计算节点上宿主的待迁移的第一虚拟机进行快照,并保存对应的快照文件;在快照完成后,将所述第一虚拟机挂起;将用于启动所述第一虚拟机所需要的第一启动信息向第二计算节点发送,以便所述第二计算节点根据所述第一启动信息和所述快照文件在所述第二计算节点上,对所述第一虚拟机进行恢复,使得被迁移后的所述第一虚拟机宿主在所述第二计算节点上。
15.根据权利要求14所述的方法,其特征在于,所述至少两个计算节点还包括第三计算节点,所述方法还包括:第一计算节点接收第三计算节点发送的第二启动信息,所述第二启动信息是用于启动所述第三节点上宿主的待迁移的第二虚拟机所需要的信息;第一计算节点根据所述第二启动信息和相应的快照文件,对所述第二虚拟机进行恢复,使得被迁移后的所述第二虚拟机宿主在所述第一计算节点上。
16.根据权利要求14所述的方法,其特征在于,所述虚拟化集群系统还包括分布式调度资源实体DRS,在所述第一计算节点对所述第一计算节点上的待迁移的第一虚拟机进行快照的步骤之前,还包括:所述第一计算节点接收所述DRS发送的、用于将所述第一虚拟机从第一计算节点迁移到第二计算节点的迁移命令;所述第一计算节点对所述第一计算节点上的待迁移的第一虚拟机进行快照,并保存快照文件包括: 响应于所述迁移命令,所述第一计算节点对所述第一计算节点上宿主的待迁移的第一虚拟机进行快照,并保存对应的快照文件。
17.一种计算节点,其特征在于,应用于虚拟化集群系统;所述计算节点包括硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所述 Host之上的至少一个虚拟机VM ;所述Host上进一步部署有虚拟机动态快照模块、虚拟机信息处理模块;所述虚拟机动态快照模块,用于对所述计算节点上宿主的待迁移的第一虚拟机进行快照,并保存对应的快照文件;所述虚拟机信息处理模块,用于在快照完成后,将所述第一虚拟机挂起;并将用于启动所述第一虚拟机所需要的启动信息向第二计算节点发送,以便所述第二计算节点根据所述启动信息和所述快照文件在所述第二计算节点上对所述第一虚拟机进行恢复,使得被迁移后的所述第一虚拟机宿主在所述第二计算节点上。
18.根据权利要求17所述的计算节点,其特征在于,所述Host上还部署有虚拟机重启恢复模块;所述虚拟机信息处理模块,还用于接收第三计算节点发送的第二启动信息,所述第二启动信息是用于启动所述第三节点上宿主的待迁移的第二虚拟机所需要的信息;所述虚拟机重启恢复模块,用于根据所述第二启动信息和相应的快照文件,对所述第二虚拟机进行恢复,使得被迁移后的所述第二虚拟机宿主在所述第一计算节点上。
19.一种虚拟化集群系统,其特征在于,所述虚拟化集群系统包括至少两个计算节点;其中一个计算节点是如权利要求17或 18所述的计算节点。
【文档编号】G06F9/48GK103440160SQ201310356653
【公开日】2013年12月11日 申请日期:2013年8月15日 优先权日:2013年8月15日
【发明者】刘力力, 于璠 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1