虚拟机监控程式是一种软体,它为在系统上“虚拟”运行的来宾提供一套虚拟化硬体。它为来宾作业系统实现抽象的物理硬体。
由来
虚拟机监控程式是一种软体,它为在系统上“虚拟”运行的来宾提供一套虚拟化硬体。它为来宾作业系统实现抽象的物理硬体。
一度流行甚广的“虚拟机监控程式”(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可能将负载自动实时迁移到另外一台主机上。类似地,虚拟机监控程式的资源消耗也有可能随着时间而变化。最初启动时虚拟机上的负载只需要使用很少的硬体资源,但是随着越来越多的用户开始使用运行在虚拟机监控程式上的应用程式,虚拟机的资源消耗量会不断增加。
因此问题在于不断变化的负载以及虚拟机监控程式实时迁移可能完全破坏管理员最初的规划,也就是将虚拟机创建在最为合适的主机伺服器上。
儘管为了适应不断变化的运行环境,管理员可以手动迁移虚拟机,但是这种做法并不是最佳方案,而使用虚拟机监控程式和管理软体来实现自动负载均衡是一种更为高效的方式。
虚拟机监控程式这种方式和其他机制都能够很好地保证虚拟机监控程式处于受监控状态。但是问题在于伺服器虚拟化环境是高度动态的。由于伺服器故障、主机重启、系统维护或者很多其他原因,虚拟机监控程式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动态最佳化特性可以帮助实现这种目标。
动态最佳化特性工作在主机伺服器组层面。从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动态最佳化特性可以帮助实现这种目标。