虚拟技术重要性尚未引起国内用户重视之原因
何谓虚拟?
当我们尝试着理解虚拟技术时,首先必须要理解“虚拟”的概念。“虚拟”这个词最早来源于光学,用于理解镜子里的物体。现在,“虚拟”这个词已经经过演化,用来描述任何真实物体的模拟了,例如分区、虚拟机、虚拟内存、虚拟磁盘和虚拟现实。在讨论虚拟技术的时候,使用“虚拟”这个词,是因为我们希望虚拟机看起来和工作起来都和真正的机器一模一样。这意味着,虚拟机并不是真正的机器,但是它能像真正的机器一模一样地工作。
实际上,从原理上看,所有虚拟技术虚拟的是指令集。所有的IT设备,不管是PC、服务器还是存储,都有一个共同点:它们被设计用来完成一组特定的指令。这些指令组成一个指令集。对于虚拟技术而言,“虚拟”实际上就是指的这些指令集。虚拟机有许多不同的类型,但是它们有一个共同的主题就是模拟一个指令集的概念。每个虚拟机都有一个用户可以访问的指令集。虚拟机把这些虚拟指令“映射”到计算机的实际指令集。
定义完“虚拟”的概念,我们可以清楚知道,目前所能看到的硬分区、软分区、逻辑分区、SolarisContainer、VMware、Xen、微软VirtualServer2005这些虚拟技术,都是同样的原理,只是虚拟指令集所处的位置不同而已。
按照虚拟层所处位置的不同,目前所有的虚拟技术大致可以分为硬件虚拟、逻辑虚拟、软件虚拟和应用虚拟四种类型。
逻辑虚拟模式
最早的虚拟模式当然是源自IBM大型主机的逻辑分区技术,这种技术的主要特点是,在IBM的大型主机中,每一个虚拟机都是一台真正机器的完整拷贝,只是内存少了点。根据这一概念,一个功能强大的大型主机可以被分割成许多虚拟机。这些虚拟机仅比原来的主机少一点内存资源而已。这一虚拟模式后来被业界广泛借鉴,包括HPvPAR、VMwareESXServer和Xen在内的虚拟技术都是这样的工作原理。
在逻辑虚拟模型中,虚拟机操作系统是整个IBM虚拟机体系结构的“大脑”,包括操作系统和硬件在内的整个系统被称作虚拟机系统(VMSystem)。每个虚拟机系统都被一个叫做控制程序的程序控制。控制程序除了管理实际的物理硬件,还要为每个系统用户创建一个虚拟机,这种虚拟机是System/370或System/390系统的全真模拟。IBM虚拟机概念的重点在于:每个用户都可以在他们的虚拟机上运行程序、存储数据,甚至虚拟机崩溃也不会影响系统本身和其他的系统用户。所以,IBM虚拟机模型不仅允许资源共享,而且实现了系统资源的保护。在大型主机上,用户可以选择BasicMode(基本模式)、LogicalPartition(逻辑分区方式)和z/VM(Z虚拟机方式)三种模式来配置系统。
在上述模型中,虚拟控制程序以固件形式直接运行在主机硬件层之上,位于操作系统之下,是虚拟机系统中最重要的一部分。控制程序要管理系统硬件,包括启动和关机在内的系统支持任务,以及请求的排队和执行。同时控制程序还要管理每个虚拟机的编程特征和每个虚拟机的建立和维护。
当IBM在2001年把大型主机上的VMSystem向下迁移到p系列和i系列上时,将虚拟控制程序称之为“Hypervisor”,并先后实现了逻辑分区与动态逻辑分区。
据IBM系统科技部大中华区p系列产品经理李红和资深工程师房树新介绍,由于IBMp系列的设计思想是共享式的,即所有CPU可以同等地看到所有的内存和I/O的连接方式,即一种为数据/指令流提供足够的高速通路的体系结构。在p系列上,Hypervisor能看到所有的真实资源(CPU、内存和I/O卡),并且通过一个控制台(HMC)来管理逻辑分区。通过HMC将上述提到的资源定义到不同的逻辑分区中去,每个逻辑分区所需的最小资源是1/10个CPU(在2004年8月发布的AIX5Lv5.3上实现了1/10个CPU级别的分区粒度,以及1/100个CPU的微调量)、1GB内存和一个PCI插槽。
而且IBM有意将逻辑分区技术进一步下移。2005年第四季度,IBM发布了虚拟I/O服务器,其目的就是让没有配置HMC的1~2路低端p系列和i系列用户,可以通过虚拟I/O的一个组件IVM(IBMVirtualMachine),实现简化后的HMC控制台功能。
李红更透露说,IBM将在2006年内宣布一项突破性的虚拟技术,届时,IBM的虚拟层管理工具将能对本地服务器群的所有计算资源进行虚拟—类似于Grid的概念,但要点在于用户可以从全局角度出发,对计算资源和业务系统进行精确的配置。
硬件虚拟模式
硬件虚拟技术是随着Unix服务器的发展而出现的。实际上,在Unix服务器上,不少厂商和用户习惯于将电气级的虚拟技术称为硬分区(或物理分区),而把通过软件或固件实现的逻辑分区技术则称之为软分区。但无论如何称呼,实际上逻辑虚拟模式和硬件虚拟模式的共同点是与应用所在的操作系统无关,只与系统硬件相关。那么,它们之间的区别在哪里?
先看看硬件虚拟模式。HP和Sun等厂商在Unix服务器上采用的是MBB(ModularBuildingBlock)架构。MBB由多个BB(BuildingBlock)构成,Sun称之为Board,HP称之为Cell。
每个BB可包含4路CPU、若干内存和I/O卡。不同BB内的CPU可以有不同的时钟频率。所有的BB通过一种称为CrossbarSwitch的交换机制连接在一起。采用MBB技术可以比较容易地设计出拥有更多数量CPU的服务器。在这种服务器上既可以运行一个操作系统,也可以在一个或多个BB上运行多个操作系统。这就是服务器的硬分区。
基于MBB技术的服务器是由多个BB构成的,所以具有物理分区的特性:即可以热插拔CPU板和内存板。这是因为每一个BB是物理分开的,每个4路CPU板可以单独从系统中隔离出来并将其下电。
再来看逻辑虚拟模式。IBM没有采用MBB的设计结构,所以在p系列服务器上不支持硬分区。由于IBM没用采用CrossbarSwitch技术做CPU之间的连接,它不允许不同主频的CPU共存在同一台机器内。而MBB结构的服务器则允许这样做,但要求CrossbarSwitch工作在相同的带宽上(MBB之间的连接带宽恒定)。
比较而言,硬件虚拟模式的优点无疑是100%的隔离度和安全性,不占用任何系统资源。缺点是操作相对复杂,最小操作粒度是1颗CPU,而且在进行分区资源变更的时候,移出CPU的分区需要重启操作系统。
逻辑虚拟模式的优点是配置灵活,操作相对简单而且分区粒度可达1/20个CPU,资源变更时无需重启系统,甚至无需重启应用。但相对硬件虚拟模式而言,逻辑虚拟模式会占用一定比例的系统资源。目前大型主机的虚拟效率一般在95%以上,虚拟化损耗大约为2%~3%;AIX和HP-UX上的虚拟效率在90%以上,虚拟化损耗约为5%;而x86架构上的虚拟效率则在80%左右,虚拟化损耗大约为20%。
需要注意的是,Intel和AMD也开始了对硬件级虚拟技术的关注,例如Intel和AMD在2006年将分别推出采用I