登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 电子信息类 > 通信工程 > 正文

基于物理隔离和高可靠的多租户固态盘系统毕业论文

 2020-02-17 09:02  

摘 要

固态盘替代机械硬盘被广泛用于数据中心。一方面,为了使租户间的相互干扰尽可能小,固态盘采用硬件虚拟化技术进行性能隔离;另一方面,为了提高数据可靠性,独立冗余磁盘阵列(RAID)机制不可或缺。但是直接将上述两种技术结合会导致严重的性能下降。

针对以上问题,本设计提出一种低干扰的RAID机制用于硬件虚拟化的固态盘,称为RivSSD。该设计基于传统的RAID-4技术进行硬件结构和软件算法的优化。在硬件方面,我们提出使用高速非易失随机存储器(NVRAM)作为奇偶校验盘以避免该盘成为整个固态盘的性能瓶颈,并将属于各租户的专用闪存晶圆按子条带的方式组织。在软件算法方面,我们提出闲时奇偶校验(parity)更新和提前parity更新技术。即通过利用请求间的空闲时间和闪存存取特性,将执行奇偶检验信息更新操作带来的开销隐藏在数据盘的请求处理时间中。

为了验证本设计的有效性,我们设计了仿真对比实验,测试RivSSD、RAID-0和Naive RAID-4三种设计在相同负载情况下的性能。结果显示RivSSD几乎消除了在硬件虚拟化固态盘中引入RAID机制导致的额外开销,获得接近RAID-0的性能,得出本设计可行且高效的结论。

关键词:固态盘;NAND 闪存;虚拟化;晶圆级RAID;非易失内存

Abstract

Solid State drives (SSD) have replaced hard disk drives (HDD) in data center. On one hand, in order to ensure performance isolation between tenants sharing the same SSD, hardware virtualization technique has been adopted. On the other hand, to improve data reliability stored in SSD, extra technique such as RAID is indispensable. Nevertheless, simply combining these two schemes would cause serious performance degradation.

In light of the above issue, in this work, we propose a low-interference RAID scheme for hardware-virtualized SSD, called RivSSD. It optimizes the hardware structure and software algorithm of conventional RAID-4 scheme. On the hardware side, we propose to use high-speed non-volatile random-access memory (NVRAM) as the parity disk to avoid the disk becoming the performance bottleneck of the entire SSD. Besides, we organize pages inside each tenant’s dedicated flash dies as sub-stripes. In terms of software algorithms, we propose idle time parity update and advanced parity update techniques. We leverage idle time between IO requests and flash access features to hide the overheads of updating parity behind the period of processing data operations.

To evaluate the effectiveness of our design, we elaborate simulating experiments, and gain statistics about the performance of RivSSD, RAID-0 and Naive RAID-4 . Results show that RivSSD nearly eliminates extra overheads of the RAID scheme for hardware-virtualize SSD, and gains near-RAID-0 performance, drawing the conclusion that our design is feasible and efficient.

Key words: Solid state drive; NAND flash; virtualization; die-level RAID; non-volatile memory

目 录

1 绪论 1

1.1研究背景和相关工作 1

1.2研究目的和意义 1

1.3初步设计和研究动机 2

1.4本文组织结构 2

2 相关原理 4

2.1闪存基本原理 4

2.1.1 NAND闪存存取特性 4

2.1.2闪存转换层(FTL)基本原理 5

2.1.1 2D/3C NAND闪存 6

2.2固态盘内部硬件结构 7

2.2.1固态盘基本结构 7

2.2.2固态盘虚拟化技术和相关研究 8

2.3固态盘RAID机制与相关研究 8

2.4 NVRAM基本原理 11

3 设计原理 12

3.1 RivSSD设计概览 12

3.2低干扰的RAID机制算法 13

3.3 NVRAM容量配置 17

3.4讨论 18

3.4.1 RAID重构 18

3.4.2数据一致性 18

4 实验验证与分析 19

4.1实验平台SSDsim介绍 19

4.1.1平台原理 19

4.1.2基本架构 19

4.1.3本设计对平台的修改 21

4.2实验设计 21

4.2.1对比实验 21

4.2.2参数配置 22

4.2.3工作负载选择 23

4.3实验结果/性能分析 23

4.3.1 Naïve RAID-4性能开销 23

4.3.2 16KB页大小性能分析 24

4.3.3 4KB页大小性能分析 26

5 总结与展望 28

参考文献 29

致谢 33

1 绪论

1.1研究背景和相关工作

基于NAND闪存的固态盘用于数据中心成为常态,它支持许多与数据相关的服务[1,2]。为提高存储利用率和成本效益,固态盘虚拟化技术被广泛使用。该技术允许多个租户、应用、虚拟机或数据库实例共用一块固态盘[3,4,5,6]。然而,有着不同I/O模式和闪存管理例程(称为闪存转换层任务,即FTL任务)的租户存在存储资源的竞争。这种I/O干扰会使租户的I/O性能波动并会导致违背服务级目标(SLOs)[5,7]

基于软件和硬件的固态盘虚拟化技术已被学术和产业研究人员提出,以提供多租户间的性能隔离。闪存晶圆是固态盘中能独立执行闪存操作的基本单元[9]。软件虚拟化技术将指定的闪存块分配给各租户,而一个闪存晶圆被多个租户共享[8,9,10,11,12]。尽管这种设计能通过将数据组成跨闪存晶圆的条带来提高I/O吞吐量和存储空间利用率,但每个闪存晶圆中存在严重的租户间I/O干扰。为提升性能隔离,硬件虚拟化技术将固定数量的闪存晶圆分配给指定的租户[3,5,6,13]。硬件虚拟化使来自不同租户的I/O请求和局部FTL任务在独立的环境中得到处理,然而固态盘的全局FTL任务仍会干扰租户的I/O性能。

RAID机制产生的晶圆级奇偶校验信息更新即为上述的全局FTL任务的一种。闪存存在可靠性问题,包括比特错误(由多种噪声导致,如编程/擦除次数和数据保留损失)和存储元器件故障(如字线和晶圆)[5,29]。尽管固态盘内使用了纠错编码以降低比特错误率,但它无法解决元器件故障的问题。因此,RAID机制在保护固态盘免受纠错编码无法纠正的比特错误和元器件故障的影响中起着不可获缺的作用。广泛应用的RAID机制主要是RAID-5和RAID-4[14,15,16,17,18,19,20,21,22,23]

1.2研究目的和意义

在硬件虚拟化的固态盘中,晶圆级RAID机制与实现性能隔离的目标相矛盾。RAID-5机制将奇偶校验信息分配到每个闪存晶圆,如图2.8所示。某个晶圆的奇偶校验信息更新操作是由其他晶圆的写入操作引发的,因此租户间存在严重的I/O干扰。RAID-4机制将奇偶校验信息存储到同一个闪存晶圆上,通常是基于超级页/超级块的设计实现的[19,21]。超级页/块是由横跨多个晶圆的具有相同地址偏移的闪存页/块构成的。用户数据按照超级页的粒度写入,奇偶校验数据以相同的粒度生成保护信息,垃圾回收操作以超级块的粒度执行。RAID-4这样设计有几个优点[19,24]。第一,充分利用了固态盘内部并行性;第二,每个超级页构成一个RAID条带,从而使奇偶校验更新的开销尽可能小;第三,简化了闪存管理。然而,因为任何其他闪存晶圆执行写操作都会触发奇偶校验信息更新操作,奇偶校验盘需要承受很高的I/O压力,所以RAID-4中作为奇偶校验盘的闪存晶圆会成为整个固态盘的性能平颈,如图2.9所示。

随着持久性存储器NVRAM的出现,如相变存储器(PCM,Phase Change Memory),旋转传递扭矩磁性随机存储器(MRAM),固态盘可以实现更高的耐久度(P/E Cycle)和更低的延迟,这给内存和存储解决方案带来了新的契机[23,25,26]

因此利用NVRAM实现在硬件虚拟化的固态盘中使用RAID机制,并尽可能减少因RAID机制导致的租户I/O性能下降是本研究的目标。

1.3初步设计和研究动机

一种容易想到的解决办法是将基于超级页的RAID-4中作为奇偶校验盘的NAND闪存介质用NVRAM代替以消除性能瓶颈问题。我们称这种解决方案为Naive RAID-4机制。然而,在这种方案中,奇偶校验信息的更新仍会干扰到租户的I/O性能。因为闪存自身的写入特性,新的数据只能写入空闲的闪存页而不能在原处更新写入,只有以闪存块为单位擦除数据后才能重新写入新的数据,因此会产生无效页,垃圾回收操作是当固态盘内空闲空间不够时执行擦除操作以回收无效页占用的空间。在Naive RAID-4机制中,奇偶校验信息的更新是由租户写入数据或固态盘执行垃圾回收操作引起的。租户写入引起的奇偶校验信息更新可以只通过奇偶校验盘的数据存取完成,从而不会干扰到用户的性能。而由垃圾回收引起的奇偶校验更新需要额外对数据盘中的无效页进行读操作才能计算出对应条带的新的奇偶校验信息并更新写入奇偶校验盘,所以会导致租户I/O性能的下降。并且,随着租户的闪存块中无效页比例增加,性能下降的程度会越大。

通过设计实验(详见第4.3.1节)并分析结果,可以得知上述Naive RAID-4机制相对于无RAID机制保护的硬件虚拟化的固态盘,即RAID-0机制,租户的平均I/O请求响应时间增加了18.3%,如图4.2所示。因此进一步降低RAID机制带来的I/O性能下降的需要是不可忽略的。本文的设计基于Naive RAID-4机制进一步优化。

1.4本文组织结构

本文首先介绍本文背景的两个要点:硬件虚拟化和RAID机制,然后基于背景提出问题,并论述问题的重要性,再提出一个初步的解决方案并通过分析对比实验结果作为深入研究的动机。

第2章,介绍闪存基本原理,固态盘硬件结构和硬件虚拟化技术,RAID-5和RAID-4机制,NVRAM基本原理。

第3章,阐述本设计的硬件结构和算法优化。

第4章,阐述验证有效性的实验设计并分析实验结果。

第5章,总结与展望。

2 相关原理

2.1闪存基本原理

2.1.1 NAND闪存存取特性

NAND闪存的基本存取单元分为两种,一种是类NMOS的双层浮栅(FG)MOS管,另一种是电荷陷阱闪存(CTF),与前者结构类似,主要区别在于它将作为存储层的浮栅极替换为氮化硅这种绝缘体材料,如图2.1所示。无论是基于CT还是基于FG的NAND闪存,它们执行操作的原理都是相似的,即在控制栅极、漏极、源极和衬底加上偏置电压。

图2.2是固态盘中一个闪存块的结构,其中每根横向的字线(WL)构成一个闪存页,在同一个闪存块中的页共用同一个衬底,纵向的BL为字线,横向第一行与最后一行(GSL与SSL)为选择栅[19]。写操作是在控制栅极加正电压,使电子通过绝缘层进入存储层,擦除操作则是在衬底加正电压,将电子从存储层吸出。因此,NAND闪存最主要的特性在于读写操作以闪存页执行,而擦除操作是以闪存块为单位执行。除此之外,闪存还有一些其他特性,比如:每擦除一次闪存块就会对闪存块造成磨损,因此闪存块是具有耐久度的;读操作会导致存储单元中的电荷数目变化,从而产生比特翻转的错误;由于电荷的流失,存储在闪存中的数据会丢失,且温度越高电荷流失速度越快,数据保存时间越短;更新写入的数据只能放在空闲的闪存页,成为新的有效页,而该数据所在的原来的闪存页被置为无效,若要对一个已经写入数据的闪存页再次写入,必须先执行擦除操做。

图2.1闪存存储单元

图2.2 闪存块内部组织结构[19]

2.1.2闪存转换层(FTL)基本原理

NAND闪存被广泛使用,它拥有高密度、轻重量、防电流冲击、非易失和低能耗等优点。尽管NAND闪存有诸多优点,因为结构特性,它仍然存在一些缺陷/特性,如上一节所论述。因此各种各样的闪存转换层(FTL)被提出以处理这些特性。闪存转换层是固态盘固件的核心组成,主要由三个功能构成:地址映射、垃圾回收和磨损均衡。

由于文件系统是通过逻辑地址管理数据的,而底层固态盘则以物理地址管理实际存放在闪存中的数据,因此固态盘需要地址映射功能。地址映射是FTL最基本的功能,能将数据的逻辑地址映射到有效页的物理地址,因此又称为地址转换。由于闪存具有异地更新的特点,地址转换需要维护一张映射表以管理最新版本的数据从逻辑地址到物理地址的映射信息。映射表的主要作用在于将逻辑区域(logical region)的某个逻辑地址映射到物理地址集(physical set)的某个物理地址,如图2.3所示[30]。由于映射表需要频繁的更新,为了获得更高的效率,映射表通常存放在内存中。目前,主要有三种映射算法:页映射、块映射和混合映射,本文中的设计基于常用的页映射算法。在页映射算法中,闪存块中的每个闪存页被映射到一个逻辑地址。当逻辑地址被再次写入,逻辑地址对应的内容将被写入一个空闲的物理页。而对应同一个逻辑地址的原物理页被置为无效。接着,映射表应被更新以记录最新的地址映射信息。这种映射算法能提供良好的物理空间利用率,并降低垃圾回收产生的开销。其缺点在于映射条目数量庞大,维护完整的映射表需要占用较大内存空间,然而该算法的优化已经很成熟且不属于本文中设计考虑的范围。

FTL中垃圾回收是影响用户I/O性能的主要原因,本文的设计中I/O性能下降也是因为垃圾回收和RAID机制共同作用导致的。当闪存的空闲空间不够时,就会执行垃圾回收操作以擦除闪存块。为了确定擦除哪个闪存块,最好的策略是选择没有任何有效页的块,然而,当找不到符合该条件的闪存块时,被擦除的块就会包含一些有效页。因有效页内的数据不能被丢弃,所以需要将有效页的内容复制出来并写入到另一个有空闲页的闪存块(称为空闲块)。典型的垃圾回收操作包含以下几个步骤:

步骤一:如果触发了垃圾回收操作,固态盘控制器会选择一个将被擦除的闪存块(称为目标块)以回收空间;

步骤二:若目标块中存在有效页,应将有效页中的数据复制到空闲块;

步骤三:擦除目标块并更新映射表的映射信息;

步骤四:目标块转换为空闲块,若闪存的空闲空间仍不够,转到步骤一。

为回收充足的空闲空间,垃圾回收操作可能执行多次并产生多次读、写和擦除操作。另外,若目标块包含过多有效页,回收开销会很高并严重降低闪存性能。因此许多垃圾及回收算法被提出以智能地选择目标块。本文中设计为了简化,采用常用的“贪心算法”,即每次选择无效页最多的闪存块作为目标块。

图2.3 地址转换[30]

2.1.3 2D/3D NAND闪存

云计算、大数据、物联网和移动计算等新兴技术的出现正在产生大量数据。在大数据时代,具有多种特性的存储设备需要在高速处理、大容量存储、低成本、低能耗等方面满足更高的要求。随着NAND单元技术节点变小,基于二维(2D)NAND闪存的固态盘遇到严重的性能和可靠性问题,限制整个固态盘容量增加的速度。因此,NAND制造商通过三维(3D)方式层层堆叠NAND存储单元解决了固态盘容量扩展的问题,如图2.4所示[27]

本文中的设计针对用于数据中心等数据密集型场景的固态盘,对容量的需求很大,因此后文实验与设计均采用基于3D NAND的固态盘。

2.2固态盘内部硬件结构

2.2.1固态盘基本结构

固态盘有主控CPU、RAM、操作加速器、总线、数据编码译码等模块。如图2.4所示,基于闪存的固态盘由内置的控制器管理多根总线(channel),每根总线连接着多块闪存芯片(chip)[27,28]。每个芯片由多个闪存晶圆(die)组成。闪存晶圆是能独立执行闪存命令的基本并行单元。一个闪存晶圆的故障不会影响其他晶圆,因此固态盘内RAID机制通常在晶圆级实现。每个闪存晶圆由多个plane(分组)组成,而每个plane由许多闪存块构成。闪存块是由闪存页组成的阵列,同一个块中的页必须顺序写入。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 50元 才能查看全部内容!立即支付

微信号:bysjorg

Copyright © 2010-2022 毕业论文网 站点地图