WatchStor.com — 领先的中文存储网络媒体 | 51CTO旗下网站

新闻资讯 > 硬盘/SSD > 正文
SuperCTO私享会 |赵占祥:企业级SSD技术剖析与应用实践
作者: 佚名 2017-09-11 10:43 【WatchStor】

SSD最大的优势是读写性能高,尤其是随机读写,和HDD相差成百上千倍。目前PCIe SSD一般读写都在1GB/s以上,随机4KB IOPS 250K以上。而PCIe 3.0x8的SSD,带宽能到4GB/s,4KB IOPS 1M!

目前企业级SSD包含了上面的各种形态,M.2和mSATA是直接贴放在主板上,一般用来做系统盘。很多闪存阵列采用了SATA、SAS SSD,分布式存储用PCIe闪存卡比较多。但是,未来盘式可热插拔的SSD是大趋势。

盘式SSD就是传统SATA的形式,适合服务器高密度部署,支持热插拔。目前兼容SAS、SATA硬件接口的PCIe SSD接口叫做U.2 SSD(不过不能直接插在当前的服务器盘位上,需要购买新的支持U.2 PCIe SSD的服务器),也有其他形式的盘式SSD。当服务器有很多个可以热插拔的盘式PCIe SSD之后,存储密度大为提升,更重要的是,盘式PCIe SSD不只可以用作数据缓存,关键数据也可以放在其中。

通过多个盘式PCIe SSD组成RAID阵列,当某个盘式PCIe SSD故障之后,可以通过前面板显示灯确定故障SSD盘位,予以更换。同时,不会造成服务器停止服务或者数据丢失。配备了高密度SSD的服务器对数据中心来说,可以大幅减少传统服务器的数量,因为很多企业应用对存储容量要求并不高,传统机械硬盘阵列的容量很大,却是处于浪费状态。企业对硬盘带宽的要求更高,一台SSD阵列服务器能够支持的用户数是HDD阵列服务器的好几倍。

目前,房租和土地成本越来越高,能够在有限的数据中心空间中为大量用户提供服务对电信、视频网站、互联网公司等很多企业来说,非常重要!

数据中心省下的空间还能租出去,获得额外收入。

 SSD上面最值钱的就是NAND Flash芯片,企业级一般都使用价格比较贵的NAND,质量可靠,寿命长。

 Device Base是通用协议,驱动在Linux内核或Windows系统中自带。Host Base适合针对应用定制化开发。

 

去年底到今年,因为NAND Flash从2D转3D,产能不足,出现了罕见的NAND涨价潮,导致了SSD的全面涨价和缺货,不过明年开始,3D NAND大量供应,不会再有这种情况了。

长江存储还是很有希望的,我估计他们实际会比计划的快,因为按照兔子的习惯,会把对外时间点设的很远,麻痹国外竞争对手。就跟国产航母一样,一直对外忽悠航母没用,结果很快就造出来了。

这张图里的数字只是举例,每种NAND都不一样。

NAND是按照页来管理的,不支持字节级访问,读写最小单位是16KB的页块写之前必须先擦除,而不能覆盖写,于是SSD 才需要垃圾回收(Garbage Collection,或者叫 Recycle)每个块擦写次数有寿命,比如30000次,这个块就很差,几乎不能用了,所以SSD 固件必须做 Wear Leveling磨损平衡,让数据平均写在所有块上

SLC:1个cell存储1个bit

MLC:1个cell存储2个bit

TLC:1个cell存储3个bit

3D NAND:存储层是3D的,可达64层,存储密度更高

性能:SLC>MLC>TLC

寿命: SLC>eMLC>MLC>TLC

容量:TLC>MLC>SLC价格SLC>MLC>TLC

其中eMLC也是MLC,只不过是厂商挑选了晶圆上质量比较好的Die,做了特殊优化,寿命是普通MLC的好几倍。很多企业级SSD采用了eMLC,价格很贵。不过一般eMLC在性能上和MLC差别不大,甚至写时间更长,数据保持时间更短。

从明年开始,主流是3D TLC,容量更大,但是信号更弱,所以对纠错算法要求提升。

FTL其实就是逻辑地址到物理地址的映射。机械硬盘没这个,逻辑地址就是物理地址。固态硬盘每次写不覆盖旧的,而是分配新地址,旧数据作废,所以需要一个映射表。

清理垃圾数据所占的空间,腾出新空间。所以,一般SSD买来后空盘性能很好,但是整个盘写满后,开始垃圾回收,会有一定程度的掉速。掉多少,跟具体应用和盘有关系。从盘本身来说,企业级盘内部预留空间大,一般是20%,所以速度下降比消费级小。从应用类型来说,下降最多的是一直全盘随机写,下降不多的是一直顺序或大文件写。但是读性能是基本不会变化的。

我们看到的1.6TB,3.2TB SSD其实物理上有2TB,4TB。对于每天写入量很大的使用场景,需要了解DWPD参数,知道能写多久。SSD都有SMART数据,用实际业务测试写几天,看看percentage used参数了解用了多少寿命,就可以根据写入数据量推算出用完100%后能写多少数据量。如果说写入量很大,建议购买大容量SSD,容量越大,相同带宽下,寿命更长。

SSD内部有成熟的算法来处理Read Disturb,所以一般用户感觉不到。对于视频网站等读密集型业务来说,Read Disturb的测试很重要。因为几千个用户如果读同一个热点视频,读个几万次后,数据开始不稳定,就会触发SSD内部Read Disturb数据搬移,建议读很频繁的应用,买SSD之前做个Read Disturb测试。方法就是写个10GB(要大于SSD内部的DRAM缓存)左右的文件,然后FIO多线程反复随机读几天,看看性能是否稳定,会不会出现数据错误。

尽管上层会有多副本、RAID等技术来保证数据完整性,但是SSD内部也有各种纠错技术,这样减少上层存储系统的数据恢复操作,提高稳定性。

下面提一些企业级SSD应用实践

上层软件需要优化:很多软件基于慢速设备设计,往往用不满PCIe SSD的高带宽。尤其是在随机读写情况下,软件和文件系统成为性能瓶颈。

对于PCIe SSD,需要软件提高IO深度到几百甚至上千,增加线程数量。

缺少性能观察工具:常用的iostat有很多问题,比如util%就对SSD无效。

PCIe SSD没有电梯算法:不走Linux SCSI协议栈,直接把读写命令发到SSD。

Q&A

Q1、?您怎么看英特尔的Optane?特别是Optane的Memory形态的发展?

Optane最大的优势是延迟短,对于延迟要求高的场景很有用。但是目前价格有点贵。

  Q2、Optane现在好像还需要特殊的驱动以及应用程序的特殊优化,对性能产生的影响预计可以接受么?

兼容性Intel估计都做好了,未来会推出能够字节级访问的Memory形态,直接可以做内存了。

Q3、各家NAND厂商的在TLC芯片本身性能差距大吗?

未来都是3D TLC,性能估计都差不多,就是用法不一样。3D NAND目前还有不少问题,每家厂商都会提供一些Workaround来跳过内部bug。

Q4、各家3D封装技术还是不一样的,不知道性能表现上怎么样?

我没有实际测试过,很多厂商的样片还拿不到。从数据传输频率来说,性能会比以前提升。

当然,SSD主控芯片也要相应升级。SSD的整体性能跟NAND Flash芯片数量,SSD控制芯片通道数量,控制器工作频率,PCIe接口带宽,主板和CPU性能都有关。比如在Intel CPU性能很高,可能用了其他架构或厂商的CPU,性能就跑不上去。

  Q5、能谈谈现在以及未来SSD在发展过程中在擦除次数方面会有提升吗?

整体趋势是擦除次数在下降,最早的SLC擦写次数有10万次,几乎永远写不完。TLC就比较差了,不过3D NAND擦除次数还可以。

同一代产品也会有不同的系列,比如eMLC、eTLC就是擦除次数很高,一般在上万次。普通的TLC在数千次,而廉价的QLC可能就只有几百次。对大部分人来说,是写不完那么多次数的。

如果对写入量要求很高,比如数据采集或者日志记录系统,天天写几十TB,可以考虑买大容量SSD。


标签:硬盘/SSD 

LecVideo
论坛与活动