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

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

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

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

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

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

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

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

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

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

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

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

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

考虑到全称和中文名都太长了,咱们还是喊它 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 的演变。。。

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