论文摘要
在虚拟化环境中,虚拟机镜像文件在物理节点上完整地保存了虚拟机运行环境和用户数据。但是,虚拟化带来的语义隔离性使得虚拟机镜像文件保存了虚拟机中所有已删除的数据,这极大地浪费了存储资源,损害了用户利益。目前,镜像文件管理工具必须通过中断虚拟机服务,手动扫描虚拟磁盘或记录文件,才能回收废弃数据。因此,在保证用户透明性和虚拟机可用性前提下,回收镜像文件的废弃空间,提高存储空间利用率,成为亟待解决的问题。虚拟机镜像文件的废弃空间回收系统VMcol(Garbage Collector for Virtual Machine Image)在保证用户透明性和虚拟机可用性的前提下,无需扫描就可以自动回收虚拟机镜像文件的废弃空间。由于VMcol系统实现了用户删除操作监控、数据信息自动转换、文件内容的动态删除等功能,所以当虚拟机内文件被删除时,VMcol系统能及时回收虚拟机镜像文件的废弃空间。该系统由用户删除操作监控和废弃空间处理两个部分组成。当用户在虚拟机内进行删除操作时,用户删除操作监控实时捕获删除操作和解析删除节点的信息,从而获取有效信息,然后利用信息传递模型及时把信息传递给废弃空间处理层。废弃空间处理根据传来的信息,通过信息转换解析镜像文件格式,无需扫描镜像文件就可以确定对应在虚拟机镜像文件中废弃数据的位置,然后在保持虚拟机可用性情况下,删除文件中的废弃数据。基于Xen 3.3.1虚拟化平台和Qcow镜像文件,采用C语言和Python语言实现VMcol系统。功能测试表明,在不中断虚拟机情况下,VMcol系统可以回收虚拟机镜像文件的废弃空间,提高磁盘空间利用率。性能分析表明,VMcol系统的运行不影响用户在虚拟机内的删除操作的性能和服务器的CPU性能及磁盘的读带宽。此外,当镜像文件的废弃空间被释放后,虚拟磁盘的写带宽提高了8%,读带宽提高了2.7%。