一种虚拟机的部署方法、业务节点、控制装置及控制节点与流程

文档序号:14120107阅读:223来源:国知局
一种虚拟机的部署方法、业务节点、控制装置及控制节点与流程

本发明涉及通信技术领域,尤其涉及一种虚拟机的部署方法、业务节点、控制装置及控制节点。



背景技术:

目前,虚拟化技术在互联网技术和电信网技术(英文全称:internettechnologyandcommunitytechnology,英文缩写:ict)领域被广泛应用。在某些场景中,只需要虚拟机(英文全称:virtualmachine,英文缩写:vm)运行一种固定的应用,例如当需要实现支付业务的虚拟化时,每个虚拟机只需要完成一次支付请求,之后就会被销毁,需要有独立的运行环境来运行每一次支付请求的应用程序,且为了保证支付安全,该运行环境必须具有很高的安全性以及隔离性,采用现有的虚拟化技术已经可以保障运行环境的安全性和隔离性。

但是现有的虚拟机部署方法需在每个业务节点上创建母虚拟机,针对每个业务节点,在生成新的虚拟机时都需要母虚拟机生成描述信息,然后根据描述信息生成新的虚拟机,基于母虚拟机的磁盘进行磁盘链接的克隆,之后还需修改网络信息,并从母虚拟机的内存中获取所需的数据,相当于业务节点每次创建虚拟机时都需要母虚拟机生成描述信息,并进行磁盘克隆的过程,导致部署虚拟机所需的时间较长。



技术实现要素:

本发明实施例提供一种虚拟机的部署方法、业务节点、控制装置及控制节点,能够减少虚拟机的部署所需的时间。

为达到上述目的,本发明实施例采用如下技术方案:

第一方面,本发明实施例提供一种虚拟机的部署方法,该方法应用于业务节点,该方法包括:业务节点通过控制器获取虚拟机vm描述信息,然后使用虚拟机vm描述信息创建无盘虚拟机,其中,无盘虚拟机为不包含虚拟磁盘的虚拟机,然后业务节点通过控制器获取运行无盘虚拟机所需的内存数据,根据内存数据运行无盘虚拟机。可见,业务节点在需要创建虚拟机时,可以通过控制器获取vm描述信息,并使用获取到的vm描述信息创建无盘虚拟机,无需在每次创建虚拟机之前都由母虚拟机生成vm描述信息,所以节省了获取vm描述信息的时间,且为了省去磁盘克隆的时间,业务节点创建的是不包含虚拟磁盘的无盘虚拟机,在创建无盘虚拟机之后,可通过控制器获取运行无盘虚拟机所需的内存数据,根据获取的内存数据就可以运行无盘虚拟机,无需进行磁盘克隆,即无需为创建的无盘虚拟机配置虚拟磁盘,所以可以节省获取vm描述信息的时间,并省去了磁盘克隆的时间,减少了部署虚拟机所需的时间。

在一种可能的设计中,业务节点还可以通过控制器获取第一应用的信息,第一应用的信息为无盘虚拟机运行第一应用过程中所产生的存储缺页对应的信息,并使用第一应用的信息在无盘虚拟机上运行第一应用,以通过第一应用执行业务。由于无盘虚拟机在运行第一应用过程中产生存储缺页时,可以通过控制器获取存储缺页对应的信息,比容器技术的隔离性更高,保证了无盘虚拟机的安全性,且由于无盘虚拟机可以通过控制器获取第一应用的信息,所以无需进行磁盘克隆,加快了虚拟机的部署速度。

在一种可能的设计中,在业务执行结束的情况下,业务节点需释放无盘虚拟机的动态内存,动态内存用于存储无盘虚拟机的差异数据,差异数据为仅供动态内存所属的无盘虚拟机使用的数据,通过及时释放无盘虚拟机的动态内存,可以保证动态内存中的信息的安全性,例如无盘虚拟机执行的是支付业务时,在完成支付后及时释放动态内存,可以避免支付信息泄露,保证了无盘虚拟机的安全性。

在一种可能的设计中,控制器位于控制节点中,业务节点具体可以从控制节点下载vm描述信息,且业务节点可以从控制节点下载运行无盘虚拟机所需的内存数据。

在一种可能的设计中,业务节点在下载vm描述信息之后,还需通过控制器检测vm描述信息的更新情况,当检测到vm描述信息更新时,通过控制器获取更新后的vm描述信息。以保证业务节点可以根据最新的vm描述信息创建虚拟机,减小了虚拟机创建失败的可能性。

在一种可能的设计中,vm描述信息为控制器根据初始虚拟机生成的用于创建无盘虚拟机的信息,vm描述信息中包括初始虚拟机的中央处理器cpu信息、内存信息以及寄存器信息。

另一方面,本发明实施例提供一种虚拟机的部署方法,该方法应用于控制节点,该方法包括:控制节点接收业务节点发送的虚拟机创建请求,根据虚拟机创建请求向业务节点发送vm描述信息,vm描述信息用于供业务节点创建无盘虚拟机,无盘虚拟机为不包含虚拟磁盘的虚拟机,然后控制节点将运行无盘虚拟机所需的内存数据发送至业务节点,以便于业务节点根据内存数据运行无盘虚拟机。可见,控制节点可以为业务节点提供vm描述信息,以使得业务节点可以使用获取到的vm描述信息创建无盘虚拟机,无需在每次创建虚拟机之前都由母虚拟机生成vm描述信息,所以节省了获取vm描述信息的时间,且为了省去磁盘克隆的时间,业务节点创建的是不包含虚拟磁盘的无盘虚拟机,在创建无盘虚拟机之后,控制节点可为业务节点提供运行无盘虚拟机所需的内存数据,业务节点根据控制节点发送的内存数据就可以运行无盘虚拟机,无需进行磁盘克隆,即无需为创建的无盘虚拟机配置虚拟磁盘,所以可以节省获取vm描述信息的时间,并省去了磁盘克隆的时间,减少了部署虚拟机所需的时间。

在一种可能的设计中,控制节点上还部署有初始虚拟机、第一内存以及第二内存,初始虚拟机用于提供无盘虚拟机所需的vm描述信息和内存数据;控制器需根据初始虚拟机确定vm描述信息,vm描述信息包括初始虚拟机的中央处理器cpu信息、内存信息以及寄存器信息,然后控制器将初始虚拟机的内存数据存储在第一内存中,将不同无盘虚拟机各自需运行的应用的信息以及vm描述信息存储在第二内存中。由于第一内存和第二内存和控制器部署在同一个物理机上,控制器可为所服务的所有业务节点提供vm描述信息、内存数据以及业务的信息,使得业务节点可以创建无虚拟磁盘的无盘虚拟机,无需进行磁盘克隆,减少了部署虚拟机所需的时间。

在一种可能的设计中,在控制节点将运行无盘虚拟机所需的内存数据发送至业务节点之后,控制节点还需将第一应用的信息发送至业务节点以便于业务节点中运行的无盘虚拟机运行第一应用,第一应用的信息为无盘虚拟机运行第一应用过程中所产生的存储缺页对应的信息。

又一方面,本发明实施例提供了一种虚拟机的部署装置,该装置可以实现上述方法示例中业务节点所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。

在一种可能的设计中,该业务节点中包括硬件层、运行在硬件层之上的主机和无盘虚拟机,该业务节点中还包括处理器、输入设备、输出设备。该处理器被配置为支持该业务节点执行上述方法中相应的功能。该输入设备和输出设备可以被视为通信接口或者收发器,用于支持该业务节点与其他设备之间的通信。需要说明的是,该业务节点还可以包括存储器,该存储器用于与处理器耦合,具体可以包括无盘虚拟机和主机,还可以保存无盘虚拟机和主机必要的程序指令和数据。

又一方面,本发明实施例提供了一种控制装置,该装置可以实现上述方法示例中控制器所执行的功能,所述功能通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。

在一种可能的设计中,该控制装置中包括硬件层、运行在硬件层之上的主机和初始虚拟机,该业务节点中还包括处理器、输入设备、输出设备。该处理器被配置为支持该控制装置执行上述方法中相应的功能。该输入设备和输出设备可以被视为通信接口或者收发器,用于支持该控制装置与其他设备之间的通信。需要说明的是,该控制装置还可以包括存储器,该存储器用于与处理器耦合,具体可以包括无盘虚拟机和主机,还包括第一内存和第二内存,还可以保存无盘虚拟机和主机必要的程序指令和数据。

又一方面,本发明实施例提供了一种通信系统,该系统包括上述方面所述的可以实现业务节点的功能的装置和可以实现控制器的功能的装置。

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述业务节点所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述控制器所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

与现有技术相比,本发明实施例中,业务节点在需要创建虚拟机时,可以通过控制器获取vm描述信息,并使用获取到的vm描述信息创建无盘虚拟机,无需在每次创建虚拟机之前都由母虚拟机生成vm描述信息,所以节省了获取vm描述信息的时间,且为了省去磁盘克隆的时间,业务节点创建的是不包含虚拟磁盘的无盘虚拟机,在创建无盘虚拟机之后,可通过控制器获取运行无盘虚拟机所需的内存数据,根据获取的内存数据就可以运行无盘虚拟机,无需进行磁盘克隆,即无需为创建的无盘虚拟机配置虚拟磁盘,所以采用本发明实施例,可以节省获取vm描述信息的时间,并省去了磁盘克隆的时间,减少了部署虚拟机所需的时间。

附图说明

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

图1a为本发明实施例提供的一种计算机集群的示例性示意图;

图1b为本发明实施例提供的一种控制器的工作原理示意图;

图2为本发明实施例提供的一种虚拟机的部署方法的流程图;

图3为本发明实施例提供的另一种虚拟机的部署方法的流程图;

图4为本发明实施例提供的一种业务节点的逻辑结构示意图;

图5为本发明实施例提供的另一种业务节点的逻辑结构示意图;

图6为本发明实施例提供的另一种业务节点的逻辑结构示意图;

图7为本发明实施例提供的一种控制装置的逻辑结构示意图;

图8为本发明实施例提供的另一种控制装置的逻辑结构示意图。

具体实施方式

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

为了方便对以下实施例的描述,首先对本发明实施例的应用场景进行说明。如图1a所示,本发明实施例应用于计算机集群中,该计算机集群中包括多个业务节点(本发明实施例中的业务节点的实际形态为物理机,物理机上可以运行用于部署应用的虚拟机,通过应用执行业务,以下均以业务节点进行描述),例如业务节点101,业务节点102,业务节点103。现有技术中的每个业务节点中都部署有母虚拟机,母虚拟机可以生成描述信息,进而使得每个业务节点根据各自的母虚拟机生成的描述信息来创建虚拟机,之后还需对母虚拟机的磁盘进行克隆,以生成新创建的虚拟机的虚拟磁盘,为了节省部署虚拟机的时间,本发明实施例无需进行磁盘克隆,即本发明实施例需部署的虚拟机为不包含虚拟磁盘的无盘虚拟机,结合图1a,每个业务节点中均可运行无盘虚拟机,其中一个业务节点中包含控制器、初始虚拟机、第一内存以及第二内存。该业务节点由于包括控制器,具有控制功能,为表示区分,也可以称为控制节点。本发明实施例中的初始虚拟机与现有技术中的母虚拟机中的作用类似,只不过本发明实施例中不需要在每个业务节点中部署母虚拟机,并由母虚拟机生成描述信息,而是可以由一个业务节点中的控制器根据初始虚拟机生成vm描述信息,并将该vm描述信息保存在第二内存中,由控制器服务的所有业务节点均可获取该vm描述信息并创建无盘虚拟机。由于初始虚拟机的内存数据和磁盘数据存储于第一内存中,第一内存中存储的数据可供控制器服务的所有业务节点中的无盘虚拟机共用,第二内存中还存储了针对不同应用的信息,业务节点中的无盘虚拟机运行应用的过程中,可从第二内存中获取所运行应用的信息,即本发明实施例中的无盘虚拟机无需进行磁盘克隆的过程也能够获取运行无盘虚拟机所需的信息以及无盘虚拟机运行的应用的信息,从而省去了磁盘克隆的过程。

需要说明的是,可以专门使用一台物理机作为控制节点,将控制器、初始虚拟机、第一内存和第二内存均部署在这个控制节点中,其他业务节点通过该控制节点中的控制器创建无盘虚拟机,或者可以将控制器、初始虚拟机第一内存和第二内存部署于任意一个业务节点(例如业务节点101)中,其他业务节点可以通过业务节点101中的控制器创建无盘虚拟机,业务节点101也可以通过该控制器创建无盘虚拟机。也就是说,控制器、初始虚拟机、第一内存、第二内存和无盘虚拟机可以部署在同一物理机上,或者控制器、初始虚拟机、第一内存和第二内存部署在一物理机上,而待部署的无盘虚拟机部署在其他物理机上。

还需说明的是,图1a中的每个业务节点中均包括虚拟化层、物理硬件以及无盘虚拟机,而物理机中一般包含硬件层,以及运行在硬件层上的虚拟机监视器和虚拟机,本发明实施例中,业务节点中的物理硬件为硬件层,虚拟化层可以理解为由运行在硬件层上的虚拟机监视器实现,无盘虚拟机即为物理机中的虚拟机。图1a中还存在包含控制器、初始虚拟机、第一内存和第二内存的业务节点,该业务节点除了包含硬件层、虚拟机监视器以及虚拟机之外,进一步的,本发明实施例中的业务节点还包括控制器,该控制器可以理解为一个或一组进程,第一内存和第二内存均位于硬件层,无盘虚拟机和初始虚拟机均为物理机中的虚拟机。在一种实现方式中,控制器部署在业务节点的内核中。在另一种实现方式中,控制器部署在业务节点的控制域中,该控制域包括在该业务节点的内核中。

其中,虚拟化层为运行在物理服务器和操作系统之间的中间软件层,可以实现多个操作系统和应用共享一套基础物理硬件。控制域用于管理虚拟机的生命周期,还可用于实现控制器的功能。无盘虚拟机为根据vm描述信息生成的虚拟机,用于运行应用,该虚拟机中无虚拟磁盘,运行所需的数据由业务节点通过控制器获取并保存在内存中。

控制器的工作原理如图1b所示,控制器可以包括网络控制进程以及增强进程,控制器可以通过增强进程将初始虚拟机中的内存数据和磁盘数据存储在第一内存中,第一内存中包含用于运行无盘虚拟机的数据,并将基于初始虚拟机定制的不同应用的信息保存在第二内存中,基于初始虚拟机定制的不同应用的信息是指控制器所服务的业务节点中的无盘虚拟机可能会运行的应用的信息。其中,第一内存中存储的是静态数据,无盘虚拟机运行期间不可被更改,第二内存中存储的是可以更改的动态数据。

在控制器与部署的无盘虚拟机不在同一物理机上的情况下,控制器可通过网络控制进程调用的物理接口与业务节点进行网络通信,网络控制进程具体用于提供控制器与业务节点之间的网络服务,还可以与增强进程交互,为业务节点提供vm描述信息的下载、运行无盘虚拟机所需的内存数据和无盘虚拟机运行应用过程中产生的存储缺页对应的信息的获取。

基于图1a和图1b,本发明实施例提供了一种虚拟机的部署方法,本发明实施例中的部署虚拟机包括虚拟机的部署和虚拟机的运行,如图2所示,该方法包括:

201、业务节点向控制器发送虚拟机创建请求。

其中,虚拟机创建请求用于请求下载vm描述信息。vm描述信息为控制器根据初始虚拟机生成的用于创建无盘虚拟机的信息,vm描述信息可以用尽可能少的信息来记录恢复初始虚拟机所需的信息,业务节点可根据vm描述信息恢复初始虚拟机,恢复出的初始虚拟机即为业务节点创建的无盘虚拟机,可以理解为由控制器服务的所有业务节点可以根据vm描述信息创建相同的无盘虚拟机。其中,vm描述信息中具体包括初始虚拟机的中央处理器(英文全称:centralprocessingunit,英文缩写cpu)信息、内存信息以及寄存器信息。

需要说明的是,在执行图2所示的方法流程之前,控制器会启动初始虚拟机,启动完成并将无盘虚拟机需运行的应用部署好之后,暂停初始虚拟机,根据初始虚拟机的信息确定vm描述信息,并将初始虚拟机中的内存数据和磁盘数据保存在第一内存中,将基于初始虚拟机定制的不同无盘虚拟机各自需运行的应用的信息,以及vm描述信息保存在第二内存中。

由于本发明实施例中,由控制器通过控制进程来生成vm描述信息并维护第一内存和第二内存,而控制进程无法被人登录修改,所以可以避免现有技术中由于母虚拟机被人登录并修改数据,而导致基于母虚拟机生成的子虚拟机全部故障的情况发生。

202、控制器根据虚拟机创建请求向业务节点发送vm描述信息。

需要说明的是,控制器只需生成一个vm描述信息,并保存在第二内存中,由于该vm描述信息可复用,所以控制器接收到所服务的任一业务节点发送的虚拟机创建请求之后,都可以将该vm描述信息发送给相应的业务节点,无需分别为每个业务节点需部署的无盘虚拟机分别生成一个vm描述信息。

203、业务节点使用vm描述信息创建无盘虚拟机。

其中,业务节点可根据cpu信息配置无盘虚拟机的cpu,根据内存信息确定无盘虚拟机所需的内存数据,根据寄存器信息将无盘虚拟机恢复至初始虚拟机暂停时的状态,相当于业务节点根据vm描述信息创建的无盘虚拟机与暂停时的初始虚拟机是相同的,只不过此时创建的无盘虚拟机还未获取运行所需的数据,可以理解为初始虚拟机为一个通用的虚拟机,每个业务节点都可以根据vm描述信息创建相同的无盘虚拟机,且每个业务节点根据vm描述信息创建的无盘虚拟机都与初始虚拟机相同,每个业务节点创建的无盘虚拟机的差异性是由每个无盘虚拟机创建之后运行应用的过程中,所获取的应用信息不同而造成的。

需要说明的是,在业务节点第一次执行虚拟业务时需从控制器下载vm描述信息,由于vm描述信息是可复用的,业务节点只需下载一次vm描述信息,即可根据该vm描述信息创建后续需要的虚拟机,在创建新虚拟机时无需重新下载,只有当vm描述信息发生更新时才需要重新获取。且由于vm描述信息较小,例如1m左右的vm描述信息就可以表示初始虚拟机中的10g的cpu和内存信息,在创建无盘虚拟机的过程中仅需要下载vm描述信息并通过网络获取无盘虚拟机所需的数据,下载vm描述信息以及获取无盘虚拟机所需的数据的时间远远小于磁盘克隆所需的时间。

此外,当vm描述信息发生变化后,业务节点需要获取变化后的vm描述信息才能够正确创建虚拟机,所以在业务节点下载虚拟机vm描述信息之后,需周期性检测第二内存中的vm描述信息的更新情况,当检测到vm描述信息发生更新时,通过控制器获取更新后的vm描述信息,以保证业务节点能够根据最新的vm描述信息正确创建虚拟机。

204、控制器将运行无盘虚拟机所需的内存数据发送至业务节点。

需要说明的是,控制器具体可以将第二内存中存储的运行无盘虚拟机所需的内存数据,通过网络发送至业务节点。

由于控制器位于控制节点中,所以业务节点具体可以从控制节点下载运行无盘虚拟机所需的内存数据,由控制节点将运行无盘虚拟机所需的数据发送至业务节点。

205、业务节点根据通过控制器获取的内存数据运行无盘虚拟机。

本发明实施例提供的虚拟机的部署方法,与现有技术无法在保证安全性和隔离性的前提下实现虚拟机的快速部署相比,本发明实施例中,业务节点在需要创建虚拟机时,可以通过控制器获取vm描述信息,并使用获取到的vm描述信息创建无盘虚拟机,无需在每次创建虚拟机之前都由母虚拟机生成vm描述信息,所以节省了获取vm描述信息的时间,且为了省去磁盘克隆的时间,业务节点创建的是不包含虚拟磁盘的无盘虚拟机,在创建无盘虚拟机之后,可通过控制器获取运行无盘虚拟机所需的内存数据,根据获取的内存数据就可以运行无盘虚拟机,无需进行磁盘克隆,即无需为创建的无盘虚拟机配置虚拟磁盘,所以采用本发明实施例,可以节省获取vm描述信息的时间,并省去了磁盘克隆的时间,减少了部署虚拟机所需的时间。

可以理解的是,业务节点创建无盘虚拟机是为了使用无盘虚拟机运行应用,为了运行应用还需获取应用的信息,以无盘虚拟机运行第一应用为例,在本发明实施例提供的另一种实现方式中,如图3所示,在上述步骤205、业务节点根据通过控制器获取的内存数据运行无盘虚拟机之后,还需执行以下步骤。

206、业务节点向控制器发送获取第一应用的信息的请求。

其中,第一应用的信息为无盘虚拟机运行第一应用过程中所产生的存储缺页对应的信息。需要说明的是,由于无盘虚拟机中没有存储关于具体应用的数据,所以在运行第一应用时会产生存储缺页,此时需通过控制器获取第二内存中存储的存储缺页对应的信息。另外,如果虚拟机在运行的过程中产生和应用信息无关的存储缺页,业务节点也可以通过控制器获取第一内存中存储的存储缺页对应的信息。

207、控制器向业务节点发送第一应用的信息。

控制器可以通过网络将第二内存中存储的第一应用的信息发送给业务节点。

208、业务节点使用第一应用的信息在无盘虚拟机上运行第一应用,以通过第一应用执行业务。

209、在业务执行结束的情况下,业务节点释放无盘虚拟机的动态内存。

其中,动态内存用于存储无盘虚拟机的差异数据,差异数据为仅供动态内存所属的无盘虚拟机使用的数据。

需要说明的是,本发明实施例可以专门使用一个业务节点作为控制节点,控制器位于该控制节点中,或者控制器可以位于任意一个业务节点中,以业务节点1为例,包含控制器的业务节点1也可以创建无盘虚拟机,业务节点1需要创建无盘虚拟机时,与专门使用一个业务节点作为控制节点的场景下创建虚拟机的方法不同之处为,业务节点1可以通过自身的控制器从自身的第二内存中获取vm描述信息,以通过vm描述信息创建无盘虚拟机,且业务节点1可以通过自身的控制器从自身的第一内存中获取运行无盘虚拟机所需的内存数据,从第二内存中获取需运行的应用的信息,可以理解为,业务节点1无需与其他业务节点中的控制器进行信息交互,只需通过业务节点1中的虚拟机监视器与业务节点1中的控制器进行信息交互,除了信息交互的方法不同,部署无盘虚拟机具体方法均可参考上述步骤201至步骤209中的描述,此处不再赘述,

对于本发明实施例,无盘虚拟机运行的第一应用的信息存储在第二内存中,无盘虚拟机在运行第一应用过程中产生存储缺页时,可以通过控制器获取第二内存中存储的存储缺页对应的信息,比容器技术的隔离性更高,保证了无盘虚拟机的安全性,也因为无盘虚拟机可以通过控制器获取第一应用的信息,所以无需进行磁盘克隆,加快了虚拟机的部署速度,另外,无盘虚拟机的业务执行结束后,业务节点会释放无盘虚拟机的动态内存,保证了动态内存中的信息的安全性。

本发明实施例提供的虚拟机的部署方法可以应用于xen(开放源代码虚拟机监视器)、kvm、hyper-v等虚拟化平台中,以应用于xen中为例,在触发虚拟机的部署后,业务节点根据vm描述信息创建无盘虚拟机,通过控制器获取运行无盘虚拟机所需的内存信息,使用内存信息运行无盘虚拟机,然后可以为xen的业务节点注册memtap(内存差分模块),以创建当前无盘虚拟机对应的memtap,该memtap能够通过网络与控制器进行通信,当无盘虚拟机在运行应用的过程中产生存储缺页时,xen通知memtap产生存储缺页,然后memtap通过与控制器的网络连接获取存储缺页对应的信息,并将存储缺页对应的信息反馈给无盘虚拟机,从而保证无盘虚拟机中业务的正常运行。

上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如业务节点、控制器等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本发明实施例可以根据上述方法示例对业务节点、控制器等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图4示出了上述实施例中所涉及的业务节点的一种可能的结构示意图,业务节点包括:获取模块401,创建模块402,运行模块403,释放模块404。获取模块401用于支持业务节点通过控制器获取vm描述信息并通过控制器获取运行无盘虚拟机所需的内存数据;创建模块402用于支持业务节点执行图2中的过程203;运行模块403,用于支持业务节点执行图3中的过程205和208;释放模块404,用于支持业务节点执行图3中的过程209。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在采用集成的单元的情况下,图5示出了上述实施例中所涉及的业务节点的一种可能的结构示意图。业务节点包括:处理模块502和通信模块503。处理模块502用于对业务节点的动作进行控制管理,例如,处理模块502用于支持业务节点执行图2中的过程203,图3中的过程205和208,和/或用于本文所描述的技术的其它过程。通信模块503用于支持业务节点与其他网络实体的通信,例如与图1a中示出的功能模块或网络实体之间的通信。业务节点还可以包括存储模块501,用于存储业务节点的程序代码和数据。

其中,处理模块502可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块503可以是收发器、收发电路或通信接口等。存储模块501可以是存储器。

当处理模块502为处理器,通信模块503为输入设备和输出设备,存储模块501为存储器时,本发明实施例所涉及的业务节点可以为图6所示的业务节点。

参阅图6所示,该业务节点包括:处理器601、输入设备603、输出设备604、存储器605以及总线602。其中,处理器601、输入设备603、输出设备604、存储器605通过总线602相互连接,输入设备603和输出设备604可以为收发器;总线602可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器603可以包括只读存储器和随机存取存储器,并向处理器602提供指令和数据。存储器603的一部分还可以包括非易失性随机存取存储器(nvram)。

需要说明的是,当控制器位于控制节点中时,处理器601可通过输入设备603和输出设备604检测vm描述信息的更新情况,当检测到vm描述信息更新时,处理器601通过输入设备603和输出设备604从控制节点下载更新后的vm描述信息。

在一些实施方式中,存储器603存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:

主机6051:作为管理层,用以完成硬件资源的管理、分配;为无盘虚拟机6052呈现虚拟硬件平台;实现无盘虚拟机6052的调度和隔离。其中,主机6051可能是虚拟机监控器(vmm);此外,有时vmm和1个特权虚拟机配合,两者结合组成主机6051。其中,虚拟硬件平台对其上运行的各个无盘虚拟机6052提供各种硬件资源,如提供虚拟处理器、内存、虚拟网卡等等。无盘虚拟机6052则运行在主机6051为其准备的虚拟硬件平台上,主机6051上运行一个或多个无盘虚拟机6052。

虚拟机6052:通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机6052就像真正的计算机那样进行工作,虚拟机6052上可以安装操作系统和应用程序,虚拟机6052还可访问网络资源。对于在虚拟机6052中运行的应用程序而言,虚拟机6052就像是在真正的计算机中进行工作。

需要说明的是,图6具体可以用于表示业务节点也可以用于表示控制节点,当图6用于表示业务节点时,图6中的虚拟机6052为无盘虚拟机;当图6用于表示控制节点时,图6中的虚拟机为初始虚拟机,控制节点中的控制器为处理器601运行的一个或一组进程,该一个或一组进程对应的程序代码位于存储器603中,处理器601可以通过控制器执行上述方法实施例中控制器执行的相应操作,且处理器601可通过控制器控制输入设备603接收业务节点发送的虚拟机创建请求,还可通过控制器控制输出设备604向业务节点发送vm描述信息,将运行无盘虚拟机所需的内存数据发送至业务节点,控制器具体可以通过运行程序实现上述功能。另外,存储器603中还包括第一内存和第二内存。在另一种可能的实现方式中,控制器部署在控制节点的控制域中,控制域位于图6中的主机6051中。

本发明实施例还提供了一种控制装置,控制装置可实现上述实施例中的控制器的功能,该控制装置位于虚拟机中,在采用对应各个功能划分各个功能模块的情况下,图7示出了控制装置的一种可能的结构示意图,控制装置包括:接收模块701,发送模块702,控制模块703。接收模块701用于支持控制装置接收图2的过程201中业务节点发送的虚拟机创建请求;发送模块702用于支持控制装置执行图2中的过程202和204,以及图3中的过程207,控制模块703,用于支持控制装置根据初始虚拟机确定vm描述信息;还用于支持控制装置将初始虚拟机的内存数据存储在第一内存中,将不同无盘虚拟机各自需运行的应用的信息以及vm描述信息存储在第二内存中。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在采用集成的单元的情况下,图8示出了上述控制装置的一种可能的结构示意图。控制装置包括:处理模块802和通信模块803。处理模块802用于对控制装置的动作进行控制管理,例如,处理模块802用于支持控制装置生成vm描述信息,和/或用于本文所描述的技术的其它过程。通信模块803用于支持控制装置与其他网络实体的通信,例如与图1a、图5、图6中示出的功能模块或网络实体之间的通信。控制装置还可以包括存储模块801,用于存储控制器的程序代码和数据,其中,第一内存和第二内存均位于存储模块中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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