论文部分内容阅读
随着计算机技术和网络技术的发展对存储系统提出了越来越高的要求,存储容量、I/O速度、系统可用性、扩展性和安全性等方面都面临极大的挑战。面向对象存储系统(Object Based storage System,OBS)的出现迎合了下一代互联网对存储系统的要求。OBS以对象接口为数据访问方式,以对象ID为数据对象唯一标志,构造了扁平的三级名字空间。OBS由计算节点,对象存储设备(Object-based Storage Device,OSD),对象文件系统,元数据服务器,互联网络五个部分组成,其中对象文件系统是影响OBS性能的主要因素,而文件系统缓存技术是提高文件系统性能的主要手段之一,它利用了主存速度和网络带宽、存储设备带宽之间的差异。为了充分利用缓存技术提高对象文件系统性能,设计了一种层次化缓存系统。该系统包括元数据零级缓存、计算节点一级缓存和存储节点二级缓存。元数据零级缓存在计算节点实现,并通过改进元数据操作协议,在零级缓存命中时减少一次元数据服务器访问通讯,而对象元数据体积小的特点又保证了缓存极高的命中率。零级缓存降低网络通讯开销,减少了服务访问延迟。计算节点一级缓存采用共享内存方式实现。计算节点应用进程把共享内存映射到自己的内存空间便可以直接访问缓存,减少了进程通信时的内存拷贝次数,实现了数据的真正共享。为了提高OBS中存储节点二级缓存的整体命中率,设计了MQU(Multi-Queue United)置换算法。MQU算法对属于同一个访问组的数据对象进行统一置换,解决了单个OSD二级缓存缺失造成所有OSD二级缓存效率低下的问题,同时使各存储节点二级缓存的命中率趋于均匀。测试结果表明,层次化缓存系统改善了OBS的I/O性能。零级缓存使元数据相关操作性能提高一倍以上;一级缓存使并行读写性能提升约35%;二级缓存MQU算法的命中率也明显好于LRU、LFU等传统算法。