论文部分内容阅读
虚拟存储是存储技术发展的重要方向之一。目前,虚拟存储技术取得了很大进展,很多产品化的解决方案已经出现,典型的如磁盘卷管理、磁带库虚拟化管理以及形式多样的 SAN 解决方案等。它们分别从主机,设备和网络的角度提供了一些通用的解决方法,但是仍有很多特定的问题亟待解决,如不同类设备的归一化管理,并行 I/O调度、高带宽任务条件下产生的传输“瓶颈”,网络应用中“热点”数据的服务损失,以及磁带库设备随机 I/O 性能的改善等。这些问题是通用虚拟化方法难以兼顾的,有必要深入到操作系统底层进行研究,在设备驱动栈中找到适当的切入点实现虚拟化,并通过并行或缓冲的调度方式向上层应用提供支撑。 中间驱动层可实现存储的虚拟化。它向上与文件系统接口,向下与适配器驱动接口,其功能是将上层的 I/O 请求转化为标准的接口命令,为此操作系统为不同类的设备提供了相应的类驱动程序。基于这些驱动程序我们提出了公用驱动程序的概念,对公用中间驱动程序而言,所有类别的存储资源都是可见的,因此可以在这里构建虚拟存储池,实现异类设备的归一化管理。此种虚拟化实现的关键是公用存储池的构建和I/O 调度,前者实现了资源的存入和管理,后者实现了 I/O 命令的处理。中间驱动层虽可采用多线程实施 I/O 操作调度,使调度方式变得灵活,但对提高性能效果不显著。 适配器驱动层也可实现存储的虚拟化。在适配器驱动层,与适配器相连的所有外部设备都是可见的,因此可将它们集中起来进行处理。在适配器驱动程序中,可以将发往虚拟设备的 I/O 命令分配到单适配器内的多通道或者多适配器内的多通道并行执行。由于实现了 I/O 命令的并行处理,虚拟设备的 I/O 性能可得到显著提高。建立多通道并行调度的 SPN 模型可以分析并行调度各个环节对虚拟设备性能的影响,结果表明通道的利用率对并行调度效果起着决定性的作用。针对小块请求下的通道利用率不高的问题,我们提出了一种预取/缓冲策略进行了改进。 对比两个驱动层次实现虚拟化的方法发现,中间驱动层的虚拟化可以屏蔽设备物理属性的差异,有利于改善系统的易用性和可管理性。适配器驱动层的虚拟化可实现I/O 命令的并行处理,有利于提高系统的 I/O 性能。 实现任务级 I/O 的并行处理的关键是任务的调度,而任务调度与任务执行环境密切相关。为此从实际需求出发,运用中间驱动层的虚拟化技术对解决这一问题进行了研究。针对高带宽任务条件下的传输“瓶颈”问题,提出了一种分布存储—并行传输策略,可将单服务器的传输任务分配到多节点并行执行,从而达到提高传输速度的目的。针对网络应用中“热点”数据的服务损失问题,提出了一种“热点”数据自迁移策略,该策略可自动适应用户请求量的变化,通过底层的数据迁移自动调整系统对特定数据的服务能力。<WP=4>主动的在线存储是磁带库设备应用的发展趋势之一。要达到这个目的必须改善磁带库的随机 I/O 速率。针对这个命题,前人已经进行了很多研究工作并取得了一些成果,但仅限于磁带库本身的调度,没有考虑使用其他方式提高速率的问题。在总结现有磁带库随机 I/O 调度算法的基础上,我们提出了一种以磁盘驱动器作读写缓存的缓冲调度策略,籍以加快随机数据的处理速率。该策略是在中间驱动层用虚拟化技术实现的,即将磁带库设备虚拟化为块设备使用,并以磁盘驱动器做缓存的调度策略。虚拟块设备的 I/O 响应时间,I/O 命中率等性能指标与多种因素密切相关,如虚拟存储空间和缓存空间的数据组织,缓存空间的分配和回收算法,预取算法等。建立仿真平台对这种影响关系进行了测试和分析,总结出了一些变化规律,为磁带库缓冲调度系统的实施提供了理论依据。