虚拟机迁移系统、方法及装置与流程

文档序号:13363399阅读:223来源:国知局

本申请实施例涉及云平台技术领域,更具体的涉及虚拟机迁移系统、方法及装置。



背景技术:

随着云计算技术的不断发展,云平台本身的复杂度在逐步加剧,云平台包括云控制器、集群控制器、计算节点控制器以及计算节点。云控制器用于管理集群信息;集群控制器用于管理网络资源信息、计算节点信息、虚拟集群信息;计算节点提供了具备硬盘、内存、cpu等物理资源的物理服务器,计算节点可以包括一个或多个虚拟机;计算节点控制器用于管理计算节点中的虚拟机。

随着云计算技术的不断发展,企业的关键业务和关键应用逐步迁移至云平台中计算节点的虚拟机。当计算节点发生故障时,虚拟机无法运行,导致企业的关键业务和关键应用无法运行。



技术实现要素:

有鉴于此,本发明提供了一种虚拟机迁移系统、方法及装置,以克服现有技术中当计算节点发生故障时,虚拟机无法运行,导致企业的关键业务和关键应用无法运行的问题。

为实现上述目的,本发明提供如下技术方案:

一种虚拟机迁移系统,包括:采集器集群、云控制器、存储集群以及多个计算节点,其中:

所述采集器集群,用于接收各计算节点上报的监控数据,依据各计算节点的监控数据分别对各计算节点进行故障检测,确定发生故障的故障计算节点,将所述故障计算节点的信息上报至所述云控制器;

所述存储集群,用于存储虚拟机配置文件;

所述云控制器,用于接收所述故障计算节点的信息,从所述多个计算节点中未发生故障的计算节点中,确定目的计算节点,向所述目的计算节点发送获取虚拟机配置文件指令,以及将记录的所述目的计算节点对应的虚拟机信息中,添加故障计算节点对应的虚拟机信息;

所述目的计算节点,用于接收所述云控制器发送的获取虚拟机配置文件指令,从所述存储集群中获取所述虚拟机配置文件,并进行配置。

一种虚拟机迁移方法,应用于采集器集群,所述虚拟机迁移方法包括:

接收各计算节点分别上报的监控数据;

依据各计算节点的监控数据分别对各计算节点进行故障检测,确定发生故障的故障计算节点;

将所述故障计算节点的信息上报至所述云控制器;所述故障计算节点的信息是触发所述云控制器确定目的计算节点,向所述目的计算节点发送获取虚拟机配置文件指令的条件,所述获取虚拟机配置文件指令是所述目的计算节点从存储集群中获取虚拟机配置文件的依据。

一种虚拟机迁移方法,应用于云控制器,所述虚拟机迁移方法包括:

接收采集器集群上报的故障计算节点的信息,所述故障计算节点的信息是所述采集器集群依据所述故障计算节点上报的监控数据确定的;

从未发生故障的计算节点中确定目的计算节点;

向所述目的计算节点发送获取虚拟机配置文件指令,所述获取虚拟机配置文件指令是所述目的计算节点从存储集群中获取虚拟机配置文件的依据;

将记录的所述目的计算节点对应的虚拟机信息中,添加故障计算节点对应的虚拟机信息。

一种虚拟机迁移方法,应用于计算节点,所述虚拟机迁移方法包括:

采集监控数据;

将所述监控数据上报至采集器集群,以便所述采集器集群依据所述监控数据对所述计算节点进行故障检测,在当所述计算节点发生故障时,上报至云控制器;

当所述计算节点未发生故障时,若接收到所述云控制器发送的获取虚拟机配置文件指令时,从存储集群获取虚拟机配置文件,并进行配置。

一种虚拟机迁移装置,应用于采集器集群,所述虚拟机迁移装置包括:

接收模块,用于接收各计算节点上报的监控数据;

确定模块,用于依据各计算节点的监控数据分别对各计算节点进行故障检测,确定发生故障的故障计算节点;

发送模块,用于将所述故障计算节点的信息上报至所述云控制器;所述故障计算节点的信息是触发所述云控制器确定目的计算节点,向所述目的计算节点发送获取虚拟机配置文件指令的条件,所述获取虚拟机配置文件指令是所述目的计算节点从存储集群中获取虚拟机配置文件的依据。

一种虚拟机迁移装置,应用于云控制器,所述虚拟机迁移装置包括:

接收模块,用于接收采集器集群上报的故障计算节点的信息,所述故障计算节点的信息是所述采集器集群依据所述故障计算节点的监控数据确定的;

确定模块,用于从未发生故障的计算节点中,确定目的计算节点;

发送模块,用于向所述目的计算节点发送获取虚拟机配置文件指令,所述获取虚拟机配置文件指令是所述目的计算节点从存储集群中获取虚拟机配置文件的依据。

一种虚拟机迁移装置,应用于计算节点,所述虚拟机迁移装置包括:

采集模块,用于采集监控数据;

发送模块,用于将所述监控数据上报至采集器集群,以便所述采集器集群依据所述监控数据对所述计算节点进行故障检测,在当所述计算节点发生故障时,上报至云控制器;

配置模块,用于当所述计算节点未发生故障时,若接收到所述云控制器发送的获取虚拟机配置文件指令时,从存储集群获取虚拟机配置文件,并进行配置。

经由上述的技术方案可知,与现有技术相比,本申请实施例提供的一种虚拟机迁移系统,由各计算节点分别上报其自身的监控数据;采集器集群依据各计算节点的监控数据,分别对各计算节点进行故障检测,确定出发生故障的故障计算节点,将故障计算节点上报至云控制器;云控制器确定目的计算节点,将故障计算节点中的虚拟机分别迁移至所述目的计算节点。从而使得故障计算节点的虚拟机在目的计算节点中正常运行,从而可以使得企业的关键业务和关键应用继续运行。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的虚拟机迁移系统的框架示意图;

图2为本申请实施例提供的虚拟机迁移方法的信令流程图;

图3为本申请实施例提供各计算节点与采集器集群中各采集器的连接关系示意图;

图4为本申请实施例提供虚拟机迁移系统的详细框架图;

图5为本申请实施例提供应用于采集器集群的虚拟机迁移装置,应用于云控制器的虚拟机迁移装置以及,应用于计算节点的虚拟机迁移装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例提供的虚拟机迁移系统包括采集器集群11、云控制器12、存储集群13、多个计算节点14。具体框架如图1所示。

其中,多个计算节点14可以为多个物理服务器14。每一物理服务器可以包括一个或多个虚拟机。通过虚拟机软件,可以在一台物理服务器上模拟出一台或多台虚拟的服务器即虚拟机,这些虚拟机完全就像真正的物理服务器那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。

采集器集群11可以包括多个服务器组成的集群。采集器集群11可以对各计算节点进行监控。

云控制器12可以为多个服务器12组成的集群。

存储集群13可以为多个服务器13组成的集群,可以存储虚拟机配置文件。

采集器集群11、云控制器12、存储集群13以及多个计算节点之间可以通过无线或有线方式连接。

集群是指将一组服务器关联起来,使它们在外界从很多方面看起来如同一台服务器。集群内的物理服务器之间通常通过局域网连接。

基于上述架构,对虚拟机迁移方法进行说明,如图2所示,虚拟机迁移方法包括:

步骤s201:各计算节点采集各自的监控数据,并各自上报至采集器集群。

监控数据可以用于反映计算节点所在的网络环境是否良好;计算节点中的虚拟机是否能够正常运行;计算节点是否会因为负载量过多导致性能很差。

每一计算节点都包含物理监控代理,该物理监控代理可以采集计算节点的监控数据。

上述各计算节点同属于一个虚拟集群,一个虚拟集群可以包括一个或多个物理集群;当然上述各计算节点也可以同属于一个物理集群,即本申请实施例提供的虚拟机迁移方法中,虚拟机可以在自身所在的物理集群中的各个计算节点之间迁移,也可以在其他同属一个虚拟集群的不同物理集群中的各计算节点之间迁移。

步骤s202:采集器集群依据各计算节点上报的监控数据分别对各计算节点进行故障检测,确定发生故障的故障计算节点。

当计算节点所在网络环境出现故障,该计算节点中的虚拟机不能正常运行,可以将该计算节点确定为故障计算节点;当监控数据体现出计算节点中虚拟机不能正常运行时,可以将该计算节点确定为故障计算节点;当计算节点因为负载量过多时,可以将该计算节点确定为故障计算节点。

步骤s203:采集器集群将所述故障计算节点的信息上报至所述云控制器。

故障计算节点的信息可以包括故障计算节点的标识以及故障计算节点中包含的虚拟机的标识。

故障计算节点信息还可以包括自身所属物理集群的标识。

当本申请实施例提供虚拟机迁移方法中的各计算节点属于同一物理集群,则故障计算信息可以不包括自身所属物理集群的标识。当各计算节点属于同一虚拟集群时,由于虚拟集群可能包括多个物理集群,所以故障计算节点信息需要包括自身所属物理集群的标识,以便后续,在将故障计算节点中的虚拟机迁移完毕后或向目的计算节点发送获取配置文件指令后,云控制器将虚拟机、计算节点和集群之间的对应关系进行更新。

步骤s204:云控制器接收所述故障计算节点的信息,从所述多个计算节点中未发生故障的计算节点中,确定目的计算节点。

云控制器可以通过故障计算节点的标识,确定出多个计算节点中哪些计算节点未发生故障,从这些未发生故障的计算节点中确定目的计算节点。

步骤s205:云控制器向所述目的计算节点发送获取虚拟机配置文件指令。

步骤s206:目的计算节点接收所述云控制器发送的获取虚拟机配置文件指令,从所述存储集群中获取所述虚拟机配置文件,并进行配置。

虚拟机配置文件用于配置虚拟机的硬件信息,例如,虚拟机配置文件为cpu两核,内存4g,磁盘80g,则目的计算节点依据该虚拟机配置文件进行配置时,会配置相应的cpu、内存、磁盘等等。

上述获取虚拟机配置文件指令,可以包括目的计算节点访问存储集群的路径信息。

同一虚拟集群中各个计算节点中的虚拟机配置文件可以是统一的。

步骤s207:云控制器将记录的所述目的计算节点对应的虚拟机信息中,添加故障计算节点对应的虚拟机信息。

云控制器可以记录有集群标识、计算节点标识与虚拟机标识的对应关系,当将故障计算节点中的虚拟机迁移至目的计算节点时,需要更新上述对应关系。

计算节点中可以包括发生故障的故障计算节点、正常运行的计算节点、以及目的计算节点。其中目的计算节点是从正常运行的计算节点中确定的。为了清晰的画出图2中的信令图,将计算节点分为故障计算节点、目的计算节点和正常运行计算节点。

本申请实施例提供的一种虚拟机迁移方法中,由各计算节点分别上报其自身的监控数据;采集器集群依据各计算节点的监控数据,分别对各计算节点进行故障检测,确定出发生故障的故障计算节点,将故障计算节点上报至云控制器;云控制器确定目的计算节点,将故障计算节点中的虚拟机分别迁移至所述目的计算节点。从而使得故障计算节点的虚拟机在目的计算节点中正常运行,从而可以使得企业的关键业务和关键应用继续运行。

图1所示的,具有图2所述计算节点的功能的计算节点,在采集监控数据时,具体用于:

采集所述计算节点所在的网络环境的心跳监控数据;采集所述计算节点中虚拟机控制进程监控数据;采集所述计算节点中负载量数据。

其中,采集所述计算节点所在的网络环境的心跳监控数据包括:通过管理网卡的管理网口采集管理网络的心跳监控数据;通过数据网卡的数据网口采集数据网络的心跳监控数据;通过存储网卡的存储网口采集存储网络的心跳监控数据。

上述管理网络的心跳监控数据可以为连续的管理网络的因特网包探索器ping;数据网络的心跳监控数据可以为连续的数据网络的的因特网包探索器ping;存储网络的心跳监控数据可以为连续的存储网络的因特网包探索器ping。

ping是windows、unix和linux系统下的一个命令。ping也属于一个通信协议,是tcp/ip协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地分析和判定网络故障。

本申请实施例提供的虚拟机迁移系统或方法可以应用于云平台,云平台的组网包括三个网络层面:管理网络31、数据网络32和存储网络33,各计算节点可以通过监控管理网络、数据网络和存储网络来确定其网络环境是否良好。

如图3所述为各计算节点与采集器集群的连接关系示意图。

从图3中可以看出每一计算节点14中包括三个网口,即管理网口141、数据网口142和存储网口143,这三个网口是可以为计算节点中网卡的网口。计算节点可以通过管理网卡的管理网口获得管理网络的心跳监控数据;可以通过数据网卡的数据网口获得数据网络的心跳监控数据;可以通过存储网卡的存储网口获得存储网络的心跳监控数据。

采集器集群11包括多个采集器111每一采集器111包括管理网口1111、数据网口1112和存储网口1113,这三个网口也可以是网卡的网口。

采集器集群11中的采集器111的个数可以与计算节点的个数相同,也可以不同,采集器111的个数可以小于计算节点的个数,即一个采集器111可以收集多个计算节点的监控数据。

计算节点和采集器均是通过自身的管理网口与管理网络相连,通过自身的数据网口与数据网络相连,通过自身的存储网口与存储网络相连。

计算节点中的管理网口,用于接收计算控制节点或集群控制器通过管理网络向该计算节点发送的命令,例如登录命令。

计算节点中的数据网口也可以称为业务网口,用于计算节点中虚拟机通过数据网络与外界通信,以及计算节点与外界通信。

计算节点中的存储网口,用于虚拟机通过存储网络与存储集群进行通信,以及可以将虚拟机的配置文件和磁盘数据存储至存储集群。

计算节点可以通过数据网口将采集的监控数据通过数据网络发送至采集器的数据网口。

虚拟机控制进程监控数据可以包括虚拟化管理进程,例如openstack中的libvrit,和,计算守护进程,例如openstack中的nova。

虚拟化管理进程封装有虚拟化技术,如果虚拟化管理进程出现问题,则计算节点控制器无法向该虚拟机发送控制指令,即不能改变虚拟机当前的运行状态,例如需要暂停虚拟机的运行,由于该进程出现问题,则该虚拟机无法暂停。

计算守护进程,用于将计算节点的状态、虚拟机的状态同步至计算节点控制器中,如果该计算守护进程出现问题,则在计算节点控制器中显示该计算节点不可用。该计算守护进程接收计算控制节点发送的控制指令,并将该控制指令转发至虚拟化管理进程。

负载量数据,可以包括cpu占用率,内存利用率和/或磁盘使用率等等。

上述图3中计算节点可以采集多种类型的监控数据,可以理解的是,在不同的应用场景中,图1所示的,具有图2中所述的采集器集群的功能的采集器集群,对计算节点进行故障检测用到的监控数据不同,例如,在应用场景a中,计算节点包括多个虚拟机,且计算节点的cpu占用率一直在90%左右,内存利用率在92%左右,但是该计算节点被操作员视为非故障计算节点。

为了将本申请实施例提供的虚拟机迁移方法可以更便捷的应用于多个不同的应用场景,可以为操作员显示一监控数据选择界面,该监控数据选择界面中,可以显示有计算节点采集的各种类型的数据,操作员可以在该监控数据选择界面中选择需要哪些类型的监控数据对计算节点进行故障检测,仍以上述为例,则该操作员可以不选择负载量数据,可以只选择网络环境的心跳监控数据以及虚拟机控制进程监控数据,可选择的,监控数据选择界面也可以显示管理网络的心跳监控数据、数据网络的心跳监控数据、存储网络的心跳监控数据、虚拟化管理进程、计算守护进程、cpu占用率、内存使用率等等详细的监控数据类型。

采集器集群可以依据各计算节点的监控数据中,与所述数据类型对应的数据,分别对各计算节点进行故障检测。例如,如果操作员不选择负载量数据,则采集器集群在对计算节点进行故障检测时,就不会依据负载量数据对其进行故障检测了。

本申请实施例中,采集器集群对计算节点进行故障检测,用到的监控数据类型也可以不能让操作员进行选择。不论能够让操作员选择监控数据的类型,还是不能让操作员选择监控数据的类型,图1所示的,具有图2所述采集器集群功能的采集器集群,在依据各计算节点的监控数据,分别对各计算节点进行故障检测,确定发生故障的故障计算节点时,对于每一计算节点可以具体用于:

在第一预设时间内未检测到所述管理网络的心跳监控数据,且在第二预设时间内未检测到所述存储网络的心跳监控数据时,将该计算节点确定为故障计算节点;或,在所述第一预设时间内未检测到所述管理网络的心跳监控数据,且在第三预设时间内未检测到数据网络的心跳监控数据时,将该计算节点确定为故障计算节点;或,在所述第一预设时间内未检测到所述管理网络的心跳监控数据,且在第四预设时间内所述虚拟机控制进程处于停止运行状态时,将该计算节点确定为故障计算节点;或,检测到所述计算节点负载量数据大于等于预设阈值时,将该计算节点确定为故障计算节点。

上述检测到所述计算节点负载量数据大于等于预设阈值时,将该计算节点确定为故障计算节点,可以包括:当检测到所述计算节点的cpu利用率大于等于第一预设阈值或内存利用率大于等于第二预设阈值时,将该计算节点确定为故障计算节点。

上述第一预设时间、第二预设时间、第三预设时间和第四预设时间可以相同,也可以不同,具体可以依据实际情况而定。

从对图3中各个网口的说明,可以看出,当管理网络出现问题时,计算节点不能接收到计算控制节点或集群控制器发送的命令。这种情况下可以确定该计算节点为故障计算节点。当该计算节点允许可以一直不需要接收计算控制节点或集群控制器发送的命令时,该计算节点可以被认为是非故障计算节点。

当数据网络出现问题时,计算节点与自身的虚拟机均无法与外界进行交互,此时需要确定该计算节点出现故障。当该计算节点允许不与外界进行交互时,该计算节点可以被认为是非故障节点。

当存储网络出现问题时,虚拟机不能与存储集群进行通信,根据不同的应用场景,该计算节点可能被操作员认为是故障计算节点,也可能被操作员认为是非故障节点。

即当上述任一网络出现问题时,在一些应用场景中,操作员会认为该计算节点为故障计算节点,在另一些应用场景中,操作员会认为该计算节点为非故障计算节点。如果仅一个网络出现问题,就确认该计算节点为故障计算节点,就会将一些操作员认为是非故障计算节点确定为故障计算节点。

申请人经过不断研究发现,当管理网络和存储网络两个网络同时出现问题,或管理网络和数据网络同时出现问题,或管理网络出现问题且虚拟机控制进程出现问题,或负载量数据过大,不论在何种应用场景中,这个计算就是故障计算节点,因此研究出上述对计算节点的故障检测方法。

在其他应用中,也可以是上述任意组合出现问题,则认定计算节点为故障节点,此时采集器集群功能的采集器集群,在依据各计算节点的监控数据,分别对各计算节点进行故障检测,确定发生故障的故障计算节点时,对于每一计算节点可以具体用于:

在第一预设时间内未检测到所述管理网络的心跳监控数据,在第二预设时间内未检测到所述存储网络的心跳监控数据,在第三预设时间内未检测到数据网络的心跳监控数据,在第四预设时间内所述虚拟机控制进程处于停止运行状态和检测到所述计算节点负载量数据大于等于预设阈值中一种或多种情况出现时,将该计算节点确定为故障计算节点。

可以理解的是,计算节点数量较少时,图1中所示的,具有图2所述的采集器集群的功能的采集器集群,可以实时将计算节点上报的监控数据存储至采集器集群中的数据库中,当计算节点数量较大时,如果实时将监控数据存储至数据库中,则会使得与数据库的交互过于频繁,为此,可选的,采集器集群,还可以用于:将接收到的各计算节点的各监控数据进行缓存;当缓存的监控数据达到预设数量时,将所述预设数量的监控数据存储至所述采集器集群中的数据库中。

可选的,图1所示的,具有图2所述云控制器功能的云控制器,在所述接收所述采集器集群上报的故障计算节点的信息后,还用于:

向所述故障计算节点发送确认是否发生故障信息;接收到所述故障计算节点反馈的确认信息时,触发执行从所述多个计算节点中确定目的计算节点,向所述目的计算节点发送获取虚拟机配置文件指令。即云控制器与故障计算节点进行故障同步确认机制。

可选的,本申请实施例提供的云控制器可以具有forcedown机制,当故障计算节点的数量小于预设故障数量时,为了避免采集器集群将非故障计算节点误确认为故障计算节点,云控制器可以向故障计算节点进行故障同步确认机制。当故障计算节点数量大于等于预设故障数量时,如果云控制器仍然与各故障计算节点进行故障同步确认机制,可能会导致整个迁移过程缓慢,因此,本申请实施例可以提供故障同步确认机制选择界面,当操作员选择故障同步确认机制,则执行上述故障同步确认机制,如果操作员不选择,则不执行上述故障同步确认机制。即当云控制器接收到故障计算节点时,直接确定目的计算节点,并迁移,并不进行故障同步确认机制,从而提高了迁移速度。

图1所示的,具有图2所述云控制器功能的云控制器,在从所述多个计算节点中未发生故障的计算节点中,确定目的计算节点时,在一种实现方式中,具体用于:

实时监控各计算节点的调度参数,所述调度参数包括:资源剩余量或能耗量或加入云平台的时间顺序;将调度参数满足调度策略的计算节点,确定为目的计算节点。

调度参数不同,调度策略不同,当调度参数为资源剩余量时,调度策略可以为将资源剩余量最大的计算节点作为目的计算节点,或将资源剩余量最小的计算节点作为目的计算节点;当调度参数为能耗时,调度策略可以为将能耗最小的计算节点作为目的计算节点;当调度参数为加入云平台的时间顺序时,调度策略可以为将加入云平台时间最长的计算节点作为目的计算节点(即优先使用旧计算节点),或将加入云平台时间最短的计算节点作为目的计算节点(即优先使用新计算节点)。

上述资源剩余量可以是通过cpu、内存和磁盘综合比例计算获得的,也可以是指“1-cpu的占用率”或“1-内存的使用率”或“1-磁盘占用率”。

调度参数有多种,在不同的应用场景中可以依据不同的调度参数确定目的计算节点。当图1中所述的各计算节点属于同一虚拟集群,但属于不同的物理集群时,在不同的物理集群中选择目的计算节点时,调度参数可以不同。基于此,本申请提供的虚拟机迁移方法或系统中,云控制器在实时监控各计算节点的调度参数时,具体用于:确定目的计算节点调度策略选择界面中被选择的目的调度策略;实时监控各计算节点中与所述目的调度策略对应的调度参数。

操作员可以在目的计算节点调度策略选择界面中选择当前应用场景,或不同物理集群所需要的调度策略,将操作员选择的调度策略称为目的调度策略。云控制器可以根据不同的目的调度策略,实时监控各计算节点中与目的调度策略对应的调度参数。

图1所示的,具有图2所述云控制器功能的云控制器,对于所述故障计算节点中,每一虚拟机,云控制器在将调度参数满足调度策略的计算节点,确定为目的计算节点时,具体用于:将当前未发生故障的计算节点中调度参数满足调度策略的计算节点,作为该虚拟机的目的计算节点。

在所有非故障计算节点中选取调度参数满足调度策略的目的计算节点,不论该目的计算节点是否与故障计算节点属于同一物理集群。

优选的,先在故障计算节点所属的物理集群中查找调度参数满足调度策略的目的计算节点,如果没有,则再在其它物理集群中查找目的计算节点。对于所述故障计算节点中,每一虚拟机,云控制器在将调度参数满足调度策略的计算节点,确定为目的计算节点时,具体用于:

当所述故障计算节点所属集群中存在调度参数满足调度策略的计算节点时,将调度参数满足调度策略的计算节点作为所述虚拟机的目的计算节点。

当所述故障计算节点所属集群中计算节点的调度参数不满足所述调度策略时,将其它集群中调度参数满足所述调度策略的计算节点,作为所述虚拟机的目的计算节点。

综上,云控制器从未发生故障的计算节点中确定目的计算节点的方法可以应用于单集群中,即图1中所提及的各个计算节点属于同一物理集群。也可以应用于跨集群,即图1中所提及的各个计算节点属于同一虚拟集群,虚拟机群可以包括多个物理集群,这里的跨集群是指跨物理集群。

本申请实施例还提供了一种虚拟机迁移系统,如图1所示,包括采集器集群11、云控制器12、存储集群13、多个计算节点14,其中:

采集器集群11具有如图2所示的采集器集群的功能;云控制器12具有如图2所述的云控制器的功能;存储集群13存储有虚拟机配置文件;多个计算节点14中每一计算节点具有图2所述的计算节点的功能。

虚拟机迁移系统的详细框架如图4所示,采集器集群11中可以包括:数据库112(例如mysql数据库)、存储器113、用于缓存监控数据的缓存系统114(例如redis)、分析服务器115、多个采集器111。

采集器111可以为服务器。

当缓存系统114将监控数据缓存至预设数量时,将预设数量的监控数据存储至数据库112。缓存系统114可以为数据库。

存储器113中包含队列。可以理解的是,各计算节点上报至采集器集群的监控数据的数量可能会很大,因此在采集器集群中设置队列,将各个监控数据可以依据各计算节点的上报时间在队列中排序。

分析服务器115,用于从数据库112中获取各计算节点的监控数据,并确定出故障计算节点。

计算节点14包括监控代理、计算守护进程、虚拟化管理进程,监控代理包括上报进程、采集进程,监控代理通过采集进程采集监控数据,通过上报进程将监控数据上报至采集器114。

云控制器12包括选举进程和调度进程,云控制器通过选举进程确定目的计算节点,通过调度进程将获取虚拟机配置文件指令发送至目的计算节点。

本申请实施例中的虚拟机迁移系统可以使得云平台具备故障自动切换能力,当计算节点发生故障时,可以将故障计算节点中的虚拟机进行迁移,从而保证了虚拟机的可靠性。

下面对本申请实施例提供的虚拟机迁移装置进行描述,下文描述的虚拟机迁移装置与上文描述的虚拟机迁移方法可相互对应参照。

本申请实施例还提供了应用于采集器集群的虚拟机迁移装置,应用于云控制器的虚拟机迁移装置以及,应用于计算节点的虚拟机迁移装置。如图5所示,为上述三个装置中各个模块的连接关系示意图。

应用于采集器集群的虚拟机迁移装置51包括:接收模块511、确定模块512以及发送模块513;应用于云控制器的虚拟机迁移装置52包括:接收模块521、确定模块522和发送模块523;应用于计算节点的虚拟机迁移装置53包括:采集模块531、发送模块532以及配置模块533,其中:

采集模块531,用于采集监控数据。

发送模块532,用于将所述监控数据上报至接收模块511。

接收模块511,用于接收发送模块532上报的监控数据。

确定模块512,用于依据各计算节点的监控数据分别对各计算节点进行故障检测,确定发生故障的故障计算节点。

发送模块513,用于将所述故障计算节点的信息上报至接收模块521。

接收模块521,用于接收发送模块513上报的故障计算节点的信息。

确定模块522,用于从未发生故障的计算节点中,确定目的计算节点。

发送模块523,用于向所述目的计算节点的配置模块533发送获取虚拟机配置文件指令。

配置模块533,用于当所述计算节点未发生故障时,若接收到所述云控制器发送的获取虚拟机配置文件指令时,从存储集群获取虚拟机配置文件,并进行配置。

本申请实施例提供的应用于计算节点的虚拟机迁移装置、应用于采集器集群的虚拟迁移装置和应用于云控制器的虚拟迁移装置中,由各发送模块532上报采集模块531采集的监控数据;确定模块512依据各计算节点的监控数据,分别对各计算节点进行故障检测,确定出发生故障的故障计算节点,发送模块513将故障计算节点上报至接收模块521;确定模块522确定目的计算节点,发送模块523向所述目的计算节点的配置模块533发送获取虚拟机配置文件指令,配置模块533从存储集群获取虚拟机配置文件,并进行配置。从而实现了将故障计算节点中的虚拟机分别迁移至所述目的计算节点。从而使得故障计算节点的虚拟机在目的计算节点中正常运行,从而可以使得企业的关键业务和关键应用继续运行。

本申请实施例提供了应用于计算节点的虚拟机迁移装置中采集模块的可选结构,具体如下:采集模块可以包括:

第一采集单元,用于采集所述计算节点所在的网络环境的心跳监控数据。

第二采集单元,用于采集所述计算节点中虚拟机控制进程监控数据。

第二采集单元,用于采集所述计算节点中负载量数据。

本申请实施例还提供了应用于第一采集单元的可选结构,具体如下:第一采集单元包括:

第一采集子单元,用于通过管理网卡的管理网口采集管理网络的心跳监控数据。

第二采集子单元,用于通过数据网卡的数据网口采集数据网络的心跳监控数据。

第三采集子单元,用于通过存储网卡的存储网口采集存储网络的心跳监控数据。

本申请实施例还提供了应用于采集器集群的虚拟机迁移装置中确定模块一种可选结构,具体如下:确定模块包括:

接收单元,用于接收显示监控数据选择界面中被选中的数据类型;

检测单元,用于依据各计算节点的监控数据中与所述数据类型对应的数据,分别对各计算节点进行故障检测。

本申请实施例还提供了应用于采集器集群的虚拟机迁移装置中确定模块的另一种可选结构,具体如下:

第一确定单元,用于在第一预设时间内未检测到所述管理网络的心跳监控数据,且在第二预设时间内未检测到所述存储网络的心跳监控数据时,将该计算节点确定为故障计算节点;

或,第二确定单元,用于在所述第一预设时间内未检测到所述管理网络的心跳监控数据,且在第三预设时间内未检测到数据网络的心跳监控数据时,将该计算节点确定为故障计算节点;

或,第三确定单元,用于在所述第一预设时间内未检测到所述管理网络的心跳监控数据,且在第四预设时间内所述虚拟机控制进程处于停止运行状态时,将该计算节点确定为故障计算节点;

或,第四确定单元,用于检测到所述计算节点运行负载量大于等于预设阈值时,将该计算节点确定为故障计算节点。

本申请实施例还提供了应用于采集器集群的虚拟机迁移装置还可以包括以下结构,具体如下:

缓存模块,用于将接收到的各计算节点的各监控数据进行缓存;

发送数据模块,用于当缓存的监控数据达到预设数量时,将所述预设数量的监控数据存储至所述采集器集群中的数据库中。

本申请实施例还提供了应用于云控制器的虚拟机迁移装置还可以包括以下结构,具体如下:

发送确认信息模块,用于向所述故障计算节点发送确认是否发生故障信息;

第一触发模块,用于接收到所述故障计算节点反馈的确认信息时,触发云控制器中的确定模块。

本申请实施例还提供了应用于云控制器的虚拟机迁移装置还可以包括以下结构,具体如下:

第二触发模块,用于接收到故障同步确认机制选择界面中,故障同步确认机制被选择时,触发发送确认信息模块。

本申请实施例还提供了应用于云控制器的虚拟机迁移装置中确定模块的一种可选结构,具体如下:确定模块包括:

监控单元,用于实时监控各计算节点的调度参数,所述调度参数包括:资源剩余量或能耗量或加入云平台的时间顺序;

确定单元,用于将调度参数满足调度策略的计算节点,确定为目的计算节点。

本申请实施例还提供了应用于云控制器的虚拟机迁移装置中确定模块中的监控单元的一种可选结构,具体如下:监控单元包括:

第一确定子单元,用于确定目的计算节点调度策略选择界面中被选择的目的调度策略;

监控子单元,用于实时监控各计算节点中与所述目的调度策略对应的调度参数。

本申请实施例还提供了应用于云控制器的虚拟机迁移装置中确定模块中的确定单元的一种可选结构,具体如下:确定单元包括:

第二确定子单元,用于将当前未故障的计算节点中调度参数满足调度策略的计算节点,作为该虚拟机的目的计算节点。

本申请实施例还提供了应用于云控制器的虚拟机迁移装置中确定模块中的确定单元的一种可选结构,具体如下:确定单元包括:

第三确定子单元,用于当所述故障计算节点所属集群中存在调度参数满足调度策略的计算节点时,将调度参数满足调度策略的计算节点作为所述虚拟机的目的计算节点;

第四确定子单元,用于当所述故障计算节点所属集群中计算节点的调度参数不满足所述调度策略时,将其它集群中调度参数满足所述调度策略的计算节点,作为所述虚拟机的目的计算节点。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1