论文部分内容阅读
计算机技术发展和互联网的普及,使得当代社会充满了数字化信息。处理器技术的发展带来了计算性能的显著提高,同时存储技术研究方面的突破为海量数据存储提供了基础的硬件保证。IDC调查显示,计算机的性能和数据量都在按照摩尔定律增长。随着数据密集型的应用出现和大数据时代的到临,数据量已达到PB级别。超大容量数据对于存储器的容量和速度都提出了更高的要求,还包括存取性能、寿命、可靠性和带宽。传统的存储体系结构中往往采用磁盘阵列,但由于其内部的机械装置的限制,其在读取速度、数据传输带宽、性能、功耗等方面的缺陷在处理海量数据时是一个无可避免的瓶颈。大数据时代,存储子系统对计算机整体性能发展的制约越来越明显,传统的磁盘阵列存储系统在读写性能、带宽、功耗等各个方面都无法满足日益增长的需求。如何基于新型的存储技术来提升整个存储阵列的性能已经成为了热点研究问题。基于此种需求,出现了大批以闪存(NAND flash)、相变存储(PCM)、磁阻式随机存储器(MRAM)、铁电随机存储器(FRAM)、忆阻器(RRAM)等为代表的新型存储介质。其中基于闪存阵列的固态硬盘以其价格低、带宽高、读写速度快、非易失、低功耗等特点在许多方面都较传统磁盘占优势。但是由于闪存本身存在着非本地更新的存储特性,区别于传统磁盘,传统的闪存转换层为实现地址转换需要利用闪存转换层进行地址动态映射,以便使固态硬盘的表现与磁盘相同。使用固态硬盘SSD组成的大规模存储阵列子系统,能够满足大规模阵列的带宽要求。但是由于其内部的闪存转换层存在的设计上的缺陷,导致其无法满足应用的读写性能需求,同时极大的损耗SSD的寿命。随着3D TLC/QLC NAND闪存的出现,基于闪存的SSD的容量正在迅速增长,从数百GB到数十TB。因此,这样一个大型SSD中的Flash转换层(FTL)面临着以前从未出现过的严重问题。传统的闪存转换层机制采用粗粒度映射单位,从而生成小的映射表使其完全存储在DRAM中,或者是采用细粒度映射单位,但是只能根据工作负载中的局部性信息在DRAM中保存一部分频繁访问的映射项。通过分析,上述两种策略都不适合于大容量的固态硬盘。首先,大型SSD引入了比以往更多的映射条目,即使是粗粒度映射机制也不能产生一个足够紧凑的映射表来完全保存在DRAM中。其次,大型SSD倾向于部署在数据中心,以便在各种应用背景下的大量用户提供IO请求,这些IO请求表现出较弱的空间和时间地点。结果,在DRAM中保存频繁访问的映射信息的方法对于大规模SSD也是不切实际的。在本文中,我们提出了一种用于大规模SSD的新型KV-FTL方法,其主要通过简单的哈希函数将逻辑地址映射到物理地址,同时以传统方式处理哈希冲突和不适当的数据更新,如映射表。我们提出的KV-FTL能够避免从闪存芯片中频繁的加载到嵌入式DRAM中来加快地址转换速率,从而提高读写性能,同时较小的地址映射表意味着减少映射项更新操作数目,从而延长SSD的使用寿命。据我们所知,这是FTL设计中第一次应用键值原则。本文主要对大规模的基于闪存阵列的固态硬盘的基于Key-Value的闪存转换层进行了研究与实现,主要工作如下:首先,本文研究了闪存的存储特性、固态硬盘内部结构,同时针对当前闪存转换层机制的研究现状进行了详细的调研。提出本研究课题的研究背景与研究动机,明确需要解决的问题。其次,针对目前闪存转换层存在的读写性能低,寿命缩减大的问题,结合当前针对Key-Value存储数据库的研究,结合键值思想,设计一种新型的针对大规模闪存固态盘的闪存转换层机制,并提出其设计理念,描述其设计架构。针对其运行机制、使用技术、相应算法进行详细说明。再次,本文对当前的闪存转换层机制对于固态硬盘的并行性的研究,提出对于所提出的体系结构的优化-利用SSD内部的通道级并行性。最后,本文研究了当前主流键值存储系统的发展趋势,重点分析了优化关键点以及所使用的相应技术,并根据此提出未来研究的展望。同时,本文以[51]中为原型,在此基础上进行架构实现,设计实现了针对大容量SSD以及相应的基于键值的闪存转换层的实现。实验方面,根据美光Micron一款市场发布的SSD(1TB大小,具有512MB内存)进行配置,就权威的Trace进行读写性能分析。KV-FTL能够最多延长SSD寿命18.7%,平均延长13.6%;同时读性能提升范围为18.4%到13.6%,在运用优化机制之后,平均提升39%。对于十分紧凑的请求,可以平均提高访问性能(读写性能)达47%。