虚拟机运行监测系统及方法

文档序号:7682566阅读:94来源:国知局
专利名称:虚拟机运行监测系统及方法
技术领域
本发明涉及一种虚拟机控制系统及方法,尤其是关于一种虚拟机运行监测系统及方法。
背景技术
数据中心(data center),通常包括几台乃至上万台服务器,也称为服务器农场(server farm),指用于安置计算机系统及相关部件的设施,例如,电信和储存系统。通常,数据中心包含冗余和备用电源,冗余数据通信连接,环境控制(例如空调、灭火器)和安全设备,其中,数据中心中最重要的设备为用于存储数据的服务器。虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行 在一个完全隔离环境中的完整计算机系统。通过在数据中心的服务器上安装虚拟机,可以在该服务器上模拟出一台或多台虚拟的服务器(即在虚拟机上安装多个操作系统)。如此一来,可以减少数据中心的服务器设备的采购成本,同时还可以根据效能的尖峰离峰需求,在各个服务器或刀片服务器的刀板间弹性动态迁移系统平台,让IT人员做更有效的资源调度,并获得更好且安全周密的防护。一般而言,在数据中心的服务器的资源使用量大增的情况下,会影响到其中虚拟机的运行,在资源不足的情况下,可能会导致虚拟机崩溃,从而影响用户对虚拟机的使用。

发明内容
鉴于以上内容,有必要提供一种虚拟机运行监测系统,可以避免由于服务器中资源使用量大于负荷,而导致虚拟机的资源使用量大增,且引起虚拟机的崩溃的情况发生,方便了用户,提高了数据中心的稳定性。鉴于以上内容,还有必要提供一种虚拟机运行监测方法,可以避免由于服务器中资源使用量大于负荷,而导致虚拟机的资源使用量大增,且引起虚拟机的崩溃的情况发生,方便了用户,提高了数据中心的稳定性。—种虚拟机运行监测系统,该系统包括设置模块,用于在监控服务器中设置每个服务器的资源使用量;分配模块,用于通过监控服务器中的动态主机设置协议服务分配IP地址给数据中心的各个服务器,以和各个服务器建立通信连接;获取模块,用于从各个服务器中获取每个虚拟机的运行参数;计算模块,用于通过获取的运行参数计算各个服务器在运行时的资源使用量;判断模块,用于判断各个服务器在运行时的资源使用量是否大于设置的资源使用量;转移模块,用于当一台服务器在运行时的资源使用量大于设置的资源使用量时,将该服务器上的虚拟机转移到其它服务器上,使该服务器在运行时的资源使用量小于或等于设置的资源使用量。一种虚拟机运行监测方法,该方法包括在监控服务器中设置每个服务器的资源使用量;通过监控服务器中的动态主机设置协议服务分配IP地址给数据中心的各个服务器,以和各个服务器建立通信连接;从各个服务器中获取每个虚拟机的运行参数;通过获取的运行参数计算各个服务器在运行时的资源使用量;当一台服务器在运行时的资源使用
量大于设置的资源使用量时,将该服务器上的虚拟机转移到其它服务器上,使该服务器在
运行时的资源使用量小于或等于设置的资源使用量。相较于现有技术,本发明提供的虚拟机运行监测系统及方法,通过监控服务器集
中安装虚拟机到数据中心的服务器,提高了虚拟机的安装效率,方便了用户,也提高了数据
中心的稳定性。


图I是本发明虚拟机运行监测系统较佳实施例的应用环境图。图2是本发明监控服务器较佳实施例的结构示意图。图3是本发明虚拟机运行监测方法较佳实施例的流程图。主要元件符号说明
客户端Γ
监控服务器20
数据库30~40
数据中心50
服务器500
虚拟机运行监测系统200
设置模块210
分配模块220
获取模块230
计算模块240
判断模块250
转移模块260
存储器270
处理器280如下具体实施方式
将结合上述附图进一步说明本发明。
具体实施例方式参阅图I所示,是本发明虚拟机运行监测系统200较佳实施例的应用环境图。该虚拟机运行监测系统200应用于监控服务器20中。该监控服务器20与数据中心(DataCenter) 50通过网络40进行通信连接。所述网络40可以是互联网、局域网或者其它通讯网络。所述数据中心50包括多个服务器500 (图中以四个为例),所述服务器500为刀片服务器。在本实施例中,所述服务器500称为Host主机,每个Host主机上安装有一个或多个虚拟机,为了更有效的管理这些虚拟机,每个Host主机上还安装有Hypervisor软件。所述Hypervisor软件是一种运行在服务器500和服务器500的操作系统之间的中间软件层,可允许多个操作系统和应用共享服务器500上的硬件,也可叫做虚拟机监视器(virtualmachine monitor, VMM)。Hypervisor软件可以访问服务器500上包括CPU、磁盘和内存在内的所有物理设备,Hypervisor不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器500启动并执行Hypervisor软件时,Hypervisor软件会分配给每 一台虚拟机适量的内存、CPU、网络和磁盘等资源,以保证虚拟机的运行。所述监控服务器20用于监控数据中心50的服务器500中的虚拟机运行情况,若其中一个服务器500中的虚拟机在运行时,该服务器500的资源使用量(具体指服务器500中CPU的使用率、内存使用率、存储器使用率及网络使用率)超过了某一个设定的标准时,及时将该服务器500中的一个或多个虚拟机转移到其它服务器500,以降低该服务器500的资源使用量。该监控服务器20还安装有动态主机设置协议(Dynamic Host ConfigurationProtocol,DHCP)服务,通过DHCP服务可以分配网络之间互连的协议(Internet Protocol,IP)地址给数据中心50中的各个服务器500,使监控服务器20能够与数据中心50的各个服务器500进行通信。该监控服务器20可以是个人计算机、网络服务器,还可以是任意其它适用的计算机。此外,该监控服务器20还可以放置在数据中心50内部,用户只需通过客户端10进行操作就可以实现对服务器500中虚拟机的监控。所述监控服务器20通过一个数据库连接与数据库30连接。其中,所述数据库连接可为一开放式数据库连接(Open Database Connectivity, ODBC),或Java数据库连接(Java Database Connectivity, JDBC)。所述数据库30用于存储从数据中心50的各个服务器500传送过来的数据,该数据包括数据中心20的各个服务器500的IP地址。在此需说明的是,数据库30可独立于监控服务器20,也可位于监控服务器20内。所述数据库30可存于监控服务器20的硬盘或者闪存盘中。从系统安全性的角度考虑,本实施例中的数据库30独立于监控服务器20。此外,客户端10用于提供一个互动式界面给用户,便于用户进行操作并将操作过程中的各种数据存于监控服务器20中。该客户端10可以是个人计算机、笔记本电脑以及其它任意能与监控服务器20连接的设备或系统。参阅图2所示,是本发明监控服务器20较佳实施例的结构示意图。该监控服务器20除了包括虚拟机运行监测系统200,还包括存储器270和处理器280。该虚拟机运行监测系统200包括设置模块210、分配模块220、获取模块230、计算模块240、判断模块250及转移模块260。模块210至260的程序化代码存储于存储器270中,处理器280执行这些程序化代码,实现虚拟机运行监测系统200提供的上述功能。
设置模块210用于在监控服务器20中设置每个服务器500的资源使用量。所述资源使用量是指服务器500的CPU使用率、内存(Memory)使用率、存储器(Disk)使用率及网络(Network)使用率。分配模块220用于通过监控服务器20中的DHCP服务分配IP地址给数据中心50中的各个服务器500,以和各个服务器500建立通信连接。具体而言,如图I所示,数据中心50有四个服务器500,通过DHCP服务给每个服务器500单独分配一个IP地址。获取模块230用于从各个服务器500的Hypervisor软件中获取每个虚拟机的运行参数。所述运行参数包括虚拟机的CPU使用率、内存使用率、存储器使用率及网络使用率。计算模块240用于通过获取的运行参数计算各个服务器500在运行时的资源使用量。具体而言,将从各个服务器500上获取的各个虚拟机的CPU使用率、内存使用率、存储器使用率及网络使用率进行叠加,分别求出各个服务器500运行时的CPU利用率、内存使用 率、存储器使用率及网络使用率,即获得各个服务器500在运行时的资源使用量。例如,假设服务器A有三个虚拟机,将该三个虚拟机的CPU利用率、内存使用率、存储器使用率及网络使用率进行叠加,计算出该服务器A运行时的CPU利用率、内存使用率、存储器使用率及网络使用率,即该服务器A的资源使用量。判断模块250用于判断各个服务器500在运行时的资源使用量是否大于设置的资源使用量。具体而言,判断服务器500在运行时的CPU利用率、内存使用率、存储器使用率及网络使用率是否大于设置的CPU利用率、内存使用率、存储器使用率及网络使用率。在本较佳实施例中,若服务器500在运行时的CPU利用率、内存使用率、存储器使用率及网络使用率中有任意一项大于设置的CPU利用率、内存使用率、存储器使用率及网络使用率,例如,服务器500在运行时的CPU利用率大于设置的CPU使用率、或服务器500在运行时的内存使用率大于设置的内存使用率、或服务器500在运行时的存储器使用率大于设置的存储器使用率、或服务器500在运行时的网络使用率大于设置的网络使用率,则判断结果为该服务器500在运行时的资源使用量大于设置的资源使用量。若服务器500在运行时的CPU利用率、内存使用率、存储器使用率及网络使用率都小于或等于设置的CPU利用率、内存使用率、存储器使用率及网络使用率,例如,服务器500在运行时的CPU利用率小于或等于设置的CPU使用率、且服务器500在运行时的内存使用率小于或等于设置的内存使用率、且服务器500在运行时的存储器使用率小于或等于设置的存储器使用率、且服务器500在运行时的网络使用率小于或等于设置的网络使用率,则判断结果为该服务器500在运行时的资源使用量小于或等于设置的资源使用量。此外,判断模块250在进行判断时,还可以引入时间进行判断,即当判断结果为该服务器500在运行时的资源使用量大于设置的资源使用量,且该大于的情况超过一个固定的时间(例如,5分钟),才启动转移模块260的动作。转移模块260用于当一台服务器500在运行时的资源使用量大于设置的资源使用量时,将该服务器500上的虚拟机转移到其它服务器500上,使该服务器500在运行时的资源使用量小于或等于设置的资源使用量。具体而言,所述转移模块260通过调用Hypervisor软件将该服务器500上的虚拟机转移到其它服务器500上。需要说明的是,在转移服务器500上的虚拟机之前,先获得其它服务器500的资源使用量,以向资源使用量最低的服务器500进行转移,以平衡服务器500的资源,最大化提高数据中心50中服务器500的使用效率。转移的方式是将服务器500中的虚拟机一个一个的转移,且每转移一个虚拟机,立即判断该服务器500的资源使用量是否小于或等于设置的资源使用量,若判断结果为小于或等于设置的资源使用量,立即停止转移。如图3所示,是本发明虚拟机运行监测方法较佳实施例的流程图。步骤S10,设置模块210在监控服务器20中设置每个服务器500的资源使用量。所述资源使用量是指服务器500的CPU使用率、内存使用率、存储器使用率及网络使用率。步骤S20,分配模块220通过监控服务器20中的DHCP服务分配IP地址给数据中心50中的各个服务器500,以和各个服务器500建立通信连接。具体而言,如图I所示,数据中心50有四个服务器500,通过DHCP服务给每个服务器500单独分配一个IP地址。步骤S30,获取模块230从各个服务器500的Hypervisor软件中获取每个虚拟机 的运行参数。所述运行参数包括虚拟机的CPU使用率、内存使用率、存储器使用率及网络使用率。步骤S40,计算模块240通过获取的运行参数计算各个服务器500在运行时的资源使用量。具体而言,将从各个服务器500上获取的各个虚拟机的CPU使用率、内存使用率、存储器使用率及网络使用率进行叠加,分别求出各个服务器500运行时的CPU利用率、内存使用率、存储器使用率及网络使用率,即获得各个服务器500在运行时的资源使用量。例如,假设服务器A有三个虚拟机,将该三个虚拟机的CPU利用率、内存使用率、存储器使用率及网络使用率进行叠加,计算出该服务器A运行时的CPU利用率、内存使用率、存储器使用率及网络使用率,即该服务器A的资源使用量。步骤S50,判断模块250判断各个服务器500在运行时的资源使用量是否大于设置的资源使用量。具体而言,判断服务器500在运行时的CPU利用率、内存使用率、存储器使用率及网络使用率是否大于设置的CPU利用率、内存使用率、存储器使用率及网络使用率。若服务器500在运行时的CPU利用率、内存使用率、存储器使用率及网络使用率中有任意一项大于设置的CPU利用率、内存使用率、存储器使用率及网络使用率,例如,服务器500在运行时的CPU利用率大于设置的CPU使用率、或服务器500在运行时的内存使用率大于设置的内存使用率、或服务器500在运行时的存储器使用率大于设置的存储器使用率、或服务器500在运行时的网络使用率大于设置的网络使用率,则判断结果为该服务器500在运行时的资源使用量大于设置的资源使用量,则流程进入步骤S60。若服务器500在运行时的CPU利用率、内存使用率、存储器使用率及网络使用率都小于或等于设置的CPU利用率、内存使用率、存储器使用率及网络使用率,例如,服务器500在运行时的CPU利用率小于或等于设置的CPU使用率、且服务器500在运行时的内存使用率小于或等于设置的内存使用率、且服务器500在运行时的存储器使用率小于或等于设置的存储器使用率、且服务器500在运行时的网络使用率小于或等于设置的网络使用率,则判断结果为该服务器500在运行时的资源使用量小于或等于设置的资源使用量,则直接结束流程。此外,判断模块250在进行判断时,还可以引入时间进行判断,即当判断结果为该服务器500在运行时的资源使用量大于设置的资源使用量,且该大于的情况超过一个固定的时间(例如,5分钟),流程才进入步骤S60,否则,直接结束流程。
步骤S60,当一台服务器500在运行时的资源使用量大于设置的资源使用量时,转移模块260将该服务器500上的虚拟机转移到其它服务器500上,使该服务器500在运行时的资源使用量小于或等于设置的资源使用量。具体而言,所述转移模块260通过调用Hypervisor软件将该服务器500上的虚拟机转移到其它服务器500上。需要说明的是,在转移服务器500上的虚拟机之前,先获得其它服务器500的资源使用量,以向资源使用量最低的服务器500进行转移,以平衡服务器500的资源,最大化提高数据中心50中服务器500的使用效率。转移的方式是将服务器500中的虚拟机一个一个的转移,且每转移一个虚拟机,立即判断该服务器500的资源使用量是否小于或等于设置的资源使用量,若判断结果为小于或等于设置的资源使用量,立即停止转移。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参 照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.一种虚拟机运行监测系统,其特征在于,该系统包括 设置模块,用于在监控服务器中设置每个服务器的资源使用量; 分配模块,用于通过监控服务器中的动态主机设置协议服务分配IP地址给数据中心的各个服务器,以和各个服务器建立通信连接; 获取模块,用于从各个服务器中获取每个虚拟机的运行参数; 计算模块,用于通过获取的运行参数计算各个服务器在运行时的资源使用量; 判断模块,用于判断各个服务器在运行时的资源使用量是否大于设置的资源使用量;及 转移模块,用于当一台服务器在运行时的资源使用量大于设置的资源使用量时,将该服务器上的虚拟机转移到其它服务器上,使该服务器在运行时的资源使用量小于或等于设置的资源使用量。
2.如权利要求I所述的虚拟机运行监测系统,其特征在于,所述资源使用量包括服务器的CPU使用率、内存使用率、存储器使用率及网络使用率。
3.如权利要求I所述的虚拟机运行监测系统,其特征在于,所述运行参数包括虚拟机的CPU使用率、内存使用率、存储器使用率及网络使用率。
4.如权利要求I所述的虚拟机运行监测系统,其特征在于,所述转移模块通过调用Hypervisor软件将虚拟机转移到其它服务器上。
5.一种虚拟机运行监测方法,其特征在于,该方法包括 在监控服务器中设置每个服务器的资源使用量; 通过监控服务器中的动态主机设置协议服务分配IP地址给数据中心的各个服务器,以和各个服务器建立通信连接; 从各个服务器中获取每个虚拟机的运行参数; 通过获取的运行参数计算各个服务器在运行时的资源使用量; 当一台服务器在运行时的资源使用量大于设置的资源使用量时,将该服务器上的虚拟机转移到其它服务器上,使该服务器在运行时的资源使用量小于或等于设置的资源使用量。
6.如权利要求5所述的虚拟机运行监测方法,其特征在于,所述资源使用量包括服务器的CPU使用率、内存使用率、存储器使用率及网络使用率。
7.如权利要求5所述的虚拟机运行监测方法,其特征在于,所述运行参数包括虚拟机的CPU使用率、内存使用率、存储器使用率及网络使用率。
8.如权利要求5所述的虚拟机运行监测方法,其特征在于,所述转移模块通过调用Hypervisor软件将虚拟机转移到其它服务器上。
全文摘要
一种虚拟机运行监测方法,该方法包括在监控服务器中设置每个服务器的资源使用量;通过监控服务器中的动态主机设置协议服务分配IP地址给数据中心的各个服务器,以和各个服务器建立通信连接;从各个服务器中获取每个虚拟机的运行参数;通过获取的运行参数计算各个服务器在运行时的资源使用量;当一台服务器在运行时的资源使用量大于设置的资源使用量时,将该服务器上的虚拟机转移到其它服务器上,使该服务器在运行时的资源使用量小于或等于设置的资源使用量。本发明还提供一种虚拟机运行监测系统。通过本发明可以避免由于服务器中资源使用量大于负荷,而导致虚拟机的资源使用量大增,且引起虚拟机的崩溃的情况发生。
文档编号H04L29/08GK102811141SQ20111014578
公开日2012年12月5日 申请日期2011年6月1日 优先权日2011年6月1日
发明者李忠一, 卢秋桦, 颜宗信, 林建志 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1