06-常见的RAID技术
06-常见的RAID技术
😄 Written by Zak Zhu
参考
- 鸿鹄论坛
- HCNA-Storage培训教材V4.0
- YuTian Zou Sir HCNA-Stor视频
RAID基本概念
RAID -- Redundant Array of Independent Disks
RAID技术出现的初衷是把多个小容量的硬盘组合起来, 以获得更大的存储容量. 当前我们所说的RAID技术更多则是与数据保护相关, 换言之, 当物理设备失效时, RAID能够用来防止数据的丢失.
RAID主要功能:
- 通过对硬盘上的数据进行条带化, 实现对数据成块存取
- 通过对一阵列中的几块硬盘同时读取, 实现对数据并行访问
- 通过镜像或者奇偶校验信息的方式, 实现对数据冗余保护
RAID数据组织形式
RAID数据保护方式
RAID0
- 在所有RAID级别中, RAID0(也被称为条带化RAID)具有最高的存储性能. RAID0使用条带化技术将数据分布存储在RAID组的所有硬盘中
- 一个RAID0包含至少2个成员盘. 如上图所示的两个硬盘构成的RAID中: 前两块数据被写入到分条0上, 其中, 第一个数据块被写在硬盘1的条带0上, 第二个数据块并行存放在硬盘2的条带0上; 这时, 再下一个数据块被写到硬盘1的下一个条带上(条带1)上, 以此类推. 以这种方式, I/O的负载平衡分布在RAID中的所有硬盘上, 由于数据传输总线上的速度远大于硬盘读写速度, 因此RAID组上的硬盘可以认为在同时进行读写
- 一个RAID0的硬盘组中的硬盘必须具有相同的大小和转速. 如果一个RAID0由4个硬盘组成, 则读写速率理论上可达单个硬盘的4倍, 容量为单个硬盘的4倍. RAID0组的读写性能与硬盘的数量成正比.
RAID1
RAID1主要用于服务器硬盘安装系统
- RAID1(也被称为镜像RAID). RAID1使用2个相同的硬盘, 并设置了镜像. 当数据写入到一个硬盘上时, 数据的副本会同时存储在镜像硬盘上. 当源硬盘失败时, 镜像硬盘从源硬盘接管服务, 保证服务的连续性. 镜像盘作为备份, 提供高数据可靠性
- 一个RAID1组存储的数据量只是单个硬盘的容量, 另一个硬盘保存的是数据的副本.
- RAID1的两个硬盘必须具有相同的大小
- RAID1的写性能等于1个硬盘的写性能
- RAID1的读性能等于2个硬盘的读性能之和
RAID5
- RAID5使用的是分布式奇偶校验, 每个成员硬盘将用于存储用户数据和奇偶校验数据
- 假定一个RAID5的硬盘数为N, 其中有效用户数据存储容量为N-1个硬盘的容量.
- RAID5的成员盘的容量和转速必须相同
- RAID5如果出现2块硬盘出现故障, 则硬盘组的数据将丢失
RAID5的数据写入:
- 在RAID5中, 数据以分条的形式写入硬盘组中. 硬盘组中的每个硬盘都存储数据块和校验信息. 在连续写入的时候, 不同分条的奇偶校验数据不是单独存在一个固定的校验盘中, 而是按一定规律分散存放的
- 当新写入的数据较少或之前存储的数据有改变, 按照RAID5的工作原理, 仍需要读所有的硬盘以便重新计算新的奇偶较验值. 这种需要额外读和写操作, 相对与单个硬盘进行数据写入, 并没有提升硬盘的性能, 被称为写惩罚
- 在不考虑写惩罚, 满分条写的情况下, RAID5的顺序IO写性能等于N-1倍单个硬盘的写性能
RAID5的数据读取:
- RAID5的数据以分条的形式存储在硬盘上. 只需N-1个硬盘的数据就可以恢复全部数据
- RAID5的读性能取决于所写的数据量和RAID组中的硬盘数量
RAID5的适用场景:
- 适用于顺序大IO存储, 比如视频监控存储
- 适用于硬盘稳定性较好的SAS硬盘
RAID6
RAID6概述:
- 具有两种校验算法的RAID
- 需要至少N+2 (N>2)个硬盘来构成阵列, 一般用在数据可靠性, 可用性要求极高的应用场景
RAID6 P+Q工作原理:
RAID6 DP工作原理:
RAID6的适用场景:
- 数据非常重要, 需要尽可能长的时间处于在线和可使用的状态
- 适用于顺序大IO存储, 比如视频监控存储
- 适用于硬盘稳定性较差的SATA硬盘
混合RAID - RAID 10
适用于随机小IO存储
-
对于大多数的企业客户而言, RAID0并不是一个真正可以操作的选择, 而RAID1受限于硬盘容量利用率. RAID 10组合了RAID1和RAID0, 提供了较好的解决方案, 特别是在随机小IO写入时, 由于不存在写惩罚, 性能优势比较明显
-
RAID 10的硬盘数为2N. 硬盘容量大小和转速必须相同
-
在上图中, 物理硬盘1和2构成一个RAID1, 物理硬盘3和4构成另一个RAID1. 这两个RAID1子组再形成RAID0.
-
RAID 10写入数据时, 子组间采用并行的方式写入数据块, 子组内数据采用镜像的方式写入.