- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从VMM的角度思考存储虚拟化
孙毓忠 宋振华
国家智能计算机研究开发中心
虚拟化技术是当前比较热的一个研究领域,也有许多比较成熟的各种虚拟机或模拟器等技术和产品,其中虚拟机的存储管理(storage management)是一个很重要的方面,但是往往容易被忽视,尤其是在非单机的环境下。
虚拟机中的虚拟存储存储广义上也属于一种存储虚拟化(Storage Virtualization),存储虚拟化也是虚拟化技术的一种,近年来也是一个研究的热点,这方面有许多的研究和工作 [1,2,3,4,5]。这里我们的存储虚拟化特指虚拟机中的虚拟存储设备,它有着不同与一般存储虚拟化的特性。虚拟机对虚拟存储设备的访问最终经过虚拟机监视器(Virtual Machine Monitor, VMM)映射到实际的物理存储设备上,通常都是虚拟机把IO请求发送给VMM,由VMM直接与实际的存储设备驱动打交道。例如在Xen [6]中,GuestOS都是通过前端驱动与Domain 0上的后端驱动通信,读写虚拟存储设备。虚拟存储设备由Domain 0负责创建和赋给其它Domain,如图1。
图1 Xen虚拟机对虚拟块设备的访问
为虚拟机提供的虚拟存储设备可以有以下几种方式 [7]:
物理硬盘或其分区,包括iSCSI磁盘或GNBD卷。这种方式的优点是很简单,可以直接将虚拟机的硬盘设置为某个硬盘或分区,不需要再在硬盘分区上另组织成别的形式。但它的缺点是不够灵活,不能够随着虚拟机的需要动态地改变存储空间容量大小,也仅仅适合单机环境,不能够满足大规模系统中设备共享的要求。
网络存储协议,包括NFS等网络或并行文件系统。这种方式适合于一些使用NFS等的网络存储设备,它的缺点是性能(数据都需要通过网络)和稳定性不高(与网络存储设备有关),而且也不通用,不适合分布式的存储架构。
基于文件的虚拟存储设备,也称为虚拟磁盘镜像(Virtual Disk Image)。这种方式的优点是配置灵活,而且要起动一个虚拟机必须要有一定形式的虚拟磁盘镜像文件。在Xen 3.0.3[7]以前就可以由loopback驱动配置.img镜像文件作为虚拟机的块设备,3.0.3之后加入了blktap驱动模块加强了对这方面的支持,目前正积极地进行着对.qcow镜像格式 [8](QEMU中实现的一种镜像文件格式,支持copy-on-write等操作)的支持。其它的镜像文件格式有VMware实现的.vmdk格式,微软在其Virtual PC和Virtual Server中使用的.vhd格式(支持虚拟镜像文件大小的动态伸缩)等等。
基于逻辑卷。这种方式应该是最好的,因为它同时具有第一种和第三种方式的优点,可以动态地增减容量的大小,支持snapshot、条带化提高IO并行性能等等属性,也可以很方便地进行copy-on-write等操作。
目前逻辑卷管理工具主要有EVMS [9](Enterprise Volume Management System, 企业级卷管理系统)、VxVM [10](VERITAS Volume Manager , VERITAS卷管理器vol_default_iodelay参数(可以用于扼杀过载的IO请求)等等,非常吸引人。LVM是Linux 2.6内核中自带的方便灵活的卷管理工具,它的结构如图2。LVM主要涉及三个概念:物理卷(Physical Volume)、卷组(Volume Group)、逻辑卷(Logical Volume)。LVM首先将各物理分区,包括磁盘阵列等形式,构建成物理卷,主要是配置区块大小、起始位置等工作;然后把各物理卷都加到一个大的卷组里面,主要是配置物理卷名、物理卷属性信息等工作;最后可以从卷组中分配物理区块构成逻辑卷,分配信息会写到卷组的头部,可以在其上部署文件系统,提供给上层应用和虚拟机使用。
图2 LVM层次结构图
这样,从虚拟机开始,对数据的访问通路就清晰了,如图3所示。首先虚拟机的IO请求会通过VMM进行处理(这部分具体细节如图1),对文件的请求会通过逻辑卷上的文件系统和逻辑卷的配置信息转换成对相应的逻辑区块的请求;然后由卷管理系统将其转换成对相应的物理区块的请求;再转换成对真实物理设备中对应部分扇区的请求;最后通过驱动程序发出真实的操作命令。
这个图与图1结合起来会发现,由虚拟机的应用出发,IO请求在访问到实际的数据之前经过了许多层级,那么是否可以压缩一些呢,数据应该如何组织和管理才能更好的更高效地提供给虚拟机应用。这也是我们需要研究的一个方面。
图3 虚拟机的IO通路
上面都是在单机中的虚拟机访问虚拟磁盘的方式,那么考虑在大规模的分布式环境下,每个节点都带有各自的存储设备(如图4),都运行着若干个虚拟机,虚拟机可以在全系统范围内动态地迁移,这种情况下
文档评论(0)