共计 1148 个字符,预计需要花费 3 分钟才能阅读完成。
本文由 LinuxProbe.Com 团队成员 烨子 整理发布,原文来自:elecfans。
导读 | 在《Linux 就该这么学》书籍的第 6 章第 7 节磁盘冗余阵列讲到了 RAID 5,此文仅作为对 RAID 5 的兴趣阅读,供读者了解其工作原理。 |
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。以四个硬盘组成的 RAID 5 为例,其数据存储方式如图 4 所示:图中,P0 为 D0,D1 和 D2 的奇偶校验信息,P1 为 D3,D4,D5 的奇偶校验信息,以此类推。由图中可以看出,RAID 5 不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成 RAID 5 的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当 RAID 5 的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID 5 可以理解为是 RAID 0 和 RAID 1 的折衷方案。RAID 5 可以为系统提供数据安全保障,但保障程度要比 Mirror 低而磁盘空间利用率要比 Mirror 高。RAID 5 具有和 RAID 0 相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5 的磁盘空间利用率要比 RAID 1 高,存储成本相对较低。
1. 异或的逻辑符号:^
2. 异或的逻辑定义
同则假,异则真(0^0=0,1^1=0,0^1=1,1^0=1)
3. 计算机中的逻辑运算用 1 表示真,0 表示假。
4. 两个字节按位异或的例子:
01111001
11100111:异或运 ^
——————-
10011110
5. 假设一个 3 个数字的异或运算模型
例:3 块硬盘 HD1,HD2,HD3 的数据信息全通过校验盘 HD4 存放校验信息
hd1 | hd2 | hd3 | –hd4 |
0 | 0 | 0 | –0 |
0 | 0 | 1 | –1 |
0 | 1 | 0 | –1 |
0 | 1 | 1 | –0 |
1 | 0 | 0 | –1 |
1 | 0 | 1 | –0 |
1 | 1 | 0 | –0 |
1 | 1 | 1 | –1 |
从这个模型理解异或运算的概念:偶数个 1 的结果为 0,奇数个 1 的结果为 1;
RAID 的保存原理是用 Bit Striping 及当前主流 Block Striping 的分割方式,将 Data 分散保存至各硬盘中,当硬盘有受损时则经由 XOR 运算,再将存在其他各硬盘内的 Parity Blocks 及 Data Stripe 磁区的 Data Blocks 进行计算而重建资料 Rebuild。
一、RAID 5 Striping 架构:RAID-5 Striping Mode
二、RAID 5 受损运作模式:RAID-5 Degraded Mode
三、RAID 5 XOR 复原:RAID-5 XOR Data Recovery