3568|1

6423

帖子

17

TA的资源

版主

楼主
 

Google说闪存不如硬盘可靠,Nimble说RAID 3P+能搞定 [复制链接]

大家知道,前几天Goggle在USENIX FAST 2016发布了一篇论文,说在实际环境中,闪存的可靠性其实不如硬盘。

这可在业界兴起了轩然大波,很多不太了解的客户就会问,这么说,全闪存时代不会这么快来了,还是暂时不考虑全闪存阵列了吧,可靠性不行啊。
其实,仔细研究论文的人,应该是没有这个想法的。因为Goggle说的闪存的可靠性不高,指的只是颗粒层面,到了SSD(我这里用SSD来表示闪存盘)层面,再到AFA(全闪存阵列)系统层面,可靠性完全是可以满足要求,甚至超过HDD系统的可靠性。
这不,Nimble Storage的CTO就是这么一个爱学习的人。今天,西瓜哥就聊聊他对该论文的解读,还有Nimble Storage的应对之道。
Google说,SSD和HDD的故障模式有两点不同:
  • 整盘故障(需要更换驱动器):SSD的年故障率要低于HDD;
  • 部分数据丢失:SSD比HDD有很高的不可恢复错误(每一个扇区,典型大小0.5-4KB,被纠错码(ECC)保护。但一个扇区有太多的比特错误,超过了ECC的纠错能力,就会导致这个扇区的数据丢失)

大家可以看到,其实SSD整盘的故障率其实比HDD低,只是在扇区层面故障率比较高。因此,存储厂商必须了解这些特点,对症下药,才能提高AFA系统的可靠性。
Google的论文还说,原始比特误码率(RBER) 并不能预测不可恢复错误的发生,也就是这两者没有相关性。这个好像和我们的常识不符。但具体原因,Google没有解释。
Nimble CTO说Nimble了解闪存这些故障特点,并在Nimble系统层面已经解决这些问题,并且试图解释为什么RBER和不可恢复错误不相关。
  • 整盘失效

为啥HDD容易整个盘都坏了呢?其实原因很简单,HDD是机械部件,某个部件比如马达坏了,磁盘也就完完了。而SSD是电子器件。
Goggle说他们的驱动器故障率是这样的:
  • SSD:4年多的更换率是4%-10%,平均每年1%-2.5%;
  • HDD:每年2-9%

大家知道Nimble有一个很牛的云监控软件叫InfoInsight。Nimble CTO说,他们也监控了5年,他们的阵列的驱动器整体故障率要低于Google,但比例相似,即SSD的更换率只有HDD的1/3。
但要注意的是,SSD的固件复杂,因为要做FTL和垃圾收集。Google应该针对自己的应用定制了自己的固件,但市场上的商用产品,由于不同的固件版本,故障率可能也不同。
另外,SSD相比HDD来说还是新事物。HDD已经有60多年历史,但现在还不断发现影响故障率的因素。比如就在同一个会议的另外一篇论文就说HDD的故障率受到湿度的影响很大。而SSD才10年多历史,未来估计还会有更多的发现。
Nimble如何应对整盘失效呢?Nimble的triple parity RAID(也叫RAID 3P,喂,这位男同学,不要想歪了,不是那个3P)可以支持3块硬盘同时故障。
当然,Nimble还留有热备盘,这样驱动器故障后可以马上进行重构,减少故障时间。
你可能说,3个校验加热备,是否太浪费空间了?这个,Nimble通过增加RAID组成员的数量解决容量使用率的问题,比如20D+3P+1S,使用率也是很高的。
当然,要减少计算校验的时间和写放大,应该就是Nimble的CASL架构应该考虑的事情了。
  • 部分数据丢失

RAID 3P很好解决了整盘故障,但是如果SSD内部部分数据丢失怎么办?Goggle说,4年来一共有23-60%的SSD丢失过某些数据,而HDD在2.5年里只有3.5%(底层丢失数据但上层还有保护,因此应用系统是不受影响的,不要理解为系统丢失数据)。
如果整个盘只有几个坏块,自己能够修复其实是最好的方式。Nimble把每个盘分成很多chunk,每个chunk比如包含100个扇区,系统在每个chunk加上1个或几个校验扇区,当这个chunk有不可恢复错误时用来进行盘内修复。如果把横向的校验叫盘间校验的话,chunk的校验就叫盘内校验。盘内校验空间一般无需太大,约1%即可。
这样,我们可以看到,Nimble的RAID逻辑结构如下:

由于RAID 3P还多了一层盘内校验,因此,Nimble内部把这个叫做RAID 3P+,哈哈,这个是否有点华为RAID 2.0+的意思。不过,从上图我们看到,由于RAID 3P+还是保留了热备盘,重构的时候热备盘还是容易成为瓶颈。不过,Nimble的人很多从NetApp出来的,因此其CASL必然也吸取了RAID DP的优点,只是变成了RAID 3P而已。不过,基于chunk的RAID肯定比基于盘的RAID重构快,因为只需要重构写过的chunk。
Nimble还说,其实加上热备盘(不是所有厂商都有),应该宣传RAID 3P++,哈哈。
还有,针对静默故障,Nimble也采用checksum校验码保护每一个块。并且后台会扫描并修复发生问题的块。这个很多阵列也一样,不提。
  • RBER和不可恢复错误

关于原始比特误码率和不可恢复错误为什么没有关系,Nimble认为应该是RBER是按照整个硬盘统计的,但其实原始比特误码并不是均匀分布的。如果集中在某些扇区,这些扇区可能就发生不可恢复错误,即ECC也纠错不了了。
就像雪的多少和平均海拔的关系一样。某些地方,平均海拔不高,但并不代表雪不多。因为高山多,雪就多。而某些地方,就算平均海拔比较高,但不见得雪就多,因为没有高山。
Nimble CTO说和Google论文作者交流了他们的想法,Google认为有道理。
【学习心得】
1、针对闪存的特点,看来传统的RAID方式难满足要求了。Nimble的RAID 3P+给我们一些很好的启示。EMC的DSSD的Cubic RAID(参考1分钟看懂EMC DSSD的Cubic RAID原理)更是一种创新,虽然Nimble其实也是一种多维RAID,我个人感觉Cubic RAID更完善一些。而Pure Storage的RAID 3D,EMC XtremIO的XDP等都没有采用传统的RAID形式。据了解,华为的新一代全闪存阵列Dorado V3虽然还是采用RAID 2.0+,但是可能采用3校验的方式,支持同时坏3块SSD,不知道华为是否会宣传RAID 2.0+ 3P呢?O(∩_∩)O哈!
2、SSD作为较新的一种介质类型,就像HDD一样,相信以后不断会有新的故障特征被发现。因此,存储厂商需要时刻关注这些研究结果,特别是大型互联网公司的生产实践,不断创新,以较小的代价持续提高闪存系统的可靠性。


此帖出自FPGA/CPLD论坛

最新回复

Flash的擦写次数有限,这方面的可靠性确实不如硬盘。不过机械可靠性可比硬盘强不少。RAID有多重模式,必须选择数据可靠性模式才有效。  详情 回复 发表于 2016-3-24 22:42
点赞 关注
个人签名training
 

回复
举报

1万

帖子

139

TA的资源

版主

沙发
 
Flash的擦写次数有限,这方面的可靠性确实不如硬盘。不过机械可靠性可比硬盘强不少。RAID有多重模式,必须选择数据可靠性模式才有效。
此帖出自FPGA/CPLD论坛
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表