- 单词解释
Hypervisor:超级监督者,管理程序
- 虚拟化技术
- 概念
一种运行在基础物理服务器和操作系统之间的中间软件层,可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisor协调着这些硬件资源的访问,以及各个虚拟机之间的防护。服务器启动时,它会加载所有虚拟机客户端的操作系统,同时为虚拟机分配内存、磁盘和网络等。也可叫做VMM( virtual machine monitor ),即虚拟机监视器。
- 作用
Hypervisor是所有虚拟化技术的核心,它的主要功能是非中断的支持多工作负载迁移的能力。
- 主要产品
目前市场主要厂商及产品:VMware vSphere、微软 Hyper-V、Citrix XenServer 、IBM PowerVM、Red Hat Enterprise Virtulization、开源的KVM、Xen、VirtualBSD等。
- 分类
- 裸机型:虚拟机直接运行在系统硬件上,创建硬件全仿真实例;
裸机虚拟化Bare-metal
裸金属虚拟化中Hypervisor直接管理调用硬件资源,不需要底层操作系统,也可以理解为Hypervisor被做成了一个很薄的操作系统。这种方案的性能处于主机虚拟化与操作系统虚拟化之间。代表是VMware ESX Server、Citrix XenServer和Microsoft Hyper-V。
当前分散云数据中心服务器虚拟化使用的主要是Bare-Metal方案。分散云给数据中心网络带来了新的挑战,虚拟机之间的数据通信管理需求促使了一系列网络新技术的发展。在OS-Level与Hosted方案中,虚拟机都是架设于操作系统之上的,因此VM/VE之间的通信主要由同样运行于基础操作系统之上的网络交换应用程序来完成。而在最主流的Bare-Metal结构中,由于Hypervisor薄操作系统的引入,性能、管理、安全和可靠性等多维度的考虑,造成VM间网络通信管理发展出不同的技术道路(EVB与BPE)。
- 托管型/主机型:虚拟机运行在传统操作系统上,创建硬件全仿真实例;
主机虚拟化Hosted
在主机虚拟化中,Hypervisor就是跑在基础操作系统上的应用软件,与OS-Level中VE的主要区别在于:
Hypervisor构建出一整套虚拟硬件平台(CPU/Memory/Storage/Adapter),上面需要你再去安装新的操作系统和需要的应用软件,这样底层和上层的OS就可以完全无关化,诸如Windows上跑Linux一点儿问题没有;
VE则可以理解为盗用了底层基础操作系统的资源去欺骗装在VE上的应用程序,每新创建出一个VE,其操作系统都是已经安装好了的,和底层操作系统完全一样,所以VE比较VM(包括主机虚拟化和后面的裸金属虚拟化)运行在更高的层次上,相对消耗资源也少很多。
主机虚拟化中VM的应用程序调用硬件资源时需要经过:VM内核->Hypervisor->主机内核,导致性能是三种虚拟化技术中最差的。主机虚拟化技术代表是VMware Server(GSX)、Workstation和Microsoft Virtual PC、Virtual Server等。
- 操作系统虚拟化:虚拟机运行在传统操作系统上,创建一个独立的虚拟化实例,指向底层托管操作系统。
操作系统虚拟化OS-Level
优点: 在操作系统中模拟出一个个跑应用程序的容器,所有虚拟机共享内核空间,性能最好,耗费资源最少,一个CPU号称可最多模拟500个VPS(Virtual Private Server)或VE(Virtual Environment)。
缺点:操作系统唯一,如底层操作系统跑的Windows,VPS/VE就都得跑Windows。代表是Parallels公司(以前叫SWsoft)的Virtuozzo(商用产品)和OpenVZ(开源项目)。Cisco的Nexus 7000猜测也是采用这种方案运行的VDC技术,但不太清楚为什么会有最多4个VDC的数量限制,也许是基于当前应用场景进行规格控制的一种商业手段。
目前常用的hypervisor是裸机型和主机型,以下是三种虚拟化技术的对比:
因素 | 裸机型 | 主机型 |
性能 | 性能高,资源开销小,高级的资源控制。 | 性能较差,资源开销大有限的资源控制,虚拟机竞争资源。 |
硬件兼容性 | 没有太多要求,因为虚拟化平台运行在传统操作系统之上,有操作系统硬件的驱动程序支持。 | 运行在经过认证的有限的硬件集合内,如VMware ESX 和 ESXi。 |
易用性 | 安装容易,但配置很复杂。 | 安装、使用和维护都很简单,不需要专门的技能。 |
高可用性 | 高可用性,主机发生故障时能够提供持续的可用性 | 缺少高可用特性,主机发生故障时,故障解决前虚拟机将处于停机状态。 |
可靠性 | 可靠性高,hypervisor经过很多QA(quality-assurance)测试和严格的硬件认证。 直接运行在硬件上,而不是主机操作系统,减少了一个可能发生故障的组件。 | 主机型hypervisor使用通用的硬件并没有对虚拟化进行专门的测试。 |
虚拟化hypervisor管理 | 提供了几种控制台,能够容易的管理数量巨大的主机及虚拟机; 市场上具有很多用于裸机虚拟化hypervisor的第三方管理和自动化产品可以使用。 | 管理员必须单独管理每个虚拟机,在大型虚拟化基础设施中将非常繁琐,也很耗时。 |
成本 | 裸机hypervisor成本却很昂贵,尤其是当你想扩大规模并使用高级特性时。多数裸机虚拟化hypervisor宣称是免费的,但是仅限于核心hypervisor. | 成本较低,许多基于主机的hypervisor是免费的或者仅仅花费数百美元。 |
可扩展性 | 能够扩展到相当大的规模,使用裸机hypervisor,如果你的主机具有足够的硬件资源,那么你能够轻松地在一台主机上运行数百个虚拟机。 在vSphere 5中单个虚拟机能够配置高达1TB的内存以及32个虚拟CPU。 | 非常有限的可扩展性,VMware基于主机的虚拟化hypervisor VMware Workstation,仅能够支持32GB的内存以及8个虚拟CPU。 |
产品 | VMware ESX和ESXi,微软的Hyper-V,Citrix的XenServer,orcal虚拟机,linux KVM。 | VMware Server(GSX)、Workstation和Microsoft Virtual PC、Microsoft Virtual Server等 |
- 意义
Hypervisor 实现了操作系统和应用程序与硬件层之间的隔离,这样就可以有效的减轻软件对硬件设备以及驱动的依赖性。
Hypervisor可以允许操作系统和应用程序工作负载在更广泛的硬件资源上运行。支持多操作系统和工作负载,每一个单独的虚拟机或虚拟机实例都能够同时运行在同一个系统上,共享计算资源。
每台虚拟机可以在不同平台之间迁移,这样做就可以更好的利用计算平台,实现无缝的工作负载迁移和备份能力。
- 功能
- 工作负载支持
确保hypervisor完全通过测试并且和计划虚拟化的操作系统兼容。
构成工作负载的应用程序支持虚拟化。
- 处理器加速需求
IntelVT 和AMD V处理器都涵盖了硬件支持虚拟化,硬件支持虚拟化。
- 电源管理和资源优化支持
Hypervisor通常不支持传统的睡眠状态,因此它应该提供电源管理支持并且随着服务器使用的改变提供对处理器电源消耗的控制级别。或者可以在操作系统内部或其他性能管理软件中提供电源管理能力的借口。
移动系统资源,基于每一工作负载的独特需求分配计算能力。如VMware的分布式资源调度DRS设备。
- 系统设备支持
有些设备,如适配器等不能在虚拟机上使用,使用时需要验证hypervisor是否支持。
- 安全
应用程序安全性
- 弹性
即高可用性、容错、业务持续性、容灾恢复等高可靠性。