磁盘冗余阵列

📅 2026 年 05 月 14 日 👤 jyjswk 📁 分享 💬 暂无评论

解决的问题

提高数据可靠性和 I/O 性能

异或运算

P校验:
P = D_1 xor D_2 xor D_3 ... xor D_n(RAID5)
Q校验:
Q = g_1 D_1 xor g_2 D_2 xor g_3 D_3 ... xor g_n D_n(RAID6)

RAID 方案

方案空间利用率读写性能特点
RAID 0/单块磁盘的N倍条带化
RAID 150%/磁盘镜像
RAID 3N-1 / N单块磁盘的N-1倍一块盘用于奇偶校验,读写最频繁,也最容易损坏!
RAID 5N-1 / N单块磁盘的N-1倍采用分布式奇偶校验,解决了单块校验盘的高频读写问题,与 RAID3 一样最多允许1块磁盘同时损坏
RAID 6N-2 / N低于单块磁盘读取时,跳过P、Q校验,性能是N-2;写入时,需要经历“两读两写”,过程可以参考 RAID6 专项介绍
RAID 1050%单块磁盘的N倍结合了 RAID0 与 RAID1

RAID6

采用双重分布式校验,使用伽罗华域计算校验结果,即:在Q校验中引入常数因子g,与P校验组成线性无关的方程组。
写入惩罚值是4,修改文件时对数据操作过程为:(总共需要进行6次 I/O 操作!)

  1. 读旧数据
  2. 读旧的 P 校验块
  3. 读旧的 Q 校验块
  4. 伽罗华域 CPU 计算
  5. 写入新数据
  6. 写新的 P 校验块
  7. 写新的 Q 校验块

总结

  1. 所有磁盘,包括校验盘和数据盘,它们的容量应该相同,这就保证了存储数据位置的一致性
  2. 我们这里说的磁盘损坏是宏观上整块磁盘不工作了,但如果从微观角度进行细分,上述结论将不成立。比如,对于raid3,只要同时损坏的两块磁盘的数据位不同,同样可以修复
  3. 我们以上讨论都是基于晶体管这种开关元件来确定的逻辑,对于未来如果存在3进制或者其他存储方式,校验难度只会更加复杂
  4. 读写性能可以分开计算,但是从使用角度来看,磁盘需要同时兼顾读写性能,遵循短板效应

💬 评论区

✍️ 发表你的看法

-->