虚拟机的分配方法

xiaoxiao2020-7-23  5

专利名称:虚拟机的分配方法
技术领域
本发明涉及一种虚拟机(virtual machine, VM)的分配方法,特别是用以在多个主机中运行至少一虚拟机的虚拟机的分配方法。
背景技术
虚拟机(virtual machine, VM)是将一个或多个处理器、内存或是储存装置等实体资源集合起来成为一个服务器系统后,在实体资源上被建立的虚拟平台。虚拟机也可以被视为在实体资源的计算机平台和客户端的使用者的间建立一种环境,且虚拟机也可像具有实体的普通的计算机一样有自己的作业系统(Operating System, OS)以及应用程序(application)。一般服务器系统包括多个具有实体资源的主机(host),且每个主机都能同时能运行至少一个虚拟机,再将虚拟机提供给客户端使用。当客户端需要一个新的虚拟机时,服务器系统需要创建一个新的虚拟基并由某一个主机运行。新创建的虚拟机势必会对被配置的主机造成新的负担,并消耗被配置的主机的实体资源,因此如何在服务器系统中适当地配置虚拟机是一个重要的课题。传统上在将虚拟机分配到各主机时,选择剩余的内存最多或是储存空间最多的主机来运行新的虚拟机。但是传统的配置方法只考量虚拟机创建当时的情况,会有后续运作情况与创建时不符而使的虚拟机无法继续运作的问题。

发明内容
为了解决上述问题,本发明的目的在于提供一种虚拟机(virtual machine, VM)的分配方法,其用以在不同的主机(host)中运行至少一虚拟机。虚拟机的分配方法包括:接收一虚拟机建立指令,其中虚拟机建立指令包括一指定样版,指定样板对应至少一建立需求资源以及至少一样版运行需求信息;获得每一个主机的至少一目前剩余资源以及至少一主机运行信息;将一个目前剩余资源大于或等于建立需求资源且主机运行信息符合样板运行需求信息的主机设为一目标主机;以及由目标主机运行虚拟机。目前剩余资源可以是每一个主机目前剩余的处理器核数、内存空间或硬盘空间,建立需求资源可以是配置虚拟机时所需的处理器核数(core)、内存空间或硬盘空间,且目前剩余资源对应于建立需求资源。而主机运行信息可以是每一个主机运行时的磁碟传输频宽(disk 1/0bandwidth)的最小值或是网络传输频宽(network bandwidth)的最小值,样版运行需求信息可以是虚拟机运行时所需的磁碟传输频宽的最大值或是网络传输频宽的最大值,且主机运行信息对应于样版运行需求信息。其中主机运行信息可以是统计这些主机在全生命周期中的运行状况得到,样板运行需求信息则可以是统计此统计指定样板于至少一个主机上实体化后,在全生命周期中的运行状况得到。根据一实施范例,“将一个目前剩余资源大于或等于建立需求资源且主机运行信息符合该样板运行需求信息的主机设为目标主机”的步骤可包括:将具有大于或等于建立需求资源的目前剩余资源的至少一个主机纪录为一候选清单;对于候选清单中的这些主机,将主机运行信息小于样板运行需求信息的至少一个主机从候选清单中去除;以及将候选清单中剩余的这些主机之一设为目标主机。其中“将候选清单中剩余的这些主机之一设为目标主机”的步骤包括:依据候选清单中剩余的这些主机的目前剩余资源的大小将候选清单中剩余的这些主机排序;以及将候选清单中剩余且具有最大的目前剩余资源的主机设为目标主机。综上所述,虚拟机的分配方法获得主机运行信息以及样板运行需求信息,并依据主机运行信息以及样板运行需求信息分配新的虚拟机到适合的主机上。因此能够确保新的虚拟机以及被分配到的主机在整个全生命周期中都能够顺利运作,而不会有资源不足的问题。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为一实施范例的主机示意图;图2为一实施范例的虚拟机的分配方法的流程图;图3为一实施范例的步骤S140的流程图。其中,附图标记10服务器系统12A、12B、12C 主机14A、14B、14C、14D、14E 虚拟机20客户端
具体实施例方式以下在实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何本领域技术人员了解本发明的技术内容并据以实施,且根据本说明书所揭露的内容、权利要求范围及附图,任何本领域技术人员可轻易地理解本发明相关的目的及优点。本发明提供一种虚拟机(virtual machine, VM)的分配方法,其用以在不同的多个主机(host)中运行至少一虚拟机。请先参照图1,其为一实施范例的主机示意图。一服务器系统10可包括多个实体的主机12A、12B以及12C(以下统称为主机12),以将运行于主机12的多个虚拟机14A-14E(以下统称为虚拟机14)提供给多个客户端20。服务器系统10可以是一个云端系统(cloud system),通过虚拟机14提供云端运算(cloud computing)或是云端储存(cloudstorage)等服务给客户端20。举例而言,服务器系统10可以是一个存储区域网络(StorageArea Network, SAN),供客户端20通过因特网(Internet)连接到虚拟机14,以存取储存于主机12的中的数据。每个主机12可具有各自的中央处理器(Central Processing Unit, CPU)、内存(memory)以及磁碟等硬件资源,且服务器系统10可以将至少一主机12中的多个磁碟组成磁碟阵列(redundant array of inexpensive disk, RAID)。此外,其中一个主机 12 可作为一管理主机并运行一管理软体,管理主机利用管理软体以管理整个服务器系统10中的所有主机12。管理主机可执行下述虚拟机的分配方法,以依据客户端20的需求以及主机12的硬件资源,在至少一个主机12中运行至少一个虚拟机14来服务客户端20。虽然以下实施范例的中仅提供一个虚拟机14给一个客户端20,但是服务器系统10也可同时提供多个虚拟机14给单一个客户端20。由于客户端20所需的虚拟机14具有相当程度的相似性,因此服务器系统10的管理者可以针对典型应用设定多个虚拟机样板(Template)。而虚拟机样板中包括将其实例化(instance)成为虚拟机14时可运行的作业系统(operating system,OS)和各种应用程序(application)。当需要创建新的虚拟机14时,管理主机可选择适当的虚拟机样板,再据以在某个主机12上运行此虚拟机样版的实例作为新的虚拟机14。请参考图2,其为一实施范例的虚拟机的分配方法的流程图。首先管理主机接收来自客户端20的一虚拟机建立指令,其中虚拟机建立指令包括一指定样版(步骤S100)。指定样板是虚拟机样板的其中之一,且每个虚拟机样板都设有至少一建立需求资源以及至少一样板运行需求信息,因此管理主机可以得知指定样板所对应的建立需求资源以及样版运行需求信息。管理主机并可通过轮询(polling)或是要求所有主机12定时回报的方式,获得每一个主机12的至少一目前剩余资源以及至少一主机运行信息(步骤S120)。其中目前剩余资源可以是每一个主机12目前剩余的处理器核数、内存空间或硬盘空间,然不以此为限。运行中的虚拟机14会占用主机12的部分硬件资源,而且可能各个主机12上运行虚拟机14的状况都不一样,因此各个主机目前剩余的硬件资源也可能都不相同。类似地,建立需求资源可以是将指定样板配置(也就是实例化)在主机12上时所需的处理器核数、内存空间或硬盘空间;且建立需求资源可以是经过统计分析得到的预估值。根据另一实施范例,也可将各主机12的网卡(network interface card, NIC)的网卡配置(configuration)作为目前剩余资源,并将指定样版所需的网卡配置作为建立需求资源。主机运行信息则可以是每一个主机12运行时的磁碟传输频宽(disk 1/0bandwidth)的最小值或是网络传输频宽(network bandwidth)的最小值。样版运行需求信息则代表指定样板被配置在主机12上之后,新的虚拟机14运行时所需的磁碟传输频宽的最大值或是网络传输频宽的最大值。主机运行信息是可以是统计所有主机12在全生命周期(Full Life Cycle)中的运行状况得到;样板运行需求信息则可以是统计此统计指定样板于主机12上实体化后,在全生命周期中的运行状况得到。其中全生命周期可以是完整24小时,或是一段指定的时间。更详细地说,每个主机12可运行一监控程序,监控程序可以持续监控主机12的磁碟传输频宽或网络传输频宽。监控程序可以监控并统计磁碟传输频宽或网络传输频宽的变化并回报给管理主机,管理主机或监控程序再据以预估不同虚拟机样板在运作时可能所需得磁碟传输频宽或网络传输频宽。此外,获得的目前剩余资源对应于建立需求资源,主机运行信息对应于样版运行需求信息。更详细地说,于步骤S120中,管理主机可依据指定样板对应的建立需求资源以及样板运行需求信息的项目去向各个主机12要求目前剩余资源以及主机运行信息。例如当指定样板对应的建立需求资源的项目为内存空间时,管理主机可询问各主机12目前剩余的内存空间作为目前剩余资源。接着管理主机将一个目前剩余资源大于或等于建立需求资源且主机运行信息符合样板运行需求信息的主机12设为一目标主机(步骤S140),再由目标主机以指定样板运行一个新的虚拟机14(步骤S160)。换句话说,除了目前剩余资源之外,管理主机另外参考统计与预估得到的主机运行信息以及样板运行需求信息来决定要将新的虚拟机14分配在哪一个主机12。其中步骤S140的详细实施步骤请参照图3,其为一实施范例的步骤S140的流程图。管理主机可先将具有大于或等于建立需求资源的目前剩余资源的至少一个主机12记录为候选清单(步骤S142)。对于候选清单中的这些主机12,接着将主机运行信息小于样板运行需求信息的至少一个主机12从候选清单中去除(步骤S144)。最后管理主机再将该选清单中剩余的主机12之一设为目标主机(步骤S146)。根据一实施范例,于步骤S46可包括:依据候选清单中剩余的主机12的目前剩余资源的大小,将候选清单中剩余的主机12排序;以及将候选清单中剩余且具有最大的目前剩余资源的主机12设为该目标主机。然而根据另一实施范例,在步骤S146可依据主机运行信息的大小进行排序,并选择具有最大的主机运行信息的主机12作为目标主机。以下以图1的实施范例为例进行说明。假设主机12A运行一个以第一样板实体化的虚拟机14A ;主机12B运行一个以第一样板实体化的虚拟机14B以及一个以第二样板实体化的虚拟机14C ;主机12C运行两个以第二样板实体化的虚拟机14D以及14E ;且指定样板为第一样板。并假设主机12A、12B以及12C原始的中央处理器的处理器核心数为4,内存的内存空间为16GB,磁碟的磁碟空间为20TB ;第一样板对应的建立需求资源是大小2GB的内存空间;第二样板对应的建立需求资源是大小为4GB的内存空间。则在步骤S120时,管理主机可以得知指定样版的建立需求资源为2GB的内存空间以;且可得知第一主机12A、12B以及12C的目前剩余资源分别为大小为14GB、10GB以及8GB的内存空间。此外,主机12A的监控程序可能统计得到主机12A在平日早上9点到晚上6点之间的工作时段消耗了 70%的网络传输频宽;主机12B在工作时段消耗了 75%的网络传输频宽;主机12C在工作时段消耗了 10%的网络传输频宽。但主机12A在非工作时段仅消耗了2%的网络传输频宽;主机12B以及12C在非工作时段仅消耗了 4%的网络传输频宽。因此管理程序可以得知第一样版以及第二样版的主机运行信息分别为70%以及5%的网络传输频宽。且在步骤S120时,管理主机可以得知主机12A、12B以及12C的主机运行信息分别为30%、25%以及90%的网络传输频宽。由于主机12A、12B以及12C目前剩余的内存空间都大于第一样版所需的2GB,因此主机12A、12B以及12C都被纪录为候选清单。但是主机12A以及12B在工作时段时剩余的网络传输频宽分别仅为30%以及25%,而小于第一样版预估会在工作时段时消耗掉的70%,因此主机12A以及12B自候选清单中被去除。剩下的主机12C的目前剩余资源大于第一样版的建立需求资源,且主机运行信息也符合样板运行需求信息,因此主机12C被作为目标主机并实例化第一样板。
综上所述,虚拟机的分配方法可统计所有主机在全生命周期中的运作情形,用以记录为为主机运行信息并利用统计的方法预估每一个虚拟机样板被实例化后的运作情形作为样板运行需求信息。虚拟机的分配方法除了依据创建新的虚拟机当时各主机的目前剩余资源以及指定样板的建立需求资源之外,另考量主机运行信息以及样板运行需求信息才进行分配,因此能够避免主机在创建与运行新的虚拟机时所需资源差异太大的情形。且主机运行信息以及样板运行需求信息能够随着每一个全生命周期不断被更新,使得管理主机一直能够掌握最新最精准的数据,再据以分配新的虚拟机。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种虚拟机的分配方法,用以在具有不同资源的主机中运行至少一虚拟机,其特征在于,该虚拟机的分配方法包括: 接收一虚拟机建立指令,其中该虚拟机建立指令包括一指定样版,该指定样板对应至少一建立需求资源以及至少一样版运行需求信息; 获得每一该主机的至少一目前剩余资源以及至少一主机运行信息; 将一个该目前剩余资源大于或等于该建立需求资源且该主机运行信息符合该样板运行需求信息的该主机设为一目标主机;以及 由该目标主机运行该虚拟机。
2.根据权利要求1所述的虚拟机的分配方法,其特征在于,该目前剩余资源为每一该主机目前剩余的处理器核数、内存空间或硬盘空间,该建立需求资源为配置该虚拟机时所需的处理器核数、内存空间或硬盘空间,且该些目前剩余资源对应于该建立需求资源。
3.根据权利要求1所述的虚拟机的分配方法,其特征在于,该主机运行信息为每一该主机运行时的磁碟传输频宽的最小值或是网络传输频宽的最小值,该样版运行需求信息为该虚拟机运行时所需的磁碟传输频宽的最大值或是网络传输频宽的最大值,且该些主机运行信息对应于该样版运行需求信息。
4.根据权利要求3所述的虚拟机的分配方法,其特征在于,该将一个该目前剩余资源大于或等于该建立需求资源且该主机运行信息符合该样板运行需求信息的该主机设为该目标主机的步骤包括: 将具有大于或等于该建立需求资源的该目前剩余资源的至少一该主机纪录为一候选清单; 对于该候选清单中的该些主机,将该主机运行信息小于该样板运行需求信息的至少一该主机从该候选清单中去除;以及 将该候选清单中剩余的该些主机之一设为该目标主机。
5.根据权利要求4所述的虚拟机的分配方法,其特征在于,该将该候选清单中剩余的该些主机之一设为该目标主机的步骤包括: 依据该候选清单中剩余的该些主机的该目前剩余资源的大小将该候选清单中剩余的该些主机排序;以及 将该候选清单中剩余且具有最大的该目前剩余资源的该主机设为该目标主机。
6.根据权利要求3所述的虚拟机的分配方法,其特征在于,该主机运行信息是统计该些主机在全生命周期中的运行状况得到。
7.根据权利要求3所述的虚拟机的分配方法,其特征在于,该样板运行需求信息是统计该统计指定样板于至少一该主机上实体化后在全生命周期中的运行状况得到。
全文摘要
一种虚拟机的分配方法,用以在不同的主机中运行至少一个虚拟机。虚拟机的分配方法包括接收虚拟机建立指令,其中虚拟机建立指令包括指定样版,指定样板对应至少一建立需求资源以及至少一样版运行需求信息;获得每一个主机目前剩余的至少一目前剩余资源以及至少一主机运行信息;将一个目前剩余资源大于或等于建立需求资源且主机运行信息符合样板运行需求信息的主机设为目标主机;以及由目标主机运行虚拟机。
文档编号G06F9/50GK103176847SQ20111046128
公开日2013年6月26日 申请日期2011年12月26日 优先权日2011年12月26日
发明者闫硕, 陈志丰 申请人:英业达集团(天津)电子技术有限公司, 英业达股份有限公司

最新回复(0)