云平台中一种基于等级和物理机负载的虚拟机调度方法
【专利摘要】本发明提供的云平台中一种基于安全等级、和物理机负载的虚拟机调度方法,通过对虚拟机和物理机的安全等级和服务等级的设定,最终使虚拟机在符合要求的物理机上启动,具体要求如下:1、虚拟机和物理机的安全等级、服务等级相对应;2、在满足1的条件下选择负载情况最优的物理机启动虚拟机。通过实现该调度方法,在满足安全等级、服务等级符合要求的情况下实现资源的最大化利用。
【专利说明】
云平台中一种基于等级和物理机负载的虚拟机调度方法
技术领域
[0001] 本发明涉及云平台中虚拟机调度方法,尤其涉及一种基于安全等级等级、服务等 级和物理机负载的虚拟机调度方法。属于云计算领域。
【背景技术】
[0002] 根据美国国家标准与技术研究院(NIST)对云计算的定义,云计算是一种按使用量 付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享 池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很 少的管理工作,或与服务供应商进行很少的交互。云计算平台首先将众多物理机(即真实存 在的计算机)所拥有的资源抽象出来形成了资源共享池。然后利用资源共享池中的资源创 建虚拟机(即通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完 整计算机系统)。这些虚拟机将被众多的云计算终端用户使用。
[0003] 然而一个云计算平台往往拥有众多的物理机,不同物理机在性能、资源使用率等 等发面存在着巨大的差异。因此虚拟机在不同物理机上创建便会产生巨大的性能差异。为 了确定最适合创建虚拟机的物理机,所有的云计算平台都有一个虚拟机调度模块,此模块 依据各种调度策略决定最适合创建虚拟机的物理机。
[0004] 随着云计算的不断发展,市场上已经出现了众多的云计算产品。现有的云计算平 台中的虚拟机调度模块依据的调度算法主要有以下几种:第一、根据物理机的性能来确定 最适合用于创建虚拟的物理机。这种调度算法首先需要得到云计算平台中所有物理机的性 能指标,不同的云平台统计的性能指标虽有所不同,但是主要包括CPU、内存、10等。第二、根 据物理机的负载(即物理机的资源使用率)来确定最适合用于创建虚拟机的物理机。不同的 云平台统计的负载信息虽不尽相同,但是主要包括CHJ的使用率、CPU核的使用率、内存的使 用率、硬盘的使用率。第三、根据对虚拟机未来资源使用情况的预测来确定最适合创建虚拟 机的物理机。云平台中虽然可以创建众多的虚拟机,但是不同的虚拟机的用途是不同的,因 此不同的虚拟机对各种物理资源的消耗情况是不同的。例如一个虚拟机在创建后将被用来 执行众多的CPU密集型任务,那么该虚拟机对CPU资源的需求应该是较高的,因此在虚拟机 创建时就应将它创建在CPU性能更优的物理机上。第四、根据能耗确定最适合用于创建虚拟 机的物理机。
[0005] 虽然云平台中调度策略众多,但是目前还没有一种基于等级的调度算法。随着云 计算的发展,云平台中的虚拟机也面临着众多的安全威胁,不同的虚拟机需要的安全保护 措施也是不同的,如果能够在虚拟机创建时为虚拟机选择安全措施合适的物理机,便能够 极大的提高虚拟机的安全性。另外,虽然云平台已经有了依据物理机负载进行的虚拟机调 度,但是目前主要是依据负载过滤物理机,也就是说会存在这样一种情况:物理机A的CPU负 载略大于物理机B的CPU负载,但是物理机A的内存负载要远小于物理机B的内存负载,但是 使用现有的过滤方法,一旦先依据CHJ的负载进行过滤,则主机A便会被过滤掉,即使物理机 A的综合性能高于物理机B,物理机A也不能成为虚拟机创建的备选物理机。
[0006] 综上所述,现有云平台的虚拟机调度存在以下问题:
[0007] (1)无法依据虚拟机对安全性的需求进行虚拟机调度。实际上,考虑虚拟机对安全 性能的需求将极大提高虚拟机的安全性。
[0008] (2)无法依据虚拟机和物理机的功能为虚拟机合理分配物理机,实际上,考虑物理 机和虚拟机上运行的应用程序功能将极大提高虚拟机运行效率
[0009] (3)大多数云平台中没有依据网络状况进行调度。
[0010] (4)无法依据物理机负载的综合性能进行虚拟机调度。通过考虑物理机负载的综 合性能可提尚虚拟机调度的合理性,也能提尚虚拟机的性能。
【发明内容】
[0011] 为解决上述问题,本发明提供了一种基于等级和物理机负载的虚拟机调度方法, 等级又细分为安全等级和服务等级。安全等级代表了机器的安全性能,安全等级不同,采取 的安全措施也不同,等级越高,机器的安全性也就越高。服务等级代表了机器的用途,例如 可将机器的服务等级划分为web服务,应用服务,数据库服务等。本方法首先需要为云平台 设置不同身份的管理员,然后通过不同的管理员分别为虚拟机和物理机设置安全等级和服 务等级来实现对物理机的过滤,最后通过物理机的负载信息选择出最适合创建虚拟机的物 理机。
[0012] 具体来说,本发明提供了一种基于等级和物理机负载的虚拟机调度方法,该方法 具体步骤包括:
[0013] 步骤1,对云平台用户划分角色,将云平台用户分为两类:管理员和普通用户。
[0014] 步骤2,管理员设置云平台中物理机的安全等级和服务等级。管理员负责在虚拟机 创建之前对物理机进行安全等级和服务等级评定,然后为云平台中的每台物理机设置相应 的安全等级和服务等级。在虚拟机创建后可修改虚拟机的安全等级和服务等级。
[0015] 步骤3,云平台将管理员为物理机设置的安全等级和服务等级存储到数据库中。数 据库中需要记录物理机的id、物理机的安全等级、物理机的服务等级。其中物理机的id在云 平台中是唯一的。
[0016] 步骤4,云平台中的监控模块定时对整个云平台中物理机的负载情况进行监控,并 将监控信息存储到数据库中。监控信息主要包括主机名、CPU监控信息、硬盘监控信息、网络 监控信息、内存监控信息。其中主机名为物理机的主机名,该主机名在云平台中也是唯一 的。
[0017] 步骤5,普通用户创建虚拟机,并在创建虚拟机的同时指定虚拟机的安全等级和服 务等级。普通用户负责在创建虚拟机之前评估自己将要创建的虚拟机的安全等级和服务等 级,然后在创建虚拟机时为虚拟机指定安全等级和服务等级。
[0018] 步骤6,云平台中调度模块接收到普通用户为虚拟机指定的安全等级和服务等级。
[0019] 步骤7,云平台中调度模块根据虚拟机的安全等级和服务等级到数据库获取具有 相同安全等级和服务等级的物理机的列表(记为ωι 2···?!η)。
[0020] 步骤8,云平台中调度模块从数据库中获取步骤7中1η1ι2···1ιη对应的主机的监控信 息(记为Ι1Ι2…In)。
[0021] 步骤9,为步骤8中得到的1出…In做归一化处理,并为每一条监控信息^赋权重, 最终得到赋权重后的?目息WlW2'"Wn。
[0022] 步骤10,比对步骤9中得到的权重信息IW2~Wn,从中选出权重最大的物理机作为 最适合创建虚拟机的物理机。
[0023] 步骤11,将虚拟机的相关信息存储到数据库中,主要包括虚拟机id,虚拟机安全等 级,虚拟机服务等级,虚拟机所在的物理机的id。
[0024] 步骤12,将选中的物理机的相关信息返回给云平台中其他模块,最终完成虚拟机 的创建。
[0025] 步骤13,虚拟机创建成功。
[0026] 步骤14,管理员修改虚拟机的安全等级和服务等级,并将虚拟机安全等级和服务 等级存储到数据库。
[0027] 步骤15,虚拟机重新启动时,从数据库中读取虚拟机的安全等级和服务等级。
[0028] 步骤16,重新执行步骤6~步骤11,获取适合虚拟机启动的物理机。
[0029] 步骤17,对虚拟机进行迀移,实现虚拟机的启动。
[0030] 其中,步骤4包括:
[0031]步骤41,获取被监控物理机的主机名。
[0032]步骤42,获取被监控物理机的CPU信息,主要包括:①用户占用的CPU使用率,②操 作系统内核占用的CPU使用率,③10操作占用的CPU使用率,④现在的CPU使用率(等于①② ③的加和),⑤空闲,⑥CHJ的频率。
[0033]步骤43,获取被监控物理机的硬盘信息,主要包括:①硬盘的使用率,②硬盘总的 存储大小,③硬盘已用的存储大小,④硬盘可用的存储大小。
[0034]步骤44,获取被监控物理机中各个网卡的流量信息,主要包括:①收到的数据包的 数量,②收到数据包的速度,③收到的字节的数量,④收到字节的速度,⑤发送的数据包的 数量,⑥发送数据包的速度,⑦发送的字节的数量,⑧发送字节的速度,⑨网卡支持理论速 度。
[0035]步骤45,获取被监控物理机的内存信息,主要包括:①空闲内存大小,②已用内存 大小,③总内存大小,④内存使用率。
[0036] 其中,步骤9包括:
[0037] 步骤91,对I! 12…In中CPU信息做归一化处理。
[0038] 步骤92,对IJ2··· In中硬盘信息做归一化处理。
[0039] 步骤93,对I! 12…In中网络信息做归一化处理。
[0040] 步骤94,对1!12…In中内存信息做归一化处理。
[0041]步骤95,为CPU、硬盘、网络、内存数据赋权重,然后得到一个权重值,该权重值将用 于物理机的选择。
[0042]本发明的有益功效在于:
[0043] (1)利用虚拟机的安全等级与服务等级和服务器的安全等级与服务等级进行比 对,使得虚拟机可以在等级对应的物理机上创建和启动,可极大提高虚拟机的安全性;
[0044] (2)将网络负载的监控加入云平台,可以依据网络负载对虚拟机进行调度,使得依 据负载进行的调度更加合理;
[0045] (3)通过比较各个物理机之间的综合性能最终确定合适的物理机,避免物理机因 单项性能略差而其他性能较优而不能被调度到,使得虚拟机调度更加合理高效;
【附图说明】
[0046] 图1是本发明的云平台中基于等级和物理机负载的调度方法流程图。
【具体实施方式】
[0047] 以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。 [0048]图1是本发明的云平台中基于等级和物理机负载的调度方法流程图。如图1所示, 该方法包括:
[0049]步骤1,为云平台用户划分角色,将云平台用户分为管理员和普通用户;
[0050] 步骤2,管理员为云平台中物理机设置安全等级和服务等级;
[0051] 步骤3,云平台将管理员在步骤2中设置的安全等级和服务等级存储到数据库; [0052]步骤4,定时对云平台中物理机的负载情况进行监控,包括CPU、内存、硬盘、网络; [0053]步骤5,普通用户创建虚拟机时为其指定安全等级和服务等级;
[0054] 步骤6,调度模块接收创建虚拟机请求,提取出虚拟机安全等级和服务等级;
[0055] 步骤7,调度算法依据虚拟机的安全等级和服务等级筛选出对应等级的物理机;
[0056] 步骤8,从数据库中获取步骤7得到的所有物理机的负载信息;
[0057]步骤9,为步骤8得到的每台物理机的负载信息做归一化处理并赋权重;
[0058]步骤10,通过比较步骤9中得到的物理机信息选出最适合创建虚拟机的物理机;
[0059] 步骤11,将虚拟机相关信息存储到数据库中;
[0060] 步骤12,将被选中物理机的相关信息返回给云平台;
[0061] 步骤13,虚拟机创建成功;
[0062] 步骤14,虚拟机在被创建后,管理员可更改虚拟机的安全等级和服务等级;
[0063] 步骤15,虚拟机重新启动时,从数据库中获取最新的虚拟机安全等级和服务等级; [0064] 步骤16,重新执行步骤7-步骤12;
[0065] 步骤17,虚拟机启动位置变更则对云平台中虚拟机进行迀移,虚拟机启动。
[0066] 其中,步骤2包括:
[0067]步骤21,管理员为物理机设置安全等级;
[0068]步骤22,管理员为物理机设置服务等级。
[0069] 其中,步骤4包括:
[0070]步骤41,获取被监控物理机的主机名;
[0071]步骤42,获取被监控物理机的CPU信息:每台物理机负责监控自己的负载信息,并 将监控到的负载信息存储到数据库中。
[0072] CPU相关信息主要包括:①用户占用的CPU使用率:②操作系统内核占用的CPU使用 率,③10操作占用的CPU使用率,④现在的CPU使用率(等于①②③的加和),⑤空闲,⑥CPU的 频率。
[0073] 步骤43,获取被监控物理机的硬盘信息,每台物理机负责监控自己的负载信息,并 将监控到的硬盘相关信息存储到数据库中。
[0074]硬盘相关信息主要包括:①硬盘的使用率,②硬盘总的存储大小,③硬盘已用的存 储大小,④硬盘可用的存储大小。步骤44,获取被监控物理机中各个网卡的流量信息,每台 物理机负责监控自己各个网卡的负载情况,并将监控到的网卡信息存储到数据库中。
[0075]网卡相关的监控信息主要包括:①收到的数据包的数量,②收到数据包的速度,③ 收到的字节的数量,④收到字节的速度,⑤发送的数据包的数量,⑥发送数据包的速度,⑦ 发送的字节的数量,⑧发送字节的速度,⑨网卡支持理论速度。
[0076]步骤45,获取被监控物理机的内存信息,每台物理机负责监控自己的内存负载情 况,并将监控到的内存信息存储到数据库中。
[0077]内存相关信息主要包括:①空闲内存大小,②已用内存大小,③总内存大小,④内 存使用率。
[0078] 其中,步骤9包括:
[0079] 步骤91,获取CPU空闲率;
[0080]在这里,将CPU空闲率记为将用户占用的(yu使用率记为CF%猶 将操作系统内核占用的c P U使用率记为,将10操作占用的C P U使用率记为
[0081 ] 微發mis饭縦:· i ~《雜漏-《雜
[0082]由于CPU空闲率是已经做过归一化的数据,故不再进行归一化。
[0083] 步骤92,获取硬盘空闲率;
[0084]在这里,将硬盘空闲率记力,将硬盘可用的存储大小记为 ,将硬盘总的存储大小记为錄路《微r淑胃*。
[0086] 由于硬盘空闲率是已经做过归一化的数据,故不再进行归一化。
[0087] 步骤93,获取内存空闲率;
[0088] 在这里将内存空闲率记为、胃錢将空闲内存大小记为将总内 存大小记为m胃TWMk
[0090]由于内存空闲率是已经做过归一化的数据,故不再进行归一化。
[0091] 步骤94,获取网络空闲率;
[0092]物理机中常常有多块网卡,在这里我们假设物理机有两块网卡,分别为ethO和 ethl;现有网卡多分为千兆网卡和百兆网卡,我们将这一速率成为网卡的额定速度。
[0093]在这里,将网卡e thO的空闲率记为镞,将网卡e thO发送字节的速度记为 雲,将网卡ethO的额定速度记为??做?娜_@,将网卡eth0接收字节的速度记为 ;将网卡 e t h 1的空闲率记为,将网卡ethl发送字节的速度记为 将网卡ethl的额定速度记为^纖,将网卡ethl接收字节的速度记为 駿沿毅^、繼s.,:将网络空闲率记为聚驟纖%&纖._ 〇
[0097]步骤95,确定CPU、硬盘、内存、网络在主机综合性能中占有的权重;
[0098] 虚拟机的用途不同,则对物理机CPU、硬盘、内存、网络性能需求也就不同,因此,要 求得主机的综合性能就需要先确定CPU、硬盘、内存、网络在物理机综合性能中占有的权重。
[0099]在这里我们假设我们的虚拟机多用于虚拟化桌面环境,则其对网络的性能需求较 大,因此,为CPU赋权重a,为硬盘赋权重b,为内存赋权重c,为网络赋权重d。
[0100]步骤96,确定物理机综合性能;
[0101] 在这里,将物理机的综合性能记为WEIGHT。
[0103] 步骤97,将步骤96中得到的物理机综合性能进行临时存储,然后继续计算其他物 理机的综合性能。
[0104] 其中,步骤17如果虚拟位置发生变更,则调用云平台中的虚拟机迀移模块对虚拟 机进行迀移。虚拟机迀移是指将虚拟机从一个物理机或存储位置移动到另一个物理机或存 储位置的过程。
[0105] 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。
【主权项】
1. 云平台中一种基于等级和物理机负载的虚拟机调度方法,其特征在于包括以下步 骤: 步骤1,对云平台用户划分角色,将云平台用户分为两类:管理员和普通用户, 步骤2,管理员设置云平台中物理机的安全等级和服务等级, 步骤3,云平台将管理员为物理机设置的安全等级和服务等级存储到数据库中,数据库 中需要记录物理机的id、物理机的安全等级、物理机的服务等级,其中物理机的id在云平台 中是唯一的, 步骤4,云平台中的监控模块定时对整个云平台中物理机的负载情况进行监控,并将监 控信息存储到数据库中,监控信息主要包括主机名、CPU监控信息、硬盘监控信息、网络监控 信息、内存监控信息,其中主机名为物理机的主机名,该主机名在云平台中也是唯一的, 步骤5,普通用户创建虚拟机,并在创建虚拟机的同时指定虚拟机的安全等级和服务等 级,普通用户负责在创建虚拟机之前评估自己将要创建的虚拟机的安全等级和服务等级, 然后在创建虚拟机时为虚拟机指定安全等级和服务等级, 步骤6,云平台中调度模块接收到普通用户为虚拟机指定的安全等级和服务等级, 步骤7,云平台中调度模块根据虚拟机的安全等级和服务等级到数据库获取具有相同 安全等级和服务等级的物理机的列表(记为, 步骤8,云平台中调度模块从数据库中获取步骤7中luhs…1^对应的主机的监控信息(记 为Ι??2···Ιη), 步骤9,为步骤8中得到的Id2…U故归一化处理,并为每一条监控信息赋权重,最终得 到赋权重后的信息WlW2"_Wn, 步骤10,比对步骤9中得到的权重信息IW2~Wn,从中选出权重最大的物理机作为最适 合创建虚拟机的物理机, 步骤11,将虚拟机的相关信息存储到数据库中,主要包括虚拟机id,虚拟机安全等级, 虚拟机服务等级,虚拟机所在的物理机的id, 步骤12,将选中的物理机的相关信息返回给云平台中其他模块,最终完成虚拟机的创 建, 步骤13,虚拟机创建成功 步骤14,管理员修改虚拟机的安全等级和服务等级,并将虚拟机安全等级和服务等级 存储到数据库, 步骤15,虚拟机重新启动时,从数据库中读取虚拟机的安全等级和服务等级, 步骤16,重新执行步骤7~步骤12,获取适合虚拟机启动的物理机, 步骤17,对虚拟机进行迀移,实现虚拟机的启动。2. 根据权利要求1所述的方法,其中步骤2包括: 步骤21,管理员负责在虚拟机创建之前对物理机进行安全等级评定,然后为云平台中 的每台物理机设置相应的安全等级, 步骤22,管理员负责在虚拟机创建之前对物理机进行服务等级评定,然后为云平台中 的每台物理机设置相应的服务等级, 步骤23,在物理机安全等级和服务等级设定后,管理员可以对其进行修改、删除 步骤24,在虚拟机创建后,管理员可以对虚拟机的安全等级和服务等级进行修改和删 除。3. 根据权利要求1所述的方法,其中,步骤4包括: 步骤41,获取被监控物理机的主机名, 步骤42,获取被监控物理机的CPU信息,主要包括:①用户占用的CPU使用率,②操作系 统内核占用的CPU使用率,③10操作占用的CPU使用率,④现在的CPU使用率(等于①②③的 加和),⑤空闲,⑥CPU的频率, 步骤43,获取被监控物理机的硬盘信息,主要包括:①硬盘的使用率,②硬盘总的存储 大小,③硬盘已用的存储大小,④硬盘可用的存储大小, 步骤44,获取被监控物理机中各个网卡的流量信息,主要包括:①收到的数据包的数 量,②收到数据包的速度,③收到的字节的数量,④收到字节的速度,⑤发送的数据包的数 量,⑥发送数据包的速度,⑦发送的字节的数量,⑧发送字节的速度,⑨网卡支持理论速度, 步骤45,获取被监控物理机的内存信息,主要包括:①空闲内存大小,②已用内存大小, ③总内存大小,④内存使用率。4. 根据权利要求1所述的方法,其中,步骤9包括: 步骤91,对信息做归一化处理, 步骤92,对I i 12…In中硬盘信息做归一化处理, 步骤93,对1!12…In中网络信息做归一化处理, 步骤94,对I! 12…In中内存信息做归一化处理, 步骤95,为CPU、硬盘、网络、内存数据赋权重,然后得到一个权重值,该权重值将用于物 理机的选择。
【文档编号】G06F9/50GK106095531SQ201610406029
【公开日】2016年11月9日
【申请日】2016年6月8日
【发明人】肖利民, 徐志罡, 詹维典, 岳喜春, 李书攀, 阮利
【申请人】北京航空航天大学