桌面虚拟化环境下的节能方法、装置及系统的制作方法

文档序号:6331036阅读:277来源:国知局
专利名称:桌面虚拟化环境下的节能方法、装置及系统的制作方法
技术领域
本发明实施例涉及虚拟化技术领域,特别是涉及一种桌面虚拟化环境下的节能方 法、装置及系统。
背景技术
虚拟化技术使得可以在一台物理服务器上安装多个不同的操作系统,并实现各个 操作系统的隔离,即使一个操作系统或操作系统上的应用异常亦不会对其它操作系统产 生影响。虚拟化技术在传统的操作系统和物理硬件资源之间架设一层“虚拟机监控单元 (Virtual Machine Monitor, VMM) ”,实现对物理硬件资源,如处理器、内存、存储、网络和其 它外设资源的控制和管理;传统的操作系统运行在VMM之上,失去对物理资源的控制访问 权,称之为虚拟机(Virtual Machine, VM) ;VMM向虚拟机提供虚拟硬件环境,供虚拟机正确 运行,并实现对虚拟机的调度、管理和隔离。虚拟化技术对传统的企业桌面办公环境带来了巨大挑战个人办公电脑被虚拟机 取代,终端用户通过瘦客户机(Thin Client, TC)或软件终端(Software Client, SC)访问 虚拟机桌面办公;企业通过虚拟化管理软件将物理服务器、存储设备和网络设备集中管控 起来,并部署虚拟机和管理服务器,形成桌面虚拟化系统。目前,在桌面虚拟化环境下,虚拟机的节能管理有如下两种方案1.如在夜间大量虚拟机是不需要运行任何业务,关闭所有虚拟机并下电相应的物 理主机;2.通过动态负载平衡机制,将低负载的虚拟机集中迁移(使用热迁移”技术)到 少数的物理机上,当物理机上不再有虚拟机时,将该物理机下电。发明人在实现本发明的过程中,发现现有方案一中,在桌面虚拟化环境下,当大 量用户同时需要使用虚拟机(如上班高峰期)时,物理主机需要从存储网络中加载大量虚 拟机,容易导致网络流量拥塞,虚拟机启动缓慢或启动失败;以及现有方案二中,虚拟机资 源使用比较平稳,物理主机的平均资源负载比较平稳,因此能够下电的物理主机极少,节能 效果不高;而且,如上班高峰期时将触发大量虚拟机迁移,大量的“热迁移”较易导致网络流 量拥塞。

发明内容
本发明实施例提供一种桌面虚拟化环境下的节能方法、装置以及桌面虚拟化系 统,以在达到节能效果的同时,避免大量虚拟机热迁移或大量虚拟机加载导致的网络流量 拥塞现象。一方面,本发明实施例提供一种桌面虚拟化系统,包括多台物理主机和管理服务 器,其中每台物理主机包括硬件层,运行在所述硬件层之上的虚拟机监控单元VMM,运行在 所述虚拟机监控单元VMM之上的至少一个虚拟机,以及至少一个探针,其中所述探针用于收集对应虚拟机的特定事件信息;所述虚拟机监控单元VMM用于根据所述探针收集的虚拟机的特定事件信息,及获取的虚拟机闲置策略,确定所述特定事 件信息所关联的虚拟机的当前状态,向所述管理服务器输出对应的虚拟机状态信息,其中, 所述虚拟机状态信息表示虚拟机处于闲置状态或非闲置状态;所述管理服务器用于当获得的虚拟机状态信息表示被宿主的物理主机上所宿主 的所有虚拟机均为闲置状态时,向该被宿主的物理主机发送待机命令;所述虚拟机监控单元VMM进一步用于接收所述管理服务器下发的待机命令,并 向所述硬件层发送对应的待机指令,以控制并使该物理主机进入挂起到内存的待机状态。另一方面,本发明实施例提供一种物理主机,所述物理主机包括硬件层,运行在 所述硬件层之上的虚拟机监控单元VMM,运行在所述虚拟机监控单元VMM之上的至少一个 虚拟机,以及至少一个探针,其中所述探针用于收集对应虚拟机的特定事件信息;所述虚拟机监控单元VMM用于根据所述探针收集的虚拟机的特定事件信息,及 获取的虚拟机闲置策略,确定所述特定事件信息所关联的虚拟机的当前状态,向管理服务 器输出对应的虚拟机状态信息,以及接收所述管理服务器发送的待机命令,并向所述硬件 层发送对应的待机指令,其中,所述虚拟机状态信息表示该虚拟机处于闲置状态或非闲置 状态;所述硬件层用于响应所述待机指令,控制并使该物理主机进入挂起到内存的待 机状态。另一方面,本发明实施例提供一种管理服务器,包括策略管理单元,用于管理虚拟机闲置策略,以及向物理主机下发所述虚拟机闲置 策略,所述虚拟机闲置策略供所述物理主机用以确定该物理主机上宿主的虚拟机的状态;云管理单元,用于在获得的虚拟机状态信息表示被宿主的物理主机上所宿主的所 有虚拟机的状态均为闲置状态时,向所述被宿主的物理主机发送待机命令,所述待机命令 用于控制并使该物理主机进入挂起到内存的待机状态。另一方面,本发明实施例提供一种桌面虚拟化环境下的节能方法,该方法包括通过探针收集对应虚拟机的特定事件信息;根据收集到的虚拟机的特定事件信息及获取的虚拟机闲置策略,确定该特定事件 信息所关联的虚拟机的当前状态,向管理服务器输出对应的虚拟机状态信息,其中,所述虚 拟机状态信息表示该虚拟机处于闲置状态或非闲置状态;接收所述管理服务器发送的待机命令,并向硬件层发送对应的待机指令,以控制 并使该虚拟机宿主的物理主机进入挂起到内存的待机状态。可见,本发明实施例提供一种桌面虚拟化环境下的节能方案,在每个虚拟机中部 署探针,通过探针收集对应虚拟机的特定事件信息;虚拟机监控单元VMM根据所述探针收 集的虚拟机的特定事件信息及管理服务器提供的虚拟机闲置策略,确定所述特定事件信息 所关联的虚拟机的当前状态,并向所述管理服务器输出对应的虚拟机状态信息;当管理服 务器感知到被宿主的物理主机上所宿主的所有虚拟机均为闲置状态时,向该被宿主的物理 主机发送待机命令;VMM收到所述管理服务器下发的待机命令,向硬件层发送对应的待机 指令,以控制并使该物理主机进入挂起到内存的待机状态;可见,通过本发明实施例的方 案,能够对虚拟机的使用情况进行识别,从而例如,在企业下班后,可以使自身上所宿主的所有虚拟机均为闲置状态的物理主机待机节能,同时,由于处于挂起到内存的待机状态的 物理主机,其内存供电,内存状态信息完整;物理主机被唤醒,直接从挂起的内存运行,迅速 恢复至待机前的状态,故在达到节能效果的同时,避免例如企业上班时,大量虚拟机“热迁 移”或大量虚拟机加载导致的网络流量拥塞现象,进而保证了虚拟机的稳定可靠和高性能, 提高了终端用户体验满意度。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根 据这些附图获得其他的附图。图Ia为本发明实施例的一种桌面虚拟化系统的逻辑结构示意图;图Ib为本发明实施例的一种桌面虚拟化系统的物理部署示意图;图2为本发明实施例的一种物理主机的结构示意图;图3为本发明实施例的一种虚拟机中嵌入探针的结构示意图;图4为本发明实施例的一种管理服务器的结构示意图;图5为本发明实施例的一种桌面虚拟化环境下的节能方法的流程示意图;图6为本发明实施例的另一种桌面虚拟化环境下的节能方法的流程示意图;图7为本发明实施例的再一种桌面虚拟化环境下的节能方法的流程示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图la,为本发明实施例的一种桌面虚拟化系统的逻辑结构示意图,如图Ia 所示,本发明实施例的桌面虚拟化系统包括多台物理主机10,20,30 (亦可称作业务主机, 图中以三台物理主机示意,但不限于此)和管理服务器40,其中,每台物理主机包括硬件层 (图中以11,21,31示意),运行在所述硬件层之上的虚拟机监控单元VMM(图中以12,22,32 示意),运行在所述虚拟机监控单元VMM之上的至少一个虚拟机(图中以VM1,VM2,VM3示 意,但不限于此),以及至少一个探针(图中以13,23,33示意,需要说明的是,探针的部署方 式不限于此),其中所述探针用于收集对应虚拟机的特定事件信息;这里的特定事件信息可以包括硬件使用信息和/或虚拟机用户操作信息;虚拟机监控单元VMM 12,22,32用于根据探针收集的虚拟机的特定事件信息,及 管理服务器40提供的虚拟机闲置策略,确定该特定事件信息所关联的虚拟机的当前状态, 并向管理服务器40输出对应的虚拟机状态信息,其中,所述虚拟机状态信息表示虚拟机处 于闲置状态或非闲置状态;以及,管理服务器40用于当获得的虚拟机状态信息表示被宿主的物理主机(比如物理主机10)上所宿主的所有虚拟机均为闲置状态时,向该被宿主的物理主机(比如物 理主机10)发送待机命令;相应的,虚拟机监控单元VMM 12进一步用于接收管理服务器40下发的待机命 令,并向硬件层11发送对应的待机指令,以控制并使该物理主机10进入挂起到内存的待机 状态即ACPI-S3状态。这里的ACPI-S3状态指的是ACPI的S3状态,即Suspend to RAM(挂起到内存) 状态,简称STR;即将系统进入STR前的工作状态数据都存放到内存中去。在STR状态下,电 源仍然继续为内存等最必要的设备供电,以确保数据不丢失,而其他设备均处于关闭状态, 系统的耗电量极低。一旦Power按钮(主机电源开关)被触发,或通过鼠标键盘事件,网卡 事件等,系统就被唤醒,立即从内存中读取数据并恢复到STR之前的工作状态。其中,ACPI 指的是Advanced Configuration and Power Interface,高级配置与电源接口;这是英特 尔、微软和东芝共同开发的一种电源管理标准;ACPI根据节能程度的高低,一共有SO S5 六种状态。ACPI-S3是待机状态中的一种,其内存供电,CPU等不供电,能耗节省达80%以 上;在一种实现方式下,如图Ia所示,探针13,23,33具体嵌入于对应虚拟机中,具体 用于收集对应虚拟机的硬件使用信息和/或对应虚拟机的用户操作信息;相应的,虚拟机监控单元VMM 12,22,32具体用于根据探针13,23,33收集的硬件 使用信息和/或用户操作信息,及管理服务器40提供的虚拟机闲置策略,确定所述硬件使 用信息和/或用户操作信息所关联的虚拟机的当前状态,向管理服务器40输出对应的虚拟 机状态信息,其中,所述虚拟机状态信息表示虚拟机处于闲置状态或非闲置状态。在另一种实现方式下,所述探针包括嵌入于对应虚拟机中的前端探针(图Ia中以 13,23,33示意)和部署于所述虚拟机监控单元VMM中的后端探针(图中未示出),其中,所 述前端探针用于收集对应虚拟机的用户操作信息;所述后端探针用于收集对应虚拟机的硬 件使用信息;相应的,虚拟机监控单元VMM 12,22,32具体用于根据前端探针收集的对应虚拟 机的用户操作信息和后端探针收集的对应虚拟机的硬件使用信息,及管理服务器40提供 的虚拟机闲置策略,确定所述硬件使用信息和用户操作信息所关联的虚拟机的当前状态, 向管理服务器40输出对应的虚拟机状态信息,其中,所述虚拟机状态信息表示虚拟机处于 闲置状态或非闲置状态。需要说明的是,这里的虚拟机的硬件使用信息表示所述虚拟机上发生的硬件事 件,所述硬件事件包括但不限于鼠标事件、键盘事件、网络1/0事件和磁盘1/0事件等等, 这里的虚拟机的用户操作信息表示所述虚拟机上发生的操作事件,所述操作事件包括但不 限于用户对虚拟机执行的“闲置”操作、“待机”操作、“休眠”操作和“断开”操作等等;本发明实施例的虚拟机闲置策略包括虚拟机闲置时间区段、虚拟机闲置类别、虚 拟机硬件使用信息闲置判定条件和虚拟机用户操作信息闲置判定条件这四种条件中的一 种或任意组合;具体可以根据实际应用灵活确定。举例说明虚拟机闲置策略为“虚拟机闲置类别为可闲置” + “闲置时间区段 18:00-23:00”+ “鼠标+键盘30分钟无事件” | | “用户待机操作”;若虚拟机A属于可闲置 类别,且当前时间段处于18:00-23:00,且虚拟机A已30分钟无鼠标键标事件,或者虚拟机A被用户持行待机操作,则虚拟机A处于闲置状态,否则虚拟机A处于非闲置状态;需要说 明的是,这里的“ + ”表示“和”的关系,“ I I,,表示“或”的关系。其中,虚拟机闲置时间区段指的是虚拟机可闲置的时间区段,如20:00-06:00 ;虚 拟机闲置类别指的是虚拟机是否可闲置;如虚拟机A为不可闲置类别,那么不管其它条件 是否满足,该虚拟机A不会被闲置;虚拟机硬件使用信息闲置判定条件指的是根据上报的虚拟机硬件使用信息所表 示的硬件事件的发生频率来判定虚拟机是否可以闲置,各种虚拟机硬件事件可以任意组 合使用,所述硬件事件包括但不限于鼠标事件、键盘事件、网络I/O事件和磁盘I/O事件等 等;虚拟机用户操作信息闲置判定条件指的是判定被执行所述虚拟机用户操作信息 所表示的操作的虚拟机是否可以闲置;具体的,如果上报的虚拟机用户操作信息所表示的 操作为闲置操作,则该虚拟机可闲置;如果上报的虚拟机用户操作信息所表示的操作为预 定操作范围内的操作,则根据设定的操作替代规则确定该虚拟机是否可闲置;具体的,如果 设定虚拟机“待机”、“休眠”或“断开”操作能以“闲置”操作替代,则被执行待机”、“休眠” 或“断开”操作的虚拟机可闲置;如果设定虚拟机“待机”、“休眠”或“断开”操作不能以“闲 置”操作替代,则被执行待机”、“休眠”或“断开”操作的虚拟机虚拟机不可闲置;这里的预 定操作范围包括“待机”操作、“休眠”操作或“断开”操作。需要说明的是,为了增强虚拟机闲置策略的灵活性,针对不同的虚拟机闲置时间 区段和/或虚拟机闲置类别,对应的虚拟机硬件使用信息闲置判定条件和/或虚拟机用户 操作信息闲置判定条件可以是不同的。在一种实现方式下,虚拟机监控单元VMM 12,22,32具体用于当上报信息所关联 的虚拟机属于可闲置类别,且当前时间段处于第一闲置时间区段内,且该虚拟机在第一阈 值时间内未发生硬件事件,或者,硬件事件发生频率小于第一阈值频率,或者,该虚拟机被 执行闲置操作,或者该虚拟机被执行预定操作范围内的操作且该操作能以“闲置”操作替 代,则确定该虚拟机当前处于可闲置状态,并向管理服务器40输出表示闲置状态的虚拟机 状态信息;这里的硬件事件包括鼠标事件、键盘事件、网络I/O事件和磁盘I/O事件中的一 种或多种;在另一种实现方式下,虚拟机监控单元VMM 12,22,32具体用于当上报信息所关 联的虚拟机属于可闲置类别,且当前时间段处于第二闲置时间区段内,且该虚拟机在第二 阈值时间内未发生硬件事件,或者,硬件事件发生频率小于第二阈值频率,或者,该虚拟机 被执行闲置操作,或者该虚拟机被执行预定操作范围内的操作且该操作能以“闲置”操作替 代,则确定该虚拟机当前处于可闲置状态,并向管理服务器40输出表示闲置状态的虚拟机 状态信息;在另一种实现方式下,虚拟机监控单元VMM 12,22,32具体用于当上报信息所 关联的虚拟机属于可闲置类别,且该虚拟机被执行预定操作范围内的操作且该操作不能以 “闲置”操作替代,则确定该虚拟机当前处于不可闲置状态,并向管理服务器40输出表示不 可闲置状态的虚拟机状态信息;在另一种实现方式下,虚拟机监控单元VMM 12,22,32具体用于当上报信息所关 联的虚拟机属于不可闲置类别,则确定该虚拟机当前处于不可闲置状态,并向管理服务器40输出表示不可闲置状态的虚拟机状态信息;应当理解的是,虚拟机的类别划分的粒度不限于可闲置类别和不可闲置类别。在 更精细化管理的情况下,可闲置类别可进一步划分为不同的子类别,例如A,B, C。进一步的,如图Ia所示,本发明实施例的桌面虚拟化系统中,管理服务器40进一 步用于根据所述虚拟机状态信息及虚拟机迁移策略,确定需要迁移的处于不可闲置状态 的虚拟机和迁移目的物理主机,并向需要迁移的虚拟机宿主的物理主机发送迁移命令;其 中,所述迁移命令包括需要迁移的虚拟机标识ID和迁移的目的主机信息。这里的虚拟机标 识ID是VMM为每一个虚拟机分配的唯一的字符串序列,用于唯一标识虚拟机;在Xen架构 下称为imid ;迁移的目的主机信息,具体可以是目的业务主机的IP地址。相应的,虚拟机监控单元VMM 12,22,32进一步用于根据管理服务器40发送的迁 移命令,将所述虚拟机标识ID对应的虚拟机迁移到所述目的业务主机信息对应的目的业 务主机上。下面来介绍下虚拟机迁移策略所述虚拟机迁移策略包括虚拟机迁移时间区段、虚拟机迁移判定条件和迁移目 标业务主机选定条件;举例说明如在虚拟机迁移时间区段内,将“非闲置状态”虚拟机数 小于2且总虚拟机数大于物理主机宿主的平均虚拟机数的业务主机上“非闲置状态”的虚 拟机迁移到“非闲置状态”虚拟机比重最高及资源利用率最低的业务主机上。其中,虚拟机迁移判定条件指的是根据当前虚拟机状态和当前虚拟机所宿主的物 理主机状态信息来判定当前虚拟机是否需要迁移,当前虚拟机所宿主的物理主机状态信息 包括当前虚拟机所宿主的物理主机上所宿主的总虚拟机数、“闲置状态”虚拟机数、平均虚 拟机数中的一种或任意组合;目标业务主机选定条件指的是根据桌面虚拟化环境中物理主机状态信息选择迁 移的目标物理主机,该物理主机状态信息包括物理主机上所宿主的总虚拟机数、“非闲置状 态”虚拟机数/比重、业务主机资源利用率中的一种或任意组合;具体的,选择满足如下条 件中的一项或多项的物理主机作为迁移的目标物理主机;a.在桌面虚拟化环境中本物理主机上所宿主的总虚拟机数最大,或者本物理主机 上所宿主的总虚拟机数大于第一阈值数;b.在桌面虚拟化环境中本物理主机上所宿主的“非闲置状态”虚拟机比重最大,或 者本物理主机上所宿主的“非闲置状态”虚拟机比重大于第一阈值百分比;c.在桌面虚拟化环境中本物理主机资源利用率最低,或者本物理主机资源利用率 低于第二阈值百分比。应当理解的是,本发明实施例中,为了增强迁移的灵活性,针对不同的虚拟机迁移 时间区段,对应的虚拟机迁移判定条件和/或迁移目标业务主机选定条件可以是不同的。进一步的,请参阅图lb,为本发明实施例的一种桌面虚拟化系统的物理部署示意 图,如图Ib所示,本发明实施例的桌面虚拟化系统中,管理服务器40进一步用于响应用户 登录虚拟机的操作,向该虚拟机宿主的物理主机(如物理主机10)下发唤醒指令;相应的,该该物理主机10的硬件层11用于响应管理服务器40发送的唤醒指令, 运行挂起的内存,激活对应的虚拟机,使得该虚拟机进入可操纵状态。需要说明的是,唤醒指令是管理服务器40直接向物理主机硬件层发送的指令;由硬件层(具体可以是网卡)接收,并触发CPU上电、加载运行。综上所述,本发明实施例提供一种桌面虚拟化系统,在每个虚拟机中部署探针,通 过探针收集对应虚拟机的特定事件信息;虚拟机监控单元VMM根据所述探针收集的虚拟机 的特定事件信息及管理服务器提供的虚拟机闲置策略,确定所述特定事件信息所关联的虚 拟机的当前状态,并向所述管理服务器输出对应的虚拟机状态信息;当管理服务器感知到 被宿主的物理主机上所宿主的所有虚拟机均为闲置状态时,向该被宿主的物理主机发送待 机命令;VMM收到所述管理服务器下发的待机命令,向硬件层发送对应的待机指令,以控制 并使该物理主机进入挂起到内存的待机状态;可见,通过本发明实施例的方案,能够对虚拟 机的使用情况进行识别,从而例如,在企业下班后,可以使自身上所宿主的所有虚拟机均为 闲置状态的物理主机待机节能,同时,由于处于挂起到内存的待机状态的物理主机,其内存 供电,内存状态信息完整;业务主机被唤醒,直接从挂起的内存运行,迅速恢复至待机前的 状态,故在达到节能效果的同时,避免例如企业上班时,大量虚拟机“热迁移”或大量虚拟机 加载导致的网络流量拥塞现象,进而保证了虚拟机的稳定可靠和高性能,提高了终端用户 体验满意度。进一步的,通过本发明实施例方案,例如针对那些夜间仍然需要工作,被标记 为“非闲置状态”的虚拟机,可“热迁移”至其它业务主机;由于本发明实施例的桌面虚拟化 系统中此类虚拟机数量较少,“热迁移”不会产生网络流量拥塞现象。请参阅图2,为本发明实施例的一种物理主机的结构示意图,该物理主机可应用于 桌面虚拟化系统中,如图2所示,该物理主机包括硬件层11,运行在硬件层11上的虚拟机 监控单元VMM 12和运行在虚拟机监控单元VMM 12上的至少一个虚拟机(图中以VM1,VM2 示意,包括但不限于此),以及至少一个探针(图中以探针13示意,但需要说明的是,探针的 部署方式不限于此),其中探针13用于收集对应虚拟机的特定事件信息;虚拟机监控单元VMM 12用于根据探针13收集的虚拟机的特定事件信息,及获取 的虚拟机闲置策略,确定该特定事件信息所关联的虚拟机的当前状态,并向管理服务器40 输出对应的虚拟机状态信息,以及用于接收管理服务器40发送的待机命令,并向硬件层发 送对应的待机指令。其中,所述虚拟机状态信息表示该虚拟机处于闲置状态或非闲置状态; 这里的虚拟机闲置策略的获取方式,可以是管理服务器40应物理主机的请求所下发的虚 拟机闲置策略,也可以是管理服务器40主动推送给物理主机的,也可以是预先确定的虚拟 机闲置策略,等等。硬件层11,用于响应所述待机指令,控制并使该物理主机进入挂起到内存的待机 状态即ACPI-S3状态。需要说明的是,在一种实现方式下,探针13嵌入于对应虚拟机中,具体是嵌入于 对应虚拟机的用户操作系统Guest OS中,有两种层次a、与驱动Drive同一层次;b、与应用 Application同一层次;探针13具体用于收集对应虚拟机的硬件使用信息和/或对应虚拟 机的用户操作信息;相应的,虚拟机监控单元VMM 12具体用于根据探针13收集的对应虚拟机的硬件 使用信息和/或用户操作信息,及管理服务器40提供的虚拟机闲置策略,确定该硬件使用 信息和/或用户操作信息所关联的虚拟机的当前状态,向管理服务器40输出对应的虚拟机 状态信息,其中,所述虚拟机状态信息表示虚拟机处于闲置状态或非闲置状态。具体的,通
13过消息通讯或共享文件访问方式向管理服务器40输出各虚拟机状态信息;需要说明的是,这里的虚拟机的硬件使用信息表示所述虚拟机上发生的硬件事 件,所述硬件事件包括但不限于鼠标事件、键盘事件、网络I/O事件和磁盘I/O事件等等, 这里的虚拟机的用户操作信息表示所述虚拟机上发生的操作事件,所述操作事件包括但不 限于用户对虚拟机执行的“闲置”操作、“待机”操作、“休眠”操作和“断开”操作等等;作 为对本装置的补充,所述虚拟机可提供“闲置”操作选项或菜单,供用户主动执行虚拟机“闲 置”操作;在又一种实现方式下,如图3所示,虚拟机VM1,VM2中分别部署有前端探针13aa, 物理主机的虚拟机监控单元VMM12中部署有后端探针13b,前端探针13aa和后端探针13b 可以通过事件通道方式通讯,换言之,探针包括嵌入于对应虚拟机中的前端探针13aa和部 署于虚拟机监控单元VMM中的后端探针13b,其中,前端探针13aa具体用于收集对应虚拟机 的用户操作信息;后端探针13b具体用于收集对应虚拟机的硬件使用信息;应当理解的是, 探针不一定要分为“前端探针”和“后端探针”。相应的,虚拟机监控单元VMM12具体用于根据前端探针13a收集的对应虚拟机的 用户操作信息和后端探针13b收集的对应虚拟机的硬件使用信息,及管理服务器40提供的 虚拟机闲置策略,确定该硬件使用信息和用户操作信息所关联的虚拟机的当前状态,向管 理服务器40输出对应的虚拟机状态信息,其中,所述虚拟机状态信息表示虚拟机处于闲置 状态或非闲置状态。较优的,虚拟机监控单元12进一步用于接收管理服务器40发送的迁移命令,将所 述迁移命令中包含的虚拟机标识ID对应的虚拟机迁移到所述迁移命令中包含的目的业务 主机信息对应的目的业务主机上。以及,硬件层11进一步用于接收管理服务器40发送的 唤醒指令,响应所述唤醒指令,运行挂起的内存,激活对应的虚拟机,使得该虚拟机进入可 操纵状态。具体的,唤醒指令是管理服务器直接向物理主机的硬件层发送的指令;由硬件层 (具体可以是网卡)接收,并触发CPU上电、加载运行。下面介绍探针是通过如下方法来收集虚拟机硬件使用信息和/或虚拟机用户操 作信息1、对应虚拟机的用户操作信息是探针通过向Guest OS注册相应操作的事件处 理函数,截获对应的用户操作事件;2、对应虚拟机的硬件使用信息中的鼠标和键盘信息探针通过向Guest OS注册 鼠标和键盘的事件处理函数,截获相应事件;网络I/O信息是探针通过向Guest OS注册相 应的驱动接口,截获网络I/O事件;磁盘I/O信息是探针通过向Guest OS注册相应的驱动 接口,截获磁盘I/O事件;在虚拟机硬件使用信息和/或虚拟机用户操作信息收集到后,可通过事件通道或 消息通讯等方式传递至虚拟机监控单元VMM 12,22,32 ;下面介绍虚拟机闲置策略这里的虚拟机闲置策略包括虚拟机闲置时间区段、虚拟机闲置类别、虚拟机硬件 使用信息闲置判定条件和虚拟机用户操作信息闲置判定条件这四种条件中的一种或任意 组合;具体可以根据实际应用灵活确定。举例说明虚拟机闲置策略为“虚拟机闲置类别为可闲置” + “闲置时间区段18:00-23:00”+ “鼠标+键盘30分钟无事件” | | “用户待机操作”;若虚拟机A属于可闲置 类别,且当前时间段处于18:00-23:00,且虚拟机A已30分钟无鼠标键标事件,或者虚拟机 A被用户持行待机操作,则虚拟机A处于闲置状态,否则虚拟机A处于非闲置状态;需要说 明的是,这里的“ + ”表示“和”的关系,“ I I,,表示“或”的关系。其中,虚拟机闲置时间区段指的是虚拟机可闲置的时间区段,如20:00-06:00 ;虚 拟机闲置类别指的是虚拟机是否可闲置;如虚拟机A为不可闲置类别,那么不管其它条件 是否满足,该虚拟机A不会被闲置;虚拟机硬件使用信息闲置判定条件指的是根据上报的虚拟机硬件使用信息所表 示的硬件事件的发生频率来判定虚拟机是否可以闲置,各种虚拟机硬件事件可以任意组 合使用,所述硬件事件包括但不限于鼠标事件、键盘事件、网络I/O事件和磁盘I/O事件等 等;虚拟机用户操作信息闲置判定条件指的是判定被执行所述虚拟机用户操作信息 所表示的操作的虚拟机是否可以闲置;具体的,如果上报的虚拟机用户操作信息所表示的 操作为闲置操作,则该虚拟机可闲置;如果上报的虚拟机用户操作信息所表示的操作为预 定操作范围内的操作,则根据设定的操作替代规则确定该虚拟机是否可闲置;具体的,如果 设定虚拟机“待机”、“休眠”或“断开”操作能以“闲置”操作替代,则被执行待机”、“休眠” 或“断开”操作的虚拟机可闲置;如果设定虚拟机“待机”、“休眠”或“断开”操作不能以“闲 置”操作替代,则被执行待机”、“休眠”或“断开”操作的虚拟机虚拟机不可闲置;这里的预 定操作范围包括“待机”操作、“休眠”操作或“断开”操作。需要说明的是,为了增强虚拟机闲置策略的灵活性,针对不同的虚拟机闲置时间 区段和/或虚拟机闲置类别,对应的虚拟机硬件使用信息闲置判定条件和/或虚拟机用户 操作信息闲置判定条件可以是不同的。在一种实现方式下,虚拟机监控单元VMM 12具体用于当上报信息所关联的虚拟 机属于可闲置类别,且当前时间段处于第一闲置时间区段内,且该虚拟机在第一阈值时间 内未发生硬件事件,或者,硬件事件发生频率小于第一阈值频率,或者,该虚拟机被执行闲 置操作,或者该虚拟机被执行预定操作范围内的操作且该操作能以“闲置”操作替代,则确 定该虚拟机当前处于可闲置状态,并向管理服务器40输出表示闲置状态的虚拟机状态信 息,以及用于接收管理服务器40下发的待机命令,并向硬件层发送对应的待机指令,以控 制并使该物理主机进入ACPI-S3状态;这里的硬件事件包括鼠标事件、键盘事件、网络I/O 事件和磁盘I/O事件中的一种或多种;在另一种实现方式下,虚拟机监控单元VMM 12具体用于当上报信息所关联的虚 拟机属于可闲置类别,且当前时间段处于第二闲置时间区段内,且该虚拟机在第二阈值时 间内未发生硬件事件,或者,硬件事件发生频率小于第二阈值频率,或者,该虚拟机被执行 闲置操作,或者该虚拟机被执行预定操作范围内的操作且该操作能以“闲置”操作替代,则 确定该虚拟机当前处于可闲置状态,并向管理服务器40输出表示闲置状态的虚拟机状态 信息,以及用于接收管理服务器40下发的待机命令,并向硬件层发送对应的待机指令,以 控制并使该物理主机进入ACPI-S3状态,以及用于接收管理服务器40下发的待机命令,并 向硬件层发送对应的待机指令,以控制并使该物理主机进入ACPI-S3状态;在另一种实现方式下,虚拟机监控单元VMM 12具体用于当上报信息所关联的虚拟机属于可闲置类别,且该虚拟机被执行预定操作范围内的操作且该操作不能以“闲置”操 作替代,则确定该虚拟机当前处于不可闲置状态,并向管理服务器40输出表示不可闲置状 态的虚拟机状态信息,以及用于接收管理服务器40下发的待机命令,并向硬件层发送对应 的待机指令,以控制并使该物理主机进入ACPI-S3状态;在另一种实现方式下,虚拟机监控单元VMM 12具体用于当上报信息所关联的虚 拟机属于不可闲置类别,则确定该虚拟机当前处于不可闲置状态,并向管理服务器40输出 表示不可闲置状态的虚拟机状态信息,以及用于接收管理服务器40下发的待机命令,并向 硬件层发送对应的待机指令,以控制并使该物理主机进入ACPI-S3状态;应当理解的是,虚拟机的类别划分的粒度不限于可闲置类别和不可闲置类别。在 更精细化管理的情况下,可闲置类别可进一步划分为不同的子类别,例如A,B, C。关于如上功能单元的具体实现可参考方法实施例的描述。本发明实施例装置的各个单元可以集成于一体,也可以分离部署。上述单元可以 合并为一个单元,也可以进一步拆分成多个子单元。综上所述,本发明实施例提供一种物理主机,在每个虚拟机中部署探针,通过探针 收集对应虚拟机的特定事件信息;虚拟机监控单元VMM根据所述探针收集的虚拟机的特定 事件信息及获取的虚拟机闲置策略,确定所述特定事件信息所关联的虚拟机的当前状态, 并向所述管理服务器输出对应的虚拟机状态信息;当管理服务器感知到被宿主的物理主机 上所宿主的所有虚拟机均为闲置状态时,向该被宿主的物理主机发送待机命令;VMM收到 所述管理服务器下发的待机命令,向硬件层发送对应的待机指令,以控制并使该物理主机 进入挂起到内存的待机状态;可见,通过本发明实施例的方案,能够对虚拟机的使用情况进 行识别,从而例如,在企业下班后,可以使自身上所宿主的所有虚拟机均为闲置状态的物理 主机待机节能,同时,由于处于挂起到内存的待机状态的物理主机,其内存供电,内存状态 信息完整;业务主机被唤醒,直接从挂起的内存运行,迅速恢复至待机前的状态,故在达到 节能效果的同时,避免例如企业上班时,大量虚拟机“热迁移”或大量虚拟机加载导致的网 络流量拥塞现象,进而保证了虚拟机的稳定可靠和高性能,提高了终端用户体验满意度。进 一步的,通过本发明实施例方案,例如针对那些夜间仍然需要工作,被标记为“非闲置状态” 的虚拟机,可“热迁移”至其它业务主机;由于本发明实施例的桌面虚拟化系统中此类虚拟 机数量较少,“热迁移”不会产生网络流量拥塞现象。请参阅图4,为本发明实施例的一种管理服务器的结构示意图,如图4所示,管理 服务器40包括策略管理单元41和云管理单元42,其中策略管理单元41,用于管理虚拟机闲置策略,以及向物理主机下发该虚拟机闲置 策略,该虚拟机闲置策略供所述物理主机用以确定该物理主机上宿主的虚拟机的状态;需 要说明的是,一般是系统初始化时,由策略管理单元41下发虚拟机闲置策略。这里的虚拟 机闲置策略的具体内容,请参见前述实施例,这里不再赘述。云管理单元42,用于在获得的虚拟机状态信息表示被宿主的物理主机上所宿主的 所有虚拟机的状态均为闲置状态时,向该被宿主的物理主机发送待机命令,所述待机命令 用于控制并使该物理主机进入挂起到内存的待机状态。其中,所述虚拟机状态信息表示虚 拟机处于“闲置状态”或“非闲置状态”;在一种实现方式下,策略管理单元41进一步用于管理虚拟机迁移策略;这里的虚拟机迁移策略的具体内容,请参见前述实施例,这里不再赘述。云管理单元42进一步用于根据获得的虚拟机状态信息及虚拟机迁移策略,确定 需要迁移的处于不可闲置状态的虚拟机和迁移目的业务主机,并向需要迁移的虚拟机宿主 的物理主机发送迁移命令;其中,所述迁移命令包括需要迁移的虚拟机标识ID和迁移的目 的主机信息。这里的虚拟机标识ID是VMM为每一个虚拟机分配的唯一的字符串序列,用于 唯一标识虚拟机;例如,在Xen架构下称为imid ;这里的迁移的目的主机信息,具体可以是 目的业务主机的IP地址。在一种实现方式下,云管理单元42进一步用于响应用户登录虚拟机的操作命 令,向该虚拟机宿主的物理主机下发唤醒指令,所述唤醒指令用于使得该虚拟机进入可操 纵状态;需要说明的是,参见图Ib所示,用户通过SC或TC登录对应虚拟机,相应的操作命 令传递到管理服务器40 (具体是云管理单元42),管理服务器40 (具体是云管理单元42)响 应该操作命令,向该虚拟机宿主的物理主机10,20,30下发唤醒指令,具体是通过网络消息 向该虚拟机宿主的物理主机的硬件层下发唤醒指令,所述唤醒指令为网卡唤醒指令。在实际应用中,本发明实施例的管理服务器可以为物理服务器或虚拟机。关于如上功能单元的具体实现可参考方法实施例的描述。本发明实施例装置的各个单元可以集成于一体,也可以分离部署。上述单元可以 合并为一个单元,也可以进一步拆分成多个子单元。综上所述,本发明实施例提供一种管理服务器,在获得的虚拟机状态信息表示被 宿主的物理主机上所宿主的所有虚拟机的状态均为“闲置状态”状态时,向该被宿主的物理 主机发送待机命令,使得物理主机响应该待机命令进入挂起到内存的待机状态即ACPI-S3 状态;可见,通过本发明实施例的方案,能够使部分业务主机待机节能,同时,由于处于 ACPI-S3状态的业务主机,其内存供电,内存状态信息完整;业务主机被唤醒,直接从挂起 的内存运行,迅速恢复至待机前的状态,故在达到节能效果的同时,避免例如企业上班时, 大量虚拟机“热迁移”或大量虚拟机加载导致的网络流量拥塞现象,进而保证了虚拟机的稳 定可靠和高性能,提高了终端用户体验满意度。进一步的,通过本发明实施例方案,例如针对那些夜间仍然需要工作,被标记为 “非闲置状态”的虚拟机,可“热迁移”至其它业务主机;由于本发明实施例的桌面虚拟化系 统中此类虚拟机数量较少,“热迁移”不会产生网络流量拥塞现象。请参阅图5,为本发明实施例提供一种桌面虚拟化环境下的节能方法的流程示意 图,该方法可以应用于如图Ia和Ib所示桌面虚拟化系统中的物理主机,该物理主机包括 硬件层,运行在硬件层上的虚拟机监控单元VMM和运行在虚拟机监控单元VMM上的至少一 个虚拟机,以及至少一个探针,如图5所示,该方法可以包括如下步骤S501、通过探针收集对应虚拟机的特定事件信息;S502、根据收集到的虚拟机的特定事件信息,及获得的虚拟机闲置策略,确定该特 定事件信息所关联的虚拟机的当前状态,向管理服务器输出对应的虚拟机状态信息,其中, 所述虚拟机状态信息表示虚拟机处于闲置状态或非闲置状态;这里虚拟机闲置策略的获得方式,可以是管理服务器主动下发的虚拟机闲置策 略,也可以是管理服务器应物理主机的请求所下发的虚拟机闲置策略,也可以是预先确定 的虚拟机闲置策略,等等。
这里的虚拟机闲置策略包括虚拟机闲置时间区段、虚拟机闲置类别、虚拟机硬件 使用信息闲置判定条件和虚拟机用户操作信息闲置判定条件这四种条件中的一种或任意 组合;具体可以根据实际应用灵活确定。对于虚拟机闲置策略的详细描述请参考前述实施 例,这里不再赘述。S503、接收管理服务器发送的待机命令,并向硬件层发送对应的待机指令,以控制 并使该虚拟机宿主的物理主机进入挂起到内存的待机状态即ACPI-S3状态。在一种实现方式下,S501具体包括通过嵌入于对应虚拟机中的探针收集所述虚 拟机的硬件使用信息和/或用户操作信息;相应的,S502具体包括根据收集到的对应虚拟 机的硬件使用信息和/或对应虚拟机的用户操作信息及管理服务器提供的虚拟机闲置策 略,确定所述硬件使用信息和/或用户操作信息所关联的虚拟机的当前状态,向所述管理 服务器输出对应的虚拟机状态信息。在另一种实现方式下,S501具体包括由部署于对应虚拟机中的前端探针收集对 应虚拟机的用户操作信息,由部署于虚拟机监控单元VMM中的后端探针收集对应虚拟机的 硬件使用信息;相应的,S502具体包括根据所述前端探针收集的对应虚拟机的用户操作 信息和所述后端探针收集的对应虚拟机的硬件使用信息及管理服务器提供的虚拟机闲置 策略,确定所述硬件使用信息和用户操作信息所关联的虚拟机的当前状态,向所述管理服 务器输出对应的虚拟机状态信息。较佳的,本发明实施例的方法中,进一步包括接收管理服务器发送的迁移命令, 将所述迁移命令中包含的虚拟机标识ID对应的虚拟机迁移到所述迁移命令中包含的目的 业务主机信息对应的目的业务主机上。其中,所述迁移命令包括需要迁移的虚拟机标识ID 和迁移的目的主机信息。这里的虚拟机标识ID是VMM为每一个虚拟机分配的唯一的字符 串序列,用于唯一标识虚拟机;如,在Xen架构下称为uuid ;迁移的目的主机信息,具体可以 是目的业务主机的IP地址。进一步的,本发明实施例的方法进一步包括接收管理服务器发送的唤醒指令,响 应该唤醒指令,运行挂起的内存,激活对应的虚拟机,使得该虚拟机进入可操纵状态,这里 的唤醒指令为管理服务器响应用户登录虚拟机的操作所下发的。所述虚拟机的硬件使用信息表示所述虚拟机上发生的硬件事件,所述硬件事件包 括鼠标事件、键盘事件、网络I/O事件和磁盘I/O事件中的一种或多种;所述虚拟机的用 户操作信息表示所述虚拟机上发生的操作事件,所述操作事件包括用户对虚拟机执行的 闲置操作、待机操作、休眠操作和断开操作中的一种或多种;所述虚拟机闲置策略包括虚拟机闲置时间区段、虚拟机闲置类别、虚拟机硬件使 用信息闲置判定条件和虚拟机用户操作信息闲置判定条件中的一种或任意组合;其中,所述虚拟机闲置时间区段指的是虚拟机可闲置的时间区段;所述虚拟机闲 置类别指的是虚拟机是否可闲置;所述虚拟机硬件使用信息闲置判定条件指的是根据所述 虚拟机硬件使用信息所表示的硬件事件的发生频率来判定虚拟机是否可以闲置;所述虚拟 机用户操作信息闲置判定条件指的是判定被执行所述虚拟机用户操作信息所表示的操作 的虚拟机是否可以闲置。具体的内容和实现可以参考前述实施例的描述,这里不再赘述。在一种实现方式下,根据收集到的硬件使用信息和/或用户操作信息及获取的虚 拟机闲置策略,确定该硬件使用信息和/或用户操作信息所关联的虚拟机的当前状态,向
18管理服务器输出对应的虚拟机状态信息,具体包括当收集到的硬件使用信息和/或用户操作信息所关联的虚拟机属于可闲置类别, 且当前时间段处于第一闲置时间区段内,且该虚拟机在第一阈值时间内未发生硬件事件, 或者,硬件事件发生频率小于第一阈值频率,或者,该虚拟机被执行闲置操作,或者该虚拟 机被执行预定操作范围内的操作且该操作能以“闲置”操作替代,则确定该虚拟机当前处于 可闲置状态,并向管理服务器输出表示闲置状态的虚拟机状态信息;这里的硬件事件包括 鼠标事件、键盘事件、网络I/O事件和磁盘I/O事件中的一种或多种;或者,当收集到的硬件使用信息和/或用户操作信息所关联的虚拟机属于可闲置 类别,且当前时间段处于第二闲置时间区段内,且该虚拟机在第二阈值时间内未发生硬件 事件,或者,硬件事件发生频率小于第二阈值频率,或者,该虚拟机被执行闲置操作,或者该 虚拟机被执行预定操作范围内的操作且该操作能以“闲置”操作替代,则确定该虚拟机当前 处于可闲置状态,并向管理服务器输出表示闲置状态的虚拟机状态信息;其中,所述预定操 作范围包括待机操作、休眠操作或断开操作。或者,当收集到的硬件使用信息和/或用户操作信息所关联的虚拟机属于可闲置 类别,且该虚拟机被执行预定操作范围内的操作且该操作不能以“闲置”操作替代,则确定 该虚拟机当前处于不可闲置状态,并向管理服务器输出表示不可闲置状态的虚拟机状态信 息;或者,当收集到的硬件使用信息和/或用户操作信息所关联的虚拟机属于不可闲 置类别,则确定该虚拟机当前处于不可闲置状态,并向管理服务器输出表示不可闲置状态 的虚拟机状态信息。综上所述,本发明实施例提供一种桌面虚拟化环境下的节能方法,在每个虚拟机 中部署探针,通过探针收集对应虚拟机的特定事件信息;根据所述探针收集的虚拟机的特 定事件信息及管理服务器提供的虚拟机闲置策略,确定所述特定事件信息所关联的虚拟机 的当前状态,并向管理服务器输出对应的虚拟机状态信息;当收到管理服务器下发的待机 命令,向硬件层发送对应的待机指令,以控制并使该物理主机进入挂起到内存的待机状态; 可见,通过本发明实施例的方案,能够对虚拟机的使用情况进行识别,从而例如,在企业下 班后,可以使自身上所宿主的所有虚拟机均为闲置状态的物理主机待机节能,同时,由于处 于挂起到内存的待机状态的物理主机,其内存供电,内存状态信息完整;业务主机被唤醒, 直接从挂起的内存运行,迅速恢复至待机前的状态,故在达到节能效果的同时,避免例如企 业上班时,大量虚拟机“热迁移”或大量虚拟机加载导致的网络流量拥塞现象,进而保证了 虚拟机的稳定可靠和高性能,提高了终端用户体验满意度。进一步的,通过本发明实施例方案,例如针对那些夜间仍然需要工作,被标记为 “非闲置状态”的虚拟机,可“热迁移”至其它业务主机;由于本发明实施例的桌面虚拟化系 统中此类虚拟机数量较少,“热迁移”不会产生网络流量拥塞现象。下面结合实际应用来详细介绍下本发明实施例的方法请参阅图6,为本发明实施例的又一种桌面虚拟化环境下的节能方法的流程示意 图,可以应用于在桌面虚拟化系统办公环境中,在用户下班时间区段内触发虚拟机待机流 程的场景,如图6所示,该方法包括S601、流程开始;
在初始状态,业务主机上的虚拟机运行正常。S602、用户通过 TC(Thin Client,瘦客户机)或者 SC(Software Client,软件终 端)访问虚拟机桌面,手工执行虚拟机闲置操作;需要说明的是,所述虚拟机可提供“闲置”操作选项或菜单,供用户主动执行虚拟 机“闲置”操作;S603、业务主机的虚拟机中嵌入的探针收集该虚拟机的硬件使用信息和该虚拟机 的用户操作信息,并将该虚拟机的硬件使用信息和用户操作信息传递给业务主机的VMM ;在本实施例中,该虚拟机的硬件使用信息表示该虚拟机上发生的硬件事件,所述 硬件事件包括鼠标事件、键盘事件、网络I/O事件和磁盘I/O事件等等,该虚拟机的用户操 作信息表示所述虚拟机上发生的操作事件,该操作事件为用户对虚拟机执行的“闲置”操作 事件。需要说明的是,这里的S602与S603之间不存在明确的先后关系,应当理解的是, 在虚拟机启动后,收集动作一直进行;S604、业务主机的VMM根据虚拟机硬件使用信息和虚拟机用户操作信息并结合 管理服务器下发的虚拟机闲置策略,确定该VMM层上虚拟机的状态,并通知管理服务器虚 拟机状态信息;其中,虚拟机状态信息表示对应的虚拟机处于“闲置状态”,或者“非闲置状 态”;S605、管理服务器监测该业务主机上宿主的所有虚拟机是否均处于闲置状态,当 获得的虚拟机状态信息表示该业务主机上宿主的少数虚拟机处于“非闲置状态”时,转步骤 S606 ;反之,当获得的虚拟机状态信息表示该业务主机上宿主的所有虚拟机都处于“闲置状 态”时,转步骤S609 ;需要说明的是,这里的监测可以是定时监测,也可以是周期监测,也可以是实时监 测。S607、判断该物理主机上宿主的处于“非闲置状态”的虚拟机是否满足虚拟机迁移 策略,当不满足时,转步骤S605 ;反之,转步骤S607 ;所述虚拟机迁移策略包括虚拟机迁移时间区段、虚拟机迁移判定条件和迁移目 标业务主机选定条件;关于虚拟机迁移策略的具体内容的介绍,请参阅前述实施例,这里不 再赘述举例说明如果当前时间段处于虚拟机迁移时间区段内,该物理主机上宿主的处 于“非闲置状态”虚拟机数小于2且该物理主机上宿主的总虚拟机数大于预设平均虚拟机 数,且桌面虚拟化系统中存在非闲置状态”虚拟机比重最高及资源利用率最低的另一物理 主机,则该物理主机上宿主的处于“非闲置状态”虚拟机满足虚拟机迁移策略;反之,则该物 理主机上宿主的处于“非闲置状态”虚拟机不满足虚拟机迁移策略。S607、管理服务器向该物理主机的VMM发送迁移命令;其中,所述迁移命令包括需要迁移的虚拟机标识ID和迁移的目的主机信息。这里 的虚拟机标识ID是VMM为每一个虚拟机分配的唯一的字符串序列,用于唯一标识虚拟机; 如在Xen架构下称为uuid ;迁移的目的主机信息,具体可以是目的业务主机的IP地址。S608、该物理主机的VMM响应该迁移命令,将该物理主机上宿主的处于“非闲置状 态”虚拟机(即所述虚拟机标识ID对应的虚拟机)迁移到“非闲置状态”虚拟机比重最高及资源利用率最低的目的业务主机(即所述目的业务主机信息对应的目的业务主机)上。S609、管理服务器向该业务主机的VMM下发待机命令;S610、该业务主机的VMM接收到待机命令后,向该业务主机的硬件层的处理器下 发对应的待机指令,以控制并使该物理主机进入挂起到内存的待机状态;S611、该物理主机进入挂起到内存的待机状态;这里的待机状态指的是业务主机的处理器运行在ACPI-S3模式,除了内存保持激 活外,处理器、硬盘、网卡等其余设备都下电,或以微弱电量运行;S612、流程结束。综上所述,本发明实施例提供一种桌面虚拟化环境下的节能方法,在虚拟机中设 置一个“探针”,通过“探针”收集虚拟机硬件使用信息和/或虚拟机用户操作信息,根据所 述硬件使用信息和/或用户操作信息及虚拟机闲置策略,确定虚拟机的当前状态,并输出 虚拟机状态信息,其中,所述状态包括“闲置状态”或“非闲置状态”;并在收到下发的待机命 令,向硬件层发送待机指令,以控制并使该物理主机进入ACPI-S3状态;可见,通过本发明 实施例的方案,能够对虚拟机的使用情况进行识别,从而例如,在企业下班后,可以使部分 业务主机待机节能,同时,由于处于ACPI-S3状态的业务主机,其内存供电,内存状态信息 完整;业务主机被唤醒,直接从挂起的内存运行,迅速恢复至待机前的状态,故在达到节能 效果的同时,避免例如企业上班时,大量虚拟机“热迁移”或大量虚拟机加载导致的网络流 量拥塞现象,进而保证了虚拟机的稳定可靠和高性能,提高了终端用户体验满意度。进一步的,通过本发明实施例方案,对业务主机上只有少量“未闲置状态”的虚拟 机执行迁移操作,使得这些“未闲置状态”的虚拟机聚集在少数的业务主机上,从而可以让 更多的业务主机待机节能;由于本发明实施例的桌面虚拟化系统中此类虚拟机数量较少, “迁移”不会产生网络流量拥塞现象。请参阅图7,为本发明实施例的再一种桌面虚拟化环境下的节能方法的流程示意 图,可以应用于在桌面虚拟化系统办公环境中,在用户上班时间区段内触发虚拟机唤醒流 程的场景,如图7所示,该方法包括S701、流程开始;S702、在上班时段,当用户需要使用虚拟机,首先登入终端,该终端链接到管理服 务器上。终端形式可以是web页面,也可以使客户端程序。S703、管理服务器检查该虚拟机的状态;当该虚拟机处于闲置状态时,转步骤 S704 ;反之,转步骤S707 ;S704、管理服务器检查该虚拟机所宿主的业务主机的状态,当该虚拟机所宿主的 业务主机已待机,转步骤S705 ;反之,转步骤S706 ;S705、管理服务器向该业务主机的硬件层发送唤醒指令,以唤醒该业务主机;所述 唤醒指令为网卡唤醒指令;发起者向待唤醒主机发送一个特定格式的数据包,待唤醒主机的网卡有特殊的电 路处理逻辑来处理这个数据包,然后通过专用连线发出开机信号,通知主板开机启动。这个 技术,要求发起者和被唤醒者处于同一个子网,且发起者需要知道被唤醒者的MAC地址。S706、业务主机唤醒后直接运行挂起的内存,激活自身上宿主的对应的虚拟机,使得该虚拟机进入可操纵状态。S707、登入虚拟机。S708、流程结束。综上所述,本发明实施例提供一种桌面虚拟化环境下的节能方法,由于处于 ACPI-S3状态的业务主机,其内存供电,内存状态信息完整;业务主机被唤醒,直接从挂起 的内存运行,迅速恢复至待机前的状态,故在达到节能效果的同时,避免例如企业上班时, 大量虚拟机“热迁移”或大量虚拟机加载导致的网络流量拥塞现象,进而保证了虚拟机的稳 定可靠和高性能,提高了终端用户体验满意度。需要说明的是,前述实施例描述中所采用的第一、第二的说法,没有限定顺序的意 思,仅为方便区分而已。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件(如处理器)来完成,所述的程序可存储于一计算机可 读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的 存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体 (Random Access Memory, RAM)等。以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种桌面虚拟化系统,包括多台物理主机和管理服务器,其中每台物理主机包括硬件层,运行在所述硬件层之上的虚拟机监控单元VMM,运行在所述虚拟机监控单元VMM之上的至少一个虚拟机,以及至少一个探针,其中所述探针用于收集对应虚拟机的特定事件信息;所述虚拟机监控单元VMM用于根据所述探针收集的虚拟机的特定事件信息,及获取的虚拟机闲置策略,确定所述特定事件信息所关联的虚拟机的当前状态,向所述管理服务器输出对应的虚拟机状态信息,其中,所述虚拟机状态信息表示虚拟机处于闲置状态或非闲置状态;所述管理服务器用于当获得的虚拟机状态信息表示被宿主的物理主机上所宿主的所有虚拟机均为闲置状态时,向该被宿主的物理主机发送待机命令;所述虚拟机监控单元VMM进一步用于接收所述管理服务器下发的待机命令,并向所述硬件层发送对应的待机指令,以控制并使该物理主机进入挂起到内存的待机状态。
2.根据权利要求1所述的系统,其特征在于,所述探针嵌入于对应虚拟机中,具体用于 收集对应虚拟机的硬件使用信息和/或对应虚拟机的用户操作信息;相应的,所述虚拟机监控单元VMM具体用于根据所述探针收集的硬件使用信息和/ 或用户操作信息,及所述管理服务器提供的虚拟机闲置策略,确定所述硬件使用信息和/ 或用户操作信息所关联的虚拟机的当前状态,向所述管理服务器输出对应的虚拟机状态信 息,其中,所述虚拟机状态信息表示虚拟机处于闲置状态或非闲置状态;或者,所述探针包括嵌入于对应虚拟机中的前端探针和部署于所述虚拟机监控单元VMM中 的后端探针,其中,所述前端探针用于收集对应虚拟机的用户操作信息;所述后端探针用于 收集对应虚拟机的硬件使用信息;相应的,所述虚拟机监控单元VMM具体用于根据所述前端探针收集的对应虚拟机的 用户操作信息和所述后端探针收集的对应虚拟机的硬件使用信息,及所述管理服务器提供 的虚拟机闲置策略,确定所述硬件使用信息和用户操作信息所关联的虚拟机的当前状态, 向所述管理服务器输出对应的虚拟机状态信息,其中,所述虚拟机状态信息表示虚拟机处 于闲置状态或非闲置状态。
3.根据权利要求1或2所述的系统,其特征在于,所述管理服务器进一步用于根据所 述虚拟机状态信息及获取的虚拟机迁移策略,确定需要迁移的处于非闲置状态的虚拟机和 迁移目的物理主机,并向需要迁移的虚拟机宿主的物理主机发送迁移命令,所述迁移命令 包括需要迁移的虚拟机标识ID和迁移的目的主机信息;所述物理主机的虚拟机监控单元VMM进一步用于根据所述迁移命令,将所述虚拟机 标识ID对应的虚拟机迁移到所述目的主机信息对应的目的物理主机上。
4.根据权利要求1或2所述的系统,其特征在于,所述管理服务器进一步用于响应用 户登录虚拟机的操作命令,向所述虚拟机宿主的物理主机发送唤醒指令;所述物理主机的硬件层用于响应所述唤醒指令,运行挂起的内存,激活对应的虚拟 机,使得该虚拟机进入可操纵状态。
5.一种物理主机,其特征在于,所述物理主机包括硬件层,运行在所述硬件层之上的 虚拟机监控单元VMM,运行在所述虚拟机监控单元VMM之上的至少一个虚拟机,以及至少一 个探针,其中所述探针用于收集对应虚拟机的特定事件信息;所述虚拟机监控单元VMM用于根据所述探针收集的虚拟机的特定事件信息,及获 取的虚拟机闲置策略,确定所述特定事件信息所关联的虚拟机的当前状态,向管理服务器 输出对应的虚拟机状态信息,以及接收所述管理服务器发送的待机命令,并向所述硬件层 发送对应的待机指令,其中,所述虚拟机状态信息表示该虚拟机处于闲置状态或非闲置状 态;所述硬件层用于响应所述待机指令,控制并使该物理主机进入挂起到内存的待机状态。
6.根据权利要求5所述的装置,其特征在于,所述探针具体嵌入于对应虚拟机中,具体 用于收集对应虚拟机的硬件使用信息和/或对应虚拟机的用户操作信息;相应的,所述虚拟机监控单元VMM具体用于根据所述探针收集的对应虚拟机的硬件 使用信息和/或用户操作信息,及所述管理服务器提供的虚拟机闲置策略,确定所述硬件 使用信息和/或用户操作信息所关联的虚拟机的当前状态,向所述管理服务器输出对应的 虚拟机状态信息,其中,所述虚拟机状态信息表示虚拟机处于闲置状态或非闲置状态。
7.根据权利要求5所述的装置,其特征在于,所述探针包括嵌入于对应虚拟机中的前 端探针和部署于所述虚拟机监控单元VMM中的后端探针,其中,所述前端探针用于收集对 应虚拟机的用户操作信息;所述后端探针用于收集对应虚拟机的硬件使用信息;相应的,所述虚拟机监控单元VMM具体用于根据所述前端探针收集的对应虚拟机的 用户操作信息和所述后端探针收集的对应虚拟机的硬件使用信息,及所述管理服务器提供 的虚拟机闲置策略,确定所述硬件使用信息和用户操作信息所关联的虚拟机的当前状态, 向所述管理服务器输出对应的虚拟机状态信息,其中,所述虚拟机状态信息表示虚拟机处 于闲置状态或非闲置状态。
8.根据权利要求5至7任一项所述的装置,其特征在于,所述虚拟机监控单元VMM进一 步用于接收所述管理服务器发送迁移命令,将所述迁移命令中包含的虚拟机标识ID对应 的虚拟机迁移到所述迁移命令中包含的目的主机信息对应的目的物理主机上。
9.根据权利要求5至7任一项所述的装置,其特征在于,所述硬件层进一步用于接 收所述管理服务器发送的唤醒指令,响应于该唤醒指令,运行挂起的内存,激活对应的虚拟 机,使得该虚拟机进入可操纵状态。
10.根据权利要求6所述的装置,其特征在于,所述虚拟机的硬件使用信息表示所述虚 拟机上发生的硬件事件,所述硬件事件包括鼠标事件、键盘事件、网络输入/输出I/O事件 和磁盘输入/输出I/O事件中的一种或多种;所述虚拟机的用户操作信息表示所述虚拟机 上发生的操作事件,所述操作事件包括用户对虚拟机执行的闲置操作、待机操作、休眠操 作和断开操作中的一种或多种;所述虚拟机闲置策略包括虚拟机闲置时间区段、虚拟机闲置类别、虚拟机硬件使用信 息闲置判定条件和虚拟机用户操作信息闲置判定条件中的一种或任意组合;其中,所述虚拟机闲置时间区段指的是虚拟机可闲置的时间区段;所述虚拟机闲置类 别指的是虚拟机是否可闲置;所述虚拟机硬件使用信息闲置判定条件指的是根据所述虚拟 机硬件使用信息所表示的硬件事件的发生频率来判定虚拟机是否可以闲置;所述虚拟机用 户操作信息闲置判定条件指的是判定被执行所述虚拟机用户操作信息所表示的操作事件的虚拟机是否可以闲置。
11.根据权利要求10所述的装置,其特征在于,所述虚拟机监控单元VMM具体用于当所述硬件使用信息和/或用户操作信息关联的 虚拟机属于可闲置类别,且当前时间段处于所述虚拟机闲置时间区段内,且该虚拟机在阈 值时间内未发生硬件事件,或者,硬件事件发生频率小于第一阈值频率,或者,该虚拟机被 执行闲置操作,或者该虚拟机被执行预定操作范围内的操作且该操作能以闲置操作替代, 则确定该虚拟机当前处于闲置状态,并输出表示闲置状态的虚拟机状态信息;以及,接收待 机命令,向所述硬件层发送对应的待机指令;或者,所述虚拟机监控单元VMM具体用于当所述硬件使用信息和/或用户操作信息关 联的虚拟机属于可闲置类别,且该虚拟机被执行预定操作范围内的操作且该操作不能以闲 置操作替代,则确定该虚拟机当前处于非闲置状态,并输出表示非闲置状态的虚拟机状态 信息,以及,接收待机命令,向所述硬件层发送对应的待机指令;或者,所述虚拟机监控单元VMM具体用于当所述硬件使用信息和/或用户操作信息关 联的虚拟机属于不可闲置类别,则确定该虚拟机当前处于非闲置状态,输出表示非闲置状 态的虚拟机状态信息,以及,接收待机命令,向所述硬件层发送对应的待机指令;其中,所述预定操作范围包括待机操作、休眠操作或断开操作。
12.—种管理服务器,其特征在于,包括策略管理单元,用于管理虚拟机闲置策略,以及向物理主机下发所述虚拟机闲置策略, 所述虚拟机闲置策略供所述物理主机用以确定该物理主机上宿主的虚拟机的状态;云管理单元,用于在获得的虚拟机状态信息表示被宿主的物理主机上所宿主的所有虚 拟机的状态均为闲置状态时,向所述被宿主的物理主机发送待机命令,所述待机命令用于 控制并使该物理主机进入挂起到内存的待机状态。
13.根据权利要求12所述的装置,其特征在于,所述策略管理单元进一步用于管理虚 拟机迁移策略;所述云管理单元进一步用于根据获得的虚拟机状态信息及所述虚拟机迁移策略,确 定需要迁移的、处于非闲置状态的虚拟机和迁移目的物理主机,并向需要迁移的虚拟机宿 主的物理主机发送迁移命令;其中,所述迁移命令包括需要迁移的虚拟机标识ID和迁移的 目的主机信息。
14.根据权利要求13所述的装置,其特征在于,所述虚拟机迁移策略包括虚拟机迁移 时间区段、虚拟机迁移判定条件和迁移目标主机选定条件;其中,所述虚拟机迁移时间区段指的是虚拟机可迁移的时间区段;所述虚拟机迁移判 定条件指的是根据当前虚拟机状态和当前虚拟机所宿主的物理主机状态信息来判定当前 虚拟机是否需要迁移;所述目标主机选定条件指的是根据桌面虚拟化环境中物理主机状态 信息选择迁移的目标物理主机。
15.根据权利要求12或13所述的装置,其特征在于,所述云管理单元进一步用于响 应用户登录虚拟机的操作命令,向该虚拟机宿主的物理主机发送唤醒指令,所述唤醒指令 用于使得该虚拟机进入可操纵状态。
16.一种桌面虚拟化环境下的节能方法,其特征在于,该方法包括通过探针收集对应虚拟机的特定事件信息;根据收集到的虚拟机的特定事件信息及获取的虚拟机闲置策略,确定该特定事件信息 所关联的虚拟机的当前状态,向管理服务器输出对应的虚拟机状态信息,其中,所述虚拟机 状态信息表示该虚拟机处于闲置状态或非闲置状态;接收所述管理服务器发送的待机命令,并向硬件层发送对应的待机指令,以控制并使 该虚拟机宿主的物理主机进入挂起到内存的待机状态。
17.根据权利要求16所述的方法,其特征在于,所述通过探针收集对应虚拟机的特定 事件信息,包括通过嵌入于对应虚拟机中的探针收集所述虚拟机的硬件使用信息和/或 用户操作信息;相应的,所述根据收集到的虚拟机的特定事件信息及获取的虚拟机闲置策略,确定该 特定事件信息所关联的虚拟机的当前状态,向管理服务器输出对应的虚拟机状态信息,包 括根据收集到的对应虚拟机的硬件使用信息和/或对应虚拟机的用户操作信息,及所述 管理服务器提供的虚拟机闲置策略,确定所述硬件使用信息和/或用户操作信息所关联的 虚拟机的当前状态,向所述管理服务器输出对应的虚拟机状态信息;或者,所述通过探针收集对应虚拟机的特定事件信息,包括由部署于对应虚拟机中的前端 探针收集对应虚拟机的用户操作信息,由部署于虚拟机监控单元VMM中的后端探针收集对 应虚拟机的硬件使用信息;相应的,所述根据收集到的虚拟机的特定事件信息,及获取的虚拟机闲置策略,确定该 特定事件信息所关联的虚拟机的当前状态,向管理服务器输出对应的虚拟机状态信息,包 括根据所述前端探针收集的对应虚拟机的用户操作信息和所述后端探针收集的对应虚 拟机的硬件使用信息,及所述管理服务器提供的虚拟机闲置策略,确定所述硬件使用信息 和用户操作信息所关联的虚拟机的当前状态,向所述管理服务器输出对应的虚拟机状态信 肩、ο
18.根据权利要求16或17所述的方法,其特征在于,所述方法进一步包括接收所述管理服务器发送的迁移命令,将所述迁移命令中包含的虚拟机标识ID对应的虚拟机迁移到所述迁移命令中包含的目的主机信息对应的目的物理主机上。
19.根据权利要求16或17所述的方法,其特征在于,所述方法进一步包括接收所述 管理服务器发送的唤醒指令,响应于该唤醒指令,运行挂起的内存,激活对应的虚拟机,使 得该虚拟机进入可操纵状态。
20.根据权利要求17所述的方法,其特征在于,所述虚拟机的硬件使用信息表示所述 虚拟机上发生的硬件事件,所述硬件事件包括鼠标事件、键盘事件、网络I/O事件和磁盘 I/O事件中的一种或多种;所述虚拟机的用户操作信息表示所述虚拟机上发生的操作事 件,所述操作事件包括用户对虚拟机执行的闲置操作、待机操作、休眠操作和断开操作中 的一种或多种;所述虚拟机闲置策略包括虚拟机闲置时间区段、虚拟机闲置类别、虚拟机硬件使用信 息闲置判定条件和虚拟机用户操作信息闲置判定条件中的一种或任意组合;其中,所述虚拟机闲置时间区段指的是虚拟机可闲置的时间区段;所述虚拟机闲置类 别指的是虚拟机是否可闲置;所述虚拟机硬件使用信息闲置判定条件指的是根据所述虚拟 机硬件使用信息所表示的硬件事件的发生频率来判定虚拟机是否可以闲置;所述虚拟机用户操作信息闲置判定条件指的是判定被执行所述虚拟机用户操作信息所表示的操作的虚 拟机是否可以闲置。
21.根据权利要求20所述的方法,其特征在于,所述根据收集到的对应虚拟机的硬件 使用信息和/或对应虚拟机的用户操作信息,及所述管理服务器提供的虚拟机闲置策略, 确定所述硬件使用信息和/或用户操作信息所关联的虚拟机的当前状态,向所述管理服务 器输出对应的虚拟机状态信息,包括当该硬件使用信息和/或用户操作信息所关联的虚拟机属于可闲置类别,且当前时间 段处于所述虚拟机闲置时间区段内,且该虚拟机在阈值时间内未发生硬件事件,或者,硬件 事件发生频率小于阈值频率,或者,该虚拟机被执行闲置操作,或者该虚拟机被执行预定操 作范围内的操作且该操作能以闲置操作替代,则确定该虚拟机当前处于可闲置状态,并向 所述管理服务器输出表示闲置状态的虚拟机状态信息;或者,当该硬件使用信息和/或用户操作信息所关联的所关联的虚拟机属于可闲置类 别,且该虚拟机被执行预定操作范围内的操作且该操作不能以闲置操作替代,则确定该虚 拟机当前处于不可闲置状态,并向所述管理服务器输出表示不可闲置状态的虚拟机状态信 息;或者,当该硬件使用信息和/或用户操作信息所关联的所关联的虚拟机属于不可闲置 类别,则确定该虚拟机当前处于不可闲置状态,并向所述管理服务器输出表示不可闲置状 态的虚拟机状态信息;其中,所述预定操作范围包括待机操作、休眠操作或断开操作。
全文摘要
本发明实施例公开一种桌面虚拟化环境下的节能方法、装置及系统,其中,该方法包括通过探针收集对应虚拟机的特定事件信息;根据收集到的虚拟机的特定事件信息及获取的虚拟机闲置策略,确定该特定事件信息所关联的虚拟机的当前状态,向管理服务器输出对应的虚拟机状态信息,其中,所述虚拟机状态信息表示该虚拟机处于闲置状态或非闲置状态;接收所述管理服务器发送的待机命令,并向硬件层发送对应的待机指令,以控制并使该虚拟机宿主的物理主机进入挂起到内存的待机状态;从而在达到节能效果的同时,避免了大量虚拟机热迁移或大量虚拟机加载导致的网络流量拥塞现象。
文档编号G06F9/455GK101916207SQ20101026538
公开日2010年12月15日 申请日期2010年8月28日 优先权日2010年8月28日
发明者王 锋, 许建辉, 谭红春, 邱尚高 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1