一种基于硬件基础工具监视虚拟化系统性能的架构及方法

文档序号:6425158阅读:132来源:国知局
专利名称:一种基于硬件基础工具监视虚拟化系统性能的架构及方法
技术领域
本发明涉及一种基于硬件基础工具监视虚拟化系统性能的架构及方法。
背景技术
在过去,计算机的软件系统(包括操作系统及运行其上的应用软件)性能一直受到软件厂商和他们的顾客的关注,因为系统性能直接关联到服务的品质、软件产品交易的成败。一般,有两种角度来看性能(performance)第一种角度是从应用软件造成的“结果”来看,即通常所谓“用户体验”的性能。 譬如可以在应用中加入代码,以测量从用户键入回车开始,到页面呈现出来为止的“响应时间”。这些测量性能的代码也可以与应用软件的功能结合,形成相当复杂的性能监视
(Performance Monitor) Couture 等人白勺美国专禾串 i青"enterprise application performance monitors” (申请号为 US20080235075)就是一个例子。第二种角度是从影响软件运行时性能的“原因”来看。造成软件运行的根本原因当然就是计算机芯片上的CPU、内存、10、网络等硬件资源。但过去因为无法直接从硬件测量性能,只好退而求其次的利用操作系统里的性能指令来测量进程等资源的性能。近年来有新的硬件监视基础工具,例如基于X86架构的硬件寄存器,可以对CPU实施监视,称之为性能监视机件(Performance Monitor Unit,以下简称PMU)。有关PMU的专利发明申请有不少,例如,Davidson 等人的美国专利申请“Hierarchical selection of direct and indirect counting events in a PMU” (申请号为 US6718403)、Mericas 等人的美国专利申请“Simplified event selection for a PMU” (申请号为 US7500138)和 Mericas 个人白勺美国专禾ll串i青"Method and product ofPMU for sampling all performance events generated by a processor”(申请号为US20060167658)。其它非PMU,但也是基于硬件的性能监视发明专利申请也不少,例如,Fowles的美国专利申请“Processor performance monitoring”(申请号为 US20060277395)、Kosche 的美国专利申请“Method and apparatus for synthesizing hardware counters from performance sampling"(串 i青号为 US20080177756)禾口Hunter 的美国专利申请"Processor bus for performance monitoring with digests” (申请号为 US20080294944)。性能监视机件PMU的寄存器有两类控制寄存器PMC和数据寄存器PMD。控制寄存器对CPU做经常性监视,且将监视的数据存放于数据寄存器。控制寄存器可以基于事件,也可以基于时间将收集到的事件加以整理,向上回报监视结果。这种硬件级别的监视有若干优势(1)首先,过去基于软件程序的监视方法,经常是在得到结果之后,要有被监视的软件的源码来修正,例如如何优化一个java的虚拟机程序,所以硬件级别的监视则不需要源码;(2)被监视的软件也没有因为监视的活动而影响到性能;(3)极底层的内核代码也可以被监视到;最重要的优势是(4)可以监视缓存(例如TLB miss和hit ;TLB是translation lookaside buffer的缩写,是内存管理硬件用来改善虚拟e物理地址翻译速度的CPU缓存;TLB把虚拟地址当成搜索关键字,搜索结果是物理地址;如果所要的地址在TLB里找得到,就称为TLB hit,否则称为TLB miss;经常找不到会导致资源性能下降。),这是其它任何方法都监视不到的。PMU的详情在惠普公司的Eranian "The perfmon2interface specification,,一文中有描述。使用PMU的应用不多,但尚未有用PMU,结合操作系统性能指令来测量“虚拟化系统”性能的方法。这里解释什么是虚拟化系统操作系统虚拟化的技术,导致一台物理机上运行多个“客户”操作系统(或称为虚拟机Virtual Machine,以下简称虚机,VM,英文俗称Guest)。这些虚机运行在虚机管理程序Hypervisor上,而Hypervisor又能直接运行在物理机上。大多数的情况,被监视的物理机都是机房里的服务器,俗称主机(Host)。随着虚拟化技术的不同,可能有半虚拟化或全虚拟化技术。但一般来说一个主机可被监视的空间至少有两个一个是虚拟机运行的空间, 称为(1)客户空间,另一个是Hypervisor运行的空间,称为(2)内核空间。有的虚拟化技术,例如Linux KVM,还保留原来的(3)用户空间。以上解说了主机内部情况。多个这样的主机形成一个集群,以主控主机(master)为首,从属主机(slave)为辅。多个这样的集群形成集中式、分布式或混合式的网络系统,构成本发明定义的“虚拟化系统”,这是一个地理上大范围的网络系统。现有技术,在申请号为201010183844. 6公开了专利《通过总线架构构建虚拟机监视器的方法及性能服务框架》,该专利描述了虚拟化系统如何将性能数据分析整理,然后根据这些数据来迁移虚机、调整应用,但并未描述虚拟化系统如何取得性能数据。

发明内容
为了解决上述现有技术存在的问题,本发明旨在提供一种基于硬件基础工具监视虚拟化系统性能的架构及方法,以将PMU(或类似工具)应用在虚拟化系统的性能监视中; 且本发明的性能监视就是针对虚拟化系统中各主机的CPU、内存、缓存、10、网络、进程等实施监视;同时,本发明基于硬件的性能监视法解决了虚拟化系统取得性能数据的问题。本发明之一所述的一种基于硬件基础工具监视虚拟化系统性能的架构,它包括至少一个主控主机,所述每个主控主机包括用户空间组件、客户空间组件、内核空间组件和硬件,其中,所述用户空间组件包括依次连接的策略管理器、工作负荷调整器、监视库和主机性能监视器,所述主机性能监视器还与工作负荷调整器连接,且该主机性能监视器包括用户空间监视器和内核空间监视器;所述客户空间组件包括至少一个通过内核串口通道与所述主机性能监视器连接的虚机,且所述虚机包括用于收集虚机资源的性能的虚机性能代理;所述内核空间组件包括依次与所述监视库连接的性能监视基础工具应用接口和性能监视基础工具核心代码模块,还包括任务调度器、内存管理器、网络驱动、文件系统和设备驱动,且所述网络驱动与所述工作负荷调整器连接;所述硬件支持外围的性能监视基础工具,该硬件包括与所述性能监视基础工具核心代码模块连接的PMU、分别与该PMU连接的PMD和PMC,还包括CPU、内存、网卡和硬盘,且所述网卡与所述网络驱动连接。在述的基于硬件基础工具监视虚拟化系统性能的架构中,还包括至少一个从属主机,所述每个主控主机通过网络管道与所述至少一个从属主机连接,以形成一个集群,所述多个主控主机与其各自的从属主机形成多个集群,且所述集群与集群之间通过集中式、分布式或混合式通讯方式通讯;所述从属主机包括所述主机性能监视器,且该从属主机内的主机性能监视器与所述主控主机内的网卡连接。在述的基于硬件基础工具监视虚拟化系统性能的架构中,所述虚拟化系统包括系统内部资源监视器以及系统外部资源监视器;所述策略管理器、工作负荷调整器和所述主控主机内的主机性能监视器构成一上层构架,其中所述每个策略管理器是至少一个工作负荷调整器的集合,所述每个工作负荷调整器是至少一个主机性能监视器的集合,所述每个主机性能监视器是至少一个所述虚机性能代理的集合,也是所述用户空间监视器和内核空间监视器的集合,且所述主机性能监视器分别被所述系统内部资源监视器以及系统外部资源监视器所继承。在述的基于硬件基础工具监视虚拟化系统性能的架构中,所述策略管理器用于解释用户策略请求,列举CPU、内存、网络、10、缓存所要达成的条件,并将所述用户策略请求区分为高、中、低等级;当一个集群中的主控主机无法满足该用户策略请求时,所述策略管理器根据询问集群的策略,同时或按优先次序询问该集群以外的其它集群中的主控主机的策略管理器,以满足该用户策略请求。在述的基于硬件基础工具监视虚拟化系统性能的架构中,所述主控主机中的工作负荷调整器从所述策略管理器获得策略请求,经由所述网络管道收集该主控主机所在的集群中各从属主机的资源性能数据,根据所述性能数据整理集群整体性能,并负责对各从属主机资源进行策略实施;所述工作负荷调整器收集到的资源性能数据用于判断所述从属主机资源的忙闲状态,即如果所述性能数据超过预设阀值,则状态从资源闲变为资源忙;如果所述性能数据低于所述阀值,则状态从资源忙变为资源闲;如果状态从资源忙变为资源不工作,则有异常发生;如果状态从资源不工作变为资源忙,则资源恢复正常。在述的基于硬件基础工具监视虚拟化系统性能的架构中,所述主机性能监视器用于监视用户空间、内核空间和客户空间,其中监视用户空间,即使用所述系统外部资源监视器,监视用户空间所有进程性能信息;监视内核空间,即包括启动、配置和结束所述内核空间监视器,并透过所述系统内部资源监视器,执行系统内部资源监视;监视客户空间,即首先,通过所述内核串口通道,与运行在所述各虚机内的虚机性能代理互动,从所述虚机取得数据,且所述虚机性能代理通过所述系统内部资源监视器,监视虚拟资源;其次,通过所述系统外部资源监视器监视虚机,并将该虚机作为一个进程,获得该进程的性能,以配合所述虚机性能代理所得的数据,判断所述虚机是否满足性能请求。在述的基于硬件基础工具监视虚拟化系统性能的架构中,所述系统内部资源监视器是基于性能监视基础工具按时间提取两次相对性能数据相减而得的;所述系统内部资源监视器监视的虚拟资源包括CPU资源、内存资源、IO资源、缓存资源和网络资源,其中所述CPU资源包括通过操作系统性能指令取得的CPU用来处理用户状态进程的时间总数、CPU用来处理内核状态进程的时间总数、CPU空闲的时间总数、CPU处理的硬中断总数和CPU处理的软中断总数;所述内存资源包括通过操作系统性能指令取得的全部内存、自由内存、共享内存和缓冲内存的信息;所述IO资源包括通过操作系统性能指令取得的一个或多个进程的IO读写量;所述缓存资源包括通过所述性能监视基础工具取得的缓存、TLB miss和hit的数据;所述网络资源包括通过操作系统性能指令取得的网络状态中的网络流量。在述的基于硬件基础工具监视虚拟化系统性能的架构中,所述系统外部资源监视器是基于性能监视基础工具按时间提取两次相对性能数据相减而得的;所述系统外部资源监视器监视的空间包括用户空间和客户空间,其中监视用户空间包括通过操作系统性能指令,取得所述进程在用户空间的CPU使用数据、缓存使用数据和TLB miss数据;监视客户空间包括通过操作系统性能指令,取得所述进程在用户空间的CPU使用数据、缓存使用数据和TLB miss数据,并观察所述虚机的CPU运行数据是否超过所述阀值, 以使用操作系统其它指令对该虚机的CPU占用率加以控制。在述的基于硬件基础工具监视虚拟化系统性能的架构中,所述架构还包括所述监视库的继承组件,所述监视库及其继承组件以及所述主控主机内的主机性能监视器构成一下层构架,其中所述监视库为最高层的类,其继承组件为监视器,所述监视器被所述主机性能监视器所继承,且该主机性能监视器分别被所述内核空间监视器、用户空间监视器和虚机性能代理所继承;所述每个监视器是至少一个监视对象的集合,所述每个监视对象是至少一个事件的集合,所述每个事件表示一个原子的监视事件。在述的基于硬件基础工具监视虚拟化系统性能的架构中,所述监视库用于为所有要监视资源的进程都创建一个监视器,并将该监视器加载在监视库中;当所述监视库进程开始时,为所有的监视器将所述性能监视基础工具可以监视的资源分解成为原子资源,然后进行监视,并把资源监视信息分派给所述各个监视器;当所述性能监视基础工具监测到 CPU有中断溢出,则将异常情况通知所述监视器;所述监视库还用于增加或删除监视器。在述的基于硬件基础工具监视虚拟化系统性能的架构中,所述监视器用于保存设置、载入设置,增加或删除所述监视对象,开始或停止所述监视对象以及刷新、保存监视信肩、ο在述的基于硬件基础工具监视虚拟化系统性能的架构中,所述监视对象根据配置文件的配置创建,且该配置文件包括所述性能监视基础工具能够监视的对象。在述的基于硬件基础工具监视虚拟化系统性能的架构中,如果所述性能监视基础工具是基于一次事件进行监视的,则该性能监视基础工具的阀值=最大值-1 ;如果所述性能监视基础工具是基于η次事件进行监视的,则该性能监视基础工具的阀值=最大值-η,其中,η为大于1的自然数;如果所述性能监视基础工具是基于事件概率进行监视的,则该性能监视基础工具的阀值=最大值_η个事件的随机数;如果所述性能监视基础工具是基于某时间内的事件数进行监视的,则统计该性能监视基础工具向CPU触发的事件数,当时钟向CPU触发事件,则回报各时段总共事件数;如果所述性能监视基础工具是基于η种事件进行监视的,则在各时段i里(i = 1, ...η),该性能监视基础工具统计向CPU触发的事件i的数目,且同种事件在各时段的总和乘以η即为需要回报的结果;如果所述性能监视基础工具是基于资源使用率进行监视的,则时间Tl和时间Τ2 之间的使用率=N/((T2-T1) XCPU被中断的次数),其中,N是统计指令总数。本发明之二所述的一种基于上述的基于硬件基础工具监视虚拟化系统性能的架构的监视方法,该方法包括以下步骤首先,管理员通过图形界面或用户应用程序通过所述性能监视器应用接口,向所述策略管理器做性能调整请求;然后,当所述策略管理器解释所述性能调整请求后,指示所述工作负荷调整器向所述主控主机的主机性能监视器要求经过所述网络管道回报所述各从属主机资源的性能状况;最后,由所述策略管理器向所述用户应用程序或管理员回报性能状况。由于采用了上述的技术解决方案,本发明能监视至少一个集群的性能,且该集群包含至少一个主机(该主机运行至少一个虚拟机),因此,本发明也能监视主机的性能。本发明为企业和云计算供应商提供了一种监视虚拟化系统性能的架构及方法,本发明并不在 PMU本身,其原理是基于硬件的基础工具来监视,调用性能监视基础工具应用接口来实现这一方法,建构出一个性能监视器(一个软件)。管理员可以透过图形界面与这个监视器互动,但其它的应用软件也可以利用这个监视器所提供的应用接口与之互动;例如调整虚拟与物理资源的应用软件可以调用监视器的接口,取得整体集群的忙闲概念,然后调整资源。


图Ia是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构的结构框图;图Ib是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的上层构架类图;图2是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的策略管理器的工作流程图;图3a是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的工作负荷调整器的工作流程图;图3b是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的工作负荷调整器的状态图;图4是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的主机性能监视器的工作流程图;图5a是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的系统内部资源监视器的工作流程图;图5b是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的系统外部资源监视器的工作流程图6是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的下层构架类图;图7是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的监视库的工作流程图;图8是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的监视器的工作流程图;图9是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的监视对象的工作流程图;图10是本发明之一的一种基于硬件基础工具监视虚拟化系统性能的架构中的事件执行流程图。
具体实施例方式下面结合附图,对本发明的具体实施例进行详细说明。本发明之一的一个实施例包含多个集群,每个集群又包含多个主机,每个主机有多个虚机。集群与集群之间可以是分布式、集中式、或混合式通讯。主机与主机之间经由以主控主机为首,以从属主机为辅的通讯管道(net pipe,例如TCP/IP)连接。主机与虚机之间是利用虚拟串口(virtual serial port)通道连接。所谓串口通道,就是虚拟机把此“通道(其实是个客户操作系统调用)”当成一个虚拟串口,而在内核空间经过Hypervisor运行的系统调用对此串口传送数据,速度快,因而不必走慢速的网络通道。请参阅图la,图中示出了本发明之一的一实施例的组成框图。本发明的架构包括至少一个主控主机11和至少一个从属主机12,每个主控主机11通过网络管道13与至少一个从属主机12连接,以形成一个集群,多个主控主机11与其各自的从属主机12形成多个集群,且集群与集群之间通过集中式、分布式或混合式通讯方式通讯,即本实施例的服务器虽有类似服务器集群的主从之分,但实际的架构可以是集中式或分布式的服务器联邦,也就是说,主控主机11可以掌控至少一个局部的(分布式联邦)或全局的(集中式联邦)从属主机12。每个主控主机11包括用户空间组件111、客户空间组件112、内核空间组件113和硬件114,其中,用户空间组件111包括依次连接的策略管理器1111、工作负荷调整器1112、监视库1113和主机性能监视器1114,主机性能监视器1114还与工作负荷调整器1112连接,且该主机性能监视器1114包括用户空间监视器11141和在内核空间运行的内核空间监视器 11142,这种主机性能监视器1114也存在于所有虚拟化系统中的其它主机中,例如从属主机12中;客户空间组件112包括至少一个通过内核串口通道1131与主机性能监视器1114 连接的虚机1121,即Hypervisor上运行至少一个虚机,且虚机1121包括用于收集虚机资源的性能的虚机性能代理11211 ;内核空间组件113包括依次与监视库1113连接的性能监视基础工具应用接口 1132和性能监视基础工具核心代码模块1133,还包括任务调度器1134、内存管理器1135、 网络驱动1136、文件系统1137和设备驱动1138等其它内核组件,且网络驱动1136与工作负荷调整器1112连接;有的操作系统虚拟化的技术如Xen把这些“其它内核组件”修改为 Hypervisor, Linux KVM的技术则是在这些组件之外,另有Hypervisor ;硬件114支持外围的性能监视基础工具,硬件114包括与性能监视基础工具核心代码模块1133连接的PMU 1141、分别与该PMU 1141连接的PMD 1143和PMC 1142,还包括 CPU 1144、内存1145、网卡1146、硬盘1147和其他设备1148,且网卡1146与网络驱动1136 连接;从属主机12包括主机性能监视器1114和虚机性能代理(图中未示)等,且该主机性能监视器1114与网卡1146连接。下面基于上述的基于硬件基础工具监视虚拟化系统性能架构,对本发明之二的一种基于硬件基础工具监视虚拟化系统性能的方法进行描述,本方法包括以下步骤首先,管理员通过图形界面或用户应用程序通过性能监视器应用接口 1132,向策略管理器1111做性能调整请求;然后,当策略管理器1111解释性能调整请求后,指示工作负荷调整器1112向主控主机11的主机性能监视器1114要求经过网络管道13回报各从属主机12资源的性能状况;最后,由策略管理器1111向用户应用程序或管理员回报性能状况。上述的策略管理器1111和工作负荷调整器1112的技术细节在王彦新等人的申请号为201010183844. 6的专利《通过总线架构构建虚拟机监视器的方法及性能服务框架》中也有详细揭示。本发明是从基于基础监视工具PMU的角度在以下的实施例中阐述这两个组件。具体来说,有关性能的请求或询问,是从用户而来,经过策略管理器1111进入虚拟化系统。请求大致有以下三类(1)大部分的监视数据是有关资源忙闲状态,也就是对于CPU、内存、10、网络等资源的监视数据,可以从“操作系统的性能指令”获得。但是要在何时开始,何时结束监视,监视事件要如何设置,则必须由“性能监视基础工具”(例如PMU)来控制。换句话说,是操作系统性能指令与性能监视基础工具的结合。(2)另外的监视数据是有关资源健康状态,也就是有关缓存和TLB miss的数据, 或有关某资源停止工作的信息。这类数据无法从操作系统的性能指令获得,只能依赖性能监视基础工具(例如PMU)。也就是说,性能监视基础工具单独被使用;(3)混合忙闲状态和健康状态,譬如进程的监视也只能依赖性能监视基础工具 (例如PMU),但所得的监视数据混合了忙闲状态和健康状态。因此,为了实现上述功能,本发明具有两大特征(1)能够监视虚机性能;(2)利用基于硬件的性能监视基础工具(虽然实施例使用PMU作为基础性能工具,但也可以使用其它非PMU的工具),包含利用基于时间取样或基于事件取样的方法。上述的两个特征可以从“架构”的角度加以阐述,即本发明包含上、下两层性能监视架构。下面对上层架构进行概述上层架构是一个涵盖整个“虚拟化系统”网络拓扑的面向对象的树状结构类图,以策略管理器为“始祖”类,被工作负荷调整器继承,工作负荷调整器又为主机性能监视器继承,虚机性能监视器,主机性能监视器最后被系统内部、外部资源监视器继承。系统内部、外部资源监视器利用操作系统性能指令来捕获数据,并利用性能监视基础工具的基于时间和基于事件的监视(注意虚机的性能是结合虚机系统内、外部监视的数据而得的。所以,系统内、外部资源监视是本发明的第一大特征,即本发明的虚拟化系统中包括系统内部资源监视器以及系统外部资源监视器)。请参阅图lb,图中示出了上层架构类图,或说是策略管理器1111及其继承组件的 “面向对象”工程类图,具体来说,策略管理器1111、工作负荷调整器1112和主控主机内的主机性能监视器1114构成了上层构架,由图可知,其中最高层的类是策略管理器1111,每个策略管理器1111是至少一个工作负荷调整器1112的集合(以令——表示,靠近 端的是集合,另一端的是集合中的成员);每个工作负荷调整器1112是至少一个主机性能监视器1114的集合;每个主机性能监视器1114是至少一个资源监视器0106(例如用户空间监视器 11141和内核空间监视器11142)和虚机性能代理11211的集合;最主要的类是主机性能监视器1114,它是所有用户空间监视器11141、内核空间监视器11142和虚机性能代理11211的基类,并分别被系统内部资源监视器104以及系统外部资源监视器105所继承(以<——表示,靠近<端的是被继承类,另一端是继承类)。由此可见,主机性能监视器1114可以是一个集合,可以包含至少一个集合里的成员。主机性能监视器1114又是一个监视功能的抽象概念,所有继承这个基类的系统内部资源监视器104、系统外部资源监视器105等类,或多或少都有同样的主机监视资源性能的功能。而主机性能监视器1114这个集合理的成员,也具有这些内部外部监视功能。请参阅图2,图中示出了本发明之一的策略管理器1111的工作流程图。总的来说,策略管理器用于解释用户策略请求,列举CPU、内存、网络、10、缓存所要达成的条件,并将用户策略请求区分为高、中、低等级,以及解释后PMU的事件设置信息,向工作负荷调整器1112传送策略,并在收集虚拟化系统资源信息后,返回资源地址和状况; 当一个集群中的主控主机11无法满足该用户策略请求,策略管理器1111根据询问集群的策略,同时或按优先次序询问该集群以外的其它集群中的主控主机的策略管理器1111,以满足该用户策略请求;即如果本地集群中没有满足请求的资源,策略管理器1111经过网络管道13通讯(如tcp/ip)向其它集群的主控主机11的策略管理器1111查询那个集群中有否符合该请求的资源,至于查询的优先顺序,或按序或同时查询,要看策略库中这方面的策略的规定,这些规定涉及集群管理的方式,例如集中式(centralized clusters),分布式 (distributed clusters),或混合式(mixed clusters)的管理。策略管理器1111的具体工作流程如下步骤201,进行策略管理器1111的初始化;步骤202,判断操作是否为接受策略请求;如是,转入步骤203,否则转入步骤 204 ;步骤203,解释策略请求,列举CPU、内存、网络、10、缓存所要达成的条件(例如高、 中或低),然后转入步骤212;步骤204,判断操作是否为传达策略请求;如是,转入步骤205,否则转入步骤 208 ;步骤205,向工作负荷调整器1112传送策略,然后转入步骤206 ;
步骤206,工作负荷调整器1112经过网络管道13通讯(如tcp/ip)向各主机查询符合该条件的资源,然后转入步骤207 ;步骤207,对符合条件的资源实施策略,然后转入步骤212 ;步骤208,判断操作是否为回应策略请求;如是,转入步骤209,否则转入步骤 213 ;步骤209,判断工作负荷调整器1112回报集群中是否有主机满足请求;如是,转入步骤211,否则转入步骤210 ;步骤210,策略管理器1111经过网络管道13通讯(如tcp/ip)向其它集群的主控主机11的策略管理器1111查询那个集群中有否符合该请求的资源,然后转入步骤212 ;步骤211,返回资源地址和状况,然后转入步骤212 ;步骤212,正常返回;步骤213,错误返回。请参阅图3a,图中示出了本发明之一的工作负荷调整器1112的工作流程图。总的来说,工作负荷调整器1112从策略管理器1111获得策略请求,经由网络管道 13收集虚拟化系统中所在的集群内各从属主机12的资源性能数据;并且根据性能数据整理集群整体性能,负责对各从属主机12资源进行策略实施,譬如增删主机,增删虚机资源, 进行异常发现和处理。工作负荷调整器1112的具体工作流程如下步骤301,工作负荷调整器1112初始化,包括启动监视库1113 ;监视库1113启动后,(1)工作负荷调整器1112将PMU的事件设置信息适时传给监视库1113,例如PMC的事件定义设置以及监视时长设置,以收集资源的信息;(2)所有的监视器、监视对象、事件都因需要创建,创建时根据监视库1113已知的设置信息来设置PMU ;步骤302,判断策略是否处理资源调整请求;如是,转入步骤303,否则转入步骤 308 ;步骤303,判断操作是否全部主机性能监视器1114都问过;如是,转入步骤304,否则转入步骤307 ;步骤304,经由网络通道13询问下一个主机的主机性能监视器1114,然后转入步骤 305 ;步骤305,判断是否可以满足该资源请求;如是,转入步骤306,否则转入步骤 303 ;步骤306,主机性能监视器1114处理调整资源的请求,然后转入步骤303 ;步骤307,在主控主机11上的工作负荷调整器1112收集其所关心的数据,整理后了解其它集群中各主机情况和集群整体情况,因而可以回报满足请求的主机(例如两台最空闲的主机),或回报无主机满足该资源请求,然而转入步骤318 ;步骤308,判断策略是否为增加删除主机;如是,转入步骤309,否则转入步骤 310 ;步骤309,工作负荷调整器1112增加/删除主机,然后转入步骤318 ;步骤310,判断策略是否为加删除虚机资源;如是,转入步骤311,否则转入步骤 313 ;
步骤311,工作负荷调整器1112经主机性能监视器1114通知虚机性能代理 11211,然后转入步骤312 ;步骤312,虚机性能代理11211增加/删除虚机资源,然后转入步骤318 ;步骤313,判断策略是否为异常发现和处理;如是,转入步骤314,否则转入步骤 319 ;步骤314,判断是否某资源从繁忙进入不工作状态;如是,转入步骤315,否则重复步骤314 ;步骤315,虚机性能代理11211发现虚机资源异常,或主机性能监视器1114的用户部分发现主机应用异常,或内核部分发现内核状态异常;然后转入步骤316 ;步骤316,经主机性能监视器1114通知工作负荷调整器1112该资源的异常情况, 然后转入步骤317;步骤317,策略管理器1111根据该异常信息来处理异常情况,然后转入步骤318 ;步骤318,正常返回;步骤319,错误返回。请参阅图3b,图中示出了本发明之一的工作负荷调整器1112的状态图。工作负荷调整器1112收集到的资源性能数据用于判断从属主机12资源的忙闲状态,而状态的改变也主动的显示了发生异常和恢复正常的健康情况。工作负荷调整器1112 还根据收集的主控主机11所在的集群中各从属主机12的性能数据整理集群整体性能。主机资源状态具体包括资源闲的状态31、资源忙的状态32和资源不工作的状态33。如果性能数据超过预设阀值,则状态从资源闲变为资源忙;如果性能数据低于阀值,则状态从资源忙变为资源闲;如果状态从资源忙变为资源不工作,则有异常发生;如果状态从资源不工作变为资源忙,则资源恢复正常。请参阅图4,图中示出了本发明之一的主机性能监视器1114的工作流程图。总的来说,主机性能监视器1114负责监视用户空间资源(即应用进程)、客户空间 (即虚机)资源和主机内核空间资源,并负责主机内核空间监视器11142的启动、配置和结束,其中监视用户空间,即使用系统外部资源监视器105,监视用户空间所有进程性能信息;监视内核空间,即包括启动、配置和结束内核空间监视器11142,并透过系统内部资源监视器104,执行系统内部资源监视;监视客户空间,即首先,通过Hypervisor内部的内核串口通道1131,与运行在各虚机1121内的虚机性能代理11211互动,从虚机1121取得数据,且虚机性能代理11211 通过系统内部资源监视器104,监视虚拟资源;其次,通过系统外部资源监视器105从 Hypervisor监视虚机1121,并将该虚机1121作为一个进程,获得该进程的性能,以配合虚机性能代理11211所得的数据,判断虚机1121是否满足性能请求。主机性能监视器1114的具体工作流程如下步骤401,主机性能监视器1114初始化,然后转入步骤402 ;步骤402,判断操作是否为监视用户空间;如是,转入步骤403,否则转入步骤 404 ;
步骤0403,进入用户空间监视器11141,每隔一定时间从系统外部资源监视器105 收集所关心的用户空间所有进程性能信息,然后转入步骤416 ;步骤404,判断操作是否为管理内核空间监视器11142 ;如是,转入步骤405,否则转入步骤406 ; 步骤405,启动、配置、结束内核空间监视器11142,然后转入步骤416 ;步骤406,判断操作是否为监视内核空间;如是,转入步骤407,否则转入步骤 408 ;步骤407,利用系统内部资源监视器104执行内核资源CPU、内存、10、网络、缓存的监视,然后转入步骤416;步骤408,判断操作是否为监视本机全部虚机1121资源;如是,转入步骤409,否则转入步骤417 ;步骤409,开始进入内核空间监视器11142,判断是否全部虚机性能代理11211都问过;如是,转入步骤415,否则转入步骤410 ;步骤410,经由内核串口通道1131询问下一个虚机性能代理11211,然后转入步骤 411 ;步骤411,虚机性能代理11211利用系统内部资源监视器104监视CPU、内存、10、 网络等资源,然后转入步骤412 ;步骤412,系统外资源监视器105把虚机1121当成进程来监视,然后转入步骤 413 ;步骤413,综合虚机1121内部与外部的监视信息处理调整资源的请求,然后转入步骤414 ;步骤414,回报本虚机1121是否可以满足该资源的请求,然后转入步骤409 ;步骤415,主机性能监视器1114收集其所关心的数据,整理后了解客户空间中各虚机1121情况和虚机1121整体情况,因而可以回报满足请求的虚机1121 (例如两台最空闲的虚机1121),或回报无虚机1121满足该资源请求,然后转入步骤416 ;步骤0416,正常返回;步骤0417,错误返回。请参阅图5a,图中示出了本发明之一的系统内部资源监视器104的工作流程图。本实施例仅以Linux的操作系统性能指令为例,但所监视的Hypervisor操作系统可以是其它操作系统,例如IBM AIX、z-0S或太阳的SunOS。系统内部资源监视器104提供了 CPU、内存、10、网络、缓存的性能数据。它提供了主机内核空间的监视以及虚机性能代理 11211对虚机1121内部的监视。对PMU而言,差别是虚机性能代理11211无法使用内核级别的取样和内核级别的多事件的事件集(event set)。由于非内核级别的监视会有较大的资源消耗(例如较多的内容交换,即context switch),这对虚机1121的监视精确度有影响。系统内部资源监视器104是基于性能监视基础工具按时间提取两次相对性能数据相减而得的;系统内部资源监视器104监视的虚拟资源包括CPU资源、内存资源、IO资源、缓存资源和网络资源,其中CPU资源包括通过操作系统性能指令取得的CPU用来处理用户状态进程的时间总数、CPU用来处理内核状态进程的时间总数、CPU空闲的时间总数、CPU处理的硬中断总数和 CPU处理的软中断总数;内存资源包括通过操作系统性能指令取得的全部内存、自由内存、共享内存和缓冲内存的信息;IO资源包括通过操作系统性能指令取得的一个或多个进程的IO读写量;缓存资源包括通过所述性能监视基础工具取得的缓存、TLB miss和hit的数据;网络资源包括通过操作系统性能指令取得的网络状态中的网络流量。系统内部资源监视器104的具体工作流程如下步骤501,系统内部资源监视器104初始化,然后转入步骤502 ;步骤502,判断操作是否为监视CPU ;如是,转入步骤503,否则转入步骤506 ;步骤503,设定监视起始时间Tl,从Cpu_uSage_State取得CPU用来处理用户状态进程的时间总数、CPU用来处理内核状态进程的时间总数、CPU空闲的时间总数、CPU处理的硬中断总数和CPU处理的软中断总数,然后转入步骤504 ;步骤504,判断是否已达监视终结时间T2 ;如是,转入步骤0505,否则重复步骤 504 ;步骤505,取得监视终结时间T2的相对数据,将监视终结时间T2的数据减去监视起始时间Tl的数据,就可以得到在监视起始时间Tl —监视终结时间T2这段时间内CPU耗在各类进程上的时间数以及收到的软中断、硬中断数,然后转入步骤518 ;步骤506,判断操作是否为监视内存;如是,转入步骤507,否则转入步骤510 ;步骤507,设定监视起始时间Tl,从sysinfo取得各种内存totalram、freeram、 sharedram, bufferram等等的信息以及一些关于进程的信息,然后转入步骤518 ;步骤508,判断是否已达监视终结时间T2 ;如是,转入步骤509,否则转入步骤 508 ;步骤509,取得监视终结时间T2的相对数据,将监视终结时间T2的数据减去监视起始时间Tl的数据,就可以得到在监视起始时间Tl —监视终结时间T2这段时间内内存的使用情况,然后转入步骤518;步骤510,判断操作是否监视IO ;如是,转入步骤509,否则转入步骤513 ;步骤511,监视10,然后转入步骤512 ;步骤512,每隔一定时间,收集一个或多个进程的IO读写量,加以汇总,然后转入步骤518 ;步骤513,判断操作是否监视网络;如是,转入步骤514,否则转入步骤516 ;步骤514,监视网络,然后转入步骤515 ;步骤515,每隔一定时间,解释Linux指令netstat中TCPEXT的网络流量,加以汇总,然后转入步骤518 ;步骤516,判断操作是否监视缓存;如是,转入步骤0517,否则转入步骤519 ;步骤517,透过PMU工具接口取得监视缓存结果,然后转入步骤518 ;步骤518,正常返回;步骤519,错误返回。请参阅图5b,图中示出了本发明之一的系统外部资源监视器105的工作流程图。
本实施例仅以Linux的操作系统性能指令为例,但所监视的Hypervisor操作系统可以是其它操作系统,例如IBM AIX.z-OS或太阳的SunOS。系统外部资源监视器105提供了用户空间和客户空间的性能数据;具体来说,它提供了 (1)主机用户空间的监视,主要是监视运行在用户空间的进程。举例来说,使用 PMU的基础监视工具可以取得每个进程CPU使用数据、缓存使用数据、和TLB miss数据。(2)把虚机当成一个进程,从外部监视,也就是对客户空间的监视。举例来说,QEMU 是一种Hypervisor的仿真器,它使用软件仿真各种CPU (例如x86mainstone)主板。因此, 有的操作系统虚拟化技术是将虚拟机代码运行在QEMU仿真器上,而QEMU又可以是在Linux 上运行的一个进程。所以,监视所有(QEMU+虚拟机)的进程,取得进程在用户空间的CPU 使用数据、缓存使用数据和TLB miss数据,并观察虚机的CPU运行数据是否超过所述阀值, 以使用操作系统其它指令对该虚机的CPU占用率加以控制,也就是对客户空间的监视。上述虚拟机监视,较为简单,但对于Linux的KVM,QEMU的运行还要涉及客户空间和内核空间的切换,因此要求监视数据的精确就更复杂。对于PMU,从外部来监视虚机,依然可以使用内核级别的取样和内核级别的事件集。而在得知虚拟机运行时超过某个CPU百分比阀值时,还可以用Linux的指令cgroup对该虚机的运行加以限制,这可用来弥补虚机代理不能从内部监视看到全局的缺陷。系统外部资源监视器105是基于性能监视基础工具按时间提取两次相对性能数据相减而得的;系统外部资源监视器105的具体工作流程如下步骤520,系统外部资源监视器105初始化,然后转入步骤521 ;步骤521,判断操作是否为监视用户空间;如是,转入步骤522,否则转入步骤 525 ;步骤522,设定监视起始时间Tl,使用PMU工具的API (应用程序编程接口)“perf monitor-e cpu,cache, tlb_missing-pid target” 取得进程的 CPU 使用数据、缓存使用数据和TLB miss数据,然后转入步骤523 ;步骤523,判断是否已达监视终结时间T2 ;如是,转入步骤524,否则重复步骤 523 ;步骤524,取得监视终结时间T2的相对数据,将监视终结时间T2的数据减去监视起始时间Tl的数据,就可以得到在监视起始时间Tl —监视终结时间T2这段时间内每个进程的CPU使用数据、缓存使用数据和TLB miss数据,然后转入步骤529 ;步骤525,判断操作是否为监视客户空间;如是,转入步骤0526,否则进行步骤 0530 ;步骤0526,设定监视起始时间Tl,使用PMU工具的API :“perfmonitor-e cpu, cache, tlb_missing-pid target”取得(QEMU+虚拟机)进程的CPU使用数据、缓存使用数据和TLB miss数据,然后转入步骤527 ;步骤527,判断是否已达监视终结时间T2 ;如是,转入步骤528,否则重复步骤 527 ;步骤528,取得监视终结时间T2的相对数据,将监视终结时间T2的数据减去监视起始时间Tl的数据,就可以得到在监视起始时间Tl —监视终结时间T2这段时间内每个 (QEMU+虚机)进程的CPU使用数据、缓存使用数据和TLB miss数据;
步骤529,正常返回;步骤530,错误返回。下面对下层架构进行概述下层架构仅在单独主机上实施。下层架构是一个面向对象的树状结构,“始祖”对象是“监视库”,其它的子孙对象由此继承,按序为监视器、主机性能监视器、系统内、外部资源监视器。监视器也是一个集合类,包含至少一个监视对象,而一个监视对象又包含至少一个事件。事件,可以基于事件取样和基于时间取样从性能监视基础工具取得资源的性能数据,并且使用以下六种方法监视监视基于一次事件、监视基于 η次事件、监视基于事件概率、监视基于某时间内的事件数、监视基于η种事件和监视基于资源使用率。所以,事件的细节是本发明的另一大特征。请参阅图6,图中示出了下层架构类图,或说是监视库及其继承组件的“面向对象” 工程类图。具体来说,监视库1113及其继承组件以及主控主机11内的主机性能监视器1114 构成一下层构架,由图可知,其中监视库1113为最高层的类,其继承组件为监视器602 ;监视器602是最主要的类,它是所有监视器的基类,被主机性能监视器1114所继承(以<——表示,靠近<端的是被继承类,另一端是继承类);每个监视器602是至少一个监视对象604的集合(以令——表示,靠近 端的是集合,另一端的是集合中的成员);每个监视对象604是至少一个事件605的集合,即包含一个或者多个事件605 ;每个事件605表示一个原子的监视事件。由此可见,监视器602可以是一个监视功能的抽象概念,所有继承这个基类的主机性能监视器1114、虚机性能代理11211等类,或多或少都有同样的监视资源性能的功能, 且监视器602又是一个集合,可以包含至少一个集合里的成员。请参阅图7,图中示出了本发明之一的监视库1113的工作流程图。总的来说,监视库1113负责启动所有监视进程,为所有要监视资源的进程都创建一个监视器602,并将监视器602加载在监视库1113中。当监视库1113进程开始时,为所有的监视器602将性能监视基础工具可以监视的资源分解成为可以监视的原子资源,然后进行监视,并把资源监视信息分派给各个监视器602。监视库1113也负责停止所有监视进程,也就是删除所有监视器602,或启动个别监视器602,或删除个别监视器602。当性能监视基础工具(即PMU)监测到CPU有溢出中断发生时,PMU将异常情况通知监视器602。监视库1113的具体工作流程如下步骤701,监视库1113初始化,然后转入步骤702 ;步骤702,判断操作是否为监视进程开始运行;如是,转入步骤703,否则转入步骤 705 ;步骤703,为所有要监视资源的进程都创建一个监视器602加载在该库中,然后转入步骤704 ;步骤704,监视库1113进程开始,所有监视器602都分解性能监视基础工具可以监视的原子资源,然后进行监视,并把资源监视信息分派给各个监视器602,然后转入步骤 722 ;步骤705,判断操作是否为监视总进程停止运行;如是,转入步骤706,否则转入步骤 711 ;步骤706,判断是否所有监视器602轮循完毕;如是,转入步骤707,否则转入步骤 708 ;步骤707,监视库1113进程停止,然后转入步骤722 ;步骤708,进入下一个监视器602,然后转入步骤709 ;步骤709,结束监视该监视器602所有监视对象604,然后转入步骤710 ;步骤710,删除该监视器602,然后转入步骤706 ;步骤711,判断操作是否为添加监视器;如是,转入步骤712,否则转入步骤713 ;步骤712,添加监视器602,然后转入步骤722 ;步骤713,判断操作是否删除监视器602 ;如是,转入步骤714,否则转入步骤719 ;步骤714,判断是否所有监视对象604轮循完毕;如是,转入步骤715,否则转入步骤 716 ;步骤715,删除监视器602,然后转入步骤722 ;步骤716,进入下一个监视对象604,然后转入步骤717 ;步骤717,结束该监视监视对象604,然后转入步骤718 ;步骤718,删除该监视对象604,然后转入步骤714 ;步骤719,判断操作是否通知监视器602 ;如是,转入步骤720,否则转入步骤723 ;步骤720,PMU有溢出中断发生,然后转入步骤721 ;步骤721,PMU通知监视器602该资源的异常情况,然后转入步骤722 ;步骤722,正常返回;步骤723,错误返回。请参阅图8,图中示出了本发明之一的监视器602的工作流程图。总的来说,监视器602是一个抽象概念,具有多个监视的基本功能,适用于主机性能监视器1114、虚机性能代理11211、用户空间监视器11141、内核空间监视器11142。这些基本功能包含保存设置、载入设置、添加监视器602的监视对象604、删除监视器602的监视对象604、开始监视所有监视对象604、结束监视所有监视对象604、保存监视数据和刷新监视数据。监视器602的具体工作流程如下步骤801,监视器602初始化,然后转入步骤802 ;步骤802,判断操作是否为保存设置;如是,转入步骤803,否则转入步骤805 ;步骤803,收集当前设置信息,然后转入步骤804 ;步骤804,写入设置文件,然后转入步骤826 ;步骤805,判断操作是否为载入设置;如是,转入步骤0806,否则转入步骤807 ;步骤806,读入设置文件,加载这些设置,然后转入步骤826 ;步骤807,判断操作是否为添加监视器602的监视对象604 ;如是,转入步骤808, 否则转入步骤811 ;步骤808,判断监视器602是否已存在;如是,转入步骤809,否则转入步骤810 ;步骤809,添加该监视器602的监视对象604,然后转入步骤826 ;步骤810,错误返回;
步骤811,判断操作是否为删除监视器602的监视对象604 ;如是,转入步骤812, 否则转入步骤814;步骤812,判断监视器602是否已存在;如是,转入步骤813,否则转入步骤810 ;步骤813,删除监视对象604,然后转入步骤826 ;步骤814,判断操作是否开始监视所有监视对象604 ;如是,转入步骤815,否则转入步骤817 ;步骤815,判断是否全部监视对象604都轮循完毕;如是,转入步骤826,否则转入步骤816 ;步骤816,开始该监视对象604,然后转入步骤815 ;步骤817,判断操作是否结束监视所有监视对象604 ;如是,转入步骤818,否则转入步骤820 ;步骤818,判断是否全部监视对象604都轮循完毕;如是,转入步骤826,否则转入步骤819 ;步骤819,结束该监视对象604,然后转入步骤818 ;步骤820,判断操作是否保存监视数据;如是,转入步骤821,否则转入步骤823 ;步骤821,判断是否保存数据时间已到;如是,转入步骤822,否则重复步骤821 ;步骤822,将监视信息写入文件,然后转入步骤826 ;步骤823,判断操作是否刷新监视数据;如是,转入步骤824,否则进行步骤827 ;步骤824,判断是否刷新间隔已到;如是,转入步骤825,否则重复步骤824 ;步骤825,读入最新监视信息,然后转入步骤826 ;步骤826,正常返回;步骤827,错误返回。请参阅图9,图中示出了本发明之一的监视对象604的工作流程图。总的来说,监视对象604的最重要的基本功能是创建监视对象604,创建时,根据配置文件的配置创建监视对象604 ;该配置文件包含性能监视基础工具能够监对象, 例如CPU、内存和缓存等等;监视对象604的其它的基本功能包括添加监视对象604、删除监视对象604和释放监视对象。监视对象604的具体工作流程如下步骤901,监视对象604初始化,然后转入步骤902 ;步骤902,判断操作是否创建监视对象604 ;如是,转入步骤903,否则转入步骤 0907 ;步骤903,判断是否全部默认事件605都轮循过;如是,转入步骤904,否则转入步骤 906 ;步骤904,进入下一个事件605,然后转入步骤905 ;步骤905,添加事件605,然后转入步骤903 ;步骤906,根据配置文件的配置创建监视对象604 ;该配置文件包含性能监视基础工具能够监视的对象,例如CPU、内存和缓存等等,然后转入步骤917 ;步骤907,判断操作是否添加事件605 ;如是,转入步骤908,否则转入步骤910 ;步骤908,取得事件605类型和数值,然后转入步骤909 ;
20
步骤909,创建事件605,然后转入步骤917 ;步骤910,判断操作是否删除事件605 ;如是,转入步骤911,否则转入步骤912 ;步骤911,删除事件605,然后转入步骤917 ;步骤912,判断操作是否释放监视对象604 ;如是,转入步骤913,否则转入步骤 918 ;步骤913,判断是否全部事件605都已删除;如是,转入步骤916,否则转入步骤 914 ;步骤914,进入下一个事件605,然后转入步骤915 ;步骤915,删除该事件605,然后转入步骤913 ;步骤916,释放监视对象604,然后转入步骤917 ;步骤917,正常返回;步骤918,错误返回。请参阅图10,图中示出了本发明之一的事件605的执行流程图。总的来说,监视器602使用了基于事件605、基于时间取样的6种方法(1)基于一次事件605 将PMD阀值设为最大值减1,如果达到此值,会触发监视器 602上报。(2)基于η次事件605 将PMD阀值设为最大值减η,,其中,η为大于1的自然数, 如果达到此值,会触发监视器602上报。(3)基于事件605概率将PMD阀值设为最大值减η个事件的随机数,如果达到此值,会触发监视器602上报。(4)基于某时间内的事件数累计向CPU触发的事件数,直到时钟达到某一特定时段,然后回报各时段的总共事件数。(5)基于多种事件605(假设有η种事件)在时段1里累计第1种事件的数目,...,在时段η里累计第η种事件的数目,在时段η+1里累计第1种事件的数目,...,在时段2η里累计第η种事件的数目,在时段(m-1) X η+1里累计第1种事件的数目,...,在时段mXη里累计第η种事件的数目,直到时段mXη达到统计时间,然后把第1种事件在各时段的数目总和乘以η,...,第η种事件在各时段的数目总和乘以η,最后,回报所得的各种事件的结果数目。(6)基于资源使用率若N是统计指令总数,回报时间Tl和Τ2之间的使用率=N/ ((T2-T1)XCPU被中断的次数)。事件605的具体执行流程如下步骤1001,事件605初始化,然后转入步骤1002 ;步骤1002,判断操作是否监视基于一次事件605 ;如是,转入步骤1003,否则转入步骤1004 ;步骤1003,PMD阀值=最大值_1,然后转入步骤1008 ;步骤1004,判断操作是否监视基于η次事件605 ;如是,转入步骤1005,否则转入步骤1006 ;步骤1005,PMD阀值=最大值_η,然后转入步骤1008 ;步骤1006,判断操作是否监视基于事件605概率;如是,转入步骤1007,否则转入步骤1009 ;步骤1007,PMD阀值=最大值_n个事件的随机数,然后转入步骤1008 ;步骤1008,当PMD变数值达到PMD阀值,PMD向CPU触发事件,然后转入步骤1021 ;步骤1009,判断操作是否监视基于某时间内的事件数;如是,转入步骤1010,否则转入步骤1012 ;步骤1010,统计PMD向CPU触发的事件数,然后转入步骤1011 ;步骤1011,时钟向CPU触发事件605,汇报各时段总共事件数,然后转入步骤 1021 ;步骤1012,判断操作是否监视基于多种事件605 ;如是,转入步骤1013,否则转入步骤1018 ;步骤1013,在各时段η里,PMD统计向CPU触发的事件605的η的数目,然后转入步骤1014 ;步骤1014,时钟向CPU触发事件605,然后转入步骤1015 ;步骤1015,判断全部事件605种类η是否都已轮循过;如是,转入步骤1016,否则转入步骤1017 ;步骤1016,各类事件605MUX总数乘以事件605类别总数,再汇报各类事件605乘了类别总数以后的数目,然后转入步骤1021 ;步骤1017,计算第η类事件在各时段事件605MUX总数,然后转入步骤1015 ;步骤1018,判断操作是否监视基于使用率;如是,转入步骤1019,否则进行步骤 1022 ;步骤1019,若N是统计指令总数,时间Tl和Τ2之间的使用率=N/((T2_T1) XCPU 被中断的次数),然后转入步骤1020 ;步骤1020,回报使用率,然后转入步骤1021 ;步骤1021,正常返回;步骤1022,错误返回。在实际的部署环境中,本发明所述虚拟化系统性能监视方法并未限定虚拟机所使用的是任何商用Hypervisor,包括运软公司的TVM,思杰的Xen,威睿的ESX等等;虚拟操作系统则可以是Windows,Linux,Android,和其它手机虚拟机。另外,虽然本发明的虚拟化系统性能监视方法,在实施例的说明中用了运行在x86架构上的基础性能监视工具PMUJfi 本方法也涵盖其它运行在x86架构上的基础性能监视工具,甚至非x86的硬件架构(例如 IBM,太阳等)。根据上述流程的描述可以得出,采用以上虚拟化系统性能监视方法,一方面为企业的私有云提供了监视资源性能的技术,该技术是在硬件的基础上,提供性能和事件数据, 让管理员可因理解整体虚拟化系统的忙闲状况而做出工作负荷调整,或由上层应用调度本方法的应用接口,实现负荷调整的自动化;另一方面,公有云的云供应商也可以利用管理员手动和应用自动的上述手段来使用本发明,且不受限于多房客、多数据中心、大幅员地域的网络架构(例如分布式或集中式联邦)。综上所述,本发明结合了基于硬件的基础性能监视工具和运行在各服务器上的虚拟机性能代理、主机性能监视器,提供了一种虚拟化系统的性能监视的架构和方法。本发明能够监视虚机性能、能够基于时间取样、基于事件取样或两种混合方式,为虚拟化系统开创了新的性能监视方法。 以上结合附图实施例对本发明进行了详细说明,本领域中普通技术人员可根据上述说明对本发明做出种种变化例。因而,实施例中的某些细节不应构成对本发明的限定,本发明将以所附权利要求书界定的范围作为本发明的保护范围。
权利要求
1.一种基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述架构包括至少一个主控主机,所述每个主控主机包括用户空间组件、客户空间组件、内核空间组件和硬件,其中,所述用户空间组件包括依次连接的策略管理器、工作负荷调整器、监视库和主机性能监视器,所述主机性能监视器还与工作负荷调整器连接,且该主机性能监视器包括用户空间监视器和内核空间监视器;所述客户空间组件包括至少一个通过内核串口通道与所述主机性能监视器连接的虚机,且所述虚机包括用于收集虚机资源的性能的虚机性能代理;所述内核空间组件包括依次与所述监视库连接的性能监视基础工具应用接口和性能监视基础工具核心代码模块,还包括任务调度器、内存管理器、网络驱动、文件系统和设备驱动,且所述网络驱动与所述工作负荷调整器连接;所述硬件支持外围的性能监视基础工具,该硬件包括与所述性能监视基础工具核心代码模块连接的PMU、分别与该PMU连接的PMD和PMC,还包括CPU、内存、网卡和硬盘,且所述网卡与所述网络驱动连接。
2.根据权利要求1所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述架构还包括至少一个从属主机,所述每个主控主机通过网络管道与所述至少一个从属主机连接,以形成一个集群,所述多个主控主机与其各自的从属主机形成多个集群,且所述集群与集群之间通过集中式、分布式或混合式通讯方式通讯;所述从属主机包括所述主机性能监视器,且该从属主机内的主机性能监视器与所述主控主机内的网卡连接。
3.根据权利要求2所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述虚拟化系统包括系统内部资源监视器以及系统外部资源监视器;所述策略管理器、 工作负荷调整器和所述主控主机内的主机性能监视器构成一上层构架,其中所述每个策略管理器是至少一个工作负荷调整器的集合,所述每个工作负荷调整器是至少一个主机性能监视器的集合,所述每个主机性能监视器是至少一个所述虚机性能代理的集合,也是所述用户空间监视器和内核空间监视器的集合,且所述主机性能监视器分别被所述系统内部资源监视器以及系统外部资源监视器所继承。
4.根据权利要求3所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述策略管理器用于解释用户策略请求,列举CPU、内存、网络、10、缓存所要达成的条件,并将所述用户策略请求区分为高、中、低等级;当一个集群中的主控主机无法满足该用户策略请求时,所述策略管理器根据询问集群的策略,同时或按优先次序询问该集群以外的其它集群中的主控主机的策略管理器,以满足该用户策略请求。
5.根据权利要求3所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述主控主机中的工作负荷调整器从所述策略管理器获得策略请求,经由所述网络管道收集该主控主机所在的集群中各从属主机的资源性能数据,根据所述性能数据整理集群整体性能,并负责对各从属主机资源进行策略实施;所述工作负荷调整器收集到的资源性能数据用于判断所述从属主机资源的忙闲状态, 即如果所述性能数据超过预设阀值,则状态从资源闲变为资源忙;如果所述性能数据低于所述阀值,则状态从资源忙变为资源闲;如果状态从资源忙变为资源不工作,则有异常发生;如果状态从资源不工作变为资源忙,则资源恢复正常。
6.根据权利要求3所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述主机性能监视器用于监视用户空间、内核空间和客户空间,其中监视用户空间,即使用所述系统外部资源监视器,监视用户空间所有进程性能信息;监视内核空间,即包括启动、配置和结束所述内核空间监视器,并透过所述系统内部资源监视器,执行系统内部资源监视;监视客户空间,即首先,通过所述内核串口通道,与运行在所述各虚机内的虚机性能代理互动,从所述虚机取得数据,且所述虚机性能代理通过所述系统内部资源监视器,监视虚拟资源;其次,通过所述系统外部资源监视器监视虚机,并将该虚机作为一个进程,获得该进程的性能,以配合所述虚机性能代理所得的数据,判断所述虚机是否满足性能请求。
7.根据权利要求6所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述系统内部资源监视器是基于性能监视基础工具按时间提取两次相对性能数据相减而得的;所述系统内部资源监视器监视的虚拟资源包括CPU资源、内存资源、IO资源、缓存资源和网络资源,其中所述CPU资源包括通过操作系统性能指令取得的CPU用来处理用户状态进程的时间总数、CPU用来处理内核状态进程的时间总数、CPU空闲的时间总数、CPU处理的硬中断总数和 CPU处理的软中断总数;所述内存资源包括通过操作系统性能指令取得的全部内存、自由内存、共享内存和缓冲内存的信息;所述IO资源包括通过操作系统性能指令取得的一个或多个进程的IO读写量;所述缓存资源包括通过所述性能监视基础工具取得的缓存、TLB miss和hit的数据;所述网络资源包括通过操作系统性能指令取得的网络状态中的网络流量。
8.根据权利要求6所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述系统外部资源监视器是基于性能监视基础工具按时间提取两次相对性能数据相减而得的;所述系统外部资源监视器监视的空间包括用户空间和客户空间,其中监视用户空间包括通过操作系统性能指令,取得所述进程在用户空间的CPU使用数据、缓存使用数据和TLB miss数据;监视客户空间包括通过操作系统性能指令,取得所述进程在用户空间的CPU使用数据、缓存使用数据和TLB miss数据,并观察所述虚机的CPU运行数据是否超过所述阀值,以使用操作系统其它指令对该虚机的CPU占用率加以控制。
9.根据权利要求2所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述架构还包括所述监视库的继承组件,所述监视库及其继承组件以及所述主控主机内的主机性能监视器构成一下层构架,其中所述监视库为最高层的类,其继承组件为监视器,所述监视器被所述主机性能监视器所继承,且该主机性能监视器分别被所述内核空间监视器、用户空间监视器和虚机性能代理所继承;所述每个监视器是至少一个监视对象的集合,所述每个监视对象是至少一个事件的集合,所述每个事件表示一个原子的监视事件。
10.根据权利要求9所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述监视库用于为所有要监视资源的进程都创建一个监视器,并将该监视器加载在监视库中;当所述监视库进程开始时,为所有的监视器将所述性能监视基础工具可以监视的资源分解成为原子资源,然后进行监视,并把资源监视信息分派给所述各个监视器;当所述性能监视基础工具监测到CPU有中断溢出,则将异常情况通知所述监视器;所述监视库还用于增加或删除监视器。
11.根据权利要求9所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述监视器用于保存设置、载入设置,增加或删除所述监视对象,开始或停止所述监视对象以及刷新、保存监视信息。
12.根据权利要求9所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,所述监视对象根据配置文件的配置创建,且该配置文件包括所述性能监视基础工具能够监视的对象。
13.根据权利要求9所述的基于硬件基础工具监视虚拟化系统性能的架构,其特征在于,如果所述性能监视基础工具是基于一次事件进行监视的,则该性能监视基础工具的阀值=最大值-1 ;如果所述性能监视基础工具是基于η次事件进行监视的,则该性能监视基础工具的阀值=最大值-η,其中,η为大于1的自然数;如果所述性能监视基础工具是基于事件概率进行监视的,则该性能监视基础工具的阀值=最大值_η个事件的随机数;如果所述性能监视基础工具是基于某时间内的事件数进行监视的,则统计该性能监视基础工具向CPU触发的事件数,当时钟向CPU触发事件,则回报各时段总共事件数;如果所述性能监视基础工具是基于η种事件进行监视的,则在各时段i里(i = 1,... η),该性能监视基础工具统计向CPU触发的事件i的数目,且同种事件在各时段的总和乘以η即为需要回报的结果;如果所述性能监视基础工具是基于资源使用率进行监视的,则时间T 1和时间Τ2之间的使用率=N/((T2-T1) XCPU被中断的次数),其中,N是统计指令总数。
14.一种基于权利要求1所述的基于硬件基础工具监视虚拟化系统性能的架构的监视方法,其特征在于,该方法包括以下步骤首先,管理员通过图形界面或用户应用程序通过所述性能监视器应用接口,向所述策略管理器做性能调整请求;然后,当所述策略管理器解释所述性能调整请求后,指示所述工作负荷调整器向所述主控主机的主机性能监视器要求经过所述网络管道回报所述各从属主机资源的性能状况;最后,由所述策略管理器向所述用户应用程序或管理员回报性能状况。
全文摘要
本发明涉及一种基于硬件基础工具监视虚拟化系统性能的架构及方法,其中,所述架构包括至少一个主控主机,所述每个主控主机包括用户空间组件、客户空间组件、内核空间组件和硬件,所述用户空间组件包括依次连接的策略管理器、工作负荷调整器、监视库和主机性能监视器,所述主机性能监视器还与工作负荷调整器连接,且该主机性能监视器包括用户空间监视器和内核空间监视器。本发明将PMU(或类似工具)应用在虚拟化系统的性能监视中;且本发明的性能监视就是针对虚拟化系统中各主机的CPU、内存、缓存、IO、网络、进程等实施监视;同时,本发明基于硬件的性能监视法解决了虚拟化系统取得性能数据的问题。
文档编号G06F11/32GK102314391SQ20111014164
公开日2012年1月11日 申请日期2011年5月27日 优先权日2011年5月27日
发明者汤传斌, 蔡鹏浩 申请人:运软网络科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1