[百度网盘]固态盘I/O优化技术研究 PDF

[百度网盘]固态盘I/O优化技术研究 PDF

本书特色

当今时代,信息技术已经融入人类生活的方方面面,社会各个行业领域都离不开各种信息化服务、应用及海量数据的支持,并继续推动各种信息数据的容量和类型的迅猛增长,以及计算机系统的规模和性能的不断提升、种类的不断增多。随着大数据应用的日益广泛普及,越来越多的数据量在越来越短的时间窗口内在各类应用中产生。这些海量数据给高性能存储系统容量带来了巨大的挑战。
由传统的机械硬盘(hard disk drive,HDD)构成的存储系统的I/O性能长期以来一直是整个计算机系统的性能瓶颈。近年来,基于闪存(flash memory)的固态盘(solid state drive,SSD)技术得到了很大突破。与机械硬盘不同,固态盘是基于半导体芯片构成的,没有机械部件,因此具有高可靠性、高性能、低功耗、非易失等显著优势,成为未来替代传统机械硬盘的新型存储设备,有望消除存储系统的I/O性能瓶颈,从而给存储系统带来根本性变革。随着固态盘硬件技术的不断进步,闪存芯片的价格也逐年下降,使得基于闪存的固态盘得以广泛应用。例如,现在已经有不少笔记本电脑采用固态盘来加快系统启动、优化I/O性能,并同时使笔记本具有速度快、耐用、防振、无噪声、低功耗等优点。
固态盘具有明显的性能优势,因此,随着半导体技术的愈加成熟及固态盘在存储系统中的应用越来越广泛和重要,研究针对固态盘的I/O优化技术,提高固态盘存储系统I/O性能和可靠性,降低系统能耗,具有重要意义。
本书从以下几个方面针对固态盘的I/O优化技术展开研究,提高其可靠性及性能,同时降低系统能耗。
(1)设计并实现了三种元数据管理方法,其中两种是简单的基于MySQL数据库实现的(DIR_MySQL和OPT_MySQL),而另一种是根据应用特点而设计的(META_CDP)。实验结果表明,META_CDP比其他两种方法效率要高很多,而且其性能也是在可接受范围内。除此之外,还详细讨论了两种不同的恢复算法,即全量恢复和增量恢复,用户可以根据所需要恢复的目标时间点信息选择其中一种以达到最佳的恢复速度。
(2)提出了一种新的内部混合式架构的固态盘(SMARC)设计方法,同时包含SLC和MLC两种闪存体。通过定期在两个不同部分(SLC和MLC区域)之间根据运行的工作负载动态迁移数据,所提出的架构能够充分利用各自的优势进行互补,以提高系统整体性能和可靠性并降低能源消耗。基于各种工作负载的仿真结果显示出,SMARC可以有效地改善系统性能,同时,显著地提高存储系统可靠性和减少能源消耗。
(3)针对固态盘的特殊性,通过采用空间分区、读优先和排序三种策略充分利用其内部丰富的并行性,设计了一种适合于固态盘的I/O调度程序:分区调度器。现有的Linux内核I/O调度程序都是基于传统旋转式硬盘驱动器机械硬盘进行设计和优化,但由于固态盘比机械硬盘具有更多不同的操作特性,它们在固态盘上工作时表现并不理想,因此有必要设计针对固态盘特性的I/O调度程序。分区调度器首先把整个固态盘空间分成几个区域作为基本调度单位,利用其内部丰富的并行性同时发起请求。其次,利用读请求比写请求快得多的事实,优先读请求,避免过多的读对写操作的阻止干扰。再次,对每个区域调度队列中的写请求在发送到硬盘之前进行排序,以期望将随机写转换为顺序写,从而减少到达硬盘的有害随机写请求。使用不同负载对分区调度器的测试结果表明,分区调度器因能成功地将随机写转化成顺序写,与四种内核I/O调度程序相比能够提高17%~32%的性能,同时延长固态盘的寿命。
前言固态盘I/O优化技术研究(4)利用重复数据删除和增量编码来减少到固态盘的写流量,从而延长固态盘的寿命。具体来说,基于两个重要的观察结果:①存在大量的重复数据块,②元数据块比数据块被更加频繁地访问/修改,但每次更新仅有很小的变化,提出了Flash Saver,结合重复数据删除和增量编码技术来减少到固态盘的写流量。将重复数据删除用于文件系统数据块,将增量编码用于文件系统元数据块。实验结果表明,Flash Saver可减少高达63%的总写流量,从而使其具有更长的使用寿命、更大的有效闪存空间和更高的可靠性。
(5)通过改变存储系统的数据布局策略及存储系统结构,设计了一种利用固态盘的冗余高效能云存储系统架构——REST。REST主要包括MDS、loggers和数据块服务器三部分,其中loggers用基于固态盘的高性能服务器实现。通过改变数据布局策略,可以保持大部分的冗余存储节点在待机模式下甚至大部分时间关闭。同时设计了一个实时工作负载监视器instructor,通过该监视器,可以根据工作负载的变化,控制数据块服务器的启动和关闭,系统能耗和性能之间的权衡也可以通过调整权衡指标来实现。实验结果表明,REST在FileBench和实际工作负载下可分别节省高达29%和33%的系统能耗,同时对系统性能没有很大影响。
(6)利用固态盘与机械硬盘之间在性能、容量、成本、寿命等方面的互补,构建由固态盘和机械硬盘组成的混合式存储系统HSStore。在HSStore系统中,固态盘作为硬盘上层的缓存空间而存在。请求分派器对到达的I/O请求进行监控并且将大的顺序写请求和小的随机写请求从缓存层过滤掉,直接将它们发送到硬盘上,并且跟踪缓存中未命中的读请求。若数据块的未命中次数超过一定阈值,则数据迁移模块会将数据块从机械硬盘上迁移到固态盘缓存中。利用这些方法,既增加了固态盘的有效缓存空间,又延长了其使用寿命。
上述六个方面研究,主要针对固态盘系统的内在特点,从内部混合架构的固态盘、设计固态盘内部的I/O调度策略、减少到固态盘的写流量及利用存储系统冗余和固态盘设计高效节能的云存储结构等多方面展开,旨在优化固态盘I/O性能,最大限度地利用好固态盘,提高存储系统性能和可靠性,降低能耗。研究结果表明,固态盘自身具有很大的潜在优势,若能在使用的同时扬长避短,在系统设计中充分考虑其优缺点,将有助于进一步改善存储系统的性能。
本书的出版得到了国家“863”重大专项计划“海量存储系统关键技术”(No.2009AA01A402)、国家自然科学重点基金“大规模数据存储系统能耗优化方法的研究”(No.60933002)和国家自然科学基金“基于滑动窗口的线性连续网络编码的关键技术与算法研究”(No.61572012)的资助,特此表示感谢。本书同时也是国家重点基础研究发展计划(“973”计划)“高效能存储系统组建方法研究”(编号为2011CB302303)的研究内容之一。
由于作者水平有限,书中难免会存在不足之处,敬请读者批评指正。
作者2016年11月

内容简介

本书从元数据管理方法、新的内部混合架构的固态盘、针对固态盘的I/O调度程序、减少到固态盘的写流量、利用固态盘的冗余高效能云存储系统架构及构建由固态盘和机械硬盘组成的混合式存储系统HSStore等六个方面对固态盘的I/O优化技术展开研究。

目录

目录

第1章绪论(1)
1.1信息存储概述(3)
1.2固态盘技术分析(5)
1.3固态盘的研究现状(14)
1.3.1关于固态盘性能的研究(15)
1.3.2采用固态盘的存储系统研究(27)
1.4本书主要内容(30)

第2章块级连续数据保护系统元数据管理方法研究(33)
2.1研究背景(38)
2.2元数据管理设计与实现(39)
2.2.1重要的数据结构(39)
2.2.2全量恢复算法(40)
2.2.3增量恢复算法(42)
2.2.4具体实现(43)
2.3实验结果与分析(45)
2.3.1测试环境(45)
2.3.2检索时间与恢复数据量的关系(45)
2.3.3增量和全量恢复的选择(46)
2.4本章小结(47)

第3章一种结合SLC和MLC的混合固态盘架构设计(49)
3.1SLC和MLC闪存体分析(51)
3.2SMARC设计和实现(53)
3.2.1哪些数据放在SLC区域(54)
3.2.2SMARC中的耗损均衡(55)
3.2.3SLC和MLC区域之间的数据迁移(55)
3.3性能评价(56)
3.3.1性能(57)
3.3.2可靠性和能源消耗(57)
3.4本章小结(59)

目录固态盘I/O优化技术研究第4章一种基于区域的高效固态盘调度策略(61)
4.1研究背景和动机(63)
4.2I/O调度器及固态盘内部并行性分析(66)
4.2.1闪存和固态盘(66)
4.2.2I/O调度器(67)
4.2.3固态盘内部并行性(71)
4.3对固态盘性能特征的分析(73)
4.3.1随机操作和顺序操作的不同(73)
4.3.2固态盘内部并行性(73)
4.4分区调度器的设计与实现(75)
4.4.1结构概述(75)
4.4.2空间分区(76)
4.4.3请求的队列组织(77)
4.4.4读/写请求的调度(78)
4.4.5分区调度器工作流程(78)
4.5实验评估(80)
4.5.1工作负载的性能(80)
4.5.2微测试(83)
4.6本章小结(87)

第5章利用重删和增量编码的固态盘写优化(89)
5.1概述(91)
5.2设计动机和考虑因素(92)
5.3设计方法(96)
5.3.1如何识别语义元数据块(97)
5.3.2消除重复数据块(97)
5.3.3管理元数据块的增量变化(97)
5.4实验测试(98)
5.4.1实验设置(98)
5.4.2性能比较(98)
5.4.3CPU和RAM利用率(99)
5.4.4减少写流量(100)
5.5本章小结(101)

第6章利用固态盘的冗余高效能云存储系统设计(103)
6.1研究背景(105)
6.2REST设计原理和实现细节(108)
6.2.1系统架构(108)
6.2.2能耗感知的数据布局(112)
6.2.3instructor(112)
6.2.4loggers(113)
6.2.5能耗模型(114)
6.3系统评估(115)
6.3.1实验设置(115)
6.3.2数据块服务器状态转移(116)
6.3.3节省功耗和性能影响(116)
6.3.4实际工作负载实验(117)
6.4本章小结(119)

第7章基于固态盘缓存的混合式存储系统(121)
7.1提出背景和研究动机(123)
7.2Linux操作系统device瞞apper简介(125)
7.2.1device瞞apper中的主要概念(126)
7.2.2目标设备的操作接口(127)
7.3HSStore的设计与实现(129)
7.3.1HSStore系统架构(130)
7.3.2缓存模式与替换算法(132)
7.3.3HSStore使用的主要数据结构(133)
7.3.4请求处理流程(134)
7.4系统性能测试(136)
7.4.1测试环境(136)
7.4.2微测试结果及分析(138)
7.4.3工作负载结果及分析(138)
7.5本章小结(139)

第8章总结与展望(141)
8.1全书小结(143)
8.2未来工作展望(144)

参考文献(147)

致谢(159)

猜你喜欢

发表评论