这是今天在看某个数码博主在推荐NAS盘的视频,里面有一句话“当你组了RAID,你丢数据的可能性比中头奖还低”。但事实是这样吗?
这其实是又一个把技术神话化的案例。
原因就在于大家把技术想得太过于理想化了。
先简单的说下RAID,大家经常听到的RAID,无非是RAID 0 、RAID 1 、RAID 5 、RAID 6、RAID 10……或者是RAID Z(n) 什么的。有没有好奇0、1、2、3、4、5、6、7是一个数列,为啥RAID把2、3、4都跳过去了?
RAID 2、3、4是不是不存在?答案是否定的,RAID 2、3、4是存在的。
RAID不就是保证数据安全的吗?答案也是否定的,从RAID的真正含义来说下吧,我们把RAID这个词汇展开,现在RAID的普遍说法叫做Redundant Array of Independent Disks,独立磁盘冗余阵列,但最早提出RAID概念的时候话并不是这样讲的,RAID最早的名字叫做Redundant Array of Inexpensive Disks,廉价磁盘冗余阵列。
早在上世纪80年代,硬盘就已经广泛的应用了,只不过硬盘的价格随着容量的扩大呈现指数级增加,打个比方,1块10兆的硬盘要1000美元,那么一块20兆的硬盘价格可能会飙升到3000-4000美元。对于需要大容量存储的场合就面临一个极大的成本问题。于是在1980年代中期伯努利大学的几个研究人员就提出了用大量相对比较便宜的小硬盘(低成本廉价的,Inexpensive)组成一个处理阵列用以取代昂贵的大容量独立硬盘。
其实从根上来讲,RAID也并不是为了保护数据的安全性和完整性而产生的技术,而是昂贵部件的廉价替代方案。
知道这一点之后咱们才有可能来谈RAID。
磁盘数量多了,所面临的一个问题就是磁盘的故障概率就被放大了,例如你的某个品牌型号的磁盘在一个特定周期内出现故障的概率为5%,你用三块磁盘组成了一个阵列,整个阵列中在相同的使用周期内出现一块磁盘故障的故障率则会高达14.2625%(1-95%³)。为了应对这个问题,除了RAID 0以外,所有的RAID技术其实都是为了尽量缩小“磁盘故障概率被放大”所带来的影响。力图做到当一个磁盘出现故障的时候,整体的数据尽量不受到影响。
其实这是一个为了省钱亡羊补牢的技术手段,这才是RAID技术的真正价值所在。
所以说“当你组了RAID,你丢数据的可能性比中头奖还低”这种言论就是纯属的扯淡。但是很多数码爱好者往往就只听到博主们的片面言论,只听着博主们告诉你RAID能保证数据不丢失,就认为自己的数据是安全的。
那么RAID 1、2、3、4、5是怎么回事呢?都是为了降低故障率和提高磁盘吞吐性能不得已而为之的措施而已。以我们认为数据安全性较高的RAID5和6为例子:
采用了额外的校验码来保证在一块或两块硬盘出现故障的时候数据可以进行恢复(RAID重建)
这个技术是针对于单一一块硬盘故障的,能给你一个恢复硬盘数据的途径。但是为啥不适合用在家用的NAS上呢?这件事和磁盘阵列的使用场景是有关系的。
在正常的商业环境中,磁盘阵列一般的情况下都会放置于专门的机房内。
同时会安排IT人员定时进行巡检,“巡检”是运营一套IT系统的关键步骤。
而真正的巡检员的具体工作就是“巡检”,日复一日地去检查服务器面板上的故障指示灯状态在第一时间发现故障。
而家用的NAS本身的放置位置并不在你卫生间的洗漱台上,以方便你在每天洗漱的时候抬头看一眼NAS上的指示灯状态。
更多的人的NAS甚至不会放在自己的电脑桌面上而是丢在角落或柜子里面。
这就让你真正的能去看看NAS上指示灯的概率大为降低。坏一个硬盘的时候很多用户不刻意查看是根本无感的。当然了,你也指望APP或者NAS发出来的通知邮件会被你及时看到。不出现故障的时候大家都会渐渐地思想麻痹。毕竟今天看没事、明天看没事、后天看还没事、大多数人大后天就不去看了……这就是日常习惯和工作职责之间的区别所在了。
一旦当你发现NAS访问不了了,其实你的硬盘已经在很长很长时间的工作中坏掉了不止一块。NAS报警了吗?其实别冤枉NAS,可能早在几个月前NAS就已经亮红灯了,但你根本没看见这又怨得了谁呢?在家用NAS的设计上最最应该增加的功能其实是在硬盘亮红灯的时候增加蜂鸣器持续不断不断的鸣响,直至硬盘故障被解决消除。目前很少家用NAS的厂商做到这一点。在这种情况下,NAS的使用者也就自求多福吧。
本来应该写完啦,再多一嘴吧,还得告诉大家一点,大部分RAID仅仅保证磁盘故障的安全性,对数据的安全性大部分是无法保证的。这里就有一个静默数据错误的问题了。你怎么知道你让磁盘上的磁头往磁盘上写一个“1”它会不会写成一个“0”呢?你不知道,RAID同样也不知道,这种违背磁盘阵列读写意愿只发生在硬盘内部的错误叫做“静默数据错误”。按理论上来说,磁盘应该忠实地完成控制器交给的任务,正确地读写数据是磁盘的本分吧?只可惜,目前的技术制造的磁盘也好、内存也好、CPU也罢都会出静默数据错误。例如一个PNG文件中的一个位出错,它就变成了下面的样子。
这种事情其实时有发生,内存和CPU依靠ECC机制来避免和纠正这种错误。
在RAID设计中,RAID2其实是以和ECC内存一样的汉明吗机制来纠正静默数据错误。
但只可惜磁盘的读写效率比内存CPU要低的太多了,因此使用汉明吗的RAID2阵列也由于吞吐效率太低导致RAID2一直没有流行起来。
所以说RAID本身也只是一种走钢丝的危险活动。别过于神话,也别抱太多的指望,本身就并不是一种可以保护你数据安全的有效方法。
在真正能解决问题的技术方案出现之前,NAS用户用RAID,就听iN的,每天检查一次NAS故障指示灯是不是正常,不过iN也相信,大多数人每天检查NAS指示灯的习惯坚持不了几周就会放弃掉。也正因为如此,前面说了,家用NAS的最好放置空间是卫生间的洗漱台,至少你每天洗漱的时候都会看那么一眼。
,