磁盘阵列常见Raid详解

概念

磁盘阵列(Redundant Arrays of Independent Disks,RAID),把多个独立的硬盘设备,组成一个容量更大,安全性更高的磁盘阵列组,将数据切位多个区段之后分别存储在不同的物理硬盘上。利用分散读写技术提升硬盘整体性能,数据同步在了不同的多个磁盘上,数据也得到了冗余备份的作用。

常见RAID详细对比

RAID类型RAID 0RAID 1RAID 5RAID 6RAID 10RAID 50RAID 60
别名条带化存储镜像存储分布式奇偶校验双重奇偶校验镜像加条带分布式奇偶校验加条带双重奇偶校验加条带
容错性最差(无任何安全保障)最高(提供数据的百分百备份),允许一个硬盘故障有,允许一个硬盘故障有,允许两个硬盘故障有,允许不同组中的硬盘各故障一个有,允许不同组中的硬盘各故障一个有,允许不同组中的硬盘各故障两个
硬盘数量要求N(最少为2)N(必须为偶数)N≥3N≥4N≥4(偶 数)N≥6N≥8
利用率NN/2(N-1)/N(N-2)/NN/2(N-1)/N(N-2)/N

RAID关键技术

RAID 中主要有三个关键概念和技术:镜像( Mirroring )、数据条带( Data Stripping )和数据校验( Data parity )

  • 镜像, 将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低, 确保数据正确地写到多个磁盘需要更多的时间消耗。
  • 数据条带, 将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作, 从而获得非常可观的 I/O 性能提升 。
  • 数据校验, 利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。(不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能)

1. RAID 0

  • RAID 0 将数据依次写入到物理盘中,数据分段存储在各个硬盘中,n块硬盘并行读/写数据,在理想状态下,传输速度是单个硬盘的N倍
  • 但凡任意损坏一个硬盘,所有数据都失效
  • 适用于追求性能的场景,而不关注数据安全的场景
  1. 数据条带化: RAID 0 将数据分成固定大小的数据块,然后按照轮询或分配算法将这些数据块依次分配到每个硬盘上。这称为数据条带化。例如,假设有两块硬盘,数据块 1 被写入到第一块硬盘,数据块 2 被写入到第二块硬盘,以此类推。

  2. 并行读写: RAID 0 允许数据的并行读写操作。由于数据条带化,每个硬盘都可以同时读取或写入不同的数据块。这意味着 RAID 0 可以在多个硬盘之间并行地分配数据,从而提高了读写性能。

  3. 性能提升: RAID 0 的主要优势在于提供了读写性能的线性增加。由于数据可以并行地从多个硬盘读取或写入,所以整体的读写速度将随着硬盘数目的增加而线性增加。

  4. 容量利用: RAID 0 将数据分布在多个硬盘上,但没有提供数据冗余或容错能力。因此,RAID 0 的总存储容量等于所有硬盘容量之和。例如,如果有两块 1TB 的硬盘组成 RAID 0,总的存储容量将是 2TB。

  5. 故障风险: RAID 0 没有提供数据冗余,因此如果其中一块硬盘发生故障,整个 RAID 0 阵列的数据都可能会丢失。因此,与其他 RAID 级别相比,RAID 0 的故障风险较高。

总的来说,RAID 0 提供了较高的读写性能和有效的存储容量利用率,适用于那些对性能要求较高而对数据冗余和容错能力要求较低的应用场景,例如视频编辑、游戏存储等。然而,需要注意的是,由于缺乏数据冗余,RAID 0 的故障风险较高,不适合存储重要的数据。

优点:使用 n 颗硬盘,即可拥有将近 n 倍的读写效能,读写性能是所有RAID级别中最高的。

缺点:不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复,RAID0运行时只要其中任一块硬盘出现问题就会导致整个数据的故障。

硬盘数量:最少 2 个。

2.  RAID 1

  • 通过数据镜像实现数据冗余,在成对硬盘上产生互为备份的数据
  • 当原始数据繁忙时,可直接从镜像拷贝中读取数据
  • 当一个磁盘失效时, 系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据

工作原理: RAID1是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”。RAID1相对于单一硬盘读取速度快,因为数据会从两块硬盘中较快的一块中读出,RAID1在写入数据时,会将数据分别写入两块硬盘中并作比较,所以写入速度通常较慢。RAID1磁盘阵列一般支持“热交换”,就是说阵列中硬盘的移除或替换可以在系统运行时进行,无须中断退出系统。在这里,需要注意的是,读只能在一块磁盘上进行,并不会进行并行读取,性能取决于硬盘中较快的一块。写的话通常比单块磁盘要慢,虽然是并行写,即对两块磁盘的写入是同时进行的,但因为要比较两块硬盘中的数据,所以性能比单块磁盘慢。

  1. 硬盘镜像: RAID 1 至少需要两块硬盘来实现。在 RAID 1 中,所有的数据会同时写入到两块硬盘上,这两块硬盘被称为镜像。因此,每个数据块都会在两个硬盘上保留一份完全相同的副本。

  2. 数据写入: 当数据写入 RAID 1 阵列时,数据被同时写入到两块硬盘上的相同位置。这确保了数据的完整性和一致性,因为即使其中一块硬盘发生故障,数据仍然可以从另一块硬盘中恢复。

  3. 数据读取: 当进行读操作时,系统可以从任意一块硬盘中读取数据,因为数据在镜像中完全相同。这意味着 RAID 1 具有良好的读取性能,因为它可以并行地从两块硬盘中读取数据。

  4. 故障容错: RAID 1 提供了很高的数据可靠性和容错能力。如果其中一块硬盘发生故障,系统仍然可以继续工作,并且数据可以从另一块硬盘中进行读取。一旦故障硬盘被替换,RAID 1 会自动将数据再次复制到新的硬盘上,恢复镜像状态。

  5. 容量利用率: 尽管 RAID 1 提供了良好的数据保护和容错能力,但它的容量利用率相对较低,因为数据会被完全复制到两块硬盘上。例如,如果有两块 1TB 的硬盘组成 RAID 1,那么可用的存储容量只有 1TB,因为另一块硬盘是完全相同的镜像。

总的来说,RAID 1 提供了高度的数据可靠性和容错能力,适用于那些对数据保护要求很高的应用场景,如企业级服务器、数据库存储等。然而,由于其较低的容量利用率,成本也相对较高。

优点:安全性依照数组里的实体硬盘数量倍数成长。

缺点:空间利用率是所有 RAID 中最没有效率的。

3. RAID 5

  • 由N (N>=3) 块盘组成阵列,校验码均匀的放在每一块硬盘上,即使任意挂了一块硬盘,都能够反推出原来的数据
  • N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高

工作原理:RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息(parity)和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性。

  1. 数据条带化: RAID 5 将数据分成连续的数据块,并将这些数据块依次分配到不同的物理硬盘上,这称为数据条带化。例如,假设有三块硬盘,数据会依次写入这三块硬盘的不同位置。

  2. 奇偶校验计算: RAID 5 使用分布式奇偶校验来提供数据冗余。对于每个数据条带,RAID 5 会计算一个奇偶校验值,并将其写入到另一个硬盘上。例如,如果数据条带 1 存储在硬盘 A 上,那么对应的奇偶校验值将存储在硬盘 B 上。

  3. 数据和校验信息分布: 数据和奇偶校验信息在不同的硬盘上分布存储,这样就实现了数据的冗余保护。当其中一块硬盘发生故障时,可以通过剩余的数据块和奇偶校验信息来恢复丢失的数据。

  4. 数据读取: 当进行读操作时,系统可以通过同时从多个硬盘读取数据块和奇偶校验信息来重建原始数据。因此,RAID 5 具有较好的读取性能,尤其在并行读取时。

  5. 数据写入: 当进行写操作时,数据被写入到对应的数据块位置,并且新的奇偶校验值也会被重新计算并写入到对应的硬盘上。这个过程称为数据条带化和奇偶校验更新。

  6. 故障容错: 如果其中一块硬盘发生故障,系统仍然可以继续工作,并且数据可以从剩余的数据块和奇偶校验信息中恢复。一旦故障硬盘被替换,RAID 5 会自动重新计算奇偶校验信息,并将数据恢复到新的硬盘上。

总的来说,RAID 5 提供了良好的数据保护和性能,适用于那些对数据保护和读取性能要求较高的应用场景,如企业级服务器、存储系统、文件服务器等。然而,需要注意的是,RAID 5 的写入性能可能会受到奇偶校验计算的影响,尤其在并发写入操作时。

    优点:兼顾空间利用率与安全性。

    缺点:需要额外的运算资源,仅能忍受 1 个硬盘损毁。

4. RAID 6

  • RAID6 引入双重校验的概念,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。
  • N (N>=4) 块盘组成阵列,(N-2) /N容量利用率;
  • 需要更大的磁盘空间,相对于RAID 5有更大的“写损失"因此写性能较差。

工作原理:与RAID 5相似,RAID 6根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上。在图中,A、B、C、D是条带化的数据,p代表校验数据,q是第二份校验数据。

  1. 数据条带化: RAID 6 与 RAID 5 类似,将数据划分成连续的数据块,并将这些数据块依次分配到多个物理硬盘上,这称为数据条带化。例如,假设有四块硬盘,数据块 1 会依次存储在这四块硬盘的不同位置。

  2. 双奇偶校验: 与 RAID 5 不同的是,RAID 6 使用双奇偶校验来提供更高级别的容错能力。在 RAID 6 中,除了每个数据条带之外,还会计算额外的两个奇偶校验块。这两个奇偶校验块分别称为 P 和 Q。

  3. 数据和奇偶校验信息分布: 数据块和两个奇偶校验块在不同的硬盘上分布存储。通常情况下,P 和 Q 块会交错地分布在各个硬盘上,以提高容错能力。

  4. 数据读取: 当进行读操作时,系统可以通过同时从多个硬盘读取数据块和奇偶校验信息来重建原始数据。与 RAID 5 类似,RAID 6 具有较好的读取性能,尤其在并行读取时。

  5. 数据写入: 当进行写操作时,数据被写入到对应的数据块位置,并且新的奇偶校验值也会被重新计算并写入到对应的硬盘上。这个过程称为数据条带化和奇偶校验更新。

  6. 容错能力: RAID 6 提供了两个奇偶校验块,因此可以容忍两块硬盘同时发生故障的情况。只要不是同一个数据条带内的两个硬盘同时发生故障,系统都可以通过剩余的数据块和奇偶校验信息来恢复丢失的数据。

总的来说,RAID 6 提供了更高级别的数据保护和容错能力,适用于那些对数据可靠性要求极高的应用场景,如企业级存储系统、数据库服务器等。然而,与其他 RAID 级别相比,RAID 6 通常会产生较高的写入开销,因为需要计算和写入额外的奇偶校验信息。

优点: RAID 6的数据冗余性能相当好,在使用大数据块时,随机读取性能好,允许两块硬盘的掉线,有更高的容错能力。

缺点: 由于增加了一个校验,所以写入的效率比RAID 5还差,而且RAID控制系统的设计也更为复杂,第二块的校验区也减少了硬盘有效存储空间。

5. RAID 1+0

  • N (偶数,N>=4)块盘两两镜像后,再组合成一个RAID 0;
  • N/2块盘同时写入,N块盘同时读取;
  • 性能高,可靠性高。

工作原理:Raid10其实结构非常简单,首先创建2个独立的Raid1,然后将这两个独立的Raid1组成一个Raid0,当往这个逻辑Raid中写数据时,数据被有序的写入两个Raid1中。磁盘1和磁盘2组成一个Raid1,磁盘3和磁盘4又组成另外一个Raid1;这两个Raid1组成了一个新的Raid0。如写在硬盘1上的数据1、3、5、7,写在硬盘2中则为数据1、3、5、7,硬盘中的数据为0、2、4、6,硬盘4中的数据则为0、2、4、6,因此数据在这四个硬盘上组合成Raid10,且具有raid0和raid1两者的特性。

  1. 镜像和条带化结合: RAID 10 将多块硬盘分成两组,每组至少需要两块硬盘。每一组中的硬盘通过镜像的方式提供冗余备份,而不同组之间则通过条带化的方式提供读写性能的提升。

  2. 数据条带化: 在每一组中,数据被分成固定大小的数据块,并按照 RAID 0 的方式分配到每个硬盘上的对应位置。这样可以实现数据的并行读写,提高读写性能。

  3. 镜像冗余: 每个数据块都会在不同组的硬盘上生成一个完全相同的副本。这意味着每个数据块都有至少两个镜像,可以保证数据的冗余备份。如果其中一块硬盘发生故障,可以从另一组的镜像硬盘上恢复数据。

  4. 读取操作: 当进行读操作时,系统可以从任意一组的硬盘中读取数据。由于数据条带化,RAID 10 具有较高的读取性能,因为可以并行地从多个硬盘读取数据。

  5. 写入操作: 当进行写操作时,数据首先被分成条带并写入到一组的对应位置。然后,相同的数据也会被写入到另一组的相同位置,以提供冗余备份。这样的写入方式保证了数据的一致性和冗余备份。

  6. 故障容错: RAID 10 具有较高的容错能力,因为它同时具备了 RAID 1 和 RAID 0 的优势。即使其中一块硬盘发生故障,系统仍然可以继续工作,并且数据可以从镜像硬盘中恢复。

总的来说,RAID 10 提供了良好的读写性能和较高的数据保护能力,适用于对数据安全性和性能要求都很高的应用场景,如企业级数据库、虚拟化环境等。然而,需要注意的是,RAID 10 的容量利用率相对较低,因为需要将数据的镜像存储在不同组的硬盘上。

优点: RAID10兼备了RAID1和RAID0的优点,不仅实现了数据保障的作用,也保障数据读写的效率。

缺点: 由于一半的磁盘空间都用于存储冗余数据,所以RAID 10的磁盘利用率很低,只有50%。

6. RAID 50

  • RAID50是RAID5与RAID0的结合。此配置在RAID5的子磁盘组的每个磁盘上进行包括奇偶信息在内的数据的剥离。每个RAID5子磁盘组要求至少三个硬盘。

工作原理:它由两组RAID 5磁盘组成(每组最少3个),每一组都使用了分布式奇偶位,而两组硬盘再组建成RAID 0,实现跨磁盘抽取数据,RAID 50最少需要6个磁盘。

  1. 划分硬盘: RAID 50 至少需要六块硬盘来实现。这些硬盘会被分为多个磁盘组,每个磁盘组至少包含三块硬盘。

  2. RAID 5 在磁盘组内: 在每个磁盘组内,采用 RAID 5 的方式来组织磁盘。RAID 5 通过在数据块中添加奇偶校验信息,实现了数据冗余和容错能力。数据和校验信息会分布存储在磁盘组的各个硬盘上。这意味着每个磁盘组中的任何一个硬盘出现故障时,数据仍然可被恢复。

  3. RAID 0 跨磁盘组: 不同磁盘组之间,采用 RAID 0 的方式来组织数据。RAID 0 将数据分成条带,并将每个条带分别存储在不同磁盘组内的硬盘上。这样做的目的是提高整体的读写性能,因为数据可以并行地从多个磁盘组中读取或写入。

  4. 数据分布和访问: 当数据被写入 RAID 50 阵列时,数据被分成块并且存储在不同的磁盘组内的硬盘上。RAID 5 提供了数据冗余和容错能力,而 RAID 0 提供了性能增益。因此,RAID 50 在数据可靠性和性能之间取得了平衡。

  5. 读写操作: 当进行读操作时,RAID 50 可以并行地从多个磁盘组读取数据块,以提高读取性能。对于写操作,数据会被分成块并写入到不同的磁盘组内,以实现并行写入和提高写入性能。

总的来说,RAID 50 通过结合 RAID 5 的数据冗余和容错能力以及 RAID 0 的性能增益,提供了一种平衡性能和数据可靠性的解决方案。RAID 50 在需要高性能和较高数据保护级别的应用场景中被广泛使用,如企业级存储系统等。

优点: 比RAID5有更好的读性能,比相同容量的RAID5重建时间更短,可以容许N个磁盘同时失效,更高的容错能力,具备更快数据读取速率的潜力。

缺点: 设计复杂,比较难实现;同一个RAID5组内的两个磁盘失效会导致整个阵列失效;磁盘故障会影响吞吐量。故障后重建信息的时间比镜像配置情况下要长。

7. RAID 60

  • RAID 60(有时称为 RAID 6+0)将多个 RAID 6 集(带双奇偶校验的条带化)与 RAID 0(条带化)结合在一起。
  • 双奇偶校验允许每个 RAID 6 阵列中的两个硬盘发生故障

工作原理:它由两组RAID 6磁盘组成(每组最少4个),每一组都使用了双重校验,而两组硬盘再组建成RAID 0,实现跨磁盘抽取数据,RAID 60最少需要8个磁盘。

  1. 划分硬盘组: RAID 60 至少需要八块硬盘来实现。这些硬盘被分成多个 RAID 6 阵列,每个 RAID 6 阵列至少需要四块硬盘。例如,如果有八块硬盘,可以划分为两个 RAID 6 阵列,每个阵列包含四块硬盘。

  2. RAID 6 在每个阵列中: 在每个 RAID 6 阵列中,数据被条带化,并且使用双奇偶校验来提供容错能力。RAID 6 阵列可以容忍两块硬盘的同时故障,因为它有两个独立的奇偶校验块。

  3. 条带化和奇偶校验计算: 数据被分割成条带并分别写入到每个 RAID 6 阵列中的硬盘上。同时,每个 RAID 6 阵列计算两个奇偶校验块,并将其存储在不同的硬盘上,以提供更高级别的容错能力。

  4. 数据分布和读取: 当进行读操作时,系统可以并行地从多个 RAID 6 阵列中读取数据,并通过双奇偶校验来检查和恢复数据的完整性。这样可以提高整体的读取性能,并确保数据的可靠性。

  5. 写入操作: 当进行写操作时,数据被写入到对应的 RAID 6 阵列中,并且新的奇偶校验值也会被重新计算并写入到相应的硬盘上。这个过程保证了数据的完整性和容错能力。

  6. 故障容错: RAID 60 提供了多层次的容错能力,因为它组合了多个 RAID 6 阵列。即使其中一个 RAID 6 阵列发生故障,系统仍然可以继续工作,并且数据可以从其他 RAID 6 阵列中恢复。

总的来说,RAID 60 提供了更高级别的容错能力和读写性能,适用于对数据安全性和性能要求都很高的应用场景,如企业级存储系统、数据库服务器等。然而,需要注意的是,RAID 60 的实施需要更多的硬盘数量和复杂度,因此在实际应用中需要仔细评估和规划。

优点:组内每个 RAID 6 阵列可以承受两个硬盘故障,因此非常安全

缺点:由于奇偶校验计算占用硬盘空间更多,因此比 RAID 50 稍贵

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值