与消费级SSD相比,企业SSD更加注重可靠性。如何判断一块企业级SSD的可靠性,通常采用以下两个维度:
1. 根据JESD218A Enterprise standard的要求:
UBER < 1 sector per 10^16 bits read (每读取10的16次方bit数据,错误的数据不超过512Byte)
2. MTBF,即平均故障间隔,(是指相邻两次故障之间的平均工作小时数)
2015年美国硅谷的闪存峰会上,来自中国的当红炸子鸡—企业级SSD厂商MemBlaze给美帝攻城狮们分享了提高NMVe SSD可靠性的技术。
介绍人李月宽
(小哥挺帅)
用于举例的明星产品 PBlaze4
月宽兄的技术分享主要涵盖三个方面:
一
元数据保护技术
元数据(Meta Data)是固态硬盘中非常重要的系统数据,FTL表、磨损均衡(Wear Leveling)相关寿命记录信息、读取\擦除计数(Erase Count)、空闲block、固件等等,我们都定义为元数据。
元数据需要经常被访问和更新,但是MLC型flash只有3000次的擦写寿命,元数据对闪存寿命的过度消耗会导致固态硬盘整体寿命的下降。
在PBlaze4上,在元数据保护技术主要通过pSLC和多副本实现。
首先,为了提高元数据的一致性,提高固态硬盘整的的使用寿命,将元数据存放在pSLC。(pSLC的叫法来自那个‘Toshiba–,Toshiba–,新一代的东芝‘,是MLC的变体),在同一个NAND颗粒上划分出来的一块区域,具有SLC低错误率和高寿命的特点,而且一般pSLC 的擦写次数可以达到20000次,是MLC擦写寿命的6倍。
其次,PBlaze4的元数据会有4个副本,并且跨LUN,跨channel进行存储。这种机制通过增加元数据的冗余度保障数据安全,而且元数据被分散存储在多个NAND颗粒上,所以只要有一个LUN 可以工作,元数据就能被读取更新。
二
掉电保护技术
SSD在Write back时需要掉电保护技术,侦测到系统掉电之后,SSD上DRAM上的数据需要及时刷写到NAND上。
首先是FW调度策略
- 每个Queue里至多两个相同的命令(读,写或者擦除)
- 写命令和擦除命令不放在同一个Queue里
-
每个Queue至多4个命令
其次是电容保护:
保证侦测到掉电时有15ms的时间确保DRAM里的数据能写入NAND
提高电容供电时间的两种方法:
1.提高电容的容量,这种方法比较容易实现,不必增加额外的电路设计。但是这种方案成本较高,需要使用超级电容或者多个电容实现。
2.改变电压。这种方法的优势是成本较低,可以使用常见的铝电解电容实现。但是其缺陷是电路设计复杂,需要升压和降压的电压转换器。并且占用的PCB面积也较大。
对于两种效果,Memblaze通过测试做了对比
(1a,1b应该是指电容的实现方法不同)
三
高温保护技术
从PCIe SSD的设计和使用角度来说,温度对于设备性能、稳定性及寿命都有非常大的影响。
PBlaze4安装了多个温度传感器(图中红点部分)用于监控设备不同部分的温度
Memblaze为PBlaze4设计了可靠的温度保护逻辑,而这个保护逻辑算法就是高温保护技术的核心。
对比上图,这个逻辑很好理解,理想情况是这个样子滴:
- 平时run在正常性能下,温度达到第一警戒点T1(这一温度阈值可通过NVMe setfeature指令进行设置),主动降低性能
- 低性能模式下,温度逐渐降低,回到正常点T,恢复正常性能
-
如果温度达到第二警戒点T2,直接罢工(PBlaze 4所有读写操作会立刻停止,以防止电路过热损坏NAND中的数据。此时需要技术人员重新检测散热环境后,方可继续使用该产品。)
不理想(不代表一定不会出现)的情况是这个样子滴:
温度升高–>速度加快(功耗提升)–>温度再升高–>速度再加快(功耗再提升)–>死给你看。