硬盘|RAID是磁盘阵列吗?什么是RAID? RAID等级有哪些?( 三 )



在所有的raid阵列中 , raid0的速度是最快的 , 容量也是最大的 。 但它有个致命的缺点 , 极致的速度带来的就是不安全 。 raid0没有冗余和容错能力 , 阵列只要换一块硬盘 , 所有数据跟着玩完 。

因为数据是分段存的 , 任意一块硬盘坏了 , 都会导致数据无法完整的恢复 , 一定不要用raid0存放重要资料 。

那么哪种raid适合存放重要数据呢?
最安全的磁盘阵列就是raid1 , raid1模式最少需要两块硬盘 , 所有硬盘互为镜象 , 每块硬盘上存的数据都一模一样 , 阵列中只要有一块硬盘没坏 , 数据都可以完整读出来 。

raid1理论读取速度和raid0相同 , 有几块硬盘读取速度就是几倍 , 但写入速度等于单块硬盘 , 没有任何提升 。

当raid1某一块硬盘损坏 , 而是拔出损坏的盘 , 这里会恢复数据到新插入的硬盘 , 这一过程叫重建阵列 。


raid1最大问题是性价比低 , 即使一百块硬盘做raid1仅算一个硬盘的容量 , 如果各个硬盘大小不一 , 最终容量会以最小的为准 , 整体利用率是所有raid分类中最低的 。
raid0和raid1像是两个极端 , 一个超快 , 一个超安全 。

如果想要容量和安全的提升 , 又不追求极致的速度 , 那就了解下raid2、raid3、raid4、raid5、raid6 。
raid2、raid3、raid4在设计之初 , 主要针对特定的应用场景 , 因为各种那样的缺陷 , 很少会用到 , 很多阵列卡也都不支持raid2、raid3、raid4 , 这里仅做简单的介绍 。
raid2模式最少三块硬盘 , 读写时需要对数据进行实时编码、分段写入 , 不同的硬盘得到的数据总量会比原始数据大 , raid2模式在读写时需要实时校验数据 , 由于采用的校验算法比较复杂 , 硬件开销偏大 。


raid3是在raid2的基础上发展而来 , 因为采用更简单些的算法 , 硬件开销相对较少 。 raid3最少三块硬盘 , 读写操作时 , 数据分段写入不同的硬盘 , 校验数据单独存放在另一个硬盘里 , 由于每次读写操作都会访问校验盘 , 导致校验盘长时间高负荷工作 , 非常容易挂掉 。
如果校验盘坏了 , 那数据就没救了 。

raid4和raid3相似 , 是把校验数据单独存放在一个硬盘里 , 与raid3不同的是 , raid4数数据分段方式不一样 , raid3按照bit分割数据 , raid4按照数据块分割 , 数据块大小由系统决定 , 通常比bit大很多 , 所以小文件写入会比raid3快 。

raid4的缺点是非校验盘损坏时 , 数据恢复概率比raid3低一些 。 如果是校验盘损坏 , raid3和raid4都救不回来 。
接着说下目前广泛应用的raid5和raid6 。
raid5原理和raid3相似 , 区别是raid3把校验数据存放在一个硬盘里 , 但raid5的校验数据是分散存在各个硬盘里 , 每个硬盘都有校验数据 。

当一块硬盘损坏 , 所有其他盘里的数据配合校验信息 , 就可以进行恢复 , 避免了raid3校验盘坏了导致阵列直接挂了的情况 。
raid5模式最少三块硬盘 , 其中三分之一空间作为冗余存放校验数据 , 另外三分之二空间存放原始数据 。

raid5读取速度和raid0相近 , 写入速度不及raid0 , 它因为三分之一空间是校验数据 , 允许阵列盘损坏一块硬盘的情况下 , 实现数据完全恢复 , 安全性比raid0高出很多 。
raid5还有一个儿子(RAID F1) , 主要针对固态硬盘ssd , 采用类似raid5的阵列模式 , 对ssd写入磨损有特定优化 , 校验数据会尽量存放在一个ssd里 , 降低其他固态硬盘的写入量 。

当发现固态硬盘ssd写入快到上限时 , 支持自动数据转移 。 不过ssd这么贵 , RAIDF1一般大家接触不到 。