面向固态盘的存储系统关键技术研究

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:congmingwangzi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
基于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的吞吐率。
其他文献
如今,形式化方法越来越多地被应用到与生命财产安全密切相关的计算机软件领域。其中,编程语言的形式化操作语义起着一个重要的作用,比起通常用自然语言描述的编程语言规范,形
随着智能手机的普及,Android操作系统逐渐流行起来,并在2011年超越塞班,成为最流行的智能手机操作系统。Android巨大的市场占有率也吸引了众多的开发者为其开发应用程序。然
随着生物医药技术以及计算机科学技术的发展,质谱分析技术在蛋白质组学及糖组学等多领域得到了应用,包括蛋白质鉴定、糖分子结构鉴定、生物标记物发现与疾病诊断建模等。  质
云计算自从被提出以后,就一直是国内外计算机网络技术研究的一个热点。随着云计算的广泛应用,云计算平台的安全性成为了云计算的核心问题之一。云计算与传统计算相比最大的变化
学位
在软件迭代更新的开发过程中,会出现测试用例与被测代码不一致的情况,即当前的程序代码,并不能够全部通过旧版本的测试用例。这可能由当前代码的错误引发,也可能是测试用例造成。
作为目标文件的集合,C语言函数库为系统运行和软件开发提供了必要的支持。64位技术的普及为计算机的发展注入了强劲动力。UniCore-3处理器是我国自主研发的64位处理器。为支持
语义角色标注的目的是分析句子中特定动词的论元结构,识别出与该动词具有搭配关系的论元并分析这些论元的语义角色。近年来,有指导的语义角色标注方法已经得到了比较全面的研
查询意图被定义为查询背后的信息需求,正确分类用户的查询意图,能够帮助商业化搜索引擎优化检索结果,提供更加准确的检索服务。由于用户的查询  关键词一般较短(平均长度2-3),
软件开发是一个迭代的过程,通常需要反复经历代码的编辑、编译、链接、运行和调试。这期间将使用到各种各样的开发工具,包括编辑器、编译器、链接器、汇编器、函数库、调试器等