论文部分内容阅读
当今时代,信息技术已经融入人类生活的方方面面,社会各个行业领域都离不开各种信息化服务、应用及海量数据的支持,并继续推动各种信息数据的容量和类型的迅猛增长,及计算机系统的规模、种类和性能的不断提升。随着大数据应用的日益广泛普及,越来越多的数据量在越来越短的时间窗口内被各类应用产生,这些海量数据给高性能存储系统容量带来了巨大的挑战。由传统的机械磁盘HDD(Hard Disk Drive)构成的存储系统的I/O性能长期以来一直是整个计算机系统的性能瓶颈,近年来,基于闪存(Flash Memory)的固态盘SSD(Solid State Drive)技术得到了很大进步,与机械磁盘不同,固态盘是基于半导体芯片构成的,没有机械部件,因此具有高可靠性、高性能、低功耗、非易失等显著优势,成为未来替代传统机械硬盘的新型存储设备,有望消除存储系统的I/0性能瓶颈从而给存储系统带来根本性变革。随着固态盘硬件技术的不断进步,闪存芯片的价格也逐年下降,使得基于闪存的固态盘得以走向广泛应用。例如现在已经有不少笔记本电脑采用固态盘来加速系统启动、优化I/O性能,并同时使笔记本具有速度快、耐用防震、无噪音、低功耗等优点。固态盘具有明显的性能优势,因此,随着半导体技术的愈加成熟及固态盘在存储系统中的应用越来越广泛和重要,研究针对固态盘的I/O优化技术,提高固态盘存储系统I/O性能和可靠性,降低系统能耗,具有重要研究意义。本文从以下几个方面对针对固态盘的I/O优化技术展开研究,提高其可靠性及性能,同时降低系统能耗。1)提出了一种新的内部混合架构的固态盘(SMARC)设计方法,同时包含SLC和MLC两种闪存体。通过定期在两个不同部分(SLC和MLC区域)之间根据运行的工作负载动态迁移数据,所提出的架构能够充分利用各自的优势互补,以提高系统整体性能和可靠性并降低能源消耗。基于各种工作负载的仿真结果显示出,SMARC可以有效地改善系统性能,同时,显著地提高存储系统可靠性和减少能源消耗。2)针对固态盘的特殊性,通过采用空间分区、读优先和排序三种策略充分利用其内部丰富的并行性,设计了一种适合于固态盘的I/O调度程序:分区调度器。现有的Linux内核I/O调度程序都是基于传统旋转式硬盘驱动器HDD上进行设计和优化,但由于固态盘比机械磁盘具有多种不同的操作特性,它们在固态盘上工作时表现并不理想,因此有必要设计针对固态盘特性的I/O调度程序。分区调度器首先把整个固态盘空间分成几个区域作为基本调度单位,利用其内部丰富的并行性同时发起请求,其次,利用读请求比写请求快得多的事实,优先读请求,避免过多的读对写操作的阻止干扰。第三,对每个区域调度队列中的写请求在发送到磁盘之前进行排序,以期望将随机写转换为顺序写,从而减少到达磁盘的有害随机写请求。使用不同负载对分区调度器的测试结果表明,分区调度器因能成功地将随机写转化成顺序写,与四种内核I/0调度程序相比能够提高17-32%性能,同时延长固态盘的寿命。3)利用重复数据删除和增量编码来减少到固态盘的写流量,从而延长固态盘的寿命。具体来说,基于两个重要的观察结果:(a)存在大量的重复数据块;(b)元数据块比数据块被更加频繁地访问/修改,但每次更新仅有很小的变化。提出了Flash Saver,结合重复数据删除和增量编码技术来减少到固态盘的写流量。将重复数据删除用于文件系统数据块,将增量编码用于文件系统元数据块。实验结果表明,Flash Saver可减少高达63%的总写流量,从而使其具有更长的使用寿命、更大的有效闪存空间和更高的可靠性。4)通过改变存储系统的数据布局策略及存储系统结构,设计了一种利用固态盘的冗余高效能云存储系统架构:REST,主要包括MDS、loggers和数据块服务器三部分,其中loggers用基于固态盘的高性能服务器实现。通过改变数据布局策略,可以保持大部分的冗余存储节点在待机模式甚至大部分时间关闭。同时设计了一个实时工作负载监视器instructor,可以根据工作负载的变化,控制数据块服务器的启动和关闭,系统能耗和性能之间的权衡也可以通过调整权衡指标来实现。实验结果表明,REST在FileBench和实际工作负载下可分别节省高达29%和33%的系统能耗,同时对系统性能没有很大影响。通过上述四个方面研究,主要针对固态盘系统的内在特点,从内部混合架构的固态盘、设计固态盘内部的I/O调度策略、减少到固态盘的写流量及利用存储系统冗余和固态盘设计高效节能的云存储结构等多方面展开,优化固态盘I/0性能,最大限度地利用好固态盘,提高存储系统性能和可靠性,降低能耗。