论文部分内容阅读
随着大数据时代的到来,应用对存储系统的性能和可靠性都提出了更高的要求。传统的机械式磁盘存储系统的I/O瓶颈问题变得更加突出。作为一种新型存储设备,固态盘使用闪存作为存储介质,具有非易失、低能耗、高速读写等优势。在磁盘存储系统之上构建固态盘缓存是一种兼顾性能、容量和成本的关键技术,因此在学术界和工业界引起了广泛关注。然而,闪存独有的特性给固态盘缓存的应用带来了阻碍和挑战。一方面,由于闪存的编程/擦除次数有限,频繁的写入操作会耗尽固态盘的寿命进而造成数据丢失。另一方面,为了应对闪存具有读写不均衡性、不支持闪存页的原地更新等,固态盘内部使用闪存转换层和缓存等技术来管理闪存以及处理用户I/O请求,而这些技术对固态盘本身的性能和寿命也起着关键作用。研究高性能高可靠的固态盘缓存管理策略、以及固态盘内部算法的优化方法,是一项十分重要的研究课题。 为了提升存储访问性能并保证数据的高可靠性,企业级应用通常在磁盘阵列之上构建基于直写策略的固态盘缓存层。然而,传统的直写策略不能提高随机写性能,另一方面,频繁的缓存写入操作加速了固态盘设备的磨损,进而造成性能的下降和成本的增加。针对这一问题,提出一种挖掘负载内容局部性的缓存管理策略KDD来提高缓存的性能和寿命。具体来说,KDD通过利用差量压缩技术将多个缓存数据块更新的差量合并后紧凑地写入固态盘缓存,从而大大减少固态盘写入量;同时采用延迟磁盘阵列校验块更新的技术提高随机写性能。在KDD缓存策略的设计和实现中,通过动态调整缓存数据区和差量区以提高缓存空间利用率,整合缓存数据和差量元数据信息以实现高效索引,并采用环形日志减小元数据持久化开销。实验数据表明:KDD能够有效地提升存储访问性能,并且与传统策略相比最高可以获得6.85倍的固态盘寿命的提升。 存储客户端采用写回模式的固态盘缓存能够极大地减小写请求的时延,然而固态盘故障将会造成数据丢失以及数据一致性损坏等问题。针对这个问题,提出一种结合固态盘和磁盘特性的混合客户端缓存架构HHC,在保证缓存层高可靠性的同时尽量保留写回模式的性能优势。具体来说,HHC选择性地将固态盘中的脏缓存页以日志的方式顺序写入磁盘,一方面充分地利用了磁盘写带宽,另一方面大幅提升了缓存层的可靠性。此外,HHC利用写屏障语义采用批量的异步日志写策略,在保证数据一致性和可靠性的同时,尽可能降低日志写操作对前台写请求时延的影响。基于平均无数据丢失时间的理论分析表明,HHC缓存层可达到远高于后端磁盘阵列的可靠性。实验结果表明:在不同类型的负载下,HHC的性能接近于写回模式,远远高于直写模式。 传统的缓存替换算法专注于提高命中率,而没有充分考虑到闪存的特性,因此无法充分提高固态盘的访问性能。针对这一问题,提出一种闪存感知的缓存替换算法GASA,利用闪存读写不对称的特性提高固态盘存储访问性能。其核心思想是在减少闪存写回操作的同时尽量维持缓存命中率。具体来说,当发生缓存替换时, GASA优先选择冷的干净页作为置换页,而尽可能延迟热的脏页被逐出缓存,从而减少脏页刷回操作;此外,GASA通过使用Ghost缓存技术有效地识别热的缓存页避免其被过早逐出缓存,并采用一种简单的启发式算法动态调整Ghost缓存大小以适应不同的负载类型,从而维持较高的缓存命中率。实验结果显示:与经典的LRU算法相比,GASA同时提高了固态盘的性能及寿命;相比其它面向闪存的缓存替换算法, GASA在缓存命中率和闪存写入次数之间取得较好的平衡,获得更好的I/O性能。 固态盘使用闪存转换层完成地址转换,即将请求的逻辑地址转换为闪存中的物理地址。基于页映射的闪存转换层算法将地址映射表持久化存储在闪存映射页,利用请求访问的时间局部性将经常访问的映射条目缓存在SRAM中以加速地址转换。然而,额外的闪存映射页访问损害了固态盘的性能和寿命。针对这一问题,提出一种协同的基于日志感知的闪存转换层优化算法LSFTL,利用SLC闪存页支持部分写入的特性减少地址转换带来的开销。具体而言,LSFTL主要包括两个关键技术。第一个技术被称为原地日志写策略,即LSFTL在闪存映射页中预留一小部分空间作为日志区,将多次的映射页更新顺序写入该日志从而大大减少垃圾回收开销。第二个技术是日志感知的刷回策略,该策略选择性地合并多个SRAM中的脏映射条目执行写回操作,在保证日志区高利用率的同时减少闪存映射页更新开销。实验数据表明:LSFTL通过有效地降低映射页访问带来的开销,显著地提高了固态盘的性能和寿命。