取消
搜索历史
热搜词
原创
活动
创新2.0
I T
产业
当前位置:首页 >互联网•IT > 存储 > 闪存 > 正文
Facebook闪存失效大规模研究揭示五大不为人知的现象
来源:高端存储知识  :西瓜哥 2015-06-17 09:12:26
SSD现在越来越火了,甚至比中国股市还火。今天在上海和某券商交流了解到,据说现在交易量上来了,大家纷纷购买全闪存阵列解决性能问题,据说某券商一下单就是十几套全闪存阵列,眼红啊。但SSD的可靠性一直也是大家关注的问题。虽然SSD厂商都说自己的产品没有问题,保障5-7年以上的使用,但业界真正的故障率是怎样的呢,这些故障和那些因素有关系呢?

\

SSD现在越来越火了,甚至比中国股市还火。今天在上海和某券商交流了解到,据说现在交易量上来了,大家纷纷购买全闪存阵列解决性能问题,据说某券商一下单就是十几套全闪存阵列,眼红啊。

但SSD的可靠性一直也是大家关注的问题。虽然SSD厂商都说自己的产品没有问题,保障5-7年以上的使用,但业界真正的故障率是怎样的呢,这些故障和那些因素有关系呢?

今天,正好看到一篇卡耐基梅隆大学的论文,对FACEBOOK使用的SSD故障率进行研究,发现很多以前我们没有注意到的现象。西瓜哥感觉这些研究对SSD厂商和用户都还是有价值的,毕竟FACEBOOK的样本量大,觉得有必要分享给大家。

\

看论文是非常枯燥的,因此西瓜哥给那些懒人做一个解读。如果是需要深度了解,请仔细阅读论文和参考文献。

http://users.ece.cmu.edu/~omutlu/pub/flash-memory-failures-in-the-field-at-facebook_sigmetrics15.pdf

作者研究了facebook 4年来几百万小时的SSD全天候(7X24)运行情况。Facebook采用的SSD主要是PCIe的SSD卡。

\

这些SSD厂商的品牌有Fusion-io,Hitachi,Intel,OCZ,Seagate和Virident。据说Fusion-io的量比较大,因为Facebook曾经是Fusion-io最大的客户。

Facebook的SSD一共分6个平台,A-F。每个平台可以理解为一种SSD池。这些平台的服务器配置1或2块SSD卡,有PCIE 1.0和2.0两种接口。每块SSD的容量和使用年限不同。下图是具体的情况:

\

其中UBER指的是不可恢复错误位率。

\

大家知道SSD内部都有控制器,一般SSD都采用ECC进行纠错,只有SSD自己搞不定的错误,系统才能感知。因此,这里的SSD失效率指的就是系统感知的SSD故障率。SSD故障不是只整个SSD都坏了,因为这个和硬盘不同,而是指出现不可恢复错误的SSD比例。

研究人员发现,每个平台的SSD故障率是不同的,差距很大。但最大没有超过40%。B平台每年的不可恢复错误出现最多,可能是写入的数据量比较多,使用时间比较长的缘故。

\

通过weibull统计模型可以发现(西瓜哥数学没有学好,学统计的同学帮忙介绍一下这个模型),一小部分SSD产生大量的错误。

\

而且非常有趣的是,SSD的失效曲线并不是HDD的浴缸曲线, 而是双池曲线。也就是刚开始阶段故障率很低,然后发生了故障,这些早期失效出现并修复以后,系统会进入一个稳定期,随着使用量的上升,故障率相应升高。也 就是SSD的闪存块分为两个池,一个是weaker pool,一个是stronger pool。当wearker pool的cell出现故障被控制器采用冗余的block替换以后,系统就进入稳定期。

\

\

但是,SSD的故障率并不是只和写入的数据量相关,甚至有些系统,如平台D和F,随着写入数据量的增长,故障率居然还下降了。也就是还有其他影响因素,如温度,数据的布局等等。

很多人担心SSD的读会干扰到SSD的可靠性,因为现在的SSD的颗粒都排列得非常紧密。但研究人员发现,读好像对故障率影响很少。

\

SSD的故障率和丢弃的block也有关系,但并不是丢弃越多,故障率越高。前期丢弃比较少块的SSD故障率反而更高,后期进入稳定期后,丢弃块率高的SSD故障率才随之升高。

\

SSD的故障率和其控制器的DRAM使用也有很大的关系。由于数据分散不连续,因此DRAM需要大量的元数据和数据的缓冲。研究人员发现,分散写和分散读对故障率都有比较大的影响。

\

研究人员针对平台B分析了6种工作负载下DRAM buffer使用情况和故障率的关系,趋势也是如果DRAM buffer使用率越高,SSD的故障率越高。

\

研究人员还发现,SSD的故障率对温度关系很大。温度升高,SSD的故障率也升高,如平台A和B。平台C和E在温度升高的时候,由系统进行截流,因此虽然 故障率没有升高,但性能下降。平台D和F出现温度升高故障率下降的趋势,估计是对系统截流和控制功耗或者是其他没有观察的因素联合作用的原因。

\

这个图可以看出温度升高,各个平台截流的SSD的比例。我们看到平台A和B没有做截流,而平台C和E截流则非常明显。

\

SSD其实很耗电的,PCIE 2.0比PCIE 1.0要耗电。一般来说,耗电越高,温度就越高,故障率可能就越高。因此,如果SSD上面没有温度传感器,可以根据耗电量来进行截流。

\

研究人员还发现,由于SSD有buffer,因此,系统写的数据量并不是实际写入到SSD CELL的数据量。因此,根据系统写的数据量来判断闪存的故障率并不准确。

\

这个就是OS观察到的写数据量和实际写到cell的数量的曲线图,大家看到,除了平台C、D和E,其他平台并不是一种线性的关系。

\

总结一下,这份研究报告观察出5个平时我们不太注意的现象:

1、随着写入数据量的增加,SSD的生命周期分为四个不同时期,分别是early detection, early failure, usable life, 和wearout。因此,其SSD故障并不仅仅和写入数据线性相关。因此,如果研发人员在SSD的早期阶段如early detection加强错误校正,有可能能够减低SSD失效的概率。

2、SSD的读干扰影响到可靠性的现象并不常见,大家不用太担心;

3、分散的读写对SSD的故障率都有比较大的影响,因此,应用或者系统采用缓存机制,尽量对SSD进行连续的读写可以有效提高闪存的可靠性。西瓜哥记得百度和华为联合研发的软件定义闪存系统(SDF)就具有这个功能。

4、温度升高,SSD的故障率也会升高。用户要关注那些没有截流机制的SSD,如果有截流机制的,要关注对系统性能的影响。

5、OS系统写入的数据量和实际写入cell的数据量并不一致,因为SSD控制器有buffer和磨损均衡机制。因此,开发闪存感知应用的时候,可能需要考虑这些因素。

编辑:张路麒
关键字:     闪存  大规模  失效  现象 
活动 直播间  | CIO智行社

分享到微信 ×

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。