RAID(Redundant Arrays of Independent Disks)独立磁盘冗余阵列, 主要用于通过在硬件层次上将多个物理磁盘或磁盘分区进行组合, 从而在逻辑层次上不同等级LEVEL对数据进行存储, 从而在数据存储的不同性能指标上进行提升. 等级不是根据数字大小进行排序的, 而是只是表示了一种存储方式. 本文主要描述常见的不同等级RAID的原理和特性.
RAID的衡量指标:
1. IO性能: RAID中数据的读写速率
2. 冗余能力: 是否能够对数据进行冗余备份
3. 磁盘空间: 进行RAID之后的磁盘空间, 设定进行RAID的磁盘是n块大小为s的磁盘,
4. 磁盘要求: 需要的磁盘数量要求
RAID主要概念:
chunk: RAID中存储单位的大小, 在将磁盘构建成RAID时会指定相应chunk大小
RAID-0
RAID-0原理如上图所示, 主要是实现将多个物理磁盘构成一个大的逻辑磁盘, 在进行数据IO时各个chunk会被依次写入轮询的物理磁盘中, RAID-0主要实现了分区空间的扩展.
RAID0性能分析:
1. IO性能: 读写性能提升, 因为在读写数据时同时向多块磁盘空间内读写数据, 会提升读写速率
2. 冗余能力: 没有实现对数据进行冗余备份,
3. 磁盘空间: ns
4. 磁盘要求: 最少需要2块磁盘
5. 容错能力: 不允许损坏磁盘
RAID-1
RAID-1原理如上图所示, 主要是实现将多个物理磁盘构成两个大小相同的主备磁盘组, 在进行数据IO时各个chunk会被同时写入两个磁盘组当中, RAID-1主要实现了对数据的冗余存储.
RAID1性能分析:
1. IO性能: 读取数据时因为有多个数据备份, 读取速率会提高; 写入数据时因为要同时写入多个chunk数据块, 写入速率会下降
2. 冗余能力: 存储多个数据备份
3. 磁盘空间: ns/2
4. 磁盘要求: 最少需要2块磁盘, 且为2的倍数
5. 容错能力: 最多允许损坏1块磁盘
RAID-5
RAID-5原理如上图所示, 主要是实现在数据IO时会通过n-1块磁盘来读写数据, 第n块磁盘来读写数据的校验块(通过循环冗余校验计算得出), 从而通过循环冗余校验的方式对数据进行备份, 存放校验块的磁盘是在n块磁盘中进行轮询的
RAID5性能分析:
1. IO性能: 读写性能提升, 因为在读写数据时同时向多块磁盘空间内读写数据, 会提升读写速率
2. 冗余能力: 能够提供冗余能力
3. 磁盘空间: (n-1)s/n
4. 磁盘要求: 最少需要3块磁盘
5. 容错能力: 最多允许损坏1块磁盘
RAID01
RAID01原理如上图所示, 主要是先通过RAID-0对磁盘在空间上进行扩展, 再通过RAID-1对磁盘组进行冗余备份
RAID01性能分析:
1. IO性能: 读写性能提升, 因为在读写数据时同时向多块磁盘空间内读写数据, 会提升读写速率
2. 冗余能力: 能够提供冗余能力
3. 磁盘空间: 1/2
4. 磁盘要求: 最少需要4块磁盘
5. 容错能力: 不允许不同RAID-0组损坏相同位置的磁盘
RAID10
RAID10原理如上图所示, 主要是先通过RAID-1对数据进行冗余备份, 再通过RAID-0对磁盘组空间进行扩展
RAID10性能分析:
1. IO性能: 读写性能提升, 因为在读写数据时同时向多块磁盘空间内读写数据, 会提升读写速率
2. 冗余能力: 能够提供冗余能力
3. 磁盘空间: 1/2
4. 磁盘要求: 最少需要4块磁盘
5. 容错能力: 不允许同一RAID-1组损坏2块磁盘, 允许不同RAID-1组损坏多个磁盘
在实际使用中, RAID10比RAID01有更好的实用性.
以上就是常见RAID磁盘阵列的原理和特性, 使用时应根据具体使用环境来选择合适的类别.
本人水平有限, 如有理解不当的地方, 请大家给予指正, 非常感谢!
转载于:https://blog.51cto.com/pavel86/1689655