Day-15 RAID

RAID

tags: IT铁人

这个硬碟有多棒

在评断一个硬碟有多高的Availability时,我们会考虑硬碟多久会坏掉、修复一次要花费多少时间,再来计算它的Availability。

第一个名词是MTTF(Mean Time To Failure),意旨它多久後会出错,所以这个时间越大越好,代表在这段时间内它都是可以运作的。

第二个名词是MTTR(Mean Time To Repair),意旨它维修一次要多久,我们会希望它能够越快修好越好。

而将上面两个加起来的结果称为MTBF(Mean Time Between Failure),代表两次坏掉的间隔,也就是两次去找老板报修的时间间隔。

那麽我们的Availability的计算方式就是MTTF / MTBF,也就是MTTF / (MTTF + MTTR)。

修复的时间比较不好更动,而且一般来说修复的时间蛮短的,所以我们会希望尽量提高MTTF,改善MTTF的作法有下面三个:

名称 内容
错误避免(fault avoidance) 藉由结构的设计避免错误的产生。
错误容忍(fault tolerance) 藉由多余的硬体或软件,在发生错误的状况下仍然能够运作。
错误预测(fault forecasting) 预期错误的出现和产生。

以下我们讨论fault tolerance的作法,也就是RAID。

RAID

RAID全名为Redundant Arrays of Inexpensive Disks,目标就是拿多一点便宜的硬碟组合成一个大且贵的硬碟。所谓的贵也就是为了安全啦。

在RAID中我们主要使用以下两种技术:

  • Data Stripping:将资料分散到不同的硬碟,让每次存取资料能够更快速。
  • Redundancy:透过增加硬碟增加他的Availability。

以下是各种RAID的说明:

名称 图片 说明
RAID 0 (No redundancy) 只是拆成多个硬碟,没办法容许错误,资料发生错误就遗失了。
RAID 1 (Mirroring) 拆了硬碟并且复制一份,需要用到RAID 0两倍的硬碟数目,是最昂贵的RAID作法。
RAID 2 (Error Detecting and Correcting Code) 借用常用在记忆体的error detection及更正作法(Hamming code)。写入时要读出所有硬碟资料,重新计算hamming code并写入ECC硬碟,效率不佳。
RAID 3 (Bit-Interleaved Parity) 把硬碟分组,同组的硬碟加总计算後存入另一个硬碟,将来某个资料出现错误时,就把加总的部份减去其他的资料就好了。
RAID 4 (Block-Interleaved Parity) 跟RAID 3很像,只是不把所有硬碟的资料加总,以Block为单位加总,如此一来可以减少计算错误时所动用的硬碟数量。
RAID 5 (Distributed Block-Interleaved Parity) 为了改进RAID 4把错误处理的资料放在同一个硬碟,RAID 5将资料分开在每一个硬碟上,如此一来可以避免所有人都挤着要修正错误。
RAID 6 (P+Q Redundancy) 避免同时发生两个错误,所以做了两个错误侦测的区块,这样即使一个错误处理的资料不够,还有另一个错误处理的资料可以使用。
RAID 1+0 or 0+1 这边就只是看要先做RAID 0或是RAID 1而已,可以看看。

结束一个科目了~

恭喜各位完成了计算机组织与结构,接下来会进入作业系统的部份。

如果说电脑是一个篮球比赛,那麽篮框跟篮球就是我们结束的部份,後面的作业系统就像是规则,在往上的应用程序就是球员以及打比赛的技巧。

还有很长的路阿各位...

上一篇 下一篇
Disk很大,你忍一下 OS初体验


<<:  介绍Vertex(2) | ML#Day19

>>:  Day12 - 搜寻文章作者及合并方法

M55是第一个支援v8.1-M架构的M系列处理器!!

根据ARM官方的介绍,M55是第一个支援v8.1-M架构的M系列处理器。而M系列主要是针对对於成本和...

[火锅吃到饱-5] 北泽寿喜烧 - 台中大里店

为了可以很顺利的拍完北泽的用餐体验,练习了20几次後,才轮到它。(这样就知道我有多在乎北泽了吧~) ...

“使用属於公共领域的专利算法(Use of a patented algorithm that belongs to the public domain)“是最不受许可要求的约束

公共领域(Public Domain) 公共领域包括所有不适用专有知识产权的创造性作品。这些权利可能...

D-13-授权 jwt ? authentication ? authorization

无状态的HttpRequest怎麽做身分验证 直到昨天将网页的基础知识介绍完了,所以今天开始会介绍一...

Day28 - Java常见面试考题

过去我面试了不少公司的软件工程师职位,涵盖前端、後端,所以今天以Java相关职缺中常考的面试考题作为...