text: 虚拟机环境存储虚拟化技术的实现
  虚拟机中的虚拟存储广义上也属于一种存储虚拟化(StorageVirtualization)，存储虚拟化也是虚拟化技术的一种，近年来也是一个研究的热点，这方面有许多的研究和工作。
  本文中的存储虚拟化特指虚拟机中的虚拟存储设备，它有着不同于一般存储虚拟化的特性。
  虚拟机环境存储虚拟化技术的实现虚拟化技术是当前比较热的一个研究领域，也有许多比较成熟的各种虚拟机或模拟器等技术和产品，其中虚拟机的存储管理(StorageManagement)是一个很重要的方面，但是往往容易被忽视，尤其是在非单机的环境下。
  虚拟机对虚拟存储设备的访问最终经过虚拟机监视器(VirtualMachineMonitor,VMM)映射到实际的物理存储设备上，通常都是虚拟机把IO请求发送给VMM，由VMM直接与实际的存储设备驱动打交道。
  例如在Xen中，GuestOS都是通过前端驱动与Domain0上的后端驱动通信，读写虚拟存储设备。
  虚拟存储设备由Domain0负责创建和赋给其它Domain，如图1。
  这种方式适合于一些使用NFS等的网络存储设备，它的缺点是性能(数据都需要通过网络)和稳定性不高(与网络存储设备有关)，而且也不通用，不适合分布式的存储架构。
  EVMS基于层次和插件结构，功能比较强大，但系统内核并不支持，目前仅仅用于一些大的有特殊功能需求的系统，而且安装起来过于麻烦，它的许多功能并不是每个系统都需要的，灵活性不强;VxVM和HP-LVM的问题都是只配置在特定的系统上，可移植性不强，但有些功能，比如它们提供的用于性能保障的vol_ default_ iodelay参数(可以用于扼杀过载的IO请求)等等，非常吸引人。
  LVM是Linux2.6内核中自带的方便灵活的卷管理工具，它的结构如图2。
  LVM首先将各物理分区，包括磁盘阵列等形式，构建成物理卷，主要是配置区块大小、起始位置等工作;然后把各物理卷都加到一个大的卷组里面，主要是配置物理卷名、物理卷属性信息等工作;最后可以从卷组中分配物理区块构成逻辑卷，分配信息会写到卷组的头部，可以在其上部署文件系统，提供给上层应用和虚拟机使用。
  这样，从虚拟机开始，对数据的访问通路就清晰了，如图3所示。
  逻辑卷的配置信息转换成对相应的逻辑区块的请求;然后由卷管理系统将其转换成对相应的物理区块的请求;再转换成对真实物理设备中对应部分扇区的请求;最后通过驱动程序发出真实的操作命令。
  把这个图与图1结合起来会发现，由虚拟机的应用出发，IO请求在访问到实际的数据之前经过了许多层级，那么是否可以压缩一些呢
  数据应该如何组织和管理才能更好地更高效地提供给虚拟机应用
  这也是我们需要研究的一个方面。
  为此，需要建立一套存储设备的性能模型，用于记录每个设备的使用情况，预测将来一定时间内的使用情况，判断哪些设备可以提供空闲的空间共享给其它资源不足的设备，等等。