中国教育和科研计算机网
EDU首页 |  中国教育 |   高校科技 |   教育信息化 |   CERNET
教育信息化

资讯 | 专题 会议 观点 专栏 访谈 企业 产品 CIO 技术 校园信息化 下一代互联网 IPv6视频课堂

中国教育网 > 教育信息化
您现在的位置: EDU首页 > 教育信息化 > 解  读
兰大虚拟化应用实践与思考:剑指数据中心矛盾
http://www.edu.cn   2008-11-17 中国教育网络 作者:李林;陈文波;李善玺;唐钧

字体选择:【大】 【中】 【小】

  在数据中心里,不断增加的应用迫使数据中心不断增加服务器数量,以应对各种各样,不同业务的需求,而其中大量服务器的大部分资源被闲置,可其占用的各项资源却与满载的服务器相近。虚拟化技术为解决这个矛盾提供了出路。

  虚拟化按其演进过程来看大致可分为纯软件虚拟化和硬件虚拟化两个分支;按其实现虚拟化方式的不同,又可以分为全虚拟化,准虚拟化(又称操作系统辅助虚拟化)和硬件辅助虚拟化三种技术。虚拟化的优点及必要性有两点:1.提高资源利用率。2.便于迁移与备份恢复。

  虚拟化技术简介与比较

  x86架构上的虚拟化问题
  早在x86处理器设计之初,就没有考虑支持虚拟化(虚拟化曾受到的漠视由此可见一斑)。在x86架构中设计了四个不同的特权等级,计算机术语称为Ring,从Ring 0~Ring 3,Ring 0的优先级最高,Ring 3最低。为了保护指令的运行,不同级别可以运行的指令有所限制,例如,GDT,IDT,LDT,TSS等指令就只能运行于Ring 0。

图1 未采用虚拟化技术的x86等级模型


  如此以来,在一个常规的x86操作系统中,系统内核必须运行于Ring 0,如图1,然而虚拟化软件以及其管理下的Guest OS同样需要运行于Ring 0——因为不那样就无法对所有虚拟机进行有效的管理。早期的解决方案是让Guest OS运行于Ring 1(0/1/3模型),或者Ring 3(0/3/3模型)。但是无论哪一种模型,Guest OS都无法运行于Ring 0,这样,如GDT,IDT,LDT,TSS等特权指令就必须通过模拟的方式来运行,这会带来很明显的性能问题,特别是在负荷沉重、这些指令被大量执行的时候。同时,这些特权指令是真正的“特权”,隔离不当可能严重威胁到其他Guest OS,甚至Host OS,就像把不同风味的菜放到一个盘子里,难免会串味。

 

  现有方案简介与比较
  针对这些问题目前已有三种可行的解决方案。


  方案一:全虚拟化(Full Virtualization)

图2 采用全虚拟化技术的x86等级模型


  如图2所示,Guest OS通过VMM(虚拟机监视器,Virtual Machine Monitor)与硬件进行通信,VMM的位置是传统意义上操作系统所处的位置,而操作系统则降级为传统意义上的应用程序。这一额外的通信层需要进行二进制转换,以获得物理资源(如处理器、内存、网卡等)的接口,进而模拟硬件环境。这种转换必然会增加系统的复杂性。此外,Guest OS的支持受到虚拟软件虚拟虚拟环境能力的限制,这会阻碍特定技术的部署,如64位Guest OS。在该方案中,软件堆栈增加的复杂性意味着这些环境难于管理,因而会加大确保系统可靠性和安全性的困难。VirtualBox和VMware Workstation(for 32-bit guests only)都是有名的全虚拟化软件。

 

  方案二:准虚拟化(Paravirtualization)
  针对方案一中暴露出的问题,准虚拟化技术从Guest OS入手,打开了新局面。以准虚拟化技术中比较有名气的Xen为例。与全虚拟化技术不同,操作系统必须进行显式地修改才能在Xen上运行,如图3。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。正如某句宣传语说的那样:“Mware为x86提供虚拟机,这些虚拟机可以运行未修改的PC操作系统,但其所涉及的技术极为复杂,也导致了性能的(有时相当显著)下降。Xen牺牲了完全的二进制兼容,换取相对的简易性和改善的性能。”

图3 采用准虚拟化技术的x86等级模型

 

  方案三:硬件辅助虚拟化(Hardware Assisted Virtualization)
  在软件开发商努力改进虚拟机性能的同时,硬件开发商也对虚拟化发展伸出了援手。两大CPU制造商Intel和AMD先后都推出了自己的支持虚拟化的处理器Intel Virtualization Technology(Intel VT)和AMD Virtualization(AMD-V)。支持虚拟化技术的CPU带有特别优化过的指令集来控制虚拟过程,它把VMM放在比Ring 0更高的优先级上。通过这些指令集,VMM会很容易提高性能。

 

图4 采用硬件辅助虚拟化技术的x86等级模型


  如图4所示,以Intel的VT-x(VT-x指应用在IA32上的VT技术)为例,VT-x将IA32的虚拟化操作扩展为两种模式:Root Mode和Non-root Mode。Root Mode设计来供给VMM使用,其行为跟传统的IA32并无特别不同,而Non-root Mode则是一个处在VMM控制之下的IA32环境。两个模式都能支持所有的四个特权等级,这样在Non-root Mode下运行的虚拟机就能完全地利用Ring 0等级,而不再需要二进制转换或对Guest OS的显式修改。由此,GDT、IDT、LDT、TSS等这些指令就能正常地运行于虚拟机内部了,而在以往,这些特权指令需要模拟运行。而VMM也能从模拟运行特权指令当中解放出来,从而大大地提升运行效率。现在VT技术已经在VMware,KVM,Xen等软件中使用。特别是Xen,由于有了VT技术的支持,Xen不再需要对操作系统进行显式的修改了。

  应用实例
  今天,虚拟化技术的各方面都有了进步,虚拟化也从纯软件逐渐深入到处理器级虚拟化,再到平台级虚拟化乃至输入/输出级虚拟化,然而全虚拟化技术仍处于市场的主流地位。本着方便稳定、灵活通用的原则,并权衡了三种方案的利弊,取长补短,我们搭建了以下虚拟化应用平台。

  虚拟环境搭建
  软件配置:
  ubuntu-8.04.1-server-amd64.iso;VMware-server-1.0.6-91891.tar.gz;jeos-8.04.1-jeos-i386.iso
  硬件配置:
  IBM System x3650 (Type 7979)
  CPU:Intel(R) Xeon(R) CPU  E5405 @ 2.00GHz,支持VT和vmx(全虚拟化);内存:4G;
  网卡:Broadcom双千兆网卡;
  硬盘:IBM SAS 146.8G 15K


  软件选择几点考虑:
  1. 选择Ubutu8.04 server 64位版,一是CPU为64位的,可提高整体性能;二是Ubuntu8.04内核中已经加入KVM(Kernel-based Virtual Machine),这为下一步深入研究打下了更好的基础。
  2. VMware server 是款免费软件,你只需到VMware官方网站上注册一下,就可以获得序列号。VMware的管理界面与其他虚拟化软件相比是最方便的。很难想像,这么强大的工具竟然是免费的。
  3. JeOS是Just enough OS for your virtual appliance的简称,它作为Ubuntu一个特殊的服务器版本,针对虚拟环境做了特别的内核调整,并且做了系统地精简,只包含运行所需的基本要素。

  虚拟化应用举例
  在安装完Ubuntu server后,首先在Host OS上运行了DHCP和Web服务,用这样的配置运行以上的服务显然绰绰有余,于是在Host OS上安装了VMware server,又在上面装了一个JeOS版的Guest OS,运行了单位内部的交流网站,另外又安装了一个Windows 2003,以提供Windows下的相关服务,而这在以前至少要两台服务器才能完成。
  特别值得一提的是VMware的远程管理工具,确实方便,但建议除了一些必要的配置,像Guest OS安装、网络配置等,其他管理完全可以用替代软件,比如Windows的远程桌面,Linux的ssh,这样可以节省物理机的资源消耗。
  远程管理:你可以使用浏览器,用HTTPS连接VMware Server的8333端口。例:
  https://<vmware_server>:8333。登录之后,便可以修改设定,查看效能及进入虚拟机。你也可以从https://<vmware_server>:8333下载安装VMware Server Console。VMware Server Console的默认登录端口为902。
  后来为了提高虚拟机的性能,只让Host OS运行了VMware虚拟服务,但也不再作其他优化。在这种情况下,同时虚拟Windows和多台Linux,发现即使不运行任何服务,物理机的消耗都很大。
  于是又推倒重来,重装了Host OS和VMware server,并在安装Guest OS时做了以下优化:
  1. 删除不需要的虚拟硬件。
  2. 在虚拟机上安装VMware Tools(虽然在安装过程中遇到不少麻烦,但都一一得到解决)以达到更好地协调运作。
  3. 直接采用物理硬盘,而不是虚拟硬盘,以提高数据读写速度。
  为了测试性能,一口气装了5台JeOS版的虚拟机。后来又陆续做了些调整,目前方案的说明:为了迎接2008北京奥运会,做好奥运实况转播,在该服务器上再次安装Windows server 2003 来运行media server流媒体服务以减轻原有服务器的负荷,当然Windows OS是经过优化的。其他三台虚拟机都是JeOS版的Linux。有一台在跑Web服务,其他两台,一台用来做代理,一台做DHCP服务。

  下一步尝试
  随着对虚拟化认识的逐步加深,对其应用也产生了一些新的想法。
  1. 近日VMware又推出了VMware ESXi 3.5,它是VMware ESX 3.5的瘦身改进版,而且它是免费的。这无疑给广大追求IT投资最优化的公司带来了福音。VMware ESX 3.5与VMware server不同,它不需要Host OS的支持,因为它本身就是Host OS。
  初步的设想是在VMware ESXi 3.5下安装多个Linux作为Guest OS,而只在一个Guest OS上搭建服务平台,包括Apache,MySQL,Samba等,其他Guest OS则通过某种方式共享这些服务。比如/usr目录,由于/usr中的文件不和特定的计算机有关,也不会在通常使用中修改,因此可以通过网络共享这个目录,这样,当更新了软件或安装了新的软件后,所有共享这一目录的Guest OS均可以使用新的软件。
  2. 由于在Linux下实现网卡绑定比在Windows下容易得多,而且效率也比较高,是否可以在Host OS上运行Linux并做网卡绑定,而在Guest OS上运行Windows并提供流媒体服务,因为流媒体服务对网络性能的要求比较高。或者更进一步,直接在VMware ESXi 3.5上运行Windows Guest OS,这就要靠VMware ESXi 3.5的虚拟能力了,可行性有待进一步的实验数据。
  3. 前面已经屡有提及的KVM是目前很热门的Linux内核虚拟机,它击败了同样优秀的Xen,集成到主流Linux内核(v2.6.20及之后的版本)中。KVM作为后起之秀,也被认为是一个全虚拟化方案,但在将来它可能成为更大的解决方案的一部分。目前由于它是第一个集成到内核的虚拟化方案,所以并不会很快用于服务器虚拟化。
  针对KVM的应用我们也处于研究阶段,作为开源软件,它更有可能解决上述两个想法中的问题。

  (作者单位为兰州大学网络中心)

  来源:《中国教育网络》2008年10月刊

页面功能 【打印】 【关闭】 【我有话说

MOOC风暴来袭

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备15006448号-16,京网文[2017]10376-1180号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com