论文部分内容阅读
随着多机系统虚拟化的普及,如何有效地监控多个物理计算节点以及部署在物理计算节点上的数十乃至数百台虚拟机是一个非常重要的问题。目前非常成熟的集群监控软件虽然监控功能强大并且性能优秀,但却无法识别VMM虚拟化层的存在,从而不能适用于多机虚拟化环境。而大部分虚拟机管理软件在监控方面机制简单、功能薄弱并且效率较低,在对数十台乃至数百台虚拟机同时监控时,由于需要处理的信息量巨大,因而存在较大的性能瓶颈。针对以上问题,VNIX多虚拟机管理平台中的监控系统结合了传统集群监控软件的优点与虚拟化技术在多机计算环境中的应用特点,为VNIX多虚拟机管理平台提供了信息丰富、性能优秀的多机虚拟化监控功能。为了穿透VMM虚拟化层获取真正的硬件资源状态信息和实时的虚拟资源状态信息,提出了基于VMM信息的资源利用率算法,通过从VMM获取的虚拟资源使用状态,准确地计算物理资源使用状态。为了减少网络传输系统状态信息的带宽开销,提出了基于最小更新集的快速更新算法,基本思想是:服务器端(被监控端)将第一次采集的完整系统状态信息转换为类似数据字典的信息结构并传输到客户端(监控端);服务器端对最近一次获得的完整系统信息结构与上一次获得的完整系统信息结构进行比较,计算两者的差异;按照两次完整系统信息结构的差异,计算将前者转换为后者所需步骤最少的更新方案(最小更新操作集);服务器端将最小更新操作集传输到客户端,避免了传输重复的监控数据;客户端依据最小更新操作集,对上一次计算得到的完整系统信息结构进行修改,从而得到更新后的完整系统信息结构。基于Unix、Linux和Windows操作系统,采用Python语言实现了VNIX多虚拟机管理平台中的监控系统,并且进行了系统测试。功能测试表明:VNIX多虚拟机管理平台中的监控系统实现了对物理机与虚拟机的监控。性能测试表明:快速更新算法计算得到的最小更新操作集的数据量比完整信息的数据量减少了80%以上;应用快速更新算法后,在100M带宽的情况下,更新操作集的网络传输延迟时间是完整信息集传输时间的17%,在1M带宽的情况下,监控数据的传输延迟时间减少了90%以上。