英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料
GCaR:垃圾回收感知缓存管理,提高了基于闪存的SSD的性能
Abstract(摘要)
垃圾回收(GC)是基于闪存的SSD的一个重要性能问题,因为它往往破坏SSD的正常运行。这个问题继续困扰着基于闪存的存储系统,特别是在高性能计算和企业环境中。正如以前的研究所揭示的,这个问题的一个重要根本原因是闪存资源的严重争用以及用户I/O请求和GC诱导的I/O请求之间的严重相互干扰。固态硬盘中的板上缓冲缓存对于平滑上层应用和下层闪存之间的差距并在一定程度上缓解这个问题起到了至关重要的作用。尽管如此,现有的高速缓存替换算法已经过很好的优化,尽可能地减少了对闪存片的I/O传输,但是没有考虑闪存片内的GC操作,从而降低了高速缓存的遗漏率。因此,它们不能解决问题的根本原因,因此远远没有将昂贵的I/O处理器减少到应用于处于GC状态的闪存芯片。
为了解决基于闪存的存储系统(特别是在HPC和企业环境中)中的这个重要的性能问题,我们提出垃圾回收感知替换策略,称为GCaR,以改善基于闪存的SSD的性能。基本思想是高度优先于缓存属于GC状态的闪存的数据块。这大大减少了用户I/O操作和GC引发的I/O操作之间的争用。为了验证GCaR的有效性,我们将其集成到SSD扩展的Disksim模拟器中。仿真结果表明,GCaR可以显着提高存储性能,平均响应时间缩短达40.7%。
1.Introduction(前言)
硬盘驱动器(HDD)几十年来一直是大型存储系统中的主要存储设备。相对于计算机系统堆栈的其他层/组件,HDD的性能已经得到了相当缓慢的提升,使其成为存储系统的性能支撑。随着半导体技术的进步,基于闪存的固态硬盘由于具有轻量级,高随机存取性能和抗冲击性等许多有吸引力的特征而成为HDD的替代或补充。因此受到学术界和工业界的广泛关注。除了在移动设备和台式机/笔记本电脑上的部署之外,它们还被广泛部署在高性能计算和企业环境中[1,5,8,15,24,33]。通常,SSD由多个闪存芯片组成,每个闪存芯片包含大量的闪存块。每个块由固定页数[1]组成。除了正常的读写操作之外,在基于闪存的SSD中,块擦除也是一种频繁的操作,因为在整个块被擦除之前页面只能被写入一次。闪存存储器中的擦除操作比写操作慢几乎一个数量级。因此,基于闪存的SSD使用不在场的写入,而不是在HDD上使用的就地写入。要回收无效页面并为写入创建可用空间,SSD使用垃圾回收(GC)过程[22]。GC进程是一个耗时的操作,因为它将块中的有效页面复制到空闲存储池中,然后擦除不存储有效数据的块。块擦除操作大约需要2毫秒[1]。考虑到受害块中的有效页面需要被复制然后擦除,GC开销可能是非常有意义的,通常,当有足够的空闲时间(即,没有传入I/O请求到SSD)时,可以执行GC操作,以最小化对用户性能的影响。但是,以服务器为中心的企业数据中心和高性能计算(HPC)环境中的工作负载通常会以非常短的到达时间爆发请求。这些工作量并没有表现出足够长的空闲时间[4,6]以适应GC的运行。表现出这种行为的企业工作负载的例子包括联机事务处理应用程序,如OLTP和OLAP [5,26]。此外,已经发现HPC文件系统经常受到频繁和定期检查点和日志操作的写入请求 [27]。在橡树岭国家实验室的Spider存储系统的HPC I/O工作负载特性研究中,观察到带宽分布严重不足[20]。因此,在真实环境中,大多数GC操作是按需触发的。我们的初步实验结果,详见2.1节和先前的研究[21,22],观察到GC操作会显着降低突发写主导工作负载的用户性能。所有这些研究暗示或表明,在企业和高性能计算环境中,基于闪存的存储系统,GC是一个重要的性能问题。在文献中有许多研究基于闪存的SSD的GC问题,包括不同的闪存翻译层(FTL)设计[6,18]以及利用工作负载特性和内部并行性的复杂数据布局方案[13,17,21,23]。然而,由于他们只是试图优化随机写来减轻GC引发的开销,所以他们都不考虑用户I / O和GC诱导的I / O之间的资源争用和敌手干扰。在闪存芯片正在进行的GC处理过程中,对该芯片的任何输入用户I/O请求将被延迟,直到GC完成。因此,GC进程可以通过增加读写排队延迟来显著地阻碍用户I/O性能。另一方面,为了弥补上层主机内存与下层闪存存储之间的性能差距,基于闪存的SSD通常嵌入板载缓存,以平滑用户I/O流量。换句话说,板载缓冲区具有通过吸收突发流量并利用适当的缓存替换策略来利用访问局部性来改变闪存芯片看到的用户访问的能力。现有的高速缓存替换策略,如LRU和LAMA [11],已经过很好的优化,通过减少到后端设备的I/O流量来最大限度地降低缓冲区失误率。这些旨在提高GC效率的策略的变体(如BPLRU [19]和GC-ARM [10])只考虑如何替换数据块以提高GC的效率,而不了解闪存芯片内部的GC操作。因此,它们都没有考虑闪存芯片中的GC操作,使得它们不能有效地降低处于GC状态的闪存芯片的昂贵的I / O通路。GC状态表示闪存芯片正在进行垃圾回收:处理来自块的有效数据并擦除块以腾出闪存空间用于随后的写入数据。我们认为,为了缓解前面提到的用户I / O跟踪和GC引发的I / O跟踪之间的冲突和干扰,应该使板上缓冲区的管理知道闪存中的实时GC活动芯片。在本文中,我们提出了一个名为GCaR的垃圾收集感知缓存管理,以大大减少用户I / O操作和GC I / O操作之间的冲突和干扰。基本思想是优先考虑在GC状态下的闪存块上的缓存块。当在缓存行中更换或离台数据块时,我们将检查数据块是属于处于或即将处于GC状态的闪存芯片。如果是这样,数据块将被保存在缓冲区中更长的时间,直到GC完成。否则,它将像往常一样被替换或降级。为了减少尽可能多的用户I/O请求,GCaR的目标是减少尽可能多的“正确”的I / O请求,以显著缓解竞争和干扰用户I / O操作和GC引发的I / O操作。我们已经将GCaR集成到SSD扩展Disksim中模拟器并进行了广泛的评估。性能结果表明,GCaR可以显着提高存储性能,平均响应时间减少高达40.7%。本文的其余部分安排如下。背景和动机在第2节中介绍。我们在第3节描述GCaR的设计细节。性能评估在第4节中介绍,相关工作在第5节中介绍。我们在第6节总结本文。
图 1-1:显示其内部缓冲区和闪存芯片的典型SSD的概述
2.背景和动机
在本节中,我们首先介绍与本研究最相关的SSD的关键性能特征。然后我们讨论影响缓存效率的因素,并激发我们提出的基于闪存的SSD的GC感知缓存管理。
2.1 SSD基础知识
与机械HDD不同,基于闪存的SSD是由硅存储芯片制成的,没有移动部件(即机械定位部件)。图1-1显示了具有n个独立通道的典型SSD的逻辑概述,每个通道由多个闪存芯片共享。尽管基于闪存的SSD具有高能量效率和高随机读取性能的优势,但它们具有以下两个独特的非HDD特性。首先,基于闪存的固态硬盘具有不对称的读写擦除性能[1,16,36]。写入NAND闪存是一个多步骤的过程。一般来说,要写入已有数据的单元格,首先必须读取单元格,然后擦除单元格,然后编程(写入)单元格。特别是,SSD从小的随机写入请求表现不佳。这会导致擦除/编程(写入现有数据)比读取慢2-3个数量级的操作。此外,至少有两种类型的NAND闪存单元:单层单元(SLC)和多层单元(MLC)。SLC可以存储一位数据,而MLC可以存储两位或更多位。与SLC相比,MLC可以存储至少两倍的数据量。但是,MLC的读取性能比SLC慢两倍,写入性能也慢了3倍以上。为了更好地理解NAND闪存芯片的性能,表2-1给出了SLC和MLC之间的读写擦除性能不对称性和性能衰减的具体例子。其次,在基于闪存的SSD中,GC是一个重要但昂贵的背景过程。GC在每次写入之前不需要执行整个块的擦除操作。它将标记为擦除的数据累积为“垃圾”并执行整块的擦除作为空间回收为了重复利用块。
表2-1 SLC/MLC闪存芯片的读/写/擦除时间
SSD中所需的GC操作明显影响用户I / O性能。每个读取或写入操作的粒度是一个页 面 (2KB-4KB) , 而擦除操作的粒度是一个块(128KB-256KB)。擦除操作的执行时间分别比写入操作或读取操作的执行时间多一个数量级,如表2-1所示。原因是,对于基于闪存的SSD,每块(128-256KB)必须可以在写入任何部分之前进行擦除,这是闪存的特征,被称为“先擦后写”。由于块的大小,擦除操作通常需要几毫秒才能完成。当SSD中的空闲块的数量小于预定阈值时,受害块(即,要被擦除)中的有效页面必须在受害块被擦除之前被复制到不同的空闲块以创建新的空闲块(从而释放页面),这被称为垃圾回收。GC进程可以通过增加用户请求的排队时间来显著降低读写性能。
图2-1 由现实轨迹驱动的平均响应时间的微观分析
图2-1显示了英特尔DCS3700 200GB SSD上由三条实际迹线驱动的平均响应时间的显微分析。在评估之前,SSD将被写入数据。我们可以看到,由于GC的频繁操作,发生了更大的延迟。在没有GC操作的情况下,大的潜伏期比正常状态下的大。此外,以前的研究也有类似的结果[21],表明GC可以使SSD性能在高性能计算和企业环境中显着变化和不可预测[15,22]。SNIA的固态存储计划启动了一项名为“了解SSD性能项目”的项目[31],发现随着性能评估,闪存SSD的性能也急剧下降。所有这些研究都显示,GC的进展对系统性能有显着的影响。
2.2 缓存效率
不稳定的存储设备,如寄存器,RAM,闪存和磁盘具有不同的性能特点。缓冲区被广泛用于存储系统中,以弥补存储设备具有非常不同的性能特征的存储堆栈的两个相邻层之间的性能差距。缓冲区的效率可以通过取决于Hit Time,Miss Rate和Miss Penalty的平均内存访问时间来评估。平均存储器访问时间(AMAT)由等式1表示:
三个因素中的每一个都可以被优化以减少AMAT。如图1-1所示,板载缓冲区由访问时间一致的DRAM组成,意味着命中时间是一致的。现有的优化尝试通过利用访问本地来减少实际传递给后端闪存的用户I / O请求的数量,尽可能地降低中断率。他们认为失误惩罚也是一致的,因为闪存芯片的直接访问时间几乎相同。虽然这个假设对于硬盘驱动器是有效的,但是对于基于闪存的固态硬盘我们可能没有完全验证,正如我们在第2.1节中讨论的那样。闪存芯片的存取时间可能相当不同,并且取决于GC操作的存在或不存在。处于GC状态的闪存芯片的存取时间比不处于GC状态的存储时间长得多,达数量级。因此,我们认为,对于基于闪存的SSD中的板上高速缓存,不仅应该考虑丢失率,还应该在高速缓存管理中考虑丢失惩罚。以前有关功率感知缓存管理的研究方案PB-LRU [37]和可用性高速缓存管理方案VDF和Shaper [32,35]也发现,在某些情况下,对后端HDD的罚款惩罚是不可靠的。例如,在PB-LRU [37]中,活动磁盘和睡眠磁盘的访问时间是不同的。在磁盘故障的磁盘阵列中,存活磁盘和故障磁盘的访问时间也不相同。因此,PB-LRU,Shaper和VDF将丢失惩罚作为他们对缓冲区缓存管理的优化考虑的重要因素。
对于基于闪存的固态硬盘的板载缓存,GC和GC没有使用闪存芯片的访问时间也是不稳定的,因此更为显著。然而,现有的缓存替换方案,如BPLRU [19]和GC-ARM [10],只考虑如何替换数据块来提高GC的效率但没有意识到在闪存芯片内部进行GC操作。受以前有关功率感知缓存管理[37]和可用性缓存管理[32,35]的研究的启发,我们提出了一种用于缓存管理的GC感知替换方案,称为GCaR,以提高基于闪存的SSD中的板载缓冲区的效率。通过考虑错过率和错过惩罚,应用了GCaR的AMAT将显示明显地改进
3.GCaR
在本节中,我们首先概述指导GCaR设计的主要原则。然后我们给出GCaR的系统概述,接着描述GCaR中的缓存替换和缓冲区降级算法。
3.1 设计原则
GCaR的设计旨在实现高用户性能和高GC有效性,如下所述:
- 高用户性能:大多数现有板载缓存管理方案旨在通过减少传递给闪存芯片的用户I / O请求来减少漏失率,而忽略了这些芯片中的GC活动。我们的GCaR高速缓存管理方案被设计为可以进行垃圾收集,因为它不仅考虑错失率,而且还考虑GC相关的错失惩罚。结果,GCaR将能够通过尽可能多地在内存中保存优先级高的用户I/O请求来减少用户平均响应时间,从而避免处于GC状态的闪存芯片的等待时间过长。
- 高GC精度:GCaR旨在通过将干扰用户请求保留在内存中来减少用户I/O请求与GC引发的请求之间的争用和干扰。这使得GC操作能够毫无阻碍地在闪存芯片中执行,显着提高GC的效率。
3.2 系统概述
图3-1显示了我们在系统I/O路径上基于闪存的SSD的闪存转换层(FTL)内提出的GCaR的系统概览。主机由应用程序,文件系统和块设备驱动程序组成。SSD设备通过主机接口接收来自块设备驱动程序的读写请求。板载高速缓存管理将检查请求的数据是否在高速缓存中。如果是这样,他们将由板载缓存服务。否则,他们将被发放到后端闪存。缓存替换和缓冲区降级模块将与GC调度器模块进行交互,以确定应该替换或降级哪些数据以降低错失惩罚,如图3-1所示.GC调度器模块可以访问关于是否由于灰分处于GC状态,或者不与FTL相互作用。从FTL发出的闪存芯片有三种操作:读取,写入和擦除。GC过程将调用所涉及的闪存芯片中的所有三个操作,这显著地并且不利地影响用户读取和写入性能。因此在GC状态下对闪存的惩罚将比不在GC状态中要等待更长的时间,因此其非常昂贵。传统的基于固态硬盘的缓存管理方案中,GCaR不仅利用了工作负载的局部性,而且将丢失惩罚作为缓存替换和缓冲区降级的重要设计因素。图3-2显示了GCaR中的数据结构。我们可以看到,缓冲区缓存
全文共22948字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[15602],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。