基于虚拟机的透明计算系统设计及实现_徐广斌

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ISSN 1000-0054CN 11-2223/N
清华大学学报(自然科学版)J Tsingh ua Univ (Sci &Tech ),2008年第48卷第10期
2008,V o l.48,N o.10w 37
http ://qhx bw.chinajo
基于虚拟机的透明计算系统设计及实现
徐广斌, 张尧学, 周悦芝, 韦 理, 陈成才
(清华大学计算机科学与技术系,信息科学与技术国家实验室,北京100084)
收稿日期:2007-09-12
基金项目:国家“八六三”高技术项目(2005AA 114160);
国家“十五”计划项目(2005B A115A02)
作者简介:徐广斌(1976—),男(壮),贵州,博士研究生。

通讯联系人:张尧学,教授,E-mail :zyx @
摘 要:虚拟机技术使用户可以使用跨操作系统平台的应用,但虚拟机的软硬件管理复杂,并使用户受阻于许多技术细节。

针对该问题,该文提出一种基于虚拟机的透明计算系统,通过虚拟的设备模型将用户操作系统访问磁盘和网络的输入输出请求重定向到服务器上进行处理,实现了未经修改的操作系统在透明计算环境中的加载和应用,从而利用透明计算的特点使用户使用时无需进行管理以及了解技术细节。

基于Intel V T 平台和X EN 虚拟机实现了原型系统,通过测试验证了该方法的有效性和可行性。

关键词:虚拟机;透明计算;虚拟化中图分类号:
T P 393
文献标识码:
A
文章编号:1000-0054(2008)10-1675-04
Design and implementation of a virtual machine -based transparent computing
system
XU Guangbin ,ZHANG Yaoxue ,ZHOU Yuezhi ,
WEI Li ,CHEN Chengcai
(Department of Computer Science and T echnology ,Tsinghua Univeristy ,National Labatory of Inforamation
Science and Technology ,Beijing 100084,China )
Abs tract :Cu rren t virtual machine tech nologies allow us ers to u tilize ap plications on heterogeneous operating s ys tems.Howev er,hardw are and software managemen t of the virtual machine is complicated
and
difficu lt
to
us e.
This
paper
pres ents
a
virtual-machine-based transparent computing sys tem w hich uses a virtualized d evice model in the service operating s ys tem (O S)to redirect device I /O reques ts in the g ues t OS ov er netw orks to be serviced b y the s erver.As a res ult,h eterogeneous operating sys tems can run u nmodified on-demand in a transparen t computing environ men t.
As in the Trans parent Comp uting paradigm ,th e
meth od enables us ers to focus on th e needed compu ting w ithou t consideration of th e manag ement or tech nical iss ues.Th e feasibility and effectiv en ess of th e meth od w ere v erified on a p ro totype s ys tem based on Intel V T and th e full virtualization of X EN.
Key words :virtual machine;transparent computing;virtualization
以VMW are [1]和XEN [2]
为代表的虚拟机技术
可虚拟出相互独立的硬件平台供不同操作系统
(o perating sy stem ,OS )运行,从而使用户可在一台计算机上使用跨OS 平台的应用。

但对用户来说,基于虚拟机的方法管理比较复杂,计算机的总拥有成本高。

文[3]提出一种新的计算模式—透明计算。

透明计算中,服务器作为一个“仓库”负责存储和管理所需要的软件资源;客户机只负责计算和输入输出,包括OS 在内的任何软件都从服务器上加载。

用户可像使用PC 机一样透明使用客户机,不用关心程序的管理。

现有基于透明计算模式的系统(如
M MN C [4]
)中,需要对加载的OS 进行修改:在其设备子系统中加入磁盘等设备虚拟化机制来实现透明计算环境下跨网络对服务器上磁盘块数据的访问,难以在底层接口不开放的OS 中实现。

为利用透明计算不需用户进行任何软硬件管理
的特点,本文提出一种基于Intel V T [5]
平台和XEN 虚拟机技术的透明计算系统M MN C-VX,通过将用户O S 的磁盘、网络等设备访问事件转为跨网络的虚拟化处理,使得OS 无需做修改即可在透明计算环境中进行按需加载,从而使得用户无需进行管理以及了解技术细节就可使用多种跨平台的应用。

1 基于虚拟机的透明计算系统—MMNC -VX
图1给出MM NC-VX 系统的结构,与M M NC 的服务器相似,服务器的功能主要是通过IP 的网络存储访问协议(netw ork sto rag e access pro tocol ,N SAP)向端计算机跨网络提供端计算机启动和运行所需的各种软件资源。

同时,所有的系统管理和维护工作都在服务器上进行,主要包括用户管理、资源管理、虚拟磁盘管理、I /O 管理。

这种集中式的管理使得用户使用的端计算机无需进行任何管理和维护,也减少了系统的总体拥有成本。

图1 MMNC -VX 系统层次结构
MM NC-VX 中端计算机本地无二级存储器,它
通过分层的功能结构支持在透明计算环境下无需修改地跨网络运行用户O S 。

如图2,其功能层次结构自下向上分为硬件平台层、BIOS 固件层、虚拟机监控器(vir tual machine mo nitor ,VM M )层和虚拟O S 层。

下面介绍各层次的功能。

图2 MMNC -VX 端计算机的虚拟机运行结构
硬件平台层(L1)。

硬件平台层由带有Intel V T 技术的主板、CPU 和外设构成,它定义了可以用于V MM 创建和管理虚拟机(也称为域)的处理器抽象层接口以提供对虚拟化的硬件支持,使得可以在
V MM 上运行未经修改的OS。

BIOS 固件层(L 2)。

BIO S 固件层采用了Intel 的扩展固件接口(ex tensible firmw are interface ,
EFI)[6]
,除环境初始化和自检等功能,还包括一个远程引导模块XENOSLoader 。

它的功能是在开机后自动在网上发现服务器,并从服务器上引导虚拟机内核。

相应地,服务器上的端计算机引导服务(Bo otService)向端计算机提供DHCP 服务,并提供用于端计算机启动的虚拟机内核模块
X ENOSKernel。

XEN OSKernel 作为EFI 平台上的自动加载模块,封装了X ENVM M 内核、域0内核模块以及符合多重引导规范的内核引导器Elinux 。

VM M 层(L 3)。

该层采用开源的XEN 负责对C PU 、内存、I /O 设备等本机的硬件资源进行虚拟化,使得上层的虚拟机可以动态地进行共享。

VM M 层还对运行的虚拟机进行C PU 资源的调度。

虚拟O S 层(L4)。

虚拟机运行在虚拟O S 层。

其中,域0作为V M M 扩展的服务域,根据用户选择以及相应的域配置文件在VM M 上生成用户域,为用户OS 提供完整的虚拟环境,并通过运行在用户空间的设备仿真模块提供磁盘和网络等设备的访问。

2 MMNC -VX 中多OS 的远程引导
M MN C-VX 对于多OS 的远程加载主要通过端计算机BIOS 固件层中EFI 平台中的自动加载模块X ENOSLoader 和服务器的Bo otService 之间的交互来完成。

具体地,端计算机在加电后顺序经过以下几个阶段完成对用户所需的OS 的加载。

1)EFI 平台装载。

包括EFI 代码完整性验证,C PU 、芯片组和主板的初始化,相关设备、总线的驱动和EFI 内部服务模块的加载等。

2)EFI 预引导。

XENO SLoader 模块作为EFI 平台装载阶段的最后一个自动运行模块被加载,开始预引导阶段。

首先通过DHCP 协议和服务器上的Boo tServ ice 交互完成本机网络参数的配置,然后下载XENO SKernel 。

之后,XENO SKernel 跳转到执行Elinux ,Elinux 获得内存信息并填写多重启动规范表。

在将XEN VM M 内核、域0内核拷贝到内存指定区域后跳转执行X EN V MM 内核。

3)虚拟环境引导。

这阶段包括XEN VM M 内核,以及域0内核的执行。

其中域0内核在启动时将通过内嵌的虚拟磁盘驱动和网络驱动,利用NS AP 使用服务器上的虚拟磁盘,从而完成根文件系统的挂载,域0启动其余过程类似于普通Linux 的启动。

4)用户域预启动。

这阶段启动域控制工具Xend 并运行O S 选择程序提供用户进行O S 选择。

5)用户域OS 启动。

这阶段根据用户选择和相应的域配置文件,启动X 图形服务器和设
1676
清华大学学报(自然科学版)2008,48(10)
备仿真模块,并完成用户O S启动。

3 MMNC-VX中端计算机上基于虚拟机的运行结构
完成用户O S的启动之后,V M M运行在硬件平台上,域0和用户域并列运行在VM M之上。

用户域虚拟出一台完整的机器,从而OS(如Windo w s X P)可以不经修改就直接在用户域中运行。

域0用户空间上的设备模型,即虚拟I/O设备,为用户域提供了对PC平台的抽象,使得用户域看到的是具有各种设备的一个PC平台。

1)I/O处理
设备模型的主要功能是等待来自于用户域的I/O事件,并将它分派给适当的设备仿真模块。

其中,虚拟磁盘向端计算机提供平面可寻址的数据块存储。

一旦设备仿真模型完成I/O请求,它将I/O 处理的响应结果通过Xen的I/O请求通信机制返回给用户域驱动程序。

MM NC-VX中,用户域本身并不能直接访问物理资源以及X EN V MM,具体地,M M NC-VX 中通过V T来支持对平台的虚拟化。

在对相应的I/ O设备位图进行设置之后,I/O特权指令的执行将被V T自动捕捉,并触发V M Exit类型事件而退出用户域,然后通过VM M调用相应的VM Ex it事件处理程序来完成虚拟化的工作。

M MN C-VX对I/O 设备位图进行设置,通过Xen V MM将用户域的磁盘和网络等主要I/O设备访问事件的处理转为利用本地的物理网卡进行跨网络的操作。

V MM接收到用户域由于访问设备产生的V M Exit事件后,通过XEN的事件通道通知域0已在V M M的I/O描述符中放置了一批(可为1个或多个)I/O请求,等待域0用户空间的设备模型进行处理。

设备模型和V M M之间使用共享内存来交互I/O请求和响应。

对于高速的DM A等数据传递,域0中的设备模型和用户域地址空间之间进行内存映射输入输出操作(memo ry map I/O,MM IO)。

2)磁盘访问
MM NC-VX的一次磁盘访问操作涉及域、V MM和进程之间的切换,以及跨网络在服务器端的处理。

以读为例,一次磁盘I/O过程从用户域的文件系统请求磁盘块开始,具体经过以下的步骤。

①用户O S对磁盘设备的I/O端口进行读取,触发V M Exit事件,控制权从用户域转到V MM。

②进入VM Exit事件处理程序:对触发的指令进行解析;构造I/O请求数据结构来描述该磁盘设备事件,将结构通过I/O描述符发送给域0的设备模型。

③将控制权调度给域0,域0轮询到有发送给设备模型的事件到来,进行进程调度执行设备模型。

④设备模型对一批I/O请求进行循环处理,进行V Disk的I/O端口和M M IO操作,发送给服务器进行处理。

⑤设备模型处理完毕,用户域被调度执行。

用户域的整个磁盘虚拟化I/O过程对上层O S 透明,无需对用户OS做修改;与进程级虚拟机方式相比,通过硬件捕获I/O事件效率更高、更安全。

3)网络访问
M MN C-VX中网络的I/O请求处理同磁盘的情况类似,也是通过在V MM中设备位图来进行硬件截获,并通过XEN的异步通信机制传递给域0中的设备模型进行处理。

所不同的是,对于虚拟网卡这种混杂设备的I/O数据,不能像磁盘那样采用M M IO进行基于内存映射的高速的数据存取,而是采用了一种“零拷贝”的策略:当域0的虚拟网卡访问用户域空间的一个I/O请求的IO缓冲时,先申请等大小的一个空白内存区域,在访问I/O数据的时候,通过交换内存区的所有权来完成数据的传递。

与HV M模式的X EN所不同的是由于透明计算端计算机无硬盘,域0和用户域O S加载之后均通过虚拟磁盘跨网络地访问磁盘数据。

传统的用桥接模式虚拟网卡的方式会使已经建立的连接中断而造成系统崩溃。

MM NC-V X在设备模型中以Tap/Tun 方式为用户域创建了一块专用虚拟网卡,并利用域0的物理网卡驱动路由转发来往于用户域虚拟网卡的ARP和IP等网络数据包。

4 实现及测试结果
基于支持Intel V T的硬件平台Intel945GCZ 实现了MM NC-VX原型。

端计算配置为:处理器Intel Pentium D3GHz双核,带V T支持,内存768 M B,网卡Intel Pro100,虚拟机管理器XEN-3.0.4,域0的Fedo ra Linux内核为linux-2.6.16. 33,服务器采用相同配置的普通PC,带160GB 7200转SAT A硬盘,两者通过百兆以太网交换机连接。

用户域OS为Windo w sXP Pro fessinal+SP2,内存512MB。

设备模型的虚拟磁盘和网卡实现为用户空间的单线程程序,其他虚拟设备模块用Qemu[7]进行虚拟,X EN和设备模型都未经优化。

对相同硬件配置的普通PC、本地X EN(即带本地硬盘在全虚拟模式下的XEN)及本地VMW are Wo rksta tion5.0作了相应的对比性测试。

首先,测试了计算机启动的时间,从按下电源到XP的桌面视窗出现表示一次启动,测试结果见表1。

经测试,原型可以成功远程启动未经修改的OS,启动之后的端计算机可以像PC一样透明地使用各种电子办公、多媒体、网络等应用软件,启动时间也达到可比较的范围。

为分析启动时间损耗,还测试了端计算机启动各阶段所需时间,结果见图3。

表1 MMNC-VX、PC、本地XEN和本地
VMWare启动XP所需时间
s PC M M N C-V X本地X EN本地V M W are
40.1194.2118.7109.4
其中,用户域OS启动阶段所占时间最大,因为这阶段不仅为用户OS创建运行的虚拟硬件平台,并且X P启动所需用的磁盘数据都需要经过设备模
1677
徐广斌,等: 基于虚拟机的透明计算系统设计及实现
图3 MMNC -VX 端计算机XP 启动各阶段时间
型在网络上的仿真过程来获得。

原型的虚拟磁盘是未经优化的单线程用户空间程序,这是造成启动较慢的重要原因之一,进行优化之后可以进一步缩短时间。

此外,原型使用未优化的EFI 固件和开源的X EN ,这也影响了初始化速度和虚拟的效率。

其次,在运行的Windo w s XP 上利用PCMark 05对虚拟化硬件平台的主要性能指标进行了测试,结果见表2。

总的来说,3种虚拟化方法都取得相近于或可比较于真实PC 的测试结果。

具体地,MM NC -VX 的CPU 性能较VMW are 的性能
好,接近于本地X EN ;M M NC -VX 内存性能接近于本地XEN ,两者都接近于PC ,V MWare 无法测出;对于硬盘虚拟化,3种虚拟的方法和真实PC 都有一定差距,其中M M NC -VX 接近于本地X EN ,但两者均不如本地V MWa re 。

这主要因为M MN C -VX 的虚拟磁盘还未经过优化。

表2 用PC Mark 05测试MMNC -VX 、PC 、本地XEN
和本地VMWare 性能评分表PCM ar k 05测试例PC
M M N C-V X 本地X EN 本地V M Wa re CP U Sco re
3477
336834653202M emor y Sco re 368034283490HDD Sco r e 4646
2539
2782
3721
进一步地,测试了几种典型应用测试例下磁盘的吞吐量,结果见图4。

由于包括平台虚拟化的过程,3种虚拟方法在启动时与PC 相比都有较大差距;但在CPU 和内存操作占较大比例的应用中,如文件压缩,3种虚拟方法都较接近于PC ,其中MM NC -VX 和本地X EN 要优于本地V MWa re 。

但在虚拟磁盘操作较多的应用,如程序加载,V MWare 的虚拟磁盘要优于M M NC -VX 和X EN ,理由如前述。

此外,在考虑本地缓存机制下的情况下,本地XEN 的磁盘综合使用性能要高于本地V MWare ,而M MN C -VX 稍低于本地VM Ware ,
因为除了未经优化,M MN C -VX 磁盘I /O 还涉及
跨网络的处理过程,这影响了磁盘数据的吞吐能力。

图4 几种应用测试中MMNC -VX 、PC 、本地XEN 及
本地VMWare 的磁盘吞吐量比较
5 结论及下一步工作
文中设计了一种基于虚拟机技术、符合透明计算模式的计算机系统,不仅使得用户无需进行任何管理和维护就可获得跨O S 平台的应用,还使得用户O S 无需做修改就可在透明计算的端计算机上按需加载。

利用Intel 的V T 平台和XEN 虚拟机实现了原型系统,验证了该方法的可行性和有效性。

下一步的工作主要在于提高原型的性能,包括虚拟磁盘中加入多线程处理机制和缓存机制,将用户域中网卡、显卡等物理设备改为通过VM M 而不通过域0直接和物理网卡交互完成,以及优化内存管理和I /O 处理机制等。

参考文献 (Ref erences )
[1]
W aldspu rg er C A.M emory resou rce managemen t in VM w are ESX s erver [C ]//Proceedings of th e 5th Symposium on Operating Sys tems Design and Implem entation (OSDI 2002),ACM Operating System s Review ,Win ter 2002Special Issu e.Bos ton,M A,U SA,2002:181-194.
[2]
Barham P,Dragovic B,Fraser K,et al.X EN and the art of virtualization [C ]//Proceedings of ACM SOS P 2003.Bolton Landing ,NY,US A,2003:164-177.
[3]
张尧学.透明计算:概念、结构和示例[J].电子学报,2004,32(12A):169-173.ZHANG Yaoxue.Trans parence comp uting :concep t,architectu re and example [J].Acta E lectronica Sinica ,2004,32(12A):169-173.(in Chinese)
[4]
张尧学,彭玉坤,周悦芝.可管理多媒体网络计算机(M M NC)[J ].电子学报,2003,31(12A):2054-2058.ZHANG Yaoxu e,PEN G Yuk un,ZHOU Yuezhi.M anageable multimedia netw ork com puter [J ].Acta Electronica Sin ica ,2003,31(12A):2054-2058.(in Chines e)
[5]
Uh lig R ,Neiger G,Rodgers D,et al.Intel virtualiz ation technolog y [J ].I EE E Com puter ,2005,38(Iss ue 5):48-56.
[6]
Intel Corp.Ex tensible firmw are interface sp ecification Version1.10[EB /O L].(2002-12-03).http ://w ww.in /tech nology /fram ew ork /s pec.h tm.
[7]
Bellard F.QEM U,a fas t and portable dynamic translator [C]//Proceedings of the U SENIX 2005annual tech nical conference.Anaheim,CA,US A,2005:41-46.
1678
清华大学学报(自然科学版)2008,48(10)。

相关文档
最新文档