虚拟机监控程序
一种为来宾操作系统实现抽象的物理硬件的软件
虚拟机监控程序,是一种为来宾操作系统实现抽象的物理硬件的软件,在系统上,“虚拟”运行的来宾提供一套虚拟化硬件。
由来
一度流行甚广的“虚拟机监控程序”(hypervisor) 一词。它已经成为虚拟化领域的一大热门术语。但虚拟机监控程序并非新鲜事物。只要我们使用过虚拟机 (VM),就必然使用过虚拟机监控程序。事实上,IBM 早在上世纪七十年代就创造了“虚拟机监控程序”一词。
差异
在过去几年中,在 x86 平台上运行的“1 类虚拟机监控程序”(包括 Microsoft Hyper-V 和 VMware ESX Server)得到了很大发展,这也导致产生一些混淆。大多数人使用的虚拟机监控程序(特别是对于客户端系统)被称为“2 类虚拟机监控程序”。两种虚拟机监控程序的差异何在?
1 类虚拟机监控程序直接在主机硬件上运行,而无需“主机操作系统”。Microsoft Hyper-V 和 VMware ESX Server 是 1 类虚拟机监控程序的常见例子。
2 类虚拟机监控程序需要运行主机操作系统。通常,2 类虚拟机监控程序主要作为用户模式应用程序在其主机操作系统上运行。Microsoft Virtual PC 和 VMware Workstation 是 2 类虚拟机监控程序的常见例子。
在大多数情况下,对于任何“始终运行的”工作负载(例如,虚拟化 SQL 或文件服务器),您都希望使用 1 类虚拟机监控程序。至少,1 类使用的资源要比 2 类少。但是,它可能需要用户登录才能启动(取决于主机),这对关键任务系统而言并非一个好的选择。相反,2 类虚拟机监控程序更加适用于“按需”虚拟机。这种类型的角色包括用于测试、应用程序兼容性或安全访问的虚拟机。
功能
Hyper-V
随 Windows 7 一起发布的 Windows 驱动程序工具包 (WDK) 提供了关于虚拟机监控程序版本 2 中新增功能的信息。
虚拟机监控程序是一种最初在具有 Hyper-V 的 Windows Server 2008 中支持的技术。具有 Hyper-V 的 Windows Server 2008 R2 支持 2.0 和更早版本的虚拟机监控程序。
下列功能是虚拟机监控程序版本 2 中的新功能:
扩展的快速超级调用接口
分区 CPU 兼容性属性、兼容性模式和 CPU 供应商属性
分区 XSAVE 功能
虚拟来宾空闲状态。
分区参考时间启蒙
对内核休止的支持
SMI 虚拟中断类型
HvPortPropertyPreferredTargetVp 端口属性
系统属性
HV 分析
调用虚拟机监控程序调试器
下列特定于模型的寄存器 (MSR) 是虚拟机监控程序版本 2 中的新功能:
虚拟 APIC MSR
性能统计信息 MSR
参考 TSC 页面 MSR
虚拟来宾空闲状态 MSR
下列超级调用在虚拟机监控程序版本 2 中已弃用:
HvClearLogicalProcessorRunTimeGroup
HvSetLogicalProcessorRunTimeGroup
下列超级调用是虚拟机监控程序版本 2 中的新调用:
HvParkLogicalProcessors
HvMapSparseGpaPages
HvSetPortProperty
HvSetSystemProperty
HvInvokeHypervisorDebugger
负载均衡
监控程序
尽管管理员会将应用负载平均分配到每台虚拟主机上,但是自动负载均衡特性依然是无可替代的。
服务器虚拟机监控程序环境当中的大多数严重问题似乎都和资源争夺相关。从虚拟机监控程序原理上来说,虚拟机监控程序技术的基础是服务器硬件性能不断发展,其能够提供的资源已经远远超过了单一负载需求,因此可以将一套物理资源分配给多种负载同时使用。
虚拟机监控程序这种资源共享方式看似非常简单,但是通常问题都会出现在细节方面。如果多个虚拟机监控程序负载共享一个通用硬件资源池,那么在虚拟机监控程序生产环境当中必须提前引入某种机制,避免任何虚拟机消耗过多的资源,导致其他虚拟机监控程序资源被占用。
消耗
确实,现在管理员可以使用多种不同技术来保证资源消耗处于监控状态。管理员可以限制特定虚拟机能够消耗的CPU、内存、网络和存储等硬件资源。此外,创建新的虚拟机监控程序时,管理员通常会将其放置到拥有足够硬件资源的主机服务器上,以防止新加入的负载不会对现有虚拟机监控程序性能造成负面影响。
虚拟机监控程序这种方式和其他机制都能够很好地保证虚拟机监控程序处于受监控状态。但是问题在于服务器虚拟化环境是高度动态的。由于服务器故障、主机重启、系统维护或者很多其他原因,虚拟机监控程序r可能将负载自动实时迁移到另外一台主机上。类似地,虚拟机监控程序的资源消耗也有可能随着时间而变化。最初启动时虚拟机上的负载只需要使用很少的硬件资源,但是随着越来越多的用户开始使用运行在虚拟机监控程序上的应用程序,虚拟机的资源消耗量会不断增加。
因此问题在于不断变化的负载以及虚拟机监控程序实时迁移可能完全破坏管理员最初的规划,也就是将虚拟机创建在最为合适的主机服务器上。
尽管为了适应不断变化的运行环境,管理员可以手动迁移虚拟机,但是这种做法并不是最佳方案,而使用虚拟机监控程序和管理软件来实现自动负载均衡是一种更为高效的方式。
解决方案
所有虚拟机监控程序厂商都推出自己的负载均衡解决方案。对于微软Hyper-V来说,可以使用System Setter VM Manager当中的一种称为动态优化的技术来实现负载均衡。虚拟机监控程序动态优化技术非常简单,虚拟机监控程序会进行周期性检查(默认每隔十分钟)来查看主机服务器上的可用资源是否已经低于预定阀值。如果任何服务器的资源值较低,那么动态优化进程会把一台或者多台虚拟机实施迁移到拥有更多可用资源的主机当中。
动态优化特性工作在主机服务器组层面。从VM Manager控制台当中,进入Fabric workspace,选择想要调整的主机组,之后点击主机组当中的集群。之后,点击屏幕顶端的Host Cluster标签,再点击Optimize Host按钮。之后Windows会打开Optimize Host Cluster对话框。对话框将会询问你是否对某些虚拟机进行实施迁移,虚拟机监控程序以实现更好的性能表现。如果一台或者多台主机出现可用硬件资源低于阀值的情况,系统就会弹出这种提示。而如果所有主机都拥有足够的可用硬件资源,那么系统不会弹出推荐窗口,即便虚拟机分布不是十分均衡。
为了使得集群优化进程自动出现,现在关闭对话框,之后点击屏幕最上方的Folder标签,单击Properties按钮。之后会出现一个新的“All Host Prosperities”对话框。现在点击“Dynamic Optimization”,之后勾选“Automatically Migrate VMs to Balance Load at this Frequency (Minutes)”复选框。在这个对话框当中,你还可以配置负载均衡频率、服务器资源阀值以及负载均衡激进程度等参数。更加激进的负载均衡策略将会提高系统资源利用效率,但是也会导致更高的实时迁移频率。点击OK来完成配置过程。
在任何虚拟机监控程序环境当中,高效利用硬件资源都是非常重要的。虚拟机监控程序通过自动将虚拟机从负载过重的主机移动到拥有大量可用资源的主机当中,VM Manager动态优化特性可以帮助实现这种目标。
最新修订时间:2022-01-09 21:42
目录
概述
由来
差异
参考资料