服务器 频道

全面解析虚拟化主机技术在企业中的应用

  【IT168 应用】虚拟化(virtualization)是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。抽象来说,虚拟化是资源的逻辑表示,不受物理限制的约束。具体来说,虚拟化技术的实现形式是在系统中加入一个虚拟化层,将下层的资源抽象成另一种形式的资源供上层使用。

  业界对虚拟化产生了很多种定义,侧重点各不相同,但都阐述了3层含义:

  1)虚拟化的对象是各种各样的资源:

  2)经过虚拟化后的逻辑资源对用户隐藏了不必要的细节:

  3)用户可以在虚拟环境中实现其在真实环境中的部分或者全部功能。因此,笔者对虚拟化主机技术在企业中的应用进行研究。

  1、发展历史

  1959年,克里斯托弗在其于信息技术国际会议上发表的学术报告《Time Sharing in Large FastComputers》中首次提出了虚拟化的概念。20世纪60年代中期,IBM的Watson研究中心为了验证“时间共享系统”的概念而开展了M44/44X工程,其架构基于虚拟机,定义了虚拟内存管理机制,可以在一台大型机上同时运行多个用户操作系统。此后直至20世纪70年代中期,IBM提供了一系列应用了虚拟化技术的产品,通过虚拟机监视器技术在物理硬件上生成多个可以运行独立操作系统的虚拟机镜像。

  在20世纪80年代和90年代,随着x86架构的发展和Windows操作系统的广泛应用,主要用于大型机的虚拟化技术不再流行。但在20世纪90年代末期,x86架构也显现出了利用率低、管理成本高和灾难防护不力等问题。1998年,VMware公司提出了针对x86平台的虚拟化技术,并加以实际演示。

  IBM分别于1999年和2002年实现了“逻辑分区”和“动态逻辑分区”,允许在无需重启系统的情况下,将包括CPU、内存的系统资源分配给独立的分区,使系统管理更加方便。2003年,微软进入桌面虚拟化市场,至今不断提供操作系统层面的虚拟化产品。2006年,Intel和AMD陆续宣布从处理器层面支持虚拟化,至此,虚拟化又成为了IT行业的主流技术。

  2、虚拟化的工作模式

  虚拟化技术将物理资源进行逻辑表示以供给用户使用,在转换的过程中需要根据用户的需求,通过一些模式和方法将资源虚拟成符合要求的形态。在实现虚拟化时常常使用的模式和技术如下。

  2.1单一资源的多个逻辑表示

  这种模式是虚拟化最广泛使用的模式之一,它只包含一个物理资源,却向用户呈现出多个资源的形态,如图1。

  2.2多个资源的单一逻辑表示

  这种模式将多类资源整合到一起,对外表示为提供单一接口的单个逻辑资源的形式。在利用多个简单功能来创建某种强大的系统时,这是一种非常有用的模式,存储虚拟化和集群技术就是这种模式的例子。多类资源都是通过一个接口呈现出来,用户只与一个系统进行交互,而实际上的计算则分布多个节点上,与网格比较类似,如图2。


▲图1 单一资源的多个逻辑表示图


▲2多个资源的单一逻辑表示

  2.3在多个资源之间提供单一逻辑表示

  这种模式可以将多个同类资源相融合,对外体现为单一逻辑资源的多副本形式。系统根据特定的条件来选择一个物理资源实现,例如资源利用率、延迟等。这种模式与上一种模式非常类似,但是它们之间的差别在于:这里每个物理资源都是一个完整的副本,彼此不依赖对方而存在;并且都可以提供逻辑表示所需要的所有功能。这种模式的一个例子是负载均衡。用户只需要提出事务请求,并不需要关心到底是哪一个资源副本在提供服务,如图3。


▲图3在多个资源之间提供单一逻辑表示

  2.4单个资源的单一逻辑表示

  这是用来表示单个资源的一种简单模式,将一种资源表示成另一种资源的形式。B/S模式就是一个常见的例子。创建一个前端来表示Web界面,它会映射到应用程序接口中,然后将后台服务器的内容通过可视化的方式呈递给用户,如图4。


▲图4单个资源的单一逻辑表示

  虚拟化工作的基本模式是用物理资源来提供多种多样的逻辑资源集合,它们既可以独立执行为用户提供标准化、安全的接口,也可以组合执行以达到更好的效果。

  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)主要应用在以数据库应用为主的块级别的数据共享领域。存储虚拟化接替了物理存储设备的配置和管理的负担,同时使得存储资源的利用率更为高效。它可以使逻辑存储单元在广域网范围内整合,并且可以不需要停机就从一个磁盘阵列移动到另一个磁盘阵列上(实时迁移技术)。

0
相关文章