云计算虚拟化技术与开发
上QQ阅读APP看书,第一时间看更新

1.3.1 系统级虚拟化

系统级虚拟化的核心思想是使用虚拟化软件在一台物理机上,虚拟出一台或多台虚拟机。虚拟机是指使用系统虚拟化技术,运行在一个隔离环境中、具有完整硬件功能的逻辑计算机系统,包括客户操作系统和其中的应用程序。

系统级虚拟化包括一个Hypervisor或者VMM。Hypervisor是位于硬件资源和操作系统之间的软件层,它使得多个单独的虚拟机实例可以同时运行,并使得多个虚拟机可以共享各种物理硬件资源。Hypervisor协调这些硬件资源(CPU、内存和各种I/O设备)的访问,为虚拟机分配各种需要使用的资源。

对于系统级虚拟化,根据Hypervisor或VMM的实现层次主要可以分为基于宿主操作系统的系统级虚拟化和基于硬件的系统级虚拟化。

基于宿主操作系统的虚拟机作为应用程序运行在宿主操作系统(Host OS)之上,其架构如图1-5所示。因此,Guest VM需要由Guest OS内核先经过Hypervisor,再经过宿主操作系统才能访问硬件。支持基于宿主操作系统虚拟化的产品有Virtual PC、VMWare Workstation和VirtualBox等。

图1-5 基于宿主操作系统的系统级虚拟化

另外一种系统虚拟化是基于硬件的系统级虚拟化,如图1-6所示。在这种模式下,虚拟机监控层Hypervisor或VMM直接运行在裸机硬件之上。它具有最高的特权,可以直接管理和调用底层的硬件资源。虚拟机监控层向Guest VM提供虚拟的硬件资源,而Guest VM对硬件资源的访问都需要通过这一层。支持基于硬件的系统级虚拟化产品包括VMware ESX/ESXi和Xen等。

图1-6 基于硬件的系统级虚拟化

事实上,上述这种按照Hypervisor的实现层次的分类对于某些虚拟化产品并不能很直接地确定其分类,例如KVM和Hyper-V。KVM是Linux的一个内核模块,对其属于基于宿主操作系统或者基于硬件的虚拟化产品还存在一些争论。另一个例子就是微软的Hyper-V,它被误认为是基于宿主操作系统的虚拟化产品。但是其2008免费版本和其他一些版本采用的实际上是基于硬件的系统级虚拟化,Hypervisor在管理操作系统之前加载,并且任何虚拟机都是在Hypervisor上创建并运行的,而非通过管理操作系统,因此应该属于基于硬件的系统级虚拟化。