当前位置:存储行业动态 → 正文

脸书SSD失效报告引发的一次闪存技术讨论

责任编辑:editor006 作者:朱朋博 |来源:企业网D1Net  2015-07-13 16:38:32 本文摘自:CSDN

从SSD到加速卡再到全闪存阵列,近几年闪存新技术新产品不断涌现,存储巨头在闪存上角力,存储初创公司也大多选择在闪存上找到自己的位置,而且闪存密度和应用水平越来越高,更有消息称,SSD将于两年内突破HDD的容量/价格“临界点”,加上媒体对闪存的鼓吹,一些人想当然的开始认为闪存就是绝对正确,闪存凶猛!但一直以来就有一波人冷静的看待闪存确实存在的问题,这其中有一些用户有一些行业专家,但从来没有人站出来摆出数据和事实说些什么,直到最近Facebook的一篇报告(点击下载)丢出来之后,人们才重新把目光投向这有意无意被忽视掉的问题-——闪存失效问题,换句话说,闪存能放心用吗?

较早前的应用主要出现在一些工控设备、移动设备中,闪存在现在数据中心中的主要形式就是SATA/SAS接口SSD,PCIe加速卡和闪存阵列。Facebook的闪存失效大规模研究正是在一个运行着现代程序和系统软件的数据中心完成的,涵盖了闪存主要的应用形式,观察了闪存的整个生命周期里的各种特性特点,不同于以往闪存从业者自己发表对闪存的认识,不同于用户对产品使用中发现的个别bug现象,这篇论文第一次展示了闪存SSD的可靠性大规模研究结果,具有很强的实际参考意义。

6月29日,笔者听到Greenliant亚太营销副总裁李炫辉,PMC资深产品架构师《大话存储》作者张冬,达沃时代雷迎春博士,乐生活与爱IT微信号作者SDS技术专家Peter Ye,以及人人网李蓓、美图杨尚刚等互联网用户的对这一热点技术话题的讨论。

价格决定买不买

毫无疑问,更便宜更快速更可靠是每个买闪存卖闪存人的不懈追求,其中价格是许多人决定是不是用闪存的首要因素,如何花更少的钱拿到更多的闪存容量呢?其实价格这个话题跟密度有很大关系,从SLC、到MLC到TLC,到QLC,每个单元存储的bit随之增多,单位容量的价格越来越低。

但这也是有代价的,72纳米的MLC可擦除次数为1万次,35纳米的MLC可擦除次数则降到了几千次,使用寿命明显降低。虽然说低制程的产品比高制程产品便宜很多但为了保持较高的可靠性,许多企业级产品一直维持较高的制程工艺,这也是闪存厂商开始青睐3D NAND的原因。

  加州大学2012年的一项研究:闪存密度增加带来可靠性的降低

另外,由于单位空间bit的增多,单位空间的复杂度提升,随之而来的是可靠性不断降低,性能的不断降低。

性能要稳定才能用

随着使用的增多闪存的性能会逐渐衰减,危害在于,比如某企业级客户中一个节点需要处理2万个交易,当性能衰减后处理的交易数显著降低,这对用户来说是很难接受的。既然性能的衰减不可避免,那么有一个问题是:用户如何看到这些性能衰减数据呢?

谈到这个问题前先介绍一个闪存的特性,许多厂家在做测试的时候要10 DWPD(Diskful Writes Per Day),为什么不是别的次数呢?这是因为闪存这类电子器件在进行数据操作的时候要释放电子调整电位,当突然电子隧道打通之后,电子泄漏到规定的阀值就马上关闭隧道之后,实际上里面的电子仍然处于抖动状态,所以需要一个放松时间。Greenliant业务发展副总裁李炫辉介绍说。

图注:闪存的性能依赖于很多因素,如主机配置,主机访问模式,块大小,闪存架构等等,而且性能测试非常耗时。

回到刚才的问题,我们了解到:厂商其实是了解这种情况的,但是客户并不了解衰减程度,只有实际运行才能看到表现,然而性能测试非常耗时(上图)。

“一个产品应该在整个生命周期里面定标准是99.9%的时间里面性能不低于90%。我们现在要做的是在整个五年的生命周期里面性能是5的衰减。(如下图)” 这句话是李炫辉在介绍说他们产品时说的,一定程度上这也对闪存的应用提供了一种可能。

  Greenliant的产品在测试中的闪存性能衰减

由于闪存设备在长期擦写情况下,坏块会逐渐增多,故障率上升,由此会带来潜在的性能大幅下降。(论文4.1中有所阐述) 。

Greenliant对产品进行长期擦写以及性能测试。在疲劳测试环境中,每天全盘擦写50次,超过18000次擦写后,性能衰减不超过10%。

可靠性决定敢不敢用

美图网杨尚刚表示:“性能和可靠性相比,用户更为关注的是可靠性。”可靠性的测试没有通用的灵活工具,而是要靠长时间实际写入来观察。

  图注:SSD失效率变化曲线

在Facebook的报告中我们看到了如上图这样的调查结果,SSD的出错并不是简单的随着磨损次数的增加而增加,也就是说并不都是过度擦写造成的。还有什么原因呢?

当闪存颗粒没有经过大规模读写操作时是稳定的,有大规模操作后不好的颗粒坏掉,这时靠OP(over provisioning)过度配置空白的颗粒开始替换,一些没有替换过来的就出现故障(Failure)。

报告中也提到,早期替换较多的后期更为稳定,这是因为早期有一些处于临界状态的块没被替换掉,当突破临界值之后故障(Failure)就出现了,随后稍微稳定些,再往后又出现一些故障,这就是算法的问题了。

  图注:温度与失效率的关系

高温会带来高的失败率,但是通过节流SSD操作看来可以极大地减少高温带来的可靠性负面影响,但是会带来潜在的性能下降。节流的做法也很简单,当温度过高时对供电功率进行限制。温度和可靠性相互矛盾,这就需要在板卡的设计中做到均匀散热,防止热点,这就是选用分布式架构的原因之一。

  Greenliant的分布式ECC

以Greenliant的Gcard为例(上图),这里采用了分布式ECC,分布式的组件布局降低单个组件的功耗和温度,防止温度过高对系统可靠性和稳定性的影响。

另外,也是因为采用了分布式ECC,还带来了更可靠的校验计算能力,同时,Built-in RAID保护和掉电数据保护也增强了数据的可靠性。

降低每一个颗粒的发热量,实际上就使系统会更加稳定、更低,可靠性就更高。然而,并不是说温度越低闪存的性能越高,因为低温会影响到电子驱动性能,合适的工作温度是50-55度之间。比如做控制器的需要计算控制器的发热量,而且随着对数据中心换进温度的调整(出于环保要求-数据中心的温度有所提升),在设计的时候需要重新考虑温度的影响。

几位专家也表示,闪存的可靠性评测也没有一个通用工具,各厂家在测试可靠性的时候只有最笨最原始的办法,就是不断擦写,这也是一个耗时的过程。

  图注:报告中研究也指出:读干扰并不普遍,但是写干扰有影响。

李炫辉提到读干扰基本上不会影响到可靠性,因为闪存颗粒里面提到当对一个cell进行加电或放电操作的时候,会对临近的cell产生波动。读没有影响,但写一般会有影响的,因为写是要重新加电,要把电激发到0。

其实从设计的角度来讲,整个设计的阶段都要考虑可靠性,比如当闪存固件升级的时候,厂商要把要把花至少一个月时间把整个板卡的测试跑一遍。当闪存在更新固件后,可能由于因为引入高密集的算法导致发热量会,进而影响板卡的稳定性。另外也要解决一些可能出现的新BUG。

  闪存的固件更新

寿命决定你要怎么用

寿命这块内容的话,我们都知道闪存颗粒的读写是有次数限制的,从SLC到TLC依次下降,在实际使用中,为了提升闪存的寿命第一个提到的就是:“磨损均衡”(Wear Leveling)。

磨损均衡:磨损均衡又分为动态磨损、静态磨损和全景磨损。全景磨损是在颗粒级做一次磨损,动态磨损、静态磨损在块级做磨损,这些磨损需要在控制器操作下来完成。结果是增加了寿命,降低性能。

  图注:实际写到SSD里的数据与操作系统反馈的数据量不一样

优化读写次数:由于SSD控制器的优化以及系统软件的缓存机制,操作系统写到闪存SSD的数量并不能精确地反映闪存Cell上的擦写数量。

当SSD出现坏页和坏块的时候许多人都希望厂商可以提供一种工具来把坏掉的部分屏蔽掉,其实这样的工具是有的,只是有些厂商不会提供给用户。为了解决这种情况,提升使用寿命,许多SSD厂商普遍的做法是还只是磨损均衡。

  图注:分散的数据布局,小碎片的数据布局对失败影响会非常大。

跨SSD物理地址空间的稀疏逻辑数据布局(如,不连续数据),需要通过大量的存储在SSD内部DRAM缓存的metadata来跟踪逻辑地址翻译, 会极大地影响SSD失败率。

如果说你的数据布局和物理的区域布局非常分散,就是说本来我在逻辑上是连续的数值,但是在物理上是分散布局,这对损害值会大。这和我们磁盘是完全不一样的,磁盘是说我一个逻辑上连续的文件最好是分散的布局。李炫辉举例说:曾经碰到一个用户,他的应用基本上是几十个B的写,连K都到不了,结果用了三个月SSD就不行。

在注意以上的特性后,我们可以做一些用法上的调整,比如把一块写多的盘换到读多的环境下,这就可以延长寿命。

结语

以上是围绕这次报告讨论过程中的几个要点,闪存确实存在许多问题,讨论中还谈到了许多一些用户不敢用PCIe的原因,限于篇幅和一些原因不便多说。

关键字:闪存SSD坏块

本文摘自:CSDN

x 脸书SSD失效报告引发的一次闪存技术讨论 扫一扫
分享本文到朋友圈
当前位置:存储行业动态 → 正文

脸书SSD失效报告引发的一次闪存技术讨论

责任编辑:editor006 作者:朱朋博 |来源:企业网D1Net  2015-07-13 16:38:32 本文摘自:CSDN

从SSD到加速卡再到全闪存阵列,近几年闪存新技术新产品不断涌现,存储巨头在闪存上角力,存储初创公司也大多选择在闪存上找到自己的位置,而且闪存密度和应用水平越来越高,更有消息称,SSD将于两年内突破HDD的容量/价格“临界点”,加上媒体对闪存的鼓吹,一些人想当然的开始认为闪存就是绝对正确,闪存凶猛!但一直以来就有一波人冷静的看待闪存确实存在的问题,这其中有一些用户有一些行业专家,但从来没有人站出来摆出数据和事实说些什么,直到最近Facebook的一篇报告(点击下载)丢出来之后,人们才重新把目光投向这有意无意被忽视掉的问题-——闪存失效问题,换句话说,闪存能放心用吗?

较早前的应用主要出现在一些工控设备、移动设备中,闪存在现在数据中心中的主要形式就是SATA/SAS接口SSD,PCIe加速卡和闪存阵列。Facebook的闪存失效大规模研究正是在一个运行着现代程序和系统软件的数据中心完成的,涵盖了闪存主要的应用形式,观察了闪存的整个生命周期里的各种特性特点,不同于以往闪存从业者自己发表对闪存的认识,不同于用户对产品使用中发现的个别bug现象,这篇论文第一次展示了闪存SSD的可靠性大规模研究结果,具有很强的实际参考意义。

6月29日,笔者听到Greenliant亚太营销副总裁李炫辉,PMC资深产品架构师《大话存储》作者张冬,达沃时代雷迎春博士,乐生活与爱IT微信号作者SDS技术专家Peter Ye,以及人人网李蓓、美图杨尚刚等互联网用户的对这一热点技术话题的讨论。

价格决定买不买

毫无疑问,更便宜更快速更可靠是每个买闪存卖闪存人的不懈追求,其中价格是许多人决定是不是用闪存的首要因素,如何花更少的钱拿到更多的闪存容量呢?其实价格这个话题跟密度有很大关系,从SLC、到MLC到TLC,到QLC,每个单元存储的bit随之增多,单位容量的价格越来越低。

但这也是有代价的,72纳米的MLC可擦除次数为1万次,35纳米的MLC可擦除次数则降到了几千次,使用寿命明显降低。虽然说低制程的产品比高制程产品便宜很多但为了保持较高的可靠性,许多企业级产品一直维持较高的制程工艺,这也是闪存厂商开始青睐3D NAND的原因。

  加州大学2012年的一项研究:闪存密度增加带来可靠性的降低

另外,由于单位空间bit的增多,单位空间的复杂度提升,随之而来的是可靠性不断降低,性能的不断降低。

性能要稳定才能用

随着使用的增多闪存的性能会逐渐衰减,危害在于,比如某企业级客户中一个节点需要处理2万个交易,当性能衰减后处理的交易数显著降低,这对用户来说是很难接受的。既然性能的衰减不可避免,那么有一个问题是:用户如何看到这些性能衰减数据呢?

谈到这个问题前先介绍一个闪存的特性,许多厂家在做测试的时候要10 DWPD(Diskful Writes Per Day),为什么不是别的次数呢?这是因为闪存这类电子器件在进行数据操作的时候要释放电子调整电位,当突然电子隧道打通之后,电子泄漏到规定的阀值就马上关闭隧道之后,实际上里面的电子仍然处于抖动状态,所以需要一个放松时间。Greenliant业务发展副总裁李炫辉介绍说。

图注:闪存的性能依赖于很多因素,如主机配置,主机访问模式,块大小,闪存架构等等,而且性能测试非常耗时。

回到刚才的问题,我们了解到:厂商其实是了解这种情况的,但是客户并不了解衰减程度,只有实际运行才能看到表现,然而性能测试非常耗时(上图)。

“一个产品应该在整个生命周期里面定标准是99.9%的时间里面性能不低于90%。我们现在要做的是在整个五年的生命周期里面性能是5的衰减。(如下图)” 这句话是李炫辉在介绍说他们产品时说的,一定程度上这也对闪存的应用提供了一种可能。

  Greenliant的产品在测试中的闪存性能衰减

由于闪存设备在长期擦写情况下,坏块会逐渐增多,故障率上升,由此会带来潜在的性能大幅下降。(论文4.1中有所阐述) 。

Greenliant对产品进行长期擦写以及性能测试。在疲劳测试环境中,每天全盘擦写50次,超过18000次擦写后,性能衰减不超过10%。

可靠性决定敢不敢用

美图网杨尚刚表示:“性能和可靠性相比,用户更为关注的是可靠性。”可靠性的测试没有通用的灵活工具,而是要靠长时间实际写入来观察。

  图注:SSD失效率变化曲线

在Facebook的报告中我们看到了如上图这样的调查结果,SSD的出错并不是简单的随着磨损次数的增加而增加,也就是说并不都是过度擦写造成的。还有什么原因呢?

当闪存颗粒没有经过大规模读写操作时是稳定的,有大规模操作后不好的颗粒坏掉,这时靠OP(over provisioning)过度配置空白的颗粒开始替换,一些没有替换过来的就出现故障(Failure)。

报告中也提到,早期替换较多的后期更为稳定,这是因为早期有一些处于临界状态的块没被替换掉,当突破临界值之后故障(Failure)就出现了,随后稍微稳定些,再往后又出现一些故障,这就是算法的问题了。

  图注:温度与失效率的关系

高温会带来高的失败率,但是通过节流SSD操作看来可以极大地减少高温带来的可靠性负面影响,但是会带来潜在的性能下降。节流的做法也很简单,当温度过高时对供电功率进行限制。温度和可靠性相互矛盾,这就需要在板卡的设计中做到均匀散热,防止热点,这就是选用分布式架构的原因之一。

  Greenliant的分布式ECC

以Greenliant的Gcard为例(上图),这里采用了分布式ECC,分布式的组件布局降低单个组件的功耗和温度,防止温度过高对系统可靠性和稳定性的影响。

另外,也是因为采用了分布式ECC,还带来了更可靠的校验计算能力,同时,Built-in RAID保护和掉电数据保护也增强了数据的可靠性。

降低每一个颗粒的发热量,实际上就使系统会更加稳定、更低,可靠性就更高。然而,并不是说温度越低闪存的性能越高,因为低温会影响到电子驱动性能,合适的工作温度是50-55度之间。比如做控制器的需要计算控制器的发热量,而且随着对数据中心换进温度的调整(出于环保要求-数据中心的温度有所提升),在设计的时候需要重新考虑温度的影响。

几位专家也表示,闪存的可靠性评测也没有一个通用工具,各厂家在测试可靠性的时候只有最笨最原始的办法,就是不断擦写,这也是一个耗时的过程。

  图注:报告中研究也指出:读干扰并不普遍,但是写干扰有影响。

李炫辉提到读干扰基本上不会影响到可靠性,因为闪存颗粒里面提到当对一个cell进行加电或放电操作的时候,会对临近的cell产生波动。读没有影响,但写一般会有影响的,因为写是要重新加电,要把电激发到0。

其实从设计的角度来讲,整个设计的阶段都要考虑可靠性,比如当闪存固件升级的时候,厂商要把要把花至少一个月时间把整个板卡的测试跑一遍。当闪存在更新固件后,可能由于因为引入高密集的算法导致发热量会,进而影响板卡的稳定性。另外也要解决一些可能出现的新BUG。

  闪存的固件更新

寿命决定你要怎么用

寿命这块内容的话,我们都知道闪存颗粒的读写是有次数限制的,从SLC到TLC依次下降,在实际使用中,为了提升闪存的寿命第一个提到的就是:“磨损均衡”(Wear Leveling)。

磨损均衡:磨损均衡又分为动态磨损、静态磨损和全景磨损。全景磨损是在颗粒级做一次磨损,动态磨损、静态磨损在块级做磨损,这些磨损需要在控制器操作下来完成。结果是增加了寿命,降低性能。

  图注:实际写到SSD里的数据与操作系统反馈的数据量不一样

优化读写次数:由于SSD控制器的优化以及系统软件的缓存机制,操作系统写到闪存SSD的数量并不能精确地反映闪存Cell上的擦写数量。

当SSD出现坏页和坏块的时候许多人都希望厂商可以提供一种工具来把坏掉的部分屏蔽掉,其实这样的工具是有的,只是有些厂商不会提供给用户。为了解决这种情况,提升使用寿命,许多SSD厂商普遍的做法是还只是磨损均衡。

  图注:分散的数据布局,小碎片的数据布局对失败影响会非常大。

跨SSD物理地址空间的稀疏逻辑数据布局(如,不连续数据),需要通过大量的存储在SSD内部DRAM缓存的metadata来跟踪逻辑地址翻译, 会极大地影响SSD失败率。

如果说你的数据布局和物理的区域布局非常分散,就是说本来我在逻辑上是连续的数值,但是在物理上是分散布局,这对损害值会大。这和我们磁盘是完全不一样的,磁盘是说我一个逻辑上连续的文件最好是分散的布局。李炫辉举例说:曾经碰到一个用户,他的应用基本上是几十个B的写,连K都到不了,结果用了三个月SSD就不行。

在注意以上的特性后,我们可以做一些用法上的调整,比如把一块写多的盘换到读多的环境下,这就可以延长寿命。

结语

以上是围绕这次报告讨论过程中的几个要点,闪存确实存在许多问题,讨论中还谈到了许多一些用户不敢用PCIe的原因,限于篇幅和一些原因不便多说。

关键字:闪存SSD坏块

本文摘自:CSDN

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^