论文部分内容阅读
在以机械磁盘为存储介质的计算机系统中,数据读写操作的效率和可靠性将直接影响整个计算机系统的性能和稳定性。为了在存储介质的读写速度、容量以及成本价格方面做出权衡,现代计算机操作系统一般采取了以高速缓存、内存以及机械磁盘所组成的三级存储结构,操作系统会在内存中专门开辟出一块空间作为磁盘缓存。在这种结构中,磁盘数据写操作的方法通常分为两种:写直达法和写回法。如何在这两种写方法之间做出权衡以使得系统既具有较好的可靠性又具有较高的磁盘读写性能是一个亟待解决的问题。基于开源虚拟化平台Xen的内存脏数据回写系统(VWrite)利用计算机系统虚拟化环境的结构特点和用户使用习惯,实现了一种兼有写直达法和写回法优点的磁盘数据写操作的方法。此方法通过修改虚拟机块设备前后端驱动程序,在虚拟机管理器中为每个虚拟机建立块级别的虚拟机磁盘缓存。虚拟机中的应用程序均采取写直达的方式,将数据直接写到位于虚拟机管理器的虚拟机磁盘缓存中,当虚拟机意外崩溃时,虚拟机管理器可以将对应的虚拟机磁盘缓存上的数据写入物理磁盘,以防止虚拟机数据的意外丢失。同时,与传统写直达方式不同的是,虚拟机中的应用程序只需要将数据写到磁盘缓存即可返回,无需等待数据被写入慢速的物理磁盘,从而在保证虚拟机数据完整性的情况下大幅度提高了传统写直达法的效率。另外,此系统还做了以下工作来进一步提高虚拟机磁盘I/O的性能:在虚拟机管理器中选择合适的磁盘I/O调度算法以减小其对虚拟机磁盘I/O的性能影响;将虚拟机磁盘缓存中的请求进行统一的排序和合并以提高虚拟机随机磁盘I/O操作的性能;实现分时刷新策略以保证多个虚拟机对物理磁盘I/O带宽的合理利用。实验结果表明,VWrite系统能兼有写回法和写直达法的优点,能够为虚拟机提供高效率的磁盘读写操作,同时,在虚拟机系统突然宕机时也能保证其用户数据的完整性和可靠性。