人永远看不破的镜花水月,不过我指间烟云世间千年,如我一瞬。
RAID (磁盘阵列)
- Redundant Array of Independent Disks 独立磁盘冗余阵列,单个硬盘无法满足大量数据存储和数据安全性的需求,RAID 将多个独立的物理硬盘按照一定方式(RAID 级别)组合在一起,形成一个大的逻辑盘,提高了数据读写速度、可靠性、存储能力及容错能力。
RAID 等级
- JBOD(Just a Bunch Of Disks)
- JBOD 是在逻辑上把几个物理磁盘串联到一起,从而提供一个大的逻辑磁盘。存储数据时从第一个磁盘开始存储,当第一个磁盘的存储空间用完后,再依次从后面的磁盘开始存储数据。存取性能等同于对单一磁盘的存取操作,不提供数据安全保障,它只是简单的提供一种利用磁盘空间的方法。
- RAID0
- RAID0 是一种简单的、无数据校验的数据条带化技术。实际上不是一种真正的 RAID ,因为它并不提供任何形式的冗余策略。 RAID0 将所在磁盘条带化后组成大容量的存储空间,将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。由于可以并发执行 I/O 操作,总线带宽得到充分利用。再加上不需要进行数据校验,RAID0 的性能在所有 RAID 等级中是最高的。理论上讲,一个由 n 块磁盘组成的 RAID0 ,它的读写性能是单个磁盘性能的 n 倍,但由于总线带宽等多种因素的限制,实际的性能提升低于理论值。
- RAID0 具有低成本、高读写性能、 100% 的高存储空间利用率等优点,但是它不提供数据冗余保护,一旦数据损坏,将无法恢复。 因此, RAID0 一般适用于对性能要求严格但对数据安全性和可靠性不高的应用,如视频、音频存储、临时数据缓存空间等。
- RAID1
- RAID1 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像 磁盘,它的磁盘空间利用率为 50% 。 RAID1 在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。 RAID1 提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响用户工作。
- RAID1 是为了增强数据安全性使两块 磁盘数据呈现完全镜像,从而达到安全性好、技术简单、管理方便。 RAID1 拥有完全容错的能力,但实现成本高。 RAID1 应用于对顺序读写性能要求高以及对数据保护极为重视的应用,如对邮件系统的数据保护。
- RAID2
- RAID2 称为纠错海明码磁盘阵列,其设计思想是利用海明码实现数据校验冗余。海明码是一种在原始数据中加入若干校验码来进行错误检测和纠正的编码技术,其中第 2n 位( 1, 2, 4, 8, … )是校验码,其他位置是数据码。因此在 RAID2 中,数据按位存储,每块磁盘存储一位数据编码,磁盘数量取决于所设定的数据存储宽度,可由用户设定。
- RAID2 可以在数据发生错误的情况下对纠正错误,保证数据的安全性。但是海明码的数据冗余开销太大,而且 RAID2 的数据输出性能受阵列中最慢磁盘驱动器的限制。再者,海明码是按位运算, RAID2 数据重建非常耗时。
- 数据位 k 和校验位 r 关系(2^r ≥ k + r + 1 )。
- RAID3
- RAID3 是使用专用校验盘的并行访问阵列,它采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘,数据按位可字节的方式交叉存储到各个数据盘中。RAID3 至少需要三块磁盘。允许 1 个物理磁盘发生故障,而不丢失数据。
- RAID3 只需要一个校验盘,阵列的存储空间利用率高,再加上并行访问的特征,能够为高带宽的大量读写提供高性能,适用大容量数据的顺序访问应用。
- RAID5
- RAID 5 和 RAID 3 极为相似,都是数据分条,奇偶校验产生冗余。但是,它不采用一个固定的硬盘来存储奇偶校验值,所有数据和校验值都分布在所有硬盘上。
- RAID5 ,校验数据(1 组)均匀分布在每个物理磁盘上。当某个物理磁盘发生故障时,可根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。
- RAID6
- RAID6 ,校验数据(2 组)均匀分布在每个物理磁盘上。即使有两个磁盘同时故障,也可通过 2 组校验数据来重建两个磁盘上损坏的数据。
- RAID6 可以理解为 RAID5 加强版。
- RAID10
- RAID1 与 RAID 0 的结合,先创建 RAID 1,再创建 RAID 0。
- RAID10 一半的物理磁盘发生故障时,仍可正常运转。RAID 10 适用于读写性能要求高,数据安全大于磁盘成本的场景。如银行、数据库等。
RAID 应用选择
RAID 等级 | 别名 | 磁盘数 | 可用容量 | 允许故障 |
---|---|---|---|---|
RAID0 | 条带 | n>=2 | n | 0 |
RAID1 | 镜像 | n>=2 ,n 为 2 的整数 | n/2 | n/2 |
RAID3 | 专用奇偶校验条带 | n>=3 | (n-1)/n | 1 |
RAID5 | 分布奇偶校验条带 | n≥3 | (n-1)/n | 1 |
RAID6 | 双重奇偶校验条带 | n>=4 | (n-2)/n | 2 |
RAID10 | 镜像加条带 | 2n(n≥2)≥4 | n/2 | n/2 |