关于URE(Unrecoverable Read Error Rate)的一些知识更新

在几年前,写的一篇Blog:Unrecoverable Read Error Rate (URE),主要说起硬盘的一个重要指标:不可恢复读取错误率,在当时的场景下,如果是非企业级硬盘,一般这个指标是在1 bit per 10^14bit这个水平,也就是说每读取10^14bit的数据,其中某个bit有可能就是错误的,这会导致一些问题,比如如果是组建了一个比较大的RAID5阵列,当容量越大时,如果出现硬盘损坏,就会有很大概率无法恢复数据。

当然也不是没有其他办法,比如使用RAID 6,或者购买企业级硬盘,因为企业级硬盘在当时就可以提供1 bit per 10^15bit的指标,这样算下来读取100TB数据都是没什么大问题的。

不过随着近几年硬盘技术的发展,机械硬盘的容量越来越大,很多桌面级硬盘已经超过了10T,很显然,如果URE这个指标继续保持原有的水准,那这个硬盘就不太合格了,那么现在这些大容量硬盘的这个指标做到了多少呢?

于是我就找了找希捷桌面级硬盘的文档

barracuda-pro

从图里可以看到,在希捷大于10TB的硬盘产品中,在最大不可恢复错误/被读数据(位)也就是URE这个指标上,已经向企业级硬盘看齐,达到了1/10E15,另外,考虑到硬盘厂商在标称这些指标时一般会比较保守。那么从单一的指标上看,完全可以组建超过几十TB的磁盘阵列而不用担心数据丢失,不过考虑到恢复时间等等各种因素,个人依然是不建议以RAID方式组建这种超大的磁盘阵列。

当然,虽然桌面级硬盘在某些指标上已经看齐了企业级硬盘,但实际上企业级硬盘在稳定性和数据安全性方面依然会比桌面级好很多,比如一般的桌面硬盘是不会有传输层面的CRC或者ECC功能的,但是企业级硬盘,一般都会有类似的能力。当然除了这些数据安全性相关的指标,平均故障时间等等指标也会比桌面级硬盘高出许多。关于这个话题,又是有非常多的内容了,简单的可以参考一些文档,比如Intel的这篇文档Enterprise-class versus Desktop-class Hard Drives就在很多方面对比了桌面和企业级硬盘的区别。

从另外一个方面来说,比如需要基于这些机械硬盘开发一个企业级的存储系统,对数据的安全性要求极高,那么就不能100%的相信从磁盘上读取出的数据,在整个环节中,有太多的情况会导致读取出来的数据和当初写入的数据不相符。所以,在业务层,一般也需要考虑引入CRC等数据校验能力,通过读取并校验数据CRC,来保证数据一致性。

BTW,SSD硬盘,因为工作方式的不同,URE这些指标天生的就比机械硬盘好很多。同样以希捷的SSD为例:
barracuda-pro

URE这个指标是1/10E17,比机械盘好了两个数量级!当然代价是每GB价格也贵了很多。

总的来说,随着硬件的更新,很多曾经因为硬件产生的各种限制也会慢慢被打开。当然因为硬件的更新越来越快和特性和限制越来越多,软件层也需要适应这些变化,从而更好的利用好硬件所提供的能力。