一种虚拟机控制系统、虚拟机控制器及控制方法

文档序号:6401262阅读:495来源:国知局
专利名称:一种虚拟机控制系统、虚拟机控制器及控制方法
技术领域
本发明涉及计算机技术领域,具体涉及一种虚拟机控制系统、虚拟机控制器及控制方法。
背景技术
在诸多提供互联网服务的公司,服务器端需要用虚拟机自动处理海量的样本,例如,在互联网时代,信息爆炸性增长,木马、病毒也随之爆发性的泛滥,如何快速反应,及时发现新的木马和病毒,及早控制木马、病毒的传播是安全行业面临的新的挑战,所以如何有效的收集可信样本是业内一直非常关注的问题,而在传统虚拟机管理中,虚拟机的角色在其创建时就已确定,即:角色和虚拟机是一体的。而样本的信息是多种多样的,这种样本多样性就决定了角色的多样性,而每种角色处理的样本数的不确定性又决定了要随时调整负责角色的虚拟机数量,因此,在日常的实际互联网服务中,经常需要调整运行于宿主机上的虚拟机的角色,以便满足每种角色所需的虚拟机数量。但是,在传统虚拟机管理中,由于虚拟机和角色是一起创建的,因此要改变虚拟机的角色,就需要重新创建一遍虚拟机,因此现有改变虚拟机的角色的时间、数据运算成本都很高,与重新创建一个虚拟机的成本差不多,因此如何能够提高虚拟机角色调整的效率是目前迫切需要解决的问题。

发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种虚拟机控制系统、虚拟机控制器及控制方法。依据本发明的一个方面,提供了一种虚拟机控制系统,包括:虚拟机角色包存储器,被配置为存储虚拟机所需的各种角色包;虚拟机维护器,被配置为对各种虚拟机角色包的操作信息、虚拟机的角色分配信息进行维护,以及将角色的相关信息提供给虚拟机控制器;虚拟机控制器,被配置为至少从宿主机获得虚拟机的操作资源定位信息,并从虚拟机维护器获得角色的相关信息,据此为虚拟机提供角色查询,以及据此操作虚拟机;若干宿主机,被配置为运行若干虚拟机,在虚拟机控制器的指示下,从虚拟机角色包存储器下载所需的角色包完成虚拟机的角色安装以及进行相关的虚拟机操作。可选的,虚拟机控制器从宿主机获得的虚拟机的操作资源定位信息至少包括:虚拟机的网际协议IP地址和虚拟机所属宿主机的标识信息。可选的,虚拟机维护器包括:操作信息模块,被配置为对各种虚拟机角色包的操作信息进行更新、维护,虚拟机角色包的操作信息至少包括虚拟机角色名、虚拟机角色包的下载网络链接、存活时间和/或重启间隔;分配信息模块,被配置为对虚拟机分配所需的角色,维护虚拟机与角色之间的对应关系;第一接口模块,被配置为与虚拟机控制器进行信息交互,至少将操作信息模块和分配信息模块提供的角色的相关信息传输给虚拟机控制器。可选的,分配信息模块还被配置为维护虚拟机的上线、下线状态的改变以及虚拟机重启,并通过第一接口模块传输给虚拟机控制器。可选的,虚拟机维护器还包括:监控模块,被配置为从虚拟机控制器获得虚拟机的相关信息,对虚拟机的运行状况和/或分布状态进行监控。可选的,虚拟机维护器还包括:分析告警模块,被配置为从虚拟机控制器获得节点日志,对其进行分析,若发现异常情况,进行告警提示。可选的,虚拟机控制器包括:第二接口模块,被配置为从宿主机获得虚拟机的操作资源定位信息,以及从虚拟机维护器获得虚拟机的角色分配信息和虚拟机角色包的操作信息;查询模块,被配置为根据虚拟机的角色分配信息和虚拟机角色包的操作信息,为虚拟机查询为其分配的角色、对应的虚拟机角色包的下载网络链接以及相关技术参数,供虚拟机完成角色的安装和运行;操作模块,被配置为通过虚拟机的操作资源定位信息定位到需要操作的虚拟机,按照角色包的操作信息向该虚拟机所属的宿主机发送操作指示,至少指示宿主机对该虚拟机进行开机、关机和/或重启操作。可选的,相关技术参数至少包括角色包的解压参数和启动参数。可选的,宿主机具体被配置为接收到虚拟机控制器的操作指示后,按照该操作指示对其上运行的指定虚拟机执行开机、关机和/或重启操作。根据本发明的另一方面,提供了一种用于虚拟机系统的虚拟机控制器,虚拟机系统包括若干宿主机,每一宿主机上运行若干虚拟机,控制器包括:接口模块,被配置为从宿主机获得虚拟机的操作资源定位信息,以及获得虚拟机的角色分配信息和角色包的操作信息;查询模块,被配置为根据虚拟机的角色分配信息和虚拟机角色包的操作信息,为虚拟机查询为其分配的角色、对应的虚拟机角色包的下载网络链接以及相关技术参数,供虚拟机完成角色的安装和运行;操作模块,被配置为通过虚拟机的操作资源定位信息定位到需要操作的虚拟机,根据角色包的操作信息向该虚拟机所属的宿主机发送指示信息,至少指示宿主机对该虚拟机进行开机、关机和/或重启操作。根据本发明的又一个方面,提供了一种用于虚拟机系统的控制方法,虚拟机系统包括若干宿主机,每一宿主机上运行若干虚拟机,包括:从宿主机获得虚拟机的操作资源定位信息,以及获得虚拟机的角色分配信息和虚拟机角色包的操作信息;根据虚拟机的角色分配信息和虚拟机角色包的操作信息,为虚拟机查询为其分配的角色、对应的虚拟机角色包的下载网络链接以及相关技术参数,供虚拟机完成角色的安装和运行;通过虚拟机的操作资源定位信息定位到需要操作的虚拟机,根据虚拟机角色包的操作信息向该虚拟机所属的宿主机发送指示信息,至少指示宿主机对该虚拟机进行开机、关机和/或重启操作。可选的,从宿主机获得的虚拟机的操作资源定位信息至少包括:虚拟机的网际协议IP地址和虚拟机所属宿主机的标识信息。可选的,获得的角色分配信息至少包括虚拟机与为其分配的角色之间的对应关系,角色包的操作信息至少包括:角色包、角色包的下载网络链接、存活时间和/或重启间隔。根据本发明的虚拟机控制系统、虚拟机控制器及控制方法,通过虚拟机维护器、虚拟机控制器与虚拟机角色包存储器和宿主机的配合,将虚拟机和角色进行解耦,当需要增加某个角色的虚拟机或者变更虚拟机的角色时,只需要按照虚拟机控制器的操作指示去虚拟机角色包存储中心下载、自动安装新的角色即可,从而减少了虚拟机角色新增、改变等的时间、运算成本,由此解决了现有改变虚拟机角色成本较高的技术问题,取得了降低改变虚拟机角色成本的有益效果。进一步的,由于新增某个角色的虚拟机或虚拟机角色变更的成本较低,因此可以在多台宿主机上部署同一角色的虚拟机,进而及时部分宿主机或者某些宿主机的部分虚拟机出现异常,也能保证这种角色服务的可用性。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式



通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本发明一个实施例的虚拟机控制系统示意图;图2示出了根据本发明一个实施例的用于虚拟机系统的控制方法。
具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等
坐寸ο计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。请参阅图1,其为根据本发明实施例的一种虚拟机控制系统示意图。该系统包括虚拟机角色包存储器100、虚拟机维护器300、虚拟机控制器400以及若干宿主机,其中示意性的给出两台宿主机:第一宿主机210和第二宿主机220。在实际应用中,可以根据需要采用一台或者两台以上的宿主机,同理,每一宿主机上可以根据实际需要运行若干(一个或两个以上)虚拟机,本发明实施例均对此并没有限制。下面以图1给出的应用实例,结合具体的数据处理流程,详细介绍本系统的技术方案。
虚拟机角色包存储器100用于存储虚拟机所需的各种角色包。虚拟机角色包存储器与宿主机集群200进行通信,根据宿主机集群200的请求为其提供所需的虚拟机角色包。后续在介绍宿主机集群200时会更详细的描述两者之间的信息交互过程。虚拟机维护器300需要知道虚拟机角色包存储器100的地址信息,以便告知虚拟机控制器400,不过一般是由管理人员将虚拟机角色包存储器100的地址信息告知虚拟机维护器300,而不由虚拟机角色包存储器100与虚拟机维护器300、虚拟机控制器400直接进行信息交互。虚拟机角色包存储器100也可以理解为是一种角色包存储中心。角色包可以理解为是开发人员为虚拟机开发的各种用于完成不同数据处理功能的程序包,因此角色包实际上也可以称为角色包程序。虚拟机的不同角色能够完成的具体数据处理功能不同,比如具有A角色的虚拟机可以完成对样本数据的签名校验功能,具有B角色的虚拟机可以完成对样本数据的关键信息提取功能等等。总而言之,不同的虚拟机角色完成的数据处理功能可以根据实际需求而定,进而开发人员可以根据角色的不同需求开发出不同的角色包程序。具体根据不同的数据处理需求,开发不同的角色包程序可以采用相关的现有技术,此处不再详述。虚拟机维护器300用于对各种虚拟机角色包的操作信息、虚拟机的角色分配信息进行维护,以及将所述角色的相关信息提供给虚拟机控制器。具体而言,虚拟机维护器300又具体可以从逻辑上包含如下几个模块:操作信息模块310、分配信息模块320和第一接口模块330。首先,操作信息模块310用于对各种虚拟机角色包的操作信息进行更新、维护,虚拟机角色包的操作信息可以包括下述信息中的一种或多种:虚拟机角色名、虚拟机角色包的下载网络链接(即下载统一资源定位符URL)、包大小、反馈URL、解压参数、启动参数、存活时间以及重启间隔等。其中,虚拟机角色包的下载网络链接实质上就是角色包的下载地址,如虚拟机角色包存储器100的地址信息,即通过该信息,可以让虚拟机知道去虚拟机角色包存储器100下载所需的角色包。反馈URL是虚拟机维护器300将自己维护的各种信息向虚拟机控制器400反馈使用的,因此该URL主要是指虚拟机控制器400的定位信息,如虚拟机控制器的地址,以便虚拟机维护器300可以将角色的各种相关信息及时传输给虚拟机控制器400。解压参数和启动参数主要是指在虚拟机下载相应的角色包之后,自动安装和运行角色包所需要的相关技术参数,本领域的技术人员可以理解,为了完成角色包的自动安装和运行所需相关技术参数包括但不限于解压参数和启动参数,可以根据实际需要增减相应的参数。存活时间主要是指为每个角色的虚拟机设置的存活时间,当某个角色的虚拟机持续在线时间超过预置的存活时间,那么虚拟机控制器400就会指示该虚拟机所在的宿主机重启该虚拟机,以保证虚拟机的运行质量。重启间隔主要是指当某个角色的虚拟机发生故障超过预置的时间间隔(即重启间隔),那么虚拟机控制器400就会据此操作该虚拟机重启。除了存活时间、重启间隔等参数,还可以设置开机、关机参数,后续在介绍虚拟机控制器400如何控制虚拟机操作时,还会再进一步详细介绍如何根据存活时间、重启间隔、开机参数、关机参数等操作虚拟机。在实际操作中,虚拟机维护器300可以通过浏览器提供一个信息交互界面,比如web网页,在该页面上,提供入口以便于管理人员输入各种信息指令,比如前面描述的各种虚拟机角色包的操作信息可以由管理人员人工输入,管理人员还可以随时添加新的角色信息或者修改相应的角色信息,然后虚拟机维护器300负责保存并维护这些信息。
其次,分配信息模块320用于为对虚拟机分配所需的角色,维护虚拟机与角色之间的对应关系。具体而言,可以根据实际需要随时为各虚拟机分配对应的角色或者调整虚拟机的角色。在实际操作中,与操作信息模块310类似,也可以是提供一个web网页作为信息交互界面,供管理人员随时输入、修改对虚拟机分配的角色,然后虚拟机维护器300在接收这些信息后,负责保存虚拟机和角色之间的对应关系。本领域技术人员可以理解,操作信息模块310和分配信息模块320可以共用一个信息交互界面,也可以分别使用单独的信息交互界面,本发明实施例对此并没有限制。分配信息模块还可以维护虚拟机的上线、下线状态、角色的改变以及虚拟机重启。具体而言,仍然可以通过虚拟机维护器300的信息交互界面接收管理人员为虚拟机设置的状态信息,如上线或下线。有时,虚拟机的角色需要进行切换,如从第一角色切换为第二角色,那么需要虚拟机重启新的角色才能生效,此时,管理人员给分配信息模块输入某个虚拟机需要重启的信息,此种情况可以看作是一种强制虚拟机重启,进而分配信息模块记录并传送给虚拟机控制器400,以便虚拟机控制器400可以操作相应的虚拟机重启。后续在介绍虚拟机控制器400还会具体描述如何根据这些信息操作虚拟机。最后,第一接口模块330用于与虚拟机控制器400进行信息交互,至少将操作信息模块310和分配信息模块320维护的各种相关信息传输给虚拟机控制器。具体而言,将操作信息模块310维护的虚拟机角色的各种操作信息,和分配信息模块320维护的虚拟机角色分配信息,传输给虚拟机控制器400,以便虚拟机控制器400可以根据这些信息操作虚拟机。另外,虚拟机维护器300还可以包括监控模块,用于从虚拟机控制器400获得虚拟机的相关信息,比如虚拟机的IP地址,虚拟机所属宿主机的主机名、地址、虚拟机的上、下线状态、虚拟机是否正常运行的状态等,从而对虚拟机的运行状况和/或分布状态进行监控。一般而言,虚拟机维护器300是从虚拟机控制器400获得以上这些虚拟机的相关信息,由于虚拟机控制器400也需要从宿主机获得其上运行的虚拟机的相关信息以便完成对虚拟机的操作,所以,从简化流程、提高数据处理效率的角度,虚拟机维护器300不直接从宿主机获得虚拟机的信息,但是本领域技术人员可以理解,从技术角度讲,虚拟机维护器300也可以直接从宿主机获得虚拟机相关的信息。管理人员可以通过监控模块掌握虚拟机的运行状况和/或分布状态。此外,虚拟机维护器300还可以包括分析告警模块,用于从虚拟机控制器400获得节点日志,对其进行分析,若发现异常虚拟机数据量较多和/或虚拟机重启次数较少的异常情况,进行告警提示。由于虚拟机控制器400可以获得虚拟机的各种运行状态以及操作虚拟机,因此通过分析虚拟机控制器400的节点日志,可以发现当前是否异常的虚拟机数量超过预置阈值,或者一定时间内虚拟机重启的次数是否少于或大于预置的阈值,如果是,则通常认为是需要进行故障处理的,进而分析告警模块可以进行告警提示,以便管理人员及时处理。在管理人员看到告警提示后,可以根据实际情况进行相应处理,比如重启虚拟机、查看宿主机、虚拟机是否故障、停止服务、新增其他虚拟机代替处理,等等。从以上关于虚拟机维护器300的描述可以看出,虚拟机维护器300可以理解为是一种web后台,用于维护一些后台的数据信息,接收后台管理人员的指令信息,并传输给虚拟机控制器400。虚拟机控制400 —方面从虚拟机维护器300接收各种信息,比如虚拟机角色包的操作信息、虚拟机的角色分配信息、虚拟机的上下线状态及虚拟机重启等信息。另一方面从宿主机接收各种信息。可选的,当有多台宿主机构成宿主机集群时,为了简化通信成本,可以从多台宿主机中选择一台作为主宿主机,比如选定第一宿主机210作为主宿主机,第二宿主机220等其他宿主机作为普通的宿主机。在宿主机集群200需要与虚拟机控制器400进行信息交互时,可以只由主宿主机(第一宿主机210)与虚拟机控制器400进行通信,在宿主机集群内部主宿主机通过与其他宿主机进行信息交互,收集其他宿主机的虚拟机信息,然后统一由该主宿主机传输给虚拟机控制器400,同理,当虚拟机控制器400需要操作其他宿主机上的虚拟机时,通过该主宿主机接收指示信息,然后该主宿主机再将相关的指示信息传输给对应的其他宿主机,进而其他宿主机再操作其上运行的虚拟机。当然,本领域技术人员可以理解,如果不是从简化通信流程的角度,虚拟机控制器400也可以与宿主机集群200中的每个宿主机分别通信,不设置主宿主机。下面以将第一宿主机210作为主宿主机为例,介绍虚拟机控制器400与宿主机集群200之间的信息交互,以及如何控制虚拟机的操作。虚拟机控制器400具体包括第二接口模块430、查询模块410以及操作模块420。其中,第二接口模块430用于与虚拟机维护器300和宿主机集群200分别进行信息交互,从作为主宿主机的第一宿主机210获得宿主机集群200中各虚拟机的相关信息,如虚拟机的操作资源定位信息,以及从虚拟机维护器300获得虚拟机的角色分配信息和虚拟机角色包的操作信息等。例如,虚拟机控制器400先从第一宿主机210获得虚拟机集群200中可用的虚拟机信息列表,该信息列表主要包括下述信息的一种或多种:各虚拟机的IP地址、每个虚拟机所属宿主机的标识、虚拟机的操作资源定位信息。其中,每个虚拟机所属宿主机的标识可以是相应宿主机的主机名,也可以是宿主机的IP地址,只要可以唯一标识该宿主机即可。虚拟机的操作资源定位信息,也可以理解为是一种控制URL,虚拟机控制器400通过该控制URL操作虚拟机,具体而言,虚拟机的操作资源定位信息至少包括虚拟机的IP地址和虚拟机所属宿主机的标识。可以看出,如果虚拟机控制器400从第一宿主机210获得的虚拟机信息列表中只包括各虚拟机的IP地址和每个虚拟机所属宿主机的标识,本质上也是一种虚拟机的操作资源定位信息,虚拟机控制器400据此也可以定位到某个具体的虚拟机进行操作,只不过,虚拟机控制器400需要自行将虚拟机的IP地址和所属宿主机标识组合起来。如果第一宿主机210直接将已经组合好的虚拟机操作资源定位信息反馈给虚拟机控制器400,那么虚拟机控制器400就无需再自己组合,减少了虚拟机控制器400的负担。因此,第一宿主机210是否向虚拟机控制器400传输已组合的虚拟机操作资源定位信息均可,只要本质上提供了虚拟机的I P地址及其所属宿主机标识,就认为已经向虚拟机控制器400提供了虚拟机的操作资源定位信息。再例如,第二接口模块430从虚拟机维护器300获得了虚拟机角色包的操作信息、虚拟机角色分配信息等各种后台维护信息。前面在介绍虚拟机维护器300时已经对这几种信息进行过详细描述,故此处不再赘述。至此,虚拟机控制器400 —方面从主宿主机收集了各宿主机上运行的虚拟机的相关信息,又从虚拟机维护器300获得了虚拟机角色包的操作信息、虚拟机角色分配信息等各种后台维护信息。进而,虚拟机控制器400就可以通过查询模块410和操作模块420对相关的虚拟机进行角色控制。其中,查询模块410用于根据虚拟机的角色分配信息(即虚拟机与角色之间的对应关系)和虚拟机角色包的操作信息,为虚拟机查询为其分配的角色、对应的虚拟机角色包的下载网络链接以及相关技术参数,供虚拟机完成角色的安装和运行。操作模块420用于通过虚拟机的操作资源定位信息定位到需要操作的虚拟机,按照角色包的操作信息向该虚拟机所属的宿主机发送操作指示,至少指示所述宿主机对该虚拟机进行开机、关机和/或重启操作。相应的,宿主机用于在接收到虚拟机控制器400的操作指示后,按照该操作指示对其上运行的指定虚拟机执行开机、关机和/或重启操作。具体例如,某个运行于第一宿主机210之上的虚拟机I在启动后向虚拟机控制器400发送角色查询请求,询问为自己分配的角色以及下载地址、技术参数等,虚拟机控制器400在接收到该查询请求后,根据从虚拟机维护器300获得的虚拟机角色分配信息为虚拟机I查询到为其分配的角色是第一角色,并且根据从虚拟机维护器300获得的虚拟机角色包的操作信息中,查询到第一角色对应的角色包下载网络链接以及解压、启动等技术参数,进而虚拟机控制器400将角色包的下载网络链接和相关技术参数一起传输给第一宿主机210。进而,第一宿主机210接收到虚拟机控制器400为其查询到的结果信息后告知虚拟机1,进而虚拟机I按照指定的第一角色的角色包下载网络链接,即虚拟机角色包存储器100的地址,下载对应的第一角色的角色包程序,然后又根据获得的解压、启动等技术参数对该角色包进行自动安装和运行。至此,虚拟机I上即成功运行第一角色,进而能够完成第一角色的数据处理功能,比如第一角色的具体功能是用于验证数字签名,那么虚拟机I就可以对接收到的各样本进行数字签名的验证。在后续虚拟机I的运行过程中,虚拟机I会定期向虚拟机控制器400发送自身的状态信息,即本领域常说的心跳信息,以便让虚拟机控制器400随时掌握各虚拟机的状态是否正常。由于虚拟机控制器400从虚拟机维护器300获得的角色包操作信息中,可以获知运行第一角色的虚拟机角色包操作信息,例如存活时间和重启间隔。比如,预置的运行第一角色的虚拟机存活时间是30分钟,虚拟机控制器400根据从第一宿主机210获知的虚拟机信息知道运行第一角色的虚拟机I的启动时间是12:10,而当前时间是12:41,已经超过了预置存活时间30分钟,于是虚拟机控制器400的操作模块420就会根据之前虚拟机维护器300提供的虚拟机I的操作资源定位信息,定位到虚拟机I所属的第一宿主机210,进而通过第二接口模块430向第一宿主机210发送操作指示:重启第一宿主机210上运行的虚拟机1,进而第一宿主机210接收到虚拟机控制器400的指示后就对虚拟机I进行重启操作。重启间隔也类似,比如,预置的运行第一角色的虚拟机重启间隔是5分钟,根据第一宿主机210向虚拟机控制器400周期性反馈的虚拟机I的心跳信息,可以知道虚拟机I何时开始没有正常反馈心跳信息,比如从14:10开始虚拟机控制器400就再没收到过虚拟机I的心跳信息、即虚拟机I开始发生异常,由于预置的重启间隔是5分钟,因此当虚拟机控制器400发现当前时间减去虚拟机发生异常的时间(14:10)超过了预置重启间隔5分钟,即当前时间超过14:15时,虚拟机控制器400的操作模块420就会向第一宿主机210发送操作指示:重启运行于第一宿主机210之上的虚拟机1,进而第一宿主机I收到上述指示后便重启其上运行的虚拟机I。除了重启之外,如果在虚拟机角色包的操作信息中还可以包括开机和关机等参数,比如,在操作信息中预置虚拟机I在13:10开机,那么虚拟机控制器400可以在13:10给第一宿主机210发送操作指示:开启虚拟机I。或者,当第一宿主机210接收到重启虚拟机I的操作指示后,发现虚拟机I还没开机,则实际上对虚拟机I执行的是开机操作。操作虚拟机I关机也类似,都是在虚拟机维护器300维护的操作信息中予以预先设置,然后告知虚拟机控制器400,进而虚拟机控制器在达到预置的关机条件(如虚拟机I运行了指定时间间隔或者在特定时间对虚拟机I进行关机)时,控制第一宿主机210对虚拟机I进行关机操作。当然,如果虚拟机自动开机或者不需要关机,那么也可以不操作虚拟机的开机、关机,只操作虚拟机的重启即可此外,可选的,由于分配信息模块320还可以维护虚拟机上线、下线状态的改变、角色的改变以及虚拟机重启。因此,如果虚拟机维护器300传输给虚拟机控制器400的维护信息还包括以上信息,那么虚拟机控制300也要据此操作虚拟机。比如,某个时间点管理人员通过分配信息模块320将运行于第一宿主机210之上的虚拟机I的角色由第一角色改为第二角色,并要求角色切换后重启虚拟机I (以便切换后的第二角色生效),那么虚拟机控制器300在接收到上面的信息后,根据虚拟机I的操作资源定位信息给第一宿主机210发操作指示:将运行于第一宿主机之上的虚拟机I的第一角色切换为第二角色,具体的,可以提供第二角色的角色包下载网络链接以及相关安装、运行参数,并指示切换后重启虚拟机
I。进而,第一宿主机210在接到指示后可以先卸载虚拟机I上运行的第一角色,并告知虚拟机I先去虚拟机角色包存储器100下载第二角色的虚拟机角色包,然后虚拟机I根据相关参数自动安装,进而第一宿主机210重启虚拟机1,进而使得虚拟机I的第二角色生效。再比如,某个时间虚拟机维护器300告知虚拟机控制器400需要将虚拟机I从上线状态变更为下线状态,则虚拟机控制器400向第一宿主机发送操作指示:将虚拟机I下线,进而第一宿主机210将虚拟机I的状态由上线更改为下线。又比如,管理人员通过告警模块或分析告警模块发现某个或某些虚拟机需要重启,则会通过虚拟机维护器300给虚拟机控制器400发送虚拟机强制重启的信息,进而虚拟机维护器300据此指示相关虚拟机所属的宿主机,完成对相关虚拟机的强制重启。另外,虚拟机控制器400的第二接口模块还可以接收来自宿主机的主动重启虚拟机的请求,进而操作模块420据此向该宿主机发送操作确认指示,从而该宿主机重启虚拟机。例如,宿主机发现某个虚拟机发生异常,那么有可能会有主动重启该该虚拟机的需求,为了保证虚拟机控制器400能够统一控制各虚拟机的操作,宿主机也需要先向虚拟机控制器400发送虚拟机重启请求,在得到虚拟机控制器400的确认指示后才会执行重启虚拟机的操作。前面例子中描述的是虚拟机控制器400如何操作作为主宿主机的第一宿主机212上的虚拟机1,下面描述如何操作作为非主宿主机的第二宿主机220上的虚拟机3。之前描述过,作为主宿主机的第一宿主机210会与第二宿主机220进行通信,获得第二宿主机上运行的虚拟机相关信息,然后传输给虚拟机控制器400,以便虚拟机控制器400可以掌握非主宿主机上的各种虚拟机信息。同理,当虚拟机控制器400需要操作非主宿主机上的虚拟机时,也是先发给作为主宿主机的第一宿主机210,并根据之前虚拟机维护器300提供的虚拟机3的操作资源定位信息告知第一宿主机,将操作指示再传输给虚拟机3所属的第二宿主机220,为方便起见,可以在传输给第一宿主机210的操作指示中带上虚拟机3的操作资源定位信息(控制URL),进而第一宿主机210直接解析该控制URL,即可知道应该将该操作指示发给第二宿主机220。进而,第二宿主机220接收到操作指示后,就按照操作指示开启、关闭或重启虚拟机3。如果不是出于简化流程、减少宿主机集群200中各宿主机均与虚拟机控制器400交互的目的考虑,也可以由虚拟机控制器400直接与宿主机集群200中的各宿主机进行交互,此时相当于宿主机集群200中并没有指定一台为主宿主机,各宿主机的地位平等,即各宿主机直接向虚拟机控制器400发送自己的虚拟机运行信息,同样虚拟机控制器400也直接将操作指示发到对应的宿主机上。宿主机是与虚拟机控制器400进行信息交互的主体,在具体实际操作中,可以理解为虚拟机角色包的下载、安装等操作是由虚拟机中的一个客户端执行,具体而言,该客户端由几个脚本共同组成,虚拟机开机会会启动一个批处理文件,该批处理文件进而会启动相应的脚本,进而由该脚本完成角色包的下载、安装、启动等操作。。请参阅图2,其为根据本发明一个实施例的用于虚拟机系统的控制方法,该虚拟机系统包括若干宿主机,每一宿主机上运行若干虚拟机,该方法起始于步骤S210。S210:从宿主机获得虚拟机的操作资源定位信息,以及获得虚拟机的角色分配信息和虚拟机角色包的操作信息。虚拟机的操作资源定位信息至少包括虚拟机的IP地址和虚拟机所属宿主机的标识,操作资源定位信息可以是将虚拟机的IP地址和虚拟机所属宿主机的标识组合在一起的,也可以未组合的。除了从宿主机获得操作资源定位信息外,还可以从宿主机获得各虚拟机的状态信息(心跳)。总而言之,可以从宿主机获得虚拟机的各种信息列表。获得虚拟机的角色分配信息和虚拟机角色包的操作信息可以是从网页后台获得。相关技术特征已经在前面进行过详细介绍,可以参看前面虚拟机控制器400中有关第二接口模块430和虚拟机维护器300中的相关描述,此处不再赘述。在通过步骤S210获得各种虚拟机角色的相关信息以及各虚拟机的信息后,就可以据此为虚拟机提供所需角色包的下载服务了。即进入步骤S220:根据虚拟机的角色分配信息和虚拟机角色包的操作信息,为虚拟机查询为其分配的角色、对应的虚拟机角色包的下载网络链接以及相关技术参数,供虚拟机完成角色的安装和运行。相关技术特征可以参考前面虚拟机控制器400中查询模块410的描述,此处不再赘述。在通过步骤S220虚拟机下载并安装、运行了所需的角色后,就可以正常处理样本数据了。在此过程中,宿主机还会周期性的反馈虚拟机的运行状态信息,如心跳,进而可以掌握虚拟机是否运行正常。相关的技术特征可以参考前面虚拟机控制器400中查询模块410的相关描述,此处不再赘述。在虚拟机的运行过程中,还会通过S230步骤进行虚拟机的后续控制操作。步骤S230:通过虚拟机的操作资源定位信息定位到需要操作的虚拟机,根据虚拟机角色包的操作信息向该虚拟机所属的宿主机发送指示信息,至少指示宿主机对该虚拟机进行开机、关机和/或重启操作。除了控制这些操作外,还可以控制虚拟机更改角色、变更虚拟机上、下线状态或者强制虚拟机重启等操作。具体介绍可以参见前面虚拟机控制器400和宿主机集群200中的相关描述,此处不再赘述。
从以上本发明的各实施例可以看出,相对现有技术中在创建虚拟机时就已确定并运行了虚拟机的角色,本发明的虚拟机和虚拟机角色是相互独立、分离的,通过虚拟机控制器等部件以及整个系统架构,将角色和虚拟机解耦,再通过虚拟机控制器和虚拟机维护器的共同配合,随时根据需要将角色和虚拟机结合或者变更虚拟机的角色,进而,当需要根据样本数量的变化而增加、减少某个角色的虚拟机,或者变更某虚拟机的角色时,只需要通过虚拟机维护器将该信息告知虚拟机控制器,然后虚拟机控制器据此告知相关虚拟机去下载相应的新角色包,从而使虚拟机能够很容易下载、运行所需的新角色,而不是像现有技术那样需要重新创建某个角色的虚拟机,由此可见,本发明实施例提供的技术方案,无论在时间、还是数据处理量上,控制虚拟机角色改变、新增的成本都大大降低,提高了虚拟机角色控制的效率,增加了灵活性。更进一步,虚拟机控制器根据虚拟机维护器提供的存活时间和重启间隔,可以简单、快捷的操作虚拟机的重启等操作,进一步提高了虚拟机控制系统运行的效率。更进一步的,由于新增某个角色的虚拟机或虚拟机角色变更的成本较低,因此可以在多台宿主机上部署同一角色的虚拟机,进而及时部分宿主机或者某些宿主机的部分虚拟机出现异常,也能保证这种角色服务的可用性。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式
的权利要求书由此明确地并入该具体实施方式
,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的虚拟机控制系统、虚拟机控制器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
权利要求
1.一种虚拟机控制系统,包括: 虚拟机角色包存储器,被配置为存储虚拟机所需的各种角色包; 虚拟机维护器,被配置为对各种虚拟机角色包的操作信息、虚拟机的角色分配信息进行维护,以及将所述角色的相关信息提供给虚拟机控制器; 虚拟机控制器,被配置为至少从宿主机获得虚拟机的操作资源定位信息,并从所述虚拟机维护器获得角色的相关信息,据此为虚拟机提供角色查询,以及据此操作虚拟机;若干宿主机,被配置为运行若干虚拟机,在虚拟机控制器的指示下,从虚拟机角色包存储器下载所需的角色包完成虚拟机的角色安装以及进行相关的虚拟机操作。
2.如权利要求1所述的系统,所述虚拟机控制器从宿主机获得的虚拟机的操作资源定位信息至少包括:虚拟机的网际协议IP地址和虚拟机所属宿主机的标识信息。
3.如权利要求1或2所述的系统,所述虚拟机维护器包括: 操作信息模块,被配置为对各种虚拟机角色包的操作信息进行更新、维护,所述虚拟机角色包的操作信息至少包括虚拟机角色名、虚拟机角色包的下载网络链接、存活时间和/或重启间隔; 分配信息模块,被配置为对虚拟机分配所需的角色,维护虚拟机与角色之间的对应关系; 第一接口模块,被配置为与所述虚拟机控制器进行信息交互,至少将所述操作信息模块和分配信息模块提供的角色的相关信息传输给虚拟机控制器。
4.如权利要求3所述的系统,所述分配信息模块还被配置为维护虚拟机的上线、下线状态的改变以及虚拟机重启,并通过所述第一接口模块传输给所述虚拟机控制器。
5.如权利要求3所述的系统,所述虚拟机维护器还包括: 监控模块,被配置为从所述虚拟机控制器获得虚拟机的相关信息,对虚拟机的运行状况和/或分布状态进行监控。
6.如权利要求5所述的系统,所述虚拟机维护器还包括: 分析告警模块,被配置为从所述虚拟机控制器获得节点日志,对其进行分析,若发现异常情况,进行告警提示。
7.如权利要求1至5中任一项所述的系统,所述虚拟机控制器包括: 第二接口模块,被配置为从宿主机获得虚拟机的操作资源定位信息,以及从所述虚拟机维护器获得虚拟机的角色分配信息和虚拟机角色包的操作信息; 查询模块,被配置为根据虚拟机的角色分配信息和虚拟机角色包的操作信息,为虚拟机查询为其分配的角色、对应的虚拟机角色包的下载网络链接以及相关技术参数,供虚拟机完成角色的安装和运行; 操作模块,被配置为通过虚拟机的操作资源定位信息定位到需要操作的虚拟机,按照角色包的操作信息向该虚拟机所属的宿主机发送操作指示,至少指示所述宿主机对该虚拟机进行开机、关机和/或重启操作。
8.如权利要求7所述的系统,所述相关技术参数至少包括角色包的解压参数和启动参数。
9.如权利要求7或8所述的系统,所述宿主机具体被配置为接收到所述虚拟机控制器的操作指示后,按照该操作指示对其上运行的指定虚拟机执行开机、关机和/或重启操作。
10.一种用于虚拟机系统的虚拟机控制器,所述虚拟机系统包括若干宿主机,每一宿主机上运行若干虚拟机,所述控制器包括: 接口模块,被配置为从宿主机获得虚拟机的操作资源定位信息,以及获得虚拟机的角色分配信息和角色包的操作信息; 查询模块,被配置为根据虚拟机的角色分配信息和虚拟机角色包的操作信息,为虚拟机查询为其分配的角色、对应的虚拟机角色包的下载网络链接以及相关技术参数,供虚拟机完成角色的安装和运行; 操作模块,被配置为通过虚拟机的操作资源定位信息定位到需要操作的虚拟机,根据角色包的操作信息向该虚拟机所属的宿主机发送指示信息,至少指示所述宿主机对该虚拟机进行开机、关机和/或重启操作。
11.一种用于虚拟机系统的控制方法,所述虚拟机系统包括若干宿主机,每一宿主机上运行若干虚拟机,包括: 从宿主机获得虚拟机的操作资源定位信息,以及获得虚拟机的角色分配信息和虚拟机角色包的操作信息; 根据所述虚拟机的角色分配信息和虚拟机角色包的操作信息,为虚拟机查询为其分配的角色、对应的虚拟机角色包的下载网络链接以及相关技术参数,供虚拟机完成角色的安装和运行; 通过所述虚拟机的操作资源定位信息定位到需要操作的虚拟机,根据虚拟机角色包的操作信息向该虚拟机所属的宿主机发送指示信息,至少指示所述宿主机对该虚拟机进行开机、关机和/或重启操作。
12.如权利要求11所述的方法,所述`从宿主机获得的虚拟机的操作资源定位信息至少包括:虚拟机的网际协议IP地址和虚拟机所属宿主机的标识信息。
13.如权利要求11所述的方法,所述获得的角色分配信息至少包括虚拟机与为其分配的角色之间的对应关系,所述角色包的操作信息至少包括:角色包、角色包的下载网络链接、存活时间和/或重启间隔。
全文摘要
本发明公开了一种虚拟机控制系统、虚拟机控制器及控制方法,其中,该系统包括虚拟机角色包存储器,被配置为存储虚拟机所需的各种角色包;虚拟机维护器,被配置为对各种虚拟机角色包的操作信息、虚拟机的角色分配信息进行维护,以及将所述角色的相关信息提供给虚拟机控制器;虚拟机控制器,被配置为至少从宿主机获得虚拟机的操作资源定位信息,并从所述虚拟机维护器获得角色的相关信息,据此为虚拟机提供角色查询,以及据此操作虚拟机;若干宿主机,被配置为运行若干虚拟机,在虚拟机控制器的指示下,从虚拟机角色包存储器下载所需的角色包完成虚拟机的角色安装以及进行相关的虚拟机操作。
文档编号G06F9/46GK103150203SQ201310109159
公开日2013年6月12日 申请日期2013年3月29日 优先权日2013年3月29日
发明者卢加磊, 田从新, 张彦功 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1