王星魁,彭新光,郝 瑞
(太原理工大学计算机科学与技术学院,太原030024)
虚拟化技术至今已有40多年的历史,它起源于对分时系统的要求。早期的操作系统只能处理单个任务,为了能够同时处理多个任务,提出了分时系统的概念,而分时系统的最早解决方案就是虚拟化技术。IBM最早发明了操作系统虚拟化技术,允许用户在一台主机上运行多个操作系统,让用户尽可能充分地利用昂贵的大型机资源,并且相互之间不会产生任何干扰。随着互联网的发展,新兴的虚拟机应用不断涌现,使虚拟化技术成为当前比较热的一个研究领域,出现了许多较为成熟的虚拟机或模拟器技术和产品,如Xen,VMware和Qemu,而存储虚拟化则是实现它们的一个很重要的方面。
这里的存储虚拟化特指虚拟机中的虚拟存储设备,它与传统意义上存储设备所要实现的目标是一致的,需要简化存储管理系统,提高存储利用率和性能,增强存储数据的安全性。笔者着重研究在Xen虚拟机上不同虚拟存储方式的I/O性能,分析比较使用不同的存储方式对虚拟机的虚拟磁盘读写速度的影响,从理论和实验两方面说明了使用虚拟磁盘镜像存储方式和块设备存储方式作为虚拟存储设备在性能和功能上的差异。
Xen是剑桥大学开发的开源的虚拟机,目前已在学术界和工业界得到广泛支持。初期的Xen是一款准虚拟化虚拟机,需要对运行在虚拟机上的操作系统进行修改。测试表明,Xen中虚拟机的性能和物理机器性能相差在3%左右。在Xen 3.0版本中,基于Intel的VT-x和AMD的AMD-V技术等硬件对虚拟化的支持,实现了对全虚拟化的支持,极大提高了Xen的兼容性。
Xen的基本原理为:Xen虚拟化技术在服务器硬件和操作系统中间实现了一个被称为Xen Hypervisor的轻量级软件层,为在它上面运行的操作系统内核提供了虚拟化的硬件环境。Xen采用混合模式,因此在Xen上的众多Domain中存在一个特权域(Domain 0)用来辅助Xen管理其他Domain,提供相应的虚拟资源服务,特别是其他Domain对I/O设备的访问。这样,系统的实现机制和控制机制就会完全分离,同时也会提高设计和开发的高效性。
新存储实体对原存储实体的存储资源和存储管理进行变化和转换的过程称为存储虚拟化,存储资源包括存储的读写方式、连接方式、存储的规格或结构等,而存储管理包括统一管理、分散管理、性能动态调整管理等。从虚拟机的角度来看操作的是虚拟设备,而不必关心真正的物理设备是什么。虚拟机对虚拟存储设备的访问最终经过虚拟机监视器(virtual machine monitor,VMM)映射到实际的物理存储设备上,通常都是虚拟机把输入/输出请求发送给VMM,由VMM直接与实际的存储设备驱动打交道。例如,在Xen中,Guest OS都是通过前端驱动与Domain 0上的后端驱动通信,读写虚拟存储设备。虚拟存储设备由Domain 0负责创建和赋给其他Domain。Xen虚拟机对虚拟块设备的访问如图1所示。
图1 Xen虚拟机对虚拟块设备的访问
为虚拟机提供的虚拟存储设备可以有以下几种方式:物理硬盘或其分区,包括iSCSI磁盘或GNBD卷;网络存储协议,包括NFS等网络或并行文件系统;基于逻辑卷(logical volumn manager,LVM);基于文件的虚拟存储设备,也称为虚拟磁盘镜像(virtual disk image)。笔者重点讨论的是虚拟磁盘镜像存储方式与物理硬盘存储方式的I/O性能比较。
这种方式的优点是配置灵活,而且要启动一个虚拟机必须要有一定形式的虚拟磁盘镜像文件。在Xen 3.0.3版本以前就可以由loopback驱动配置.img镜像文件作为虚拟机的块设备,在Xen 3.0.3版本之后加入了blktap驱动模块,加强了对这方面的支持,其他的镜像文件格式有VMware实现的.vmdk格式,微软在其Virtual PC和Virtual Server中使用的.vhd格式(支持虚拟镜像文件大小的动态伸缩)等。
这种方式的优点是简单,可以直接将虚拟机的硬盘设置为某个硬盘或分区,不需要再在硬盘分区上另组织成别的形式。
实验机器配置如下。CPU:Intel core i5-3450 3.1 G;内存:4 G;硬盘:500 G。操作系统是 CentOs 4.5,内核为编译过的2.6.16.29-xen0-hosting-3.0.1,Xen的版本为3.0.1。I/O测试软件:Iozone。
Iozone测试了向磁盘读/写文件的能力,测试在Xen虚拟机上进行,由于虚拟机内存已被预设为128 M,而测试生成文件大小分别为512 M,1 024 M及2 048 M,因此可以排除CPU Cache和内存Buffer Cache的影响,认为测试结果真实地反应出了磁盘I/O的极限性能。
为了方便比较,分别测试了三种情形的Xen虚拟机的读/写性能:
1)利用磁盘分区作为Xen虚拟机文件系统;2)利用img镜像作为Xen虚拟机文件系统;3)在两个Xen虚拟机(采用磁盘分区作为文件系统)上同时运行Iozone,记录其中某个虚拟机的I/O数据,本测试用来模拟多个虚拟机运行时的磁盘I/O性能。
实验一:Iozone的writer测试。
Writer测试的是向磁盘写入文件的能力。对比图2-a和图2-b后可以看出,利用disk作为文件系统的磁盘写速度总的来说要明显优于用img镜像作为文件系统的写速度。前者的平均写速度为54.3 MB/s,后者的平均写速度为50.7 MB/s。而当测试文件大小为2 G时,disk的写速度为50.7 MB/s,img的写速度为38.1 MB/s,说明在处理大文件时,利用磁盘分区作为Xen虚拟机的文件系统具有较大的优势(与物理机的写速度基本一致)。相对前两者而言,从图2-c可以看出,当两个虚拟机同时处于较大的I/O压力下,虚拟机的写速度明显降低,平均写速度约为22.6 MB/s。
实验二:Iozone的re-writer测试。
Re-writer测试的是向磁盘写入一个已经存在的文件的能力,也就是说磁盘已经存在了该文件的一些信息,因此一般说来,re-writer测试的速度要略高于writer(写入一个新文件)测试的速度。对比图3-a和图3-b可以发现,与writer测试类似,利用磁盘分区作为文件系统的虚拟机磁盘的re-writer速度要明显快于利用img镜像作为文件系统的re-writer速度。前者平均re-writer速度为51.4 MB/s,后者平均re-writer速度为33.8MB/s。而当测试大小为2 G,record大小为256 kB时,img的re-writer速度只有26.7 MB/s,因此可以认为,利用磁盘分区作为虚拟机文件系统在re-writer性能方面比用img镜像作为文件系统要稳定得多,而且速度也更快,很接近物理机的re-writer速度。
从图3-c可以看出,在两个虚拟机同时运行Io-zone的情况下,其平均re-writer速度只有18.7MB/ s。
图2 writer测试结果
图3 Re-writer测试结果
实验三:Iozone的reader测试。
Reader测试的是磁盘读取一个文件的能力。对比图4-a和图4-b可以发现,在reader方面,disk的性能远高于img的性能,前者平均读取速度为58.9 MB/s,后者平均读取速度为43.2 MB/s。从图4-c中可以看出,当两个Xen虚拟机同时运行Iozone时,平均reader速度只有4.3 MB/s。
实验四:Iozone的re-reader测试。
图4 Reader测试结果
Re-reader测试的是磁盘读取一个最近读取过的文件的性能,一般来说,系统会将最近读取过的文件信息保留在buffer一段时间,因此re-reader速度一般略高于reader速度。对比图5-a和图5-b,disk的rereader速度明显高于img的re-reader速度,前者平均值为59.1 MB/s,后者平均值为53.6 MB/s。
从图5-c中可以看出,当两个虚拟机同时运行Iozone时,re-reader平均速度只有4.5 MB/s。
图5 Re-reader测试结果
通过以上四次对数据的读写测试发现,用磁盘分区作为文件系统的I/O性能总体上要好于虚拟磁盘镜像作为文件系统的I/O性能。其原因在于虚拟磁盘镜像在Domain 0当中是作为回环设备存在的,可以在虚拟磁盘镜像里创建不同于host的文件系统,这当中就需要进行文件类型的转换,而这个转换就带来了虚拟磁盘镜像与分区之间性能的差异。虽然用磁盘分区作为文件系统的I/O性能好,但这种方式不够灵活,不能够随着虚拟机的需要动态地改变存储空间容量大小,也仅仅适合单机环境,不能够满足大规模系统中设备共享的要求。
在Xen虚拟机上对虚拟磁盘镜像存储方式与物理硬盘存储方式的I/O性能进行了研究比较,发现使用磁盘分区作为文件系统的I/O性能总体上要好于虚拟磁盘镜像作为文件系统的I/O性能。但是磁盘镜像这种方式的配置灵活性要优于物理硬盘存储方式的配置灵活性。在VMM存储虚拟化技术中还有一种存储方式是基于逻辑卷的存储方式,这种方式具有以上两种方式的优点,可以动态地增减容量的大小,支持snapshot、条带化提高I/O并行性能等属性,也可以很方便地进行copy-on-write等操作,更适合大规模的分布式环境中。
[1] 汤泉,李小勇.文件支持的Xen存储虚拟化研究[J].计算机工程与应用,2009,45(16):77-79.
[2] 付赛平,任国林.XEN网络I/O完全虚拟化机制的可扩展性研究[J].计算机工程,2008,34(23):102-104.
[3] 杨宗博,郭玉东.提高存储资源利用率的存储虚拟化技术研究[J].计算机工程与设计,2008,29(12):3224-3226.
[4] 石磊,邹德清,金海.Xen虚拟化技术[M].武汉:华中科技大学出版社,2009.
[5] Xen 3.0 user manual.http://www.cl.cam.ac.uk/research/srg/netos/xen/readmes/user.pdf./2013-03.
[6] 薛海峰,卿斯汉,张焕国.XEN 虚拟机分析[J].系统仿真学报,2007,19(23):5556-5558.
[7] Roger W.Future hard disk drive systems[J].Journal of Magnetism and Magnetic Materials,2009,321(6):551-561.
[8] Rao Jia,Bu Xiangping,Xu Chengzhong,et al.VCONF: a Reinforcement Learning Approach to Virtual Machine Auto Configuration[C]∥ICAC’09 Proceedings of the 6th International Conference on Autonomic Computing,2009:137-146.