计算机组织结构(九) RAID 磁盘冗余阵列
RAID
基本思想
使用多个磁盘, 分散的 I/O 请求, 以至于单一的 I/O 请求可以被并行处理, 只要请求的数据分散在不同的磁盘上.
特点
- RAID 是被视为一块逻辑磁盘的一组物理磁盘.
- 数据交叉分布在物理磁盘上.
- 冗余的磁盘可用于存储奇偶校验信息, 以保证再磁盘故障的情况下的数据可恢复性.
RAID 0
数据在可用的磁盘上条带 (strip) 状排列, 如果数据跨物理磁盘, 则同时读写
不含冗余盘
用途:
- 高速率数据传输
- 高速 I/O 请求
与单个的大容量磁盘相比:
优点: 若两个不同的 I/O 请求等待不同的两块数据, 如果这两块数据位于不同的物理磁盘, 就能加速.
缺点: 若数据跨盘, 只要其中的一块硬盘坏了, 所有的都不能读取.
RAID 1
所有的数据都按 RAID 0 的方式存取, 只是每个数据都存两份 ( 镜像 ).
优点: 恢复很简单, 可以加速读取 ( 若两块硬盘中同时有这个数据 ).
缺点: 浪费, 性能会降低为较慢的盘.
用途: 仅用于存储系统文件, 数据和其他高度关键文件的驱动器.
与 RAID 0 相比:
- 若请求的大部分是读取, RAID 1 可以实现较高的 I/O 请求率, 性能几乎是 RAID 0 的两倍.
- 若大部分是写请求, 性能没有显著的优势.
RAID 2 (未商业化)
使用并行存取技术(为一个客户服务):
- 所有的成员磁盘参与 I/O 的运算,
- 各自驱动器的轴是同步旋转的, 以便每个磁盘磁头的位置在同一时刻是相同的.
使用数据条带: 条带很小, 一个字节或者一个字.
纠错机制:
- 每个磁盘相应位置计算校验码, 并存在多个校验盘的相应位置上.通常使用汉明码.
- 读: 获取所请求的数据以及校验码.
- 写: 必须访问所有的数据盘和校验盘.
优点:
- 高速率数据传输
- 数据丢失可以恢复
缺点:
- I/O 响应慢, 同时只能处理一个 I/O
- 成本过高, 因为磁盘可靠性已经得到了极大提高, 不容易出现大量错误
RAID 3
使用并行存取技术.
使用很小的条带
纠错机制:
一个奇偶校验盘, 存有数据盘相同位置数据的奇偶校验码
若有一个磁盘失效, 可以由其他磁盘和校验盘恢复出这个数据, 如 $b_0$ 失效:
性能:
- 高速率传输数据, 对大型传输改善尤为明显.
- 一次只能执行一个 I/O 请求
RAID 4(未实现商业化)
使用独立访问技术: 期望每个成员磁盘独立操作, 可以独立地并行完成 I/O 请求.
使用较大的数据条带
纠错机制: 每个数据盘上相应的条带上逐位计算奇偶校验带, 存储在奇偶校验盘的相应位置.
性能:
执行小规模 I/O 写请求时, RAID 4 遭受写损失
每次写操作, 阵列管理软件不仅需要更新数据 , 还需要更新对应的奇偶校验码. 两读两写.
涉及大规模 I/O 写入, 仅根据新数据原数据和校验码就能得到新的校验码.
冗余盘不能同时进行多个 I/O 操作, 成为写的瓶颈.
RAID 5
与 RAID 4 相类似, 但是没有专门的冗余盘, 而是分散到各个盘, 减少了 I/O 瓶颈.
RAID 6
多一块磁盘, 两种纠错码相互印证.