系统虚拟化的最大价值是服务器虚拟化。服务器虚拟化是将系统虚拟化技术应用于服务器,将一个或多个服务器虚拟化成多个服务器。今天,大多数数据中心使用x86服务器,一个数据中心可能有数千台服务器。以前,由于性能、安全性和其他方面的考虑,服务器只能执行一项服务,从而导致服务器利用率低。服务器虚拟化是在单个物理服务器上虚拟生成多个虚拟服务器,每个服务器执行一个任务。在这种情况下,服务器利用率相对较高。
1.服务器虚拟化分类
根据虚拟服务器的数量,服务器虚拟化可分为三种类型:
(1)单个服务器虚拟为多个服务器,即将一个物理服务器划分为多个独立、无干扰的虚拟环境;
(2)服务器集成,这意味着多个独立的物理服务器作为逻辑服务器可以是虚拟的,这使得多个服务器能够相互协作,处理相同的业务;
(3)服务器首先集成,然后拆分,即多个物理服务器是虚拟的,然后将其划分为多个虚拟环境,即运行在多个虚拟服务器上的多个服务。
2.服务器虚拟化技术
物理服务器有它们不可或缺的关键组件,如CPU、I/O等。服务器虚拟化的关键技术是CPU、内存、I/O硬件资源的虚拟化。下面将描述这三种硬件资源的虚拟化。
(1)CPU虚拟化
CPU虚拟化技术是将物理CPU抽象为虚拟CPU,在任何时候物理CPU只能运行一个虚拟CPU指令。每个客户端操作系统可以使用一个或多个虚拟CPU。在这些客户操作系统之间,虚拟CPU彼此独立运行,不相互影响。
在纯软件CPU虚拟化中,有两种不同的软件解决方案:全虚拟化和半虚拟化。全虚拟化采用二进制动态翻译技术(动态二进制翻译)来解决客户端操作系统的权限指令问题。半虚拟化通过修改客户端操作系统来解决虚拟机执行特权指令的问题,将所有敏感指令替换为对底层虚拟化平台。这两种方案都增加了系统的复杂性和性能开销。(www.xing528.com)
旧的x86 CPU不能有效地支持虚拟化,而CPU虚拟化只能在软件级别进行。随着硬件技术的发展,硬件的性能得到了很大的提高。现在,x86 CPU的主流开始在硬件层面上支持CPU虚拟化,因此出现了x86 CPU硬件辅助虚拟化。CPU硬件辅助虚拟化是在CPU中加入新的指令集和处理器运行模式,以支持CPU虚拟化,使系统软件更容易、更高效地实现虚拟化。
CPU的硬件辅助虚拟化主要由IntelVT-x和AMD组成。以VT-x为例,VT-x的工作原理首先介绍了两种工作模式:根(VMX根操作)和非根(VMX非根操作)。这两种模式统称为VMX操作模式。根模式是VMM运行的模式,它的行为与不使用VT-x技术的早期CPU相同。非根操作模式是客户端运行并提供支持虚拟机运行所需的CPU环境的模式。这两种运行模式具有0~3级权限,共4种特权级别。在VT-x中,从非根模式到根模式的转换形式称为VM-Exit。从根操作模式到非根操作模式的转换形式是VM-Entry。此外,VT-x还引入了一个包含虚拟CPU相关状态的VMC,以更好地支持CPU虚拟化。
(2)内存虚拟化
内存虚拟化是对主机实际物理内存的统一管理,将虚拟化转化为虚拟物理内存,然后供多台虚拟机使用,使每台虚拟机都有自己独立的内存空间。
对于真正的操作系统,内存从物理地址0开始,并且是连续的,至少在一些大粒度中是这样的。在虚拟化中,所有客户端操作系统都可以同时使用起始地址为0的物理内存,以确保所有客户端操作系统的初始物理地址为0,并且它们的内存地址是连续的,VMM引入了一个新的地址空间层-客户机物理地址空间。
虚拟机监视器(VMM)通过虚拟机内存管理单元(内存管理单元,MMU)管理虚拟机内存,该单元负责分配和管理每个虚拟机的物理内存。客户端操作系统所看到的是虚拟物理内存地址空间(即客户机物理地址空间),而不再是真正的物理内存地址空间。利用客户机物理地址空间,形成两层地址映射,即客户端虚拟地址空间到客户端物理地址的映射,以及客户端物理地址到主机物理地址的映射。第一个映射由客户端操作系统执行,而后者由VMM通过动态维护镜像表来管理。
(3)I/O虚拟化
可以在单个虚拟机上安装多个操作系统,所有这些都由外部资源访问。然而,外围资源是有限的。为了使所有客户端操作系统都能访问外围资源,虚拟机监视器需要通过I/O虚拟化重用有限的外围资源。此时,VMM截获客户端操作系统的访问请求,然后通过软件模拟真实外设的效果。但是,不需要对所有外围设备的所有接口进行完全虚拟化。
I/O虚拟化的第一步是发现设备,设备的发现取决于虚拟设备的类型。不同类型的设备以不同的方式被发现。以完全虚拟设备的仿真为例,虚拟设备所处的总线类型完全由VMM决定。VMM可以定制一组虚拟总线协议,也可以将虚拟设备挂在PCI总线上。第二步是拦截访问,VMM的任务是使客户端操作系统能够访问它。VMM根据设备的性能提供不同的拦截器。例如,对于直接分配给客户端操作系统并具有端口I/O资源的设备,VMM进程是从I/O位图打开设备所属的端口I/O,并由处理器发送到系统总线。最后到达目标物理装置。
在I/O设备中有一个非常特殊的设备,一个网卡。除了普通的I/O设备作为虚拟机的共享设备外,网卡还解决了虚拟机与外部网络或虚拟机之间的通信问题。网卡虚拟化技术分为两类:虚拟网卡技术和虚拟桥接技术。虚拟网卡是指虚拟机中的网卡,由仿真器通过软件的方法进行仿真;虚拟网桥是用软件的方法实现的。该网桥的功能是使共享物理网卡的虚拟网卡成为一台服务器上的多个独立网卡。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。