3、企业级虚拟化主机技术
企业所需的IT环境必须安全、稳定、高可用性且方便管理。因此企业级虚拟化技术主要指系统方面的虚拟化,核心思想是使用虚拟化软件在一台物理机上虚拟出多台虚拟机:每台虚拟机分别运行在一个隔离环境中,均为具有完整硬件功能的逻辑计算机系统,且互相之间运行不同服务。这样既能提高资源利用率又能使各台虚拟机互不干扰地运行。
3.1 CPU虚拟化
CPU虚拟化技术就是将物理CPU抽象成虚拟CPU,且任意时刻一个物理CPU只能运行一个虚拟CPU的指令。这与多任务以及超线程技术完全不同。
CPU虚拟化分为软件方案和硬件方案:软件方案中,关键资源的访问通过虚拟机监视器(virtualmachine monitor.VMM)与底层硬件交互,因为虚拟机操作系统运行在非最高特权级,所以当其发出敏感指令时会陷入到VMM中,VMM会通过准确模拟物理处理器的行为,将其访问定位到VMM为其设计的与物理寄存器对应的“虚拟寄存器”上,进行软件模拟。
当前纯软件的CPU虚拟化包括全虚拟化和半虚拟化。纯软件的CPU虚拟化虽然不要求对x86架构下的处理器本身进行改变,但是会增加系统的复杂性和性能开销。后来又提出了硬件辅助虚拟化技术,如Intel VT和MD-V,支持虚拟化技术的CPU加入了特别优化过的指令集和处理器运行模式来控制虚拟过程,通过这些指令集,VMM的性能得到了提升;而且硬件层面的虚拟化可以提供全新的操作系统运行模式,无需进行二进制转换,也简化了VMM的设计。
3.2存储虚拟化
存储虚拟化是对存储的物理设施和配置的逻辑抽象。按照目前的主机结构来看,主要分为内存虚拟化和外存(硬盘)虚拟化。
3.2.1内存虚拟化
内存虚拟化技术在大型机时代就已经被应用。由于当时计算机缺少运行程序或操作所需的随机存取内存(RAM),于是操作系统使用虚拟内存(virtualmemory)进行补偿。虚拟内存技术是指在磁盘存储空间中划分一部分作为内存的中转空间,负责存储内存中放不下且暂时不用的数据,当程序用到这些数据时,再将它们从磁盘换入到内存。
虚拟内存技术屏蔽了程序所需内存空间的存储位置和访问方式等实现细节,向上提供透明服务,体现了虚拟化的核心理念,以一种透明的方式提供抽象了的底层资源。随着硬件技术的不断发展,在物理主机上运行多个虚拟机以提高硬件利用率成为了新的热点。内存虚拟化技术把物理机的真实物理内存统一管理,包装成多个虚拟的物理内存分别供虚拟机使用,使得每个虚拟机拥有各自独立的内存空间。
不过由此带来了逻辑内存与物理内存互相转化的问题,二者的映射关系是由内存虚拟化管理单元来负责的,主要有影子页表法和页表写入法2种。影子页表法是指VMM为每个虚拟机维护着一个对应的页表,会随着客户操作系统页表的更新而更新。VMware的产品均采用这种方法。
页表写入法指的是当客户操作系统创建一个新页表时,需要向VMM注册该页表。客户操作系统对页表的每次修改都会陷入VMM,由其来更新,保证其页表项记录的始终是真实的物理地址。Xen是采用该方法的典型代表。
3.2.2外存虚拟化
随着信息业务的不断发展,网络存储系统已经成为企业数据中心的核心组件。存储网络平台性能的优劣,直接影响到企业业务的运行。因此,存储虚拟化技术(主要指硬盘方面)应运而生。独立冗余磁盘阵列(redundant array of independent disk, RAID)技术是外存虚拟化技术的雏形。它通过将多块物理磁盘以阵列方式组合起来,为上层提供一个统一的高性能的容错存储空间,大幅提高了存储系统的数据吞吐量。RAID主要包含RAID 0~RAID 7等数个规范,它们的侧重点各不相同。
在RAID之后,随着数据量不断增加和对数据可用性要求的不断提高,出现了基于文件存储的NAS和基于块设备访问的SAN,二者均为基于网络的存储虚拟化技术的代表。网络附属存储(network attachedstorage, NAS)主要应用于以文件共享为基础的虚拟存储系统中。
存储区域网络(storage area network.SAN)主要应用在以数据库应用为主的块级别的数据共享领域。存储虚拟化接替了物理存储设备的配置和管理的负担,同时使得存储资源的利用率更为高效。它可以使逻辑存储单元在广域网范围内整合,并且可以不需要停机就从一个磁盘阵列移动到另一个磁盘阵列上(实时迁移技术)。