云系统中的虚拟机启动控制方法

文档序号:7863047阅读:231来源:国知局
专利名称:云系统中的虚拟机启动控制方法
技术领域
本发明涉及云计算领域,尤其涉及到一种云系统中的虚拟机启动控制方法。
背景技术
云计算是传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统。云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。企业只需定制相应的服务,由云服务商或云端提供需要的基础架构、服务、软硬件资源等,可以节约成本,企业不用投资购买昂贵的硬件设备,不需要负担频繁的维护与升级工作,而且不需要建立自己的数据中心、大型机房和服务器中心等,能够减少硬软件的运行维护费用。
在云系统中,一般包含云控制服务器、集群控制器以及节点控制器。在云控制服务器的下面有至少一个集群控制器,在集群控制器下面有至少一个节点控制器。云控制服务器用于接收用户请求,根据预设的策略选择指定的节点控制器,并向指定的节点控制器转发信息,并且负责云系统资源的存储、调度和管理。集群控制器用于对其下面的节点控制器进行管理,转发云控制服务器的信息,并对本集群内的 资源进行调度和管理。节点控制器用于负责对本机上的虚拟机进行管理和监控,包括虚拟机的创建、启动、关闭以及删除。节点控制器上建有虚拟机数据表,记录有虚拟机名字、状态、校验信息以及虚拟机所属用户等信肩、O
在云系统的实际运行中,由于系统故障、断电以及云系统遭到非法入侵等因素,云系统故障或供电恢复后自动重启,在云系统重启后,如何快速恢复断电前或故障前节点控制器中运行状态的虚拟机的正常工作是一个必须要解决的问题。由于云系统重启前,若节点控制器中虚拟机数据表的状态为运行,重启后,虚拟机数据表的状态没有更新,虚拟机状态仍为运行,然而该虚拟机在节点控制器中的实际状态却是关闭,为解决这个问题,现有技术主要通过管理员手动管理,查询这些虚拟机的状态,找出管理控制台中显示为运行,而在实际节点控制器中为关闭的虚拟机,点击关闭虚拟机,修改虚拟机数据表中的虚拟机状态为关闭,再点击启动,恢复虚拟机的正常运行,以上过程,即通常所述的对虚拟机进行手动认领管理。
现有技术的缺点是1)不能自动重新启动节点控制器中的在故障前为运行状态的虚拟机,而是只能依赖管理员的手动操作来管理,而云系统发生故障、断电或遭到网络攻击的时间不确定,由此增加了云系统用户的等待时间,严重时会影响企业的运作;2)虚拟机启动的安全性没有得到验证,例如非法用户通过网络攻击,修改了虚拟机权限用户,从而导致云系统重启后可能会出现未注册用户使用虚拟机或者启动的是非法的虚拟机的情况,或者云系统断电后,虚拟机的镜像文件遭到破坏等,管理员手动重启虚拟机后,会导致云系统重启后虚拟机不能正常运行而造成系统异常。发明内容3
为了解决上述技术问题,本发明的目的在于提出一种云系统中的虚拟机启动控制方法,能够在云系统重启后,自动恢复云系统故障或断电前为运行状态的虚拟机的正常工作,并对虚拟机启动的安全性进行检查,确保启动的虚拟机是云系统已注册的权限用户在云系统重启前正常启动的。
本发明实施例提供的一种云系统中的虚拟机启动控制方法,包括A、节点控制器初始化后,查看本节点控制器上的虚拟机数据表,选择虚拟机数据表中状态为运行的虚拟机进行启动控制处理;B、节点控制器检查所述虚拟机对应的镜像文件以及启动调用文件是否存在,所述镜像文件包括基准镜像和增量镜像;且在所述镜像文件存在时,对所述虚拟机对应的基准镜像进行合法性校验;若所述镜像文件、所述启动调用文件存在并且所述基准镜像合法则继续执行步骤C,否则节点控制器将虚拟机数据表中的虚拟机状态置为关闭;C、节点控制器读取虚拟机数据表中虚拟机所属用户的用户名,发送给云安全认证服务器进行验证,判断所 属用户是否为云系统合法注册用户,若是,执行步骤D,否则将虚拟机数据表中的虚拟机状态置为关闭;D、节点控制器读取虚拟机所属用户的用户名以及虚拟机名称,发送给管理控制台进行验证,判断云系统重启前所述用户是否运行了所述虚拟机,若是,节点控制器调用所述启动调用文件,通过应用程序编程接口启动所述虚拟机,若否,节点控制器将虚拟机数据表中的虚拟机状态置为关闭。
实施本发明实施例,具有如下有益效果当云系统重启后,节点控制器自行对虚拟机数据表中状态为运行而实际状态为关闭的虚拟机进行启动控制处理,只有当该虚拟机的镜像文件和对应的启动调用文件存在、基准镜像合法,并且在验证了该虚拟机是云系统合法注册用户在云系统重启前运行的虚拟机的情况下才重新启动该虚拟机,否则在虚拟机数据表中将该虚拟机的状态置为关闭,无需云系统管理员的手动管理且满足云系统安全要求。


图I是本发明提供的云系统中的虚拟机启动控制方法的一个实施例的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的云系统中的虚拟机启动控制方法的一个实施例的流程图。
本发明实施例提供的一种云系统中的虚拟机启动控制方法,包括A、节点控制器初始化后,查看本节点控制器上的虚拟机数据表,选择虚拟机数据表中记录状态为运行的虚拟机进行启动控制处理。
具体的,参见图I中的步骤S101-S104 SlOl、节点控制器初始化。
云系统断电恢复或者系统故障重启后,节点控制器初始化相关参数,分配所需的网络端口,挂载共享存储服务器的共享目录,准备对本节点上的虚拟机进行启动控制处理。
S102、节点控制器选择虚拟机数据表中的一个虚拟机进行启动控制处理。
节点控制器建有虚拟机数据表,虚拟机数据表记录了节点控制器中所有虚拟机的名称、虚拟机配置信息、虚拟机的状态、虚拟机所挂载基准镜像的校验信息以及虚拟机所属用户。其中虚拟机的名称和配置信息(包括虚拟CPU核数、内存大小、硬盘大小等)由创建虚拟机的用户指定,虚拟机的状态包括创建、运行、关闭、挂起,虚拟机所挂载基准镜像的校验信息为虚拟机在创建的时候,采用哈希函数对基准镜像生成的信息校验值。
S103、节点控制器判断所选择的虚拟机在虚拟机数据表中的虚拟机记录状态是否为运行。
节点控制器查看虚拟机数据表,依次对其中的虚拟机进行处理,当虚拟机数据表中的记录状态为非运行状态,如虚拟机的记录记录状态为关闭,则判定虚拟机在云系统重启前是正常关闭的,不对其进行处理,从虚拟机数据表中选择另一个虚拟机进行启动控制处理。 若虚拟机数据表中的记录状态为运行,则需要节点控制器对虚拟机进行自动认领管理。
进一步的,在步骤A之后,对所述虚拟机在节点控制器上的实际状态进行检测,若虚拟机的实际状态为运行,节点控制器选择虚拟机数据表中状态为运行的另一个虚拟机进行启动控制处理,若否,则执行步骤B。具体的,对虚拟机的实际状态进行检测,参见图I :5104、节点控制器检测虚拟机的实际状态是否为运行。
本实施例中虚拟机为基于内核虚拟机(Kvm, Kernel-based Virtual Machine,基于内核虚拟机),当虚拟机数据表中的虚拟机记录状态为运行时,在检测虚拟机的实际状态时,节点控制器调用Iibvirt函数库,通过open函数建立起和虚拟机对应的虚拟机连接对象,再根据虚拟机的名称,通过Iookupbyname函数查找该虚拟机,如果返回值为空,虚拟机没有实际运行,如果虚拟机返回虚拟机连接对象信息,则虚拟机实际运行,节点控制器选择新的虚拟机进行操作。执行此步骤可以防止对虚拟机的重复认领,减轻节点控制器的工作量。
B、节点控制器检查所述虚拟机对应的镜像文件以及启动调用文件是否存在,所述镜像文件包括基准镜像和增量镜像;且在所述镜像文件存在时,对所述虚拟机对应的基准镜像进行合法性校验;若所述镜像文件、所述启动调用文件存在并且所述基准镜像合法则继续执行步骤C,否则节点控制器将虚拟机数据表中的虚拟机状态置为关闭;具体的,参见图I :5105、节点控制器检查虚拟机的镜像文件是否存在。
镜像文件包括基准镜像和增量镜像,当镜像文件不存在,节点控制器将虚拟机数据表中的虚拟机记录状态置为关闭。
S106、节点控制器验证基准镜像的MD5值是否与虚拟机数据表中的基准镜像的 MD5值相等。
在本实施例中,虚拟机数据表中的基准镜像校验值可以是采用哈希函数生成的 MD5 (MD5, Message-Digest Algorithm 5,信息-摘要算法5)值,当然,基于客户的安全需5求,上述基准镜像校验值也可以是采用其他信息-摘要算法生成的校验值。
节点控制器利用哈希函数生成虚拟机对应基准镜像的MD5值;节点控制器将所述生成的MD5值与虚拟机数据表中记录的虚拟机基准镜像MD5值进行对比,若两者一致,则判定基准镜像合法,否则判定基准镜像不合法,基准镜像遭到破坏或修改。
S107、节点控制器检查虚拟机对应的xml (Extensible Markup Language,可扩展标记语言)文件是否存在。
进一步的,本实施例中的虚拟机为基于内核虚拟机(kvm虚拟机),启动调用文件为可扩展标记语言文件,可扩展标记语言文件与节点控制器中的虚拟机一一对应,记录所述虚拟机相关的配置信息,供节点控制器调用以启动所述虚拟机,在用户创建虚拟机的时候, 节点控制器为虚拟机生成一个对应的xml文件,只有在管理员或授权用户删除虚拟机的时候,该xml文件才一并删除。以下是xml文件的一个实例<domain type=〃kvm〃>//虚拟机的采用kvm虚拟机//<name>696248</name>// 虚拟机名字 696248//<uuid>c9elle78-9fdb-llel-a3e6-485b39432fcf</uuid> // 虚拟机的 uuid,用来在虚拟化平台中唯一标示一个虚拟机Il<memory>262144</memory) // 虚拟的最大内存 262144 字节 // <currentMemory>262144</currentMemory> // 虚拟机的当前内存 262144 字节 // <vcpu>l</vcpu> Il虚拟机的虚拟CPU为I个//<os>〈type arch=〃x86_64〃 machine=〃pc_0· 12〃>hvm〈/type> //虚拟机的 CPU 体系架构、 版本和虚拟化类型(hvm:代表全虚拟化)//〈boot dev=〃hd〃 /> //虚拟机对应的磁盘设备类型//</os>〈features〉〈acpi />〈apic /><pae />〈/features〉〈clock offset=〃localtime〃 /> //<on_reboot>restart</on_reboot> /丨 <on_crash>restart</on_crash> //〈devices〉<emulator>/usr/bin/kvm</emulator)〈disk device=〃disk〃 type=〃file〃><driver name=//qemu// type=//qcow2// /采用的时间//虚拟机支持的操作//虚拟机支持的操作////kvm进程存在的目录//> Il虚拟机对应的镜像格式径〈source file="/home/cloud/vebula/mounts/vms/696248〃 /> // 虚拟机对应的路/〈target bus=〃ide〃 dev=〃hda〃 /> //虚拟机磁盘对应的总线类型//</disk>〈disk device="cdrom〃 type="file"> // 虚拟机对应的 CDROM//〈target bus=〃ide〃 dev=〃hdc〃 /></disk>〈interface type=〃bridge〃> //虚拟机的上网模式桥接//〈mac address="0A:EE:EE:69:62:48〃 /> //虚拟网卡地址//〈source bridge=〃brO〃 /> // 虚拟机网卡的名字//</interfaceXconsole type=〃pty〃> //虚拟机对应的控制台类型//〈target Port=V /></console)〈input bus=〃ps2〃 type=〃mouse〃 /> // 虚拟机对应的鼠标类型// <graphics autoport=//yes// keymap=//en-us// port="-]/' type=//vnc// /> // 虚拟机支持vnc连接//<video>〈model heads=〃l〃 type=〃cirrus〃 vram=〃9216〃 /> //虚拟机对应的声卡配置// </video></devices)C、节点控制器读取虚拟机数据表中虚拟机所属用户的用户名,发送给云安全认证服务器进行验证,判断所属用户是否为云系统合法注册用户,若是,执行步骤D,否则将虚拟机数据表中的虚拟机状态置为关闭。
具体的,参见图I中S108,云安全认证服务器主要提供云系统中用户注册、管理以及用户密钥管理的功能,云安全认证服务器包括用户存储模块,用户存储模块用于记录云系统合法注册用户的用户名。云安全认证服务器根据节点控制器发送的虚拟机数据表中的用户名,对用户的合法性进行验证,若用户未注册,安全认证服务器向节点控制器返回用户非法信息,节点控制器将虚拟机数据表中的虚拟机记录状态置为关闭。本实施例通过安全认证服务器,对用户名进行验证,可以防止云系统中未注册用户启动虚拟机,避免了网络攻击而修改了虚拟机使用权限的情况,保证虚拟机重启的安全性。
D、节点控制器读取虚拟机所属用户的用户名以及虚拟机名称,发送给管理控制台进行验证,判断云系统重启前所述用户是否运行了所述虚拟机,若是,节点控制器调用所述启动调用文件,通过应用程序编程接口启动所述虚拟机,若否,节点控制器将虚拟机数据表中的虚拟机状态置为关闭。
具体的,参见图I中S109,在判定用户为云系统合法注册用户后,需要对虚拟机是否合法进行验证,即需要验证该虚拟机是否属于该用户,并且该虚拟机的状态是否在云系统重启前为运行状态。节点控制器读取虚拟机数据表中的用户名和虚拟机名,发送给管理控制台,管理控制台包括虚拟机信息存储区,记录了云系统用户的虚拟机以及所述虚拟机对应的状态,当确定虚拟机属于该用户,并且虚拟机状态为运行,则管理控制台向节点控制器发送虚拟机合法的信息,节点控制器收到该信息后,调用虚拟机对应的xml文件,通过 API (API, Application Programming Interface,应用程序编程接口)启动虚拟机,否则节点控制器将虚拟机数据表中的虚拟机记录状态置为关闭。在云安全认证服务器认证用户合法的安全性情况下,节点控制器中虚拟机数据表中和管理控制台中虚拟机状态都为运行时,就有很高的可信度认为虚拟机在云系统重启前为运行,增加了网络攻击修改虚拟机状态的难度和成本,提高云系统的安全性。对虚拟机进行验证,确保重启的虚拟机是用户在云系统重启前运行的合法虚拟机。
节点控制器依照虚拟机数据表对其中所有的虚拟机进行处理,直至全部虚拟机按照上文的步骤处理完毕,节点控制器启动完毕,常驻运行。管理控制台包括通信端口以及虚拟机信息存储区,通信端口在云系统中节点控制器启动进程完成后,实时获取节点控制器中虚拟机数据表中的虚拟机信息,并记录在所述虚拟机信息存储区中。
实施本发明实施例,具有如下有益效果当云系统重启后,节点控制器自行对虚拟机数据表中状态为运行而实际状态为关闭的虚拟机进行启动控制处理,只有当该虚拟机的镜像文件和对应的启动调用文件存在、基准镜像合法,并且在验证了该虚拟机是云系统合法注册用户在云系统重启前运行的虚拟机的情况下才重新启动该虚拟机,否则在虚拟机数据表中将该虚拟机的状态置为关闭,无需云系统管理员的手动管理且满足云系统安全要求。
本领域普通技术人员可以理解实现上述实施例方法的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序是可以存储于一计算机可读存储介质中,所述的存储介质如R0M/RAM、磁碟、光盘等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变形,这些改进和变形也视为本发明的保护范围。
权利要求
1.一种云系统中的虚拟机启动控制方法,其特征在于,包括A、节点控制器初始化后,查看本节点控制器上的虚拟机数据表,选择虚拟机数据表中状态为运行的虚拟机进行启动控制处理;B、节点控制器检查所述虚拟机对应的镜像文件以及启动调用文件是否存在,所述镜像文件包括基准镜像和增量镜像;且在所述镜像文件存在时,对所述虚拟机对应的基准镜像进行合法性校验;若所述镜像文件、所述启动调用文件存在并且所述基准镜像合法则继续执行步骤C,否则节点控制器将虚拟机数据表中的虚拟机状态置为关闭;C、节点控制器读取虚拟机数据表中虚拟机所属用户的用户名,发送给云安全认证服务器进行验证,判断所属用户是否为云系统合法注册用户,若是,执行步骤D,否则将虚拟机数据表中的虚拟机状态置为关闭;D、节点控制器读取虚拟机所属用户的用户名以及虚拟机名称,发送给管理控制台进行验证,判断云系统重启前所述用户是否运行了所述虚拟机,若是,节点控制器调用所述启动调用文件,通过应用程序编程接口启动所述虚拟机,若否,节点控制器将虚拟机数据表中的虚拟机状态置为关闭。
2.如权利要求I所述的云系统中的虚拟机启动控制方法,其特征在于,所述虚拟机为基于内核虚拟机,所述启动调用文件为可扩展标记语言文件,所述可扩展标记语言文件与节点控制器中的虚拟机一一对应,记录所述虚拟机相关的配置信息。
3.如权利要求I或2所述的云系统中的虚拟机启动控制方法,其特征在于,在所述步骤 A之后还包括对所述虚拟机在节点控制器上的实际状态进行检测,若所述虚拟机的实际状态为运行,所述节点控制器选择虚拟机数据表中状态为运行的另一个虚拟机进行启动控制处理, 若否则执行步骤B。
4.如权利要求I所述的云系统中的虚拟机启动控制方法,其特征在于,在所述步骤B 中,所述对基准镜像进行合法性校验,包括节点控制器利用哈希函数生成所述虚拟机对应基准镜像的MD5值;节点控制器将所述生成的MD5值与虚拟机数据表中记录的所述虚拟机的基准镜像MD5 值进行对比,若两者一致,则判定基准镜像合法,否则判定基准镜像不合法。
5.如权利要求I所述的云系统中的虚拟机启动控制方法,其特征在于,所述云安全认证服务器包括用户存储模块;所述用户存储模块用于记录云系统合法注册用户的用户名。
6.如权利要求I所述的云系统中的虚拟机启动控制方法,其特征在于,所述管理控制台包括通信端口以及虚拟机信息存储区;所述通信端口在云系统中节点控制器启动进程完成后,实时获取节点控制器中虚拟机数据表中的虚拟机信息,并将所述虚拟机信息记录在所述虚拟机信息存储区中。
全文摘要
本发明公开了一种云系统中的虚拟机启动控制方法,包括A、节点控制器选择虚拟机数据表中状态为运行的虚拟机;B、节点控制器检查镜像文件及启动调用文件是否存在,对基准镜像进行合法性校验;若镜像文件、启动调用文件存在且基准镜像合法则执行C,否则将虚拟机状态置为关闭;C、节点控制器读取用户名,发送云安全认证服务器进行验证,判断用户是否为合法注册用户,若是,执行D,否则将虚拟机状态置为关闭;D、节点控制器读取用户名及虚拟机名称,发送管理控制台进行验证,判断云系统重启前用户是否运行了虚拟机,若是,启动虚拟机,若否,将虚拟机状态置为关闭。实施本发明实施例云系统重启后能自动恢复虚拟机的工作并满足云系统安全要求。
文档编号H04L29/08GK102917046SQ20121039442
公开日2013年2月6日 申请日期2012年10月17日 优先权日2012年10月17日
发明者吴文青, 张 浩, 陈浩 申请人:广州杰赛科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1