宅男的硬盘可是宝物啊,怎么能随便毁掉。。。

百家 作者:差评 2018-08-06 17:28:59




今天,腾讯云官方微博发布了一则声明。


事发起因来自腾讯云的用户,一家叫做 “ 前沿数控 ” 的科技公司。


前段时间 “ 前沿数控 ” 操作系统云盘的时候,对应的硬盘出了 BUG ,结果数据损坏了。


虽然经过很多努力修复,但还是有部分数据回不来了,只能讨论赔偿。


腾讯云发了一则声明。( 觉得太长可以不看 )


一方面表示赔偿没谈拢,一个赔 10 几万,另一方要 1000 万。


另一方面则是表示故障排除,打消一下其他用户的担心。


不管咋说,前沿数控摊上这事儿确实有些倒霉的。。。


其实云盘这个产品没那么神奇,顺着网线爬过去就是硬盘。


硬盘还算是一个比较精密的仪器,一个不好会出故障。


为了应对突如其来的事故,服务器的硬盘往往会搞一些特殊化的储存操作,来保障数据。


这项技术叫做 RAID,全称是 “ Redundant Array of Independent Disks ” ,翻译成中文就是独立硬盘冗余阵列。


考虑到全称和中文名都太长了,咱们还是喊它 RAID 吧。


RAID 当中最能体现思路的应该是 “ Redundant ” ,意思是冗余。


本来存东西一块大硬盘管够, RAID 非得整好几块,冗余就冗余在这儿。


RAID 分好几个等级,我们先说 RAID 0 。


RAID 0 就是把本来存一块硬盘的数据,分别存在了几块硬盘里。


事实上,RAID 0 比较特殊。。。它不光不提供容错机会,还会提升出错的风险。


因为单块硬盘没有完整数据,坏一块全部完蛋,假设同样硬盘出问题概率是一样的,那增加一块会直接导致出错概率翻倍。


这种东西为啥还会有人想得出来???


因为,这提升了读写效率。


你想想,本来数据读写要从一块硬盘里读写,每个比特都得 “ 排队 ” 。


现在数据分散了,就好比多了条队同时排,效率提升了不少,因此 RAID 0 作为提升效率还是很实用的 ~


说说第一个真正意义上的 RAID -- RAID 1。


RAID 1 提升容错的方法是。。。复制一遍数据到镜像盘里。


有几块硬盘,就拿一半来做镜像备份。


这样一来,哪怕你炸了其中一块,也能马上拿镜像盘顶上,非常可靠。


但是。。。炸硬盘很危险,而且这么做很浪费空间,假设你买了总共 4TB 的硬盘,只有 2TB 会真的拿来存储。


这简直烧钱,但是安全性也最大化了。


RAID 2 很少被实用,差评君直接说 RAID 3 。


但在那之前得引入一个概念,叫做校验


差评君还得讲个计算机逻辑上的操作,叫 XOR ,中文是异或


计算机数据无外乎 0 和 1 ,这些比特执行 XOR 操作以后,可以得到下面的结果↓


这套结果有啥用呢?


只要有 A xor B 的结果,知道 A 是 0 或者 1 ,就能反推 B 是啥,反之亦然。


而且这一套结果可以涉及更多的比特,比如 A xor B xor C xor D 。。。


如果有奇数个 1 ,那结果就是 1 ;有偶数个 1,那结果就是 0 。


因此在 A xor B xor C xor D 中,只要知道结果,丢失任何一个都能反推出来!


RAID 3 的原理就是,特意拿一块盘出来当作校验盘,把其他盘的数据拿出来做个 xor 操作,并且把结果存在校验盘中。


这个阵列需要至少 3 块硬盘,不过好处是,只要校验盘没坏,坏了一块数据盘可以反推恢复数据。


同样也是靠浪费空间来提升容错,RAID 3 比 RAID 1 要节约不少。


不过,你可能要问,那校验盘的坏了咋办?


嗯。。。那就完了。


想到这一点的不止读文章的你,工程师也想到了,因此有了在这个基础上提升了的 RAID 5 。( RAID 4 也很少被实用 )


在 RAID 5 规则下,校验码会均匀存储在每一块硬盘里:在上图中,第 1 块硬盘会存第 2,3,4 块硬盘的校验码。


这样一来,任意一块盘坏了都能被恢复。


RAID 5 相比 RAID 3,它没有一块盘是绝对不能坏的,因此容错率高不少,不过和 RAID 3 一样,只能坏一块。


如果说为了安全,RAID 1 是牺牲了成本( 浪费大量空间 )成就极高的安全性的话。。。


那 RAID 5 就是权衡成本和安全的选择,就像差评君以前常说的,工程是研究各种妥协的学问。


而 RAID 6 就是相对 RAID 5 ,在成本和安全性上的一次微调:分散存两份校验码。


这么做很显然会浪费更多的空间,而且最少需要 4 块硬盘才能执行,但是可以接受两块坏盘,容错率提升不少。


还有一种 RAID ,叫 RAID 10 。


这中间并没有 7 、8 、9 ,RAID 10 其实是 RAID 1 + 0 。


数据被分散存储后,再分别存两份。


这么做吸收了 RAID 0 的效率优势,和 RAID 1 的安全优势。


起码要 4 块硬盘才能执行的同时,有个很明显的缺点,和 RAID 1 一样这么干会浪费一半的存储空间,


依然,这么好的优点让有的大公司会考虑烧个钱搞 RAID 10 。


以上大概就是常见的几种 RAID 了 ~


也许你的硬盘里就存个游戏,放个小姐姐什么的,怕丢的数据扔云盘,想法多的搞个 RAID 0 提个速 ~


但是对于云服务商来说,客户的数据是绝对不能出错的,因此需要费一些代价来提升安全性。


这个成本在 RAID 中,就是额外的硬盘。


想来想去,差评君不得不佩服现代工程师们的脑洞。


RAID 从被发明,到各种等级 RAID 的演变。。。


这些安全,成本,效率来回拉扯,做出各种妥协而得出来的方案,展示了人类工程之美。



图片来源

TheTechReviewer

PowerCert Animated Videos

TechSupportDell

The FireProTech Blog

资料参考

https://en.wikipedia.org/wiki/RAID



“ 宅男的硬盘可是宝物啊 ”

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接