一、什么是虚拟化?
二、虚拟化的优点
三、Hypervisor
3.1 Hypervisor概述
3.2 Hypervisor 分类
3.3 Hypervisor 与虚拟机协作技术路线
(1) 全虚拟化
(2) 硬件辅助虚拟化
(3) 半虚拟化
由此可见,虚拟化可以更高效地利用物理计算机硬件,提高组织在硬件投资方面的投资回报率。
如今,虚拟化已成为企业 IT 架构的标准实践。 它也是推动云计算经济发展的技术。 虚拟化使云提供商能够使用他们现有的物理计算机硬件为用户提供服务; 它使云用户能够在需要时仅购买所需的计算资源,并随着工作负载的增长经济实惠地扩展这些资源。
虚拟化为数据中心运营商和服务提供商带来诸多好处:
hypervisor:一种运行在物理服务器和操作系统之间的中间层软件,可以允许多个操作系统和应用共享一套基础物理硬件。可以将hypervisor看做是虚拟环境中的“元”操作系统,可以协调访问服务器上的所有物理设备和虚拟机,所以又称为虚拟机监视器(virtual machine monitor)。hypervisor是所有虚拟化技术的核心,非中断的支持多工作负载迁移是hypervisor的基本功能。
如图展示了两种 Hypervisor 的分层架构。
Type1 型的 Hypervisor 不依赖主机操作系统,其自身具备操作系统的基础功能。设计上更简洁,直接运行于硬件之上,整体代码量和架构更为精简,对内存和存储资源要求更少。
最初的虚拟化是通过软件模拟具有完整硬件系统功能的、运行在一个隔离环境中的计算机系统,即通过软件虚拟硬件设备提供给 GuestOS 使用,优点是 GuestOS 不感知外部真实硬件环境、不用改动。
由于 Guest OS 中每次访问全虚拟化硬件都要陷入到 Hypervisor 中,直接导致该方式虚拟的硬件性能较差,一般只用来模拟如串口等比较简单的硬件。
操作系统上安装kvm,kvm即Hypervisor,它会 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。除此之外:VirtualBox 和 VMWare Workstation 都属于这个类型。
Intel 最早提出硬件辅助虚拟化技术,由硬件直接提供共享功能,支持多 GuestOS 的访问,减少软件虚拟技术带来的延时和性能损耗。
Intel 提出了分别针对处理器 & 内存、IO、网络的 Intel VT-x、Intel VT-d 和 Intel VT-c 技术等。随着 ARM 算力提升,从移动端向边缘、甚至云算力中心发展,ARM 也在不断增强其硬件辅助虚拟化技术,比如 stage 2 页表转换、虚拟异常等。
在硬件辅助虚拟化技术不完善、不强大的发展阶段,或者对于某些复杂外设的共享复用,为避免全虚拟化的性能问题,可以采用 GuestOS 与 Hypervisor 协作的半虚拟化技术。
这种技术一般应用于 IO 设备虚拟化,采用前后端的方式来实现 IO 设备虚拟化,在 Guest OS 中实现前端驱动,在 Hypervisor 或 Host OS 中实现后端驱动,前后端一般按照 VirtIO 标准来实现,后端驱动作为硬件的实际访问方。
Guest OS 中前端驱动通过 Virt Queue 等通信机制与后端驱动进行通信,前端驱动将 Guest OS 的请求传递给后端驱动,后端驱动将请求发送给硬件驱动,处理完后将结果再传回给前端驱动。半虚拟化相对全虚拟化实现的硬件性能较好,且可实现相对比较复杂的硬件,比如 : 块设备,网卡,显示设备等。