论文部分内容阅读
基于NAND闪存的固态盘(SSD)作为磁盘的缓存设备已经广泛地应用在数据中心存储系统中。已有的固态盘缓存系统设计没有充分考虑闪存介质的特性,如擦后写、擦写粒度不对称、擦写次数有限,存在很多不足。第一,缓存管理的粒度与固态盘内部存储空间的回收粒度之间不匹配,使固态盘内部垃圾回收效率低下,降低了固态盘性能和使用寿命;第二,固态盘内部采用地址转换层(FTL)模拟磁盘的连续地址空间和原地更新,难以控制数据页在固态盘内部的物理放置,导致访问模式不同的数据页混杂地放置在擦除块中,降低了垃圾回收效率;第三,块接口缺乏语义,阻碍了固态盘针对特定应用的优化。本文围绕着固态盘缓存系统的关键技术展开研究,提出了软硬件协同设计的固态盘缓存系统框架和管理策略,提升垃圾回收效率,进而提升固态盘性能和使用寿命。 基于日志结构合并树(LSM-Tree)的键值存储系统(Key-Value Store)是互联网服务后端存储系统的基础组成模块。已有的研究工作没有考虑LSM-Tree合并操作中的软件开销且没有利用存储设备和处理器之间的并行性,导致合并操作性能低,降低了键值存储系统的吞吐率。本文发现,使用固态盘作为存储设备时,合并操作中的软件开销能够占到合并操作执行时间的60%以上。本文围绕着合并算法的关键技术展开研究,提出流水线式的合并算法,充分利用了存储设备和处理器之间的并发性,提升合并操作带宽,进而提升键值存储系统的吞吐率。 本文的主要工作包括: 1)软硬件协同设计的固态盘缓存系统框架,COSMOS。为了统一缓存替换粒度和FTL空间回收粒度,COSMOS提出一种新的固态盘地址空间管理接口。使用该接口,缓存管理层能够指导FTL进行数据页放置。COSMOS将FTL的垃圾回收功能从FTL提升到缓存管理层,使垃圾回收和缓存替换结合。缓存管理层能够根据需求进行数据页放置和空间回收。为了支持空间管理接口,本文设计并实现direct-FTL,它能够感知空间管理语义并优化数据放置。原型系统实现表明,该框架有效地降低了垃圾回收开销。 2)软硬件协同设计的固态盘缓存管理策略,PCC。该策略负责数据页准入、数据页放置和聚合、垃圾回收和缓存替换。对于数据页准入,以数据页访问频率和重用距离作为准入依据,限制访问次数少和重用距离长的数据页进入固态盘,避免不必要的缓存页替换和固态盘擦写。对于数据页放置和聚合,使用新的空间管理接口将固态盘空间划分为大小固定的超级块,并将数据页按照访问热度进行分类,同一类别的数据页聚合存储在超级块中。对于垃圾回收和缓存替换,根据缓存管理语义选择被回收超级块,并根据数据页访问热度进行重放置或者替换。为了评测软硬件协同设计的固态盘缓存系统,本文基于MemBlazeEblaze平台在Linux内核中实现了软硬件协同设计的固态盘缓存原型系统,并使用多种负载进行评测。评测结果表明,与已有的基于页粒度的固态盘缓存系统相比,软硬件协同设计的固态盘缓存系统能够降低13%的请求延迟并提高18%的固态盘使用寿命。 3)流水线式的合并算法,PCP。利用LSM-Tree同一组件内键值顺序存放的特性,将合并操作划分为多个子任务。利用存储设备和处理器之间的并行性,提出了流水线式的合并算法(PCP),并行执行多个子任务。对于流水线式的合并算法,针对磁盘和固态盘作为存储设备时性能瓶颈不同,分别提出了流水线式的合并算法的两个变种,存储并行流水线式合并算法和计算并行流水线式合并算法。为了评测流水线式合并算法,本文在LevelDB中实现并进行评测。评测结果表明,流水线式的合并算法能够提升65%的合并操作带宽,增加45%的LevelDB的吞吐率。