zwz99999
作者zwz99999·2020-04-16 14:56
系统工程师·dcits

ibm闪存宝典1-认识闪存

字数 6618阅读 1246评论 0赞 2
  1. 认识闪存——“天下武功 唯快不破”(原创ibm)

1.1 存储系统进⼊闪存时代
信息技术发展⾄今天,其最根本的实质就是和数据打交道——CPU⽤来处理数据,内存
⽤来暂存数据,硬盘/存储系统⽤来保存或备份数据,光盘/磁带⽤来归档数据,只不过在这
些IT设备上,数据的状态(⾼速⽣成、变化还是静⽌保存)不⼀样⽽已。在IT诞⽣之初,或
者说在冯-诺伊曼计算机体系架构确⽴之后,数据的存储与整体系统性能之间的关系就也就
已经固定了。只是,当处理系统的速度还不够快,或者当数据量还并不⼤的时候,存储与计
算之间的瓶颈与⽭盾并不明显,然⽽,现在不同了。当IT越来越成为⼈类⽣活、⼯作、⽣产
之必需时,企业也就越来越离不开IT,换句话说,IT正进⼊越来越多的企业经营与⽣产领
域。另⼀⽅⾯,随着互联⽹的普及,它与越来越多的传统IT产⽣了交集, 并随之带来了海
量的数据,它们需要更⼤的存储空间,⽽CPU与内存的发展也⽇新⽉异,这⼀切都让作为数
据基础平台的存储系统承受着越来越多的压⼒。
在过去的15年间,计算机系统中的CPU/内存/总线/⽹络等组件等处理速度都提升了10倍
~100倍,⽽磁盘的处理速度仅仅提升了1.2倍,在整个系统框架看,已经明显成为瓶颈。寻
找⼀种新的技术来改变现状已经成为⼀种迫在眉睫的要求。

东芝在上世纪80年代就发明了Flash,分别是NOR Flash 和 NAND Flash, NOR Flash需
要很长的时间进⾏抹写,但是它提供完整的定址与数据总线,并允许随机存取存储器上的任
何区域,这使的它⾮常适合取代⽼式的ROM芯⽚。ROM芯⽚主要⽤来存储⼏乎不需更新的
代码,例如电脑的BIOS的固件。⽽NAND Flash⽐较像光盘、硬盘这类的次级存储设备。
NAND Flash⾮常适合⽤于储存卡之类的⼤量存储设备。
闪存的出现为解决机械磁盘性能问题带来了希望,但是闪存的价格是⾮常昂贵的,⽐起
同等容量的机械磁盘贵⼗倍甚⾄数⼗倍。 为了解决这个问题,闪存的发展也经历了很多技
术的演进,推出了不同类型的闪存:
通过对闪存内最⼩的物理存储单元的电位划分不同的阶数,可以在⼀个存储单元内存储
⼀⾄多个⼆进制位数。常见的⼀⾄四阶存储单元为SLC、MLC、TLC和QLC:
SLC
传统上,每个存储单元内存储1个信息⽐特,称为单阶存储单元(Single-Level Cell,
SLC),使⽤这种存储单元的闪存也称为单阶存储单元闪存(SLC flash memory),或简称
SLC闪存。SLC闪存的优点是传输速度更快,功率消耗更低和存储单元的寿命更长。然⽽,
由于每个存储单元包含的信息较少,其每百万字节需花费较⾼的成本来⽣产,⼤多数⽤在企
业上,很少有消费型SLC存储设备拿来贩卖。
MLC
多阶存储单元(Multi-Level Cell, MLC)可以在每个存储单元内存储2个以上的信息⽐特,
其“多阶”指的是电荷充电有多个能阶(即多个电压值),如此便能存储多个⽐特的值于每个
存储单元中。借由每个存储单元可存储更多的⽐特,MLC闪存可降低⽣产成本。
TLC
三阶储存单元(Triple-Level Cell, TLC),这种架构的原理与MLC类似,但可以在每个
储存单元内储存3个信息⽐特。TLC的写⼊速度⽐SLC和MLC慢,寿命也⽐SLC和MLC短。
QLC
四阶储存单元(Quad-Level Cell, QLC),每个存储单元有4个bits的格式,寿命为四者之
中最短,⼤约只有500次。
3D NAND Flash
将NAND闪存在垂直⽅向进⾏堆叠和互联,藉以提⾼单位⾯积的存储器容量。
从上⾯介绍可以看出,为了降低成本,增加容量,闪存演进了很多代,⽬前业界主流使
⽤就说3D TLC技术,在不断增加单体容量的情况下,闪存的规模成本已经逐步接近机械磁
盘的价格,⽽性能却可以⼤⼤提升了。

1.2 Flash 在系统架构中的层次地位
⽬前闪存的应⽤很⼴泛,在智能设备和服务器中都有不同的应⽤场景,在这⾥我们重点
探讨的是在企业级存储阵列中的闪存技术,为企业级客户服务。

在上图中可以看到,在构建企业中IT系统时, 在下部如果性能要求不⾼,我们可以使
⽤⼤容量的廉价的机械磁盘,但是越是往上,越接近CPU和内存,我们就需要更快的Flash存
储,⽬前市场上⼀般的闪存存储延迟都在1ms以内(1000微妙),⽽采⽤了相变存储的闪存
可达到20微妙级别,性能可以差别50倍。
这⾥介绍⼀下闪存中的⼀些常⽤术语:

  1. 超额供给
    闪存产品在⽤户可存取的数据空间之外引⼊了额外的预留闪存容量。系统使⽤该超容量
    NAND 空间作为闪存单元失效时的备⽤系统容量。此外,NAND 内存技术仅可将数据写⼊
    或编程到已擦除的数据块中,⽽且⽆法直接重写;但通过超容量算法,存储系统可提供更多
    的已擦除 NAND 内存块,以供数据写⼊之⽤。⼤多数闪存存储系统在闪存模块中使⽤同⼀
    级别的超容量算法。
    不同产品的超额供给的容量不同:
    1)普通的SSD盘的超额供给容量较⼩。例如,500GB的SSD盘,实际裸容量为512GB,
    超额供给⽐例为2.4%。
    2)Flash卡的超额供给容量较⾼。例如,IBM FlashSystem 7200 的⼀块4.8TB的Flash卡,
    实际裸容量为5.76TB,超额供给⽐例20%。借助经IBM FlashSystem 优化的超容量算法,
    BM FlashSystem 可实现⾼可⽤性的闪存存储及更快的写⼊ I/O 性能。从完全空⽩的系统到
    写满客户数据的系统,FlashSystem 均可维持⾼写⼊性能。
    超额供给⽐例越⾼,则⽤户实际得到的闪存容量越⾼,闪存的容错性越⾼,使⽤寿命越
    长。
  2. 均衡磨损
    为了延长NAND闪存的寿命,⽬前闪存介质中均应⽤了Wear Leveling(均衡磨损或磨损
    平衡)机制,它可以尽可能地将⽂件平均分配到每⼀个区块(Block),保证对每⼀个闪存
    块的编程/擦写次数⼀致,避免对某⼀部分区块的过度地重复进⾏擦除操作⽽报废,从⽽有
    效延长了闪存介质的写⼊寿命。
    磨损均衡算法⼀般分为静态和动态,当前所有主流的闪存介质均⽀持动态磨损均衡。动
    态磨损均衡是指尽量选择那些“较新”的区块来使⽤,这种算法的优点是复杂度低,易⽤控
    制,不会占⽤太多资源,但缺点则是这种算法还不是最优。
    基于动态磨损均衡之上的静态磨损均衡,则是对那些“不经常更新”的⽂件占⽤的区块进
    ⾏优化处理,将他们剔除转移⾄⼀个“较⽼”的区块中。因为这些⽂件不常被修改,所占⽤的
    区块被磨损的次数更少,以此来达到优化的⽬的,进⼀步发挥“磨损均衡”的功效。
    静态磨损均衡最⼤的优点⾃然就是对闪存介质的寿命进⾏了充分优化,但显然,它的缺
    点在于复杂性较⾼,会⼤量占⽤主控资源。
    所以说闪存介质寿命的长短不仅仅取决于闪存的P/E次数,磨损均衡算法甚⾄包括后⾯
    的垃圾回收机制都起着⾄关重要的作⽤。
    IBM FlashSystem 使⽤耗损均衡算法在系统内的更多闪存中分布写⼊活动,以避免由于
    单个位置写⼊活动过于频繁⽽导致 NAND 芯⽚过早抹除。在 NAND 内存耐久性有限的前提
    下,任何闪存存储解决⽅案必须将写⼊活动或编程/擦除循环分布在尽可能多的 NAND 位置
    上。
    借助IBM FlashSystem 耗损均衡算法,连同之前所述的经优化的超容量算法,便可充分
    利⽤更多的 NAND 存储空间,从⽽更好地维持 IBM FlashSystem 闪存存储系统的寿命周期。
  3. 垃圾回收
    在闪存中,每个物理块都有⼀个值,当物理块上的所有页都被擦除为空闲时,当前块可
    以写⼊数据,该块为空闲块(Free)。当对数据块写⼊没有成功则该块为脏块(Dirty)。写⼊成功的有效数据块为⼲净块(Clean)。不能将数据写⼊⽽只能读出的块为坏块(Bad)。
    闪存设备驱动层提供读、写、擦除操作。因为闪存特殊的硬件特征,数据是按页(page)读
    写,按块(block)为基本单位擦除。闪存不⽀持本地更新,要更新数据需将新数据存储在
    空闲页,⽽将原来存放数据的页作⽆效记号,当空闲页少于⼀定数量就会激发垃圾回收机制,
    将⽆效的页回收并以块为单位进⾏擦除。
    IBM FlashSystem 存储技术采⽤ IBM 专有的垃圾回收、重定位和块挑选算法,不仅可提
    升闪存的耐久性,还可以降低写⼊延迟。⼤多数闪存存储垃圾回收算法采⽤对称设计,所有
    的数据块和存取操作会采⽤同⼀处理⽅式。IBM FlashSystem存储技术更进⼀步,使⽤详细
    的 NAND 块特性数据来确定每个数据块的健康情况,并将之与接下来的写⼊活动相匹配。
    IBM FlashSystem 的垃圾回收算法能够考虑多个属性,以减少过多的写⼊活动(写⼊扩增)
    并尽可能延长每个 NAND 数据块的寿命。
    结合优化的超容量算法及耗损均衡算法,IBM 的⾼级垃圾回收算法不仅可提升 闪存模
    块的闪存耐久性,还可为IBM FlashSystem 存储系统提供⾮常⾼的写⼊ I/O 吞吐量。
  4. 使⽤寿命
    说到闪存的使⽤寿命问题,我们的第⼀反应会去看闪存介质的种类。我们都知道闪存介
    质的使⽤寿命和闪存介质的种类有很⼤关系,SLC介质寿命最长,其次是eMLC和MCL介
    质。这种回答本⾝没有错误,但是并不全⾯。因为决定闪存使⽤寿命的因素除了介质的种类
    之外还有很多其它重要因素起着关键的作⽤。这些因素包括
    1)只有写操作会影响闪存的使⽤寿命,读操作不会影响寿命。闪存的使⽤寿命并不是
    简单地看介质类型的P/E数值(擦写次数),因为在闪存介质种类相同的情况下,写⽐例⼤
    的应⽤所使⽤的闪存存储的寿命会⽐读⽐例⼤的应⽤所使⽤的闪存存储的寿命短。闪存阵列
    的寿命与闪存介质类型,写操作速率,阵列容量相关:

    以IBM FlashSystem F900闪存存储为例,配置20TB容量,如果采⽤如果以每秒钟100MB/
    s的速率持续的向闪存存储内写⼊数据,需要19年的时间才能达到闪存的使⽤寿命上限。
    根据以上例证可以说明,闪存存储的寿命⾜以满⾜⽬前企业级客户的数据存储需求。完
    全不必担⼼闪存使⽤寿命到达极限的问题。
    2)除了以上举例说明的闪存使⽤寿命的影响因素外,某些⼚商的闪存阵列⾃⼰独有的
    ⼀些技术来保证更长久的使⽤寿命。例如IBM FlashSystem,除了上⾯已经介绍过的超额供
    给、磨损均衡和垃圾收集技术来延长闪存存储寿命外,IBM FlashSystem还有Variable Stripe
    RAID(可变条带RAID技术)和专有的 ECC保护技术来提⾼闪存存储的使⽤寿命。
    1.3企业级存储阵列中的Flash SSD的种类和选择

    传统的SAS固态硬盘(SAS SSD),由⾏业标准的NAND闪存组成,并具有SAS接⼜。它们
    是市场上常见的⼯业商品,⽽存储系统中的软件功能将提供潜在的差异。
    NVMe SSD,它们使⽤在SAS SSD中看到的相同的NAND闪存。由于采⽤了NMVe 协议,
    提升了通讯的效率,所以性能得以提升。⽬前也是以⼯业商品形式提供。
    FlashCore 模块 (FCM) SSD,采⽤ IBM 独有技术研发的SSD,它基于NAND Flash并使
    ⽤NVMe接⼜应该不会感到意外。然⽽,与⼤宗商品SSD不同,FCM SSD在每个模块中都内
    置了硬件,以提供性能⽆损在线压缩和加密能⼒。这意味着您获得了NVMe技术的性能优
    势,但也获得了不影响存储性能的压缩和加密的能⼒。
    存储级内存(SCM),⽬前速度最快的SSD,接近与内存的访问速度!它使⽤与FlashCore
    模块和NVMe SSD相同的NVMe接⼜,但它使⽤的是完全不同类型的闪存。这些设备速度更
    快,价格也更贵。此外,与SAS,NVMe以及FCM SSD相⽐,它的存储容量相对⽐较⼩。其
    独特之处在于超低延迟。当客户使⽤带有FCM或NVMe SSD的SCM来减少总体延迟,并在某
    些情况下通过使⽤EasyTier增加IOPS时,可以实现⽤较⼩代价达到整体提升性能的效果。
    1.4NVMe让 Flash 如虎添翼

    在过去⼗⼏年业界在企业级存储中最⼴泛使⽤的是FC协议,它提供了稳定可靠和⼴泛
    的连接性。随着Flash技术的⽇益成熟,数据中⼼中基于闪存的存储⼴泛采⽤,业界认识到
    ⼀个标准化、⾼效的协议和接⼜的需求,这些协议/接⼜可以针对低延迟、性能密集型存储
    介质(如闪存)和即将到来的⾮易失性内存技术进⾏更好的优化,充分释放他们的能⼒。
    NVM Express协会开发了NVM Express规范,并描述了NVMe与其他接⼜(如SATA和SAS)
    的区别:
    NVM Express (NVMe)是⼀种经过优化的⾼性能可伸缩主机控制器接⼜,旨在满⾜企业
    和客户端系统使⽤基于PCI Express的Flash存储的需求。NVMe旨在超越硬盘驱动器技术的⿊
    暗时代,它是为⾮易失性内存(NVM)技术从头开始构建的。NVMe旨在提供⾼效的访问,从
    今天的NAND闪存技术到未来的⾼性能⾮易失性内存技术。
    NVMe解决了⼏个性能指标,包括带宽、IOPs和延迟。例如,SATA的最⼤IOPS可能是
    200,000,⽽NVMe设备已经被证明超过1,000,000 IOPs。通过⽀持PCI Express和诸如RDMA
    和Fibre Channel之类的⽹络, NVM Express可以⽀持⽐SATA或SAS更⾼的带宽(例如,⼀个
    PCIe Gen3 x4提供4 GB/s)。最后,下⼀代内存技术的读取访问延迟可能低于⼀微秒,这需要
    ⼀个精简的协议,该协议允许端到端延迟低于10微秒,包括软件堆栈。
    NVMe是⼀种全新的存储架构,从软件堆栈到硬件设备和系统。
    NVMe采⽤PCIe 接⼜
    今天市场上有多种NVMe设备
    多种存在形式,包括2.5英⼨驱动器
    NVMe是为⾼性能⽽设计的
    增加了IOPS、带宽和更低的延迟
    利⽤Flash和下⼀代⾮易失性存储器
    利⽤多核环境,⾼I/O并⾏性
    NVMe的架构精简⽽简单,具有精简的命令集。所有通信都基于成对提交和完成命令队
    列的机制,该机制使⽤固定⼤⼩的条⽬,可以通过单次内存访问获取并快速处理。由于很⼩,
    NVMe命令描述符可以⾮常有效地缓存在CPU处理器缓存中。总的来说,NVMe队列的设计
    提供了⾮常快速、轻量级的命令处理和命令完成,⽽不会消耗很多CPU周期。
    由于NVMe的简单性、并⾏性和效率,与SCSI相⽐,它提供了显著的性能提升,⼀些指
    标包括:
    对于100%随机读取,NVMe的IOPS是12Gbps SAS的3倍
    对于70%的随机读取,NVMe的IOPS⽐12Gbps SAS⾼2倍
    对于100%随机写操作,NVMe的IOPs⽐12Gbps SAS⾼1.5倍
    对于100%顺序读取:NVMe的吞吐量⽐12Gbps SAS⾼两倍
    对于100%顺序写操作:NVMe的吞吐量⽐12Gbps SAS⾼2.5倍
    除了IOPS和吞吐量之外,上述命令结构的效率还减少了⼀半的CPU周期,并且⽐12
    Gbps SAS减少了200微秒的延迟
    NVMe的出现对全⾯发挥闪存的性能提供了最好的舞台,除了在存储系统内部使⽤
    NVMe技术之外,如何将这项技术应⽤到服务器端,也是⼀个重要的发展⽅向,⽬前从连接
    技术上,可以采⽤的技术包括:
    FC-NMVe, 使⽤光纤⽹络
    NVMe-oF over Ethernet,使⽤以太⽹路,具体有两种形式:iWARP / RoCE
    NVMe-oF over InfiniBand,使⽤InfiniBand⽹路
    有了这些连接技术,加上服务器端NMVe接⼜卡及协议的⽀持,就可以实现端到端
    NVMe⽀持,发挥性能的最⼤优势,让 Flash 存储如虎添翼。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广