告诉你:影响PCIe SSD闪存卡使用的几个关键点
[导读]俗话说,一粒老鼠屎坏了一锅汤。一个事件就有可能毁掉一个行业,例如三鹿奶粉事件机会就摧毁了整个中国乳品产业。PCIe闪存卡应用也是如此,
俗话说,一粒老鼠屎坏了一锅汤。一个事件就有可能毁掉一个行业,例如三鹿奶粉事件机会就摧毁了整个中国乳品产业。PCIe闪存卡应用也是如此,一开始,用户对于其带来的超高IOPS性能津津乐道,但也有用户在应用过程中触雷,因为PCIe SSD卡的质量问题,出现了数据丢失。
PCIe SSD的这些“坑”是怎么造成的?是设计问题,质量问题?还是用户的使用问题?恰逢Facebook公司与卡耐基-梅隆大学的研究人员,耗时三年多时间,发布了“闪存失效大规模研究”的专业论文,对影响PCIe SSD卡可靠性的因素进行了分析。
鉴于所涉问题比较专业,为此,我们特别邀请Greenliant亚太营销副总裁李炫辉从专业技术角度进行了解读。
密度、价格和可靠性的关系
SSD所以能够走入人们的生活和工作,这是和闪存价格快速下降密不可分。实际上,我们所使用的闪存,有三种NAND颗粒可供选择:SLC、MLC和TLC,颗粒不同,产品的寿命(耐擦写程度)以及出错的概率是不相同的。目前,从价格容量到寿命,能够被广泛使用的主要是MLC。
“随着密度的增加(如TLC > MLC >SLC),实际上闪存芯片的可靠性是降低的。如今,大家都知道闪存颗粒越来越便宜了,采用20nm制程工艺制造的芯片,其价格只有25nm的60%, 16nm只有20nm的一半价格,越来越便宜了。但价格便宜了,是以可靠性降低为前提的。如今制造趋势是回归高制程工艺,通过多层结构(3D技术)增加容量,提高单个闪存芯片的容量,保持一定可靠性的前提下,降低制造成本。” 李炫辉说。
DWPD性能承诺
闪存和磁盘大一个不同在于随着设备的不断使用,闪存的坏块会不断增加,由此会带来产品性能的 下降。好的产品,在产品的生命周期内,应该保障性能衰减不超过10%。对于用户来说,这是一个非常关键的数据。
李炫辉指出,这个是数据不是理论推测出来的,而是实际测试出来的。其中有一个术语称为DWPD(硬盘每日写入量),10 DWPD,就是每天全盘擦写10次,通过疲劳测试所得出的性能衰减数据。为什么是10次,而不是50次,100次,其中的原因在于NAND有电子元器件组成,有一个放松时间,用于释放电子调整电位的抖动状态。
浴盆曲线和双曲线
磁盘系统的可靠性符合浴盆曲线,开机故障率比较高,稳定使用之后,故障率维持恒定,产品生命周期末端,故障率上升。
与磁盘不同,闪存的 故障率实际呈现双曲线,刚开始使用故障率高,这点类似磁盘。当闪存大规模使用时,质量不好的颗粒就会出现损坏,故障率上升。这时,闪存可以通过OP( Over-provisioning,是指SSD保留他用的空间)的颗粒替换质量不高的颗粒,替换之后,闪存逐步进入稳定工作的状态,故障率降低,直至生命周期的末端,故障率提升。
李炫辉表示,对于闪存来说,早期能够替换临界状态的颗粒非常重要。
控制供电和温度
Facebook研究显示,高温会带来SSD高错误率。
据李炫辉介绍:50℃~55℃是SSD适合的工作温度,稳定过高会带来错误,导致失败。温度过低,也不利于SSD性能的发挥。
为了控制温度,可以通过限电来达到给SSD降温的目的。例如从25W限制到15瓦,温度自然就降下来了,温度和功耗是一个线性的关系。
“但这也是一个危险的办法。”他说。
不论是采用动态还是静态调整,控制供电将导致IOPS性能不可控、不可知。对于敏感性应用,很有可能会影响前端用户的体验。因此,控制温度,避免热点的出现,还需要从PCIe SSD卡的设计来解决。
以ECC引擎设计为例,目前一些PCIe SSD卡,只有2个ECC校验引擎。在应用初期,坏块较少,所需要计算量不大,这些ECC校验引擎尚能够满足需要。但是随着使用,ECC引擎很有可能成为瓶颈,很有可能成为热点,影响卡的质量。
好的设计应该采用分布式ECC设计,一来均衡负载,解决瓶颈,二来也可以让热量分布均匀,有利于散热。但ECC引擎增加也会导致成本上升。在成本和可靠性之间应该力求平衡。
“用户避免使用价格便宜一些,但留有隐患的产品。” 李炫辉说。
磨损均衡的话题
在Facebook的研究中,特别提到了控制器系统优化和缓存对于SSD颗粒擦写次数的影响。
这就涉及到闪存颗粒的保护问题。闪存耐读不耐擦写,为此需要通过策略来提高颗粒的寿命。相关的技术就是磨损平衡,有动态、静态和全局磨损平衡的方式。这些可以改善产品的耐久性,延长使用的寿命,但这也会影响闪存的性能。
先进的磨损平衡算法能够保障没有“热点”颗粒出现,从而提高产品的稳定性和可靠性。
另外需要用户了解的是SSD的存储策略。但系统需要对存储数据的闪存颗粒块进行擦写的时候,首先要将块内的有效数据迁移走,然后对于整个页进行擦写(方法就是加电,将所有单元数据置为1)。因此,对于控制系统而言,尽量避免不对齐数据页的出现(该存储页的空余容量,其他调用没有办法使用。这是最小的存储控制调用单元。)
好的调度控制算法,显然可以提高产品的可靠性和稳定性。另外,缓存的使用,也可以有效减少写操作,也可以达到同样的目的。
总之,由于专业技术知识的缺乏,技术的选用和使用不当,就会影响用户的使用体验,影响用户使用PCIe SSD闪存卡的信心。因此,为了避免“一粒老鼠屎坏了一锅汤”,就需要用户加强对于闪存知识的了解和学习。
为此,李炫辉也呼吁:希望有更多的厂商,能够开放技术,重视技术知识的普及。目前尚没有一个成熟的办法能够区分好的和不好的产品。但随着用户知识水平的提升,好的产品,即使价格稍高,也同样能够获得用户的青睐。这就是真金不怕火炼!