1. Redundant Array of Inexpensive Disks (RAID)


11 冗余磁盘阵列 RAID

<aside> 💡 日渐增长的持久存储需求

  1. 性能
  2. 可靠性 </aside>

A case for redundant arrays of inexpensive disks (RAID) | ACM SIGMOD Record

<aside> 💡 RAID - 一个“反向”的虚拟化

多个 (不可靠的) 磁盘虚拟成一块非常可靠且性能极高的虚拟磁盘

</aside>

1.1 基本想法

在系统里多接入一块硬盘用于 Fault Tolerance (RAID-1)

<aside> 💡 块读写

bread($i$)

bwrite($i$)

容错,且读速度翻倍 (假设内存远快于磁盘)

</aside>

1.2 Design Space

<aside> 💡 两块磁盘的其他拼接方法

RAID (虚拟化) = 虚拟磁盘块到物理磁盘块的 “映射”

  1. 顺序拼接
  2. 交错排列 (RAID-0): 把一个连续读/写分配成每一个磁盘的连续读/写

虽然不能容错,但可以利用好磁盘的带宽

</aside>

<aside> 💡 RAID-10 = RAID-0 over RAID-1

RAID: 允许 “多对多” 的映射 (一组映射称为 “条带”, stripe)

1.3 RAID-4: Parity Disk

专门留一块磁盘作为奇偶校验盘。

<aside> 💡 性能分析

Sequential/random read: 3x (75% 总带宽)

Sequential write: 3x (75% 总带宽)

Random write (tricky)