✎✎✎“存储极客”栏目再次与大家见面啦!在这里,只有一位大咖名叫“存储”,它的粉丝我们称为“存储极客”!
评估存储系统中SSD的寿命,既不是只有SLC、MLC、TLC之分那么简单,却也有办法绕开那复杂的一大堆技术参数。我们的建议是:了解闪存特性,抓住关键指标,从应用负载入手作出决策。
在前几期的《存储极客》系列连载中,我们跟大家讨论过机械硬盘不常被人们注意的一点——读写寿命(建议负载,单位:TB/年)。同时也提到了“闪存有P/E cycle(编程/擦除周期)的限制,也就是通常所说的写寿命……”
由于SSD相比HDD巨大的性能优势,用户不再需要为了IOPS而去“堆磁盘”;另外SSD单盘容量(1.92、3.84TB)也已经远超15000转硬盘(最大600GB)。如今用3D NAND SSD替代同容量的高转速企业级HDD,考虑到节省的盘柜空间,已经成本更低了。在这种情况下闪存想不流行都难。
以SSD/闪存为介质的存储系统,用户适当关注其介质寿命是正常的。而这就是本文要讨论的重点。
不同的闪存单元结构,直接影响到编程(擦除/写入)的时间长短和次数,但最终表现在SSD成品上的还有许多其它因素。
首先是NAND方面,这里有几个要点:颗粒等级、制造工艺,还有2D/3D之分。比如早期业内共识的一种分类方式是eMLC优于MLC(cMLC),Intel用的是另外一种叫法——HET (High Endurance Technology) 和SET (Standard Endurance Technology) 。与其说今天eMLC一词有点被“滥用”,不如承认现在的企业级SSD写耐久度范围确实比较宽,因为还牵涉到一些NAND基础单元之外的东西。
我们在以前的文章中写到过“利用多层堆叠封装,3D NAND能够提高闪存颗粒的密度。同时,搭配更加成熟3x-50nm半导体工艺,在相同的闪存类型(比如MLC vs. MLC,TLC vs. TLC)上比现今前沿的1x-20nm闪存会有更好的耐久度。众所周知,随着cell单元尺寸的不断缩小,NAND的P/E Cycle(编程/擦除周期)呈不断下降趋势,厂商们用更强大的纠错算法以及下面要讲到的“OP”来应对。”
同样的NAND闪存颗粒,制作成SSD闪存盘成品又可以有不同的等级。一个重要的因素是超量配置(Over Provisioning),许多朋友应该都知道闪存的写放大效应,这里就不详细展开了。在其它条件相同的情况下,SSD的OP比例越大,垃圾回收效率一般就越高,控制住写放大,写入寿命和性能就会相应越高。
所以,最终的结果有可能是MLC (eMLC) SSD的写入寿命达到了SLC的水平,3D TLC超过(2D)MLC的也不鲜见。因此,对于大多数最终用户而言,我觉得主要关注DWPD(Drive Writes Per Day)——每天可以写入整盘容量的几倍一项指标即可,通常指的是5年(x365天),也有按3年标的。
注:PBW(生命周期内总写入容量)= SSD容量x DWPD x天数
好在规范的企业级SSD厂商大都比较靠谱,出于对用户负责的态度这一指标也不会乱写。至于支持闪存/SSD的存储阵列,早期我看到大家普遍在配件列表中用SLC、eMLC的方式区分,如今逐渐转向更加合理有效的方式——写密集型、读密集型和混合用途SSD(介于前两者之间),分别对应不同的DWPD区间。
接下来的一个问题是:如何判别阵列上的SSD?对于配置通用SAS接口的产品,一般不难看出其供应商和型号;如果是采购之前,就要看阵列厂商的资料和报价说明。在本文中我们“走了个捷径”,从下面这张图说起:
众所周知,SPC-1是评估企业存储性能的基准测试,具体一点说是模拟的OLTP交易型工作负载。这里引用的报告也不算新闻了,Dell Storage SC4020使用6个SSD,测得SPC-1 IOPS 112,479.81,性价比$0.37/SPC-1 IOPS,数据保护为镜像方式。
为什么我们要列出这一份报告,它与闪存/SSD的等级和寿命计算又有什么关系呢?
在这个SPC-1报告的配置图中,注明使用了480GB SAS SSD,并且根据型号“HUSMR1650ASS200”可以查到供应商是HGST。
注:不是每一份SPC报告都会公布使用的驱动器具体型号,这也是我们使用Dell这个来分析的原因。基本上每个存储系统厂商都会有不只一家SSD供应商来源,因此在SC4020中如有480GB SSD来自其他品牌也属于正常。
根据详细的测试环境配置,生成负载的前端主机使用了一台Dell PowerEdge R720服务器,安装了两颗Intel Xeon(至强)2.0GHz E5-2650 8核CPU。另外双控的SC4020存储每个控制器也各有一颗4核Xeon处理器。
了解到全闪存阵列测试性能和SSD配置,为我们在下一篇中继续寿命估算和选型建议打下了基础。
这款SSD属于使用MLC闪存的Ultrastar SSD1600MR系列,其型号在HGST官网上的资料中对应容量为500GB。出于统一的考虑,OEM的型号把SSD容量调小些也属于正常(物理闪存容量不变)。性能参数什么的感觉都在正常范围内,而现在我最关心的是PBW写入寿命——2.4PB,4KB随机写。
前面提到过写放大,它与写入方式也有关系,企业级SSD通常是按照最差的情况——小数据块随机写来考虑。按照5年365天来计算,其DWPD指标大约为2.63。细心的读者可能会发现这一数值要高于400GB和800GB的DWPD=2。
按照行业惯例的分类,这个系列SSD属于读密集型产品。
不知是否有读者朋友和我一样有类似的习惯——400、800GB这些容量点在企业级SSD中比480、960GB更好一些?如果前者出现在写寿命更高的系列中其OP比例往往更大,但现在讨论的情况却表明了一点——在DWPD同级的读密集型SSD中也可能有400、800GB这样的型号,此时它们的物理闪存容量与500(480)、1000(960)GB显然是不同的。
上图引用自戴尔SC阵列上支持的SSD分类,而我们的讨论并不限于某家存储厂商。除了容量点之外,不同类别之间的最大差别就是写入寿命和性能。无论写密集型SSD采用SLC还是MLC,读密集型采用MLC还是3D TLC,其DWPD值仍然保持在原来的范围内。
这个表里既有业内通用的划分方法,也补充进我了解到的情况(橙色字体)。尽管企业级读密集型SSD的DWPD可以在0.1-3之间,但实际上DWPD<1的型号主要用于服务器启动盘和一些写入较少的“冷”存储应用(曾看到Intel有种分类将其称为数据中心SSD,区别于传统意义上的企业级)。
我们看到用于企业级闪存阵列上的SSD,一般至少要达到DWPD 1-3的范围。
此外,据了解采用SLC闪存和5年DWPD>20的SSD会慢慢淡出主流市场。不过我们无需因此对闪存寿命有太多担心,因为按照半导体存储介质自身的特点,生命周期总写入量(PBW)又和SSD容量成正比,DWPD低可以用容量来补。比如说目前DWPD=25的SSD常见容量有400GB,其总写入量为18.25PB;DWPD=10的SSD容量已达1600GB,总写入量已高达29.2PB。
本文到此先告一段落,在下篇中将继续分析全闪存阵列的写入负载,包括SPC-1这样的极限性能测试,以及更加贴近大多数用户的计算模型。希望能够对大家选择不同等级/容量的SSD带来参考。