WindowsServer2012Hyper-V虚拟化部署与管理指南
上QQ阅读APP看书,第一时间看更新

1.2.1 Hyper-V 2012架构相关知识

我们知道,可以通过虚拟化的技术来进行服务器的整合,节省物理资源浪费的情况,在了解虚拟化的同时,我们也要对虚拟化的架构有所了解,这样才能更深层次地了解虚拟化。不过,虚拟化的架构有很多种类,所以在了解Hyper-V的虚拟化之前,我们先了解一下虚拟化技术。虚拟化技术是一个术语,用来描述一个软件的堆栈,或者是一个操作系统的功能,这项技术用于实现在同一个物理资源上建立虚拟机。基于不同的虚拟化类型,一些虚拟化层运行在操作系统之上,或者直接运行在硬件资源(比如处理器、内存和网卡)上。后面,我们将介绍这些不同类型的虚拟机管理程序。虚拟化技术对于VMware和Microsoft来说并不是一项新的技术,谈起它的历史,要追溯到1965年,当时IBM首次升级360大型机系统代码和计算平台来支持内存的虚拟化,通过这项技术的不断发展,虚拟化得到了极大的增强。下面,我们就来讨论虚拟化类型的种类。

1.虚拟化类型

(1)Type 1类型:裸金属架构虚拟化层

图1-5 裸金属架构虚拟化层

Type 1类型或者说裸金属架构的虚拟化是运行在服务器硬件之上,如图1-5所示。这种虚拟化的类型能得到更好的硬件控制,从而实现更稳定的性能和更高的安全性。虚拟机操作系统(VM)运行在裸金属架构虚拟化层(Hypervisor)之上,而裸金属架构虚拟化层(Hypervisor)运行在硬件层(Hardware)之上。目前在市场上使用这种虚拟化架构的产品有微软的Hyper-V、VMware vSphere的ESXi和Citrix的XenServer。

(2)Type 2类型:寄居架构虚拟化层

Type 2类型或者说寄居架构虚拟化层是作为一种应用程序运行在操作系统之上的,这就是寄居架构虚拟化层通常被称为托管的虚拟机管理程序的原因。在Type 2类型的虚拟化环境中,虚拟机操作系统(VM)都运行在虚拟化层之上,从图1-5可以看出,Type 1类型和Type2类型(如图1-6所示)在架构方面上存在一些差异。Type 1类型的裸金属架构虚拟化层(Hypervisor)运行在硬件层(Hardware)之上,而Type 2类型中,我们可以看到虚拟化层(Hypervisor)是安装在操作系统层(Operating System)之上的。虚拟机操作系统(VM)不允许直接访问硬件资源,这种没有办法直接访问硬件资源的设计,会带来不必要的资源开销,所以在Type 1类型中,虚拟机(VM)直接通过虚拟化层(Hypervisor)得到资源,而虚拟化层(Hypervisor)直接调用硬件层(Hardware)资源。在Type 2类型中,虚拟机(VM)直接通过虚拟化层(Hypervisor)得到资源,而虚拟化层(Hypervisor)不能直接调用硬件层(Hardware)资源,而是通过安装在硬件层的操作系统得到资源,这样一来,硬件层的一部分资源还要维持操作系统层(Operating System)的运行,造成一定的资源损失。Type 2类型还有一个缺点就是,如果系统是Windows NT,一旦发生故障,则虚拟化平台也将发生故障,并终止服务,这一点大家一定要注意。属于Type 2类型的虚拟化产品主要有Microsoft的Virtual PC和VMware vSphere的VMware Player、VMware Workstation。Type 2类型的虚拟化层如图1-6所示。

(3)Monolithic hypervisors虚拟化层

Monolithichypervisors虚拟化层是Type 1类型的一个子类型,这种类型的虚拟机管理程序的驱动程序来自虚拟操作系统,它要求Hypervisor感知设备驱动,并被托管和管理在“Hypervisor层”,如图1-7所示。所以,使用Monolithic hypervisors虚拟化层会带来一些好处,但是也有一些不足。好处是它们不再需要父操作系统来控制,可以直接控制服务器硬件,提供更好的性能。而不足之处主要有以下两点:

图1-6 寄居架构虚拟化层

图1-7 Monolithic hypervisors虚拟化层

❏不是每一个硬件提供商都为此类型的虚拟机管理程序提供驱动,这是因为一些不同的主板和其他设备都有不同的驱动程序,因此,找到一个兼容的硬件驱动供应商支持可能是一个潜在的艰巨的任务。

❏Monolithic hypervisors虚拟化层允许虚拟机监控程序接近内核kernel(Ring 1)和硬件资源,这可能会造成恶意后门的打开。一旦恶意后门被打开,恶意入侵者就可以控制运行在服务器上所有的虚拟机了。

❏V Mware vSphereESXi Server采用的就是Monolithic hypervisors虚拟化层。

(4)Microkernel hypervisors虚拟化层

图1-8 Microkernel hypervisors虚拟化层

Microkernel hypervisor虚拟化层不需要设备驱动,因为它的设备驱动是独立运行在“控制层”的。相应地,Microkernel hypervisor虚拟化层的设备驱动程序一般都运行在kernel mode(Ring 0)和可信的操作系统(OS)的用户模式(Ring 3)中,只有当CPU和内存发生调度时,才会运行在Ring 1中。Microkernel hypervisor虚拟化层的虚拟机监控程序的优点是,由于大多数硬件制造商都会提供操作系统,并且提供的操作系统会兼容Microkernel hypervisors设备的驱动程序,所以找到兼容的硬件是很容易的。Microkernel hypervisor虚拟化层如图1-8所示。

Microkernel hypervisors虚拟化层要求驱动程序必须安装在物理机上运行的操作系统中,并且必须运行在虚拟化层的父分区中,这就意味着我们不需要将设备驱动程序安装在每个虚拟机操作系统子分区(VM)上,因为当这些虚拟机操作系统需要访问主机上的物理硬件资源计算机时,不需要访问硬件,而只需要和父分区进行通信即可。微软Hyper-V的架构采用的就是Microkernel hypervisors虚拟化层。

Microkernel hypervisors优点如下:

❏设备驱动不需要将每个设备都纳入Hypervisor层或者VMM Kernel。由于微软没有提供应用程序编程接口(API)来访问“Hypervisor层”,所以它受到攻击的可能小,没人可以将外部代码插入“Hypervisor层”。

❏设备驱动不需要Hypervisor的感知,所以这种架构可以使用更多的设备。不需要关闭“Hypervisor层”,包括设备驱动程序。设备驱动程序可以安装在操作系统运行的“控制层”(Windows Server 2008R2、Windows Server 2012),可以使用虚拟机访问“硬件层”的硬件Microkernelized Hypervisor架构。除了服务器虚拟化之外,在“控制层”允许安装其他的服务器。因为微软的Hypervisor代码只有600KB,因此“Hypervisor层”不需要用很多时间来初始化组件。

Microkernel hypervisors缺点如下:

❏在操作“Hypervisor层”之前,需要在“控制层”安装操作系统,这是一个最大的缺点。

❏如果“控制层”正在运行的操作系统崩溃,无论是由什么原因导致的,所有的虚拟机也都会崩溃。这会进一步导致需要花费更多的经费在“控制层”的操作系统与“Hypervisor层”的虚拟机上。每个Windows的操作系统的安全维护都需要通过微软发布的安全更新,因此在“控制层”运行的操作系统必须用最新的安全更新。而更新就需要重启操作系统,这需要将所有的虚拟机进行离线,基于这个原因,就必须使用Hyper-V Live迁移功能将集群迁移到另一个节点上,以保证不会出现死机问题。

2.Hyper-V 2012的架构

学习完了虚拟化类型的相关知识,下面来看看Hyper-V的架构,如图1-9所示。

图1-9 Hyper-V的架构图

正如你所看到的,Hyper-V架构采用Type 1类型,在硬件和虚拟化层上运行这一个父分区(VSP)和多个子分区,分区是一个简单的隔离,用来将物理资源(如CPU、内存)和网络资源划分若干小份,并分配给不同的虚拟机。在Windows虚拟化架构中,每一个子分区(VSC)中都可以拥有一个自己的操作系统,它们可以是32位或64位的Windows Server 2003、Windows Server 2008,甚至可以是Linux。而VSP必须运行包含了Hyper-V技术的Windows Server 2012(OS 64Bit)。VSP包含一个虚拟栈,提供了用于管理和自动化操作的组件。其实这个父分区也就是我们常说的宿主系统(Host OS),但是在全新的Windows虚拟化架构中它也被包含在了分区之中。

由于采用了VMBus的高速内存总线架构(一种新的虚拟化I/O结构),每个子分区都可以通过安装Integration Service组件,使每个虚拟机可以调用常驻在内存中的VMBus总线,得以直接访问硬件资源,从而实现对硬件的高性能使用,使虚拟机的性能几乎与物理机没有差别,甚至在某种特定环境下,还会高于物理机。