剖析硬件虚拟化五大关键词

服务器在线1月4日报道 x86平台的虚拟化如今可谓炙手可热。VMware、Citrix、Parallels等企业虚拟化软件受到了众多服务器厂商的热烈追捧,应用日渐广泛。但虚拟化技术除了软件之外,更需要底层的硬件的支持,硬件在虚拟化中发挥着尤为根本的作用。而以AMD等为代表的芯片厂商,在其四核芯片中都加强了对虚拟化的支持。

近日,记者独家专访了中国科学院计算技术研究所国家智能计算机研究开发中心研究员、博士生导师孙毓忠,他在计算机体系结构、高速计算机网络与虚拟机等领域都有深入的研究,目前正在开发虚拟化计算平台及其系统管理软件Rainbow项目。该项目旨在进行基于虚拟化技术的、面向Internet应用的 Kernel研究。孙毓忠为记者深入剖析了硬件虚拟化的五个关键方面。

关键词之一:异构

在6月18日公布的最新全球超级计算机TOP500中,IBM代号为"走鹃"的超级计算机荣登榜首。值得注意的是,该款计算机采用IBM Cell和AMD Opteron处理器混合式设计,并实现了性能空前的千万亿级运算。另外,在收购图形芯片厂商ATI之后,AMD近期提出了加速处理单元(APU)的概念,APU是一种异构多核心芯片加速器,集成了若干个CPU和其他专用处理器内核,也可理解为CPU+GPU。走鹃的成功与APU的提出都表明了异构计算强劲的发展态势。

对此趋势,孙毓忠表示:"目前,计算机体系结构呈现出巨大的异构性,但在软件层面,操作系统并不希望看到过多的异构性。因此,硬件结构便出现了以可重构计算为核心的虚拟化技术。"孙毓忠认为,虚拟化出现的一个重要根源在于,虚拟机可屏蔽掉各种处理单元的异构性,不管这些单元是传统的多核架构,还是来自不同厂商,还是CPU+GPU。

在混合架构方面,由于AMD采用超传输总线(HT)的开放式总线架构,因此更易于与异质处理单元的协作。

关键词之二:隔离性

虚拟化除了能够屏蔽掉硬件的复杂性,还能起到隔离的作用。"芯片厂商在支持虚拟化方面,一个很重要的问题便是保持隔离性。"孙毓忠表示,"所谓隔离性,简单来说,就是通过硬件的冗余为每一个虚拟机保留一个独立的执行通道,这个通道包括独立的CPU计算资源、内存、I/O通道等。"

"当然,利用硬件资源绝对的冗余来构建虚拟机之间绝对的隔离,会造成一个问题:系统支持的虚拟机的个数将受到限制,执行通道中的所有资源并不是都在全时运转。所以我认为虚拟化技术和硬件体系结构还有非常广阔的结合空间。"

据记者了解,AMD四核巴塞罗那处理器就提供了硬件级的虚拟化隔离技术。其设备排除矢量DEV(Device Exclusion Vector)技术可在内存中创建保护域,通过拒绝未经授权的内存访问请求,使设备在未经授权的情况下不能访问内存页面,这就增强了虚拟化的安全性。而且,该功能并非由软件实现,而是内嵌到硬件之中,无疑效率更高。据悉,只有具备集成内存控制器的处理器才可以提供这项优势,目前在x86领域,只有AMD 能做到这一点。

关键词之三:内存墙

在高性能计算领域,计算能力相对富余,但I/O不足,存在内存墙(Memory Wall)等问题,束缚了计算性能的进一步提升。内存墙是指从CPU核心到内存之间的数据交换往往受制于带宽限制,之间的延迟越来越高,由此限制了系统整体性能的提升。虚拟化的性能取决于延迟的大小。"芯片厂商都在努力提高通道带宽,比如AMD采用了直连架构,能够提高CPU与CPU之间的通信效率;其集成内存控制器技术,使CPU到内存的路径更短,提高带宽,降低延迟,使一个内核可以处理的线程更多,提高计算效率,并具有更出色的可扩展能力。"孙毓忠表示。

在虚拟化方面,为提升虚拟机与物理机之间的数据传送及翻译转换,AMD巴塞罗那使用了带标签的TLB(Translation Look-aside Buffer,地址转换后备缓冲器)。加标签的TLB使地址空间标识符 (ASID)附加于TLB项中,在多个虚拟机同时运行时或是在内存地址中切换时,可以令Hypervisor知道TLB与虚拟机之间的一一对应关系,无须刷新和重新装载,从而提高虚拟机的性能。

另外,AMD巴塞罗那还提供硬件层的快速虚拟化索引技术(RVI,Rapid Virtualization Indexing),通过硬件转换内存,就像没有使用虚拟化一样,可使虚拟化性能得到75%的提升。

"从体系结构的创新性来说,特别是在多核架构这个角度,AMD走在思想的前列,比如直连架构、集成内存控制器等,都是AMD首先提出来并实现的。这些说明AMD开创了先河,至少在思想上已经成为行业的领先者。"孙毓忠认为。 关键词之四:主频

虚拟化很关心CPU提供的支持,但CPU频率会无限高吗?无限高就代表很先进吗?

"这是一个很重大的问题。从体系结构上来说,主频无限高会带来很大的问题,所以这就是为什么出现了多核的原因,频率降一点,但是个数多一点,总的效能也会上去。"孙毓忠对记者说,"在多核这方面,AMD通过体系结构的创新,而不是单纯地追求物理极限的创新,来实现计算效能的提高。在这方面,AMD是具有前瞻性的。虚拟化起一个核心作用就是怎么样跟上潮流,提供更有效的硬件资源的使用方法,这种使用方法的核心就是共享和隔离。"

关键词之五:云计算

云计算是2008年计算领域中的热门词汇,包括Google、IBM、微软等IT巨头都有不少动作。孙毓忠也在做一个相关项目–虚拟化计算平台及其系统管理软件Rainbow,这是一个融合了云计算与虚拟化的计算系统。

"虚拟化技术提供了一个云计算的基础架构。"孙毓忠向记者介绍该项目,"在这个架构中,任何一个客户(可能共有一百万个客户),都有属于自己专有的独立的计算资源。系统可以给每个客户一个计算形态,这些计算形态是在Internet上分布的,这就需要计算执行环境的虚拟化。这些虚拟化的执行环境会映射到中间的虚拟机池,虚拟机池通过新型的虚拟化技术映射到离散的这些CPU或者机器上。从这个角度来讲,云计算的一个核心思想就是在服务器端实现集中的提供,同时要服务不同的人,也就是共享加隔离(安全、可信)。"

孙毓忠告诉记者,该项目底层使用的芯片正是代号为巴塞罗那的AMD四核皓龙处理器。