论文部分内容阅读
在虚拟机镜像文件集中存储的环境下,大量虚拟机同时启动时,由于硬盘I/O吞吐能力有限,使得虚拟机镜像文件从硬盘传输到内存的时间过长,最终导致虚拟机启动速度过慢。为了解决上述问题,基于影子缓存的多增量虚拟机启动系统Scache(StartingSystem of Multiple Incremental Virtual Machines Based on Shadow Cache)利用虚拟机间的相似性,使用基础镜像文件加增量镜像文件的方式为虚拟机提供虚拟块设备,然后通过搭建由多个数据集缓冲结构组成的影子缓存,以及修改开源虚拟机管理系统Xen4.1.2上Qemu块设备模拟器中增量镜像文件异步读机制,将增量虚拟机启动过程中需要的数据单独缓存于特定的数据集缓冲结构中以供增量虚拟机启动时取用。其中,每一个数据集缓冲结构对应一种基础镜像文件,可被基于此基础镜像而创建的多个增量虚拟机共用。由此对于虚拟机而言,内存的缓存结构被设计得和硬盘中镜像文件的层次结构一致,犹如镜像文件栈的影子。与此同时, Scache系统还避免了多个增量虚拟机启动过程中被共用的基础镜像文件里部分数据被重复读取的情形。经测试验证,Scache系统可最小化增量虚拟机启动过程中硬盘和网络上的负载,并对启动过程有较明显的加速效果。而针对一种基础镜像创建的多个增量虚拟机,Scache系统额外消耗的内存在具体数量上也很小,且不受虚拟机内存配置大小的影响。