Windows

计算机中的 RAID 是什么?

RAID(独立磁盘冗余阵列)是一种把数据存储在多块硬盘不同位置的方式,用于在某块驱动器发生故障时保护数据,或提升传输速率。本文介绍 RAID 的历史、用途,以及 RAID 0、1、5、6 和 RAID 10 等主要级别的特点。

· 2 分钟阅读 · 难度 初级

RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列;旧称 Redundant Array of Inexpensive Disks,廉价磁盘冗余阵列)是一种把数据存储在多块硬盘不同位置的方式,用于在某块驱动器发生故障时保护数据,或提升传输速率。不过,并非所有 RAID 级别都提供冗余。

历史

RAID 意为「独立磁盘冗余阵列」。该系统于 1987 年由加利福尼亚大学伯克利分校的三位研究人员发明,目的是能够使用容量较小、因而价格低廉(Inexpensive)的磁盘,并使它们在系统看来如同一块单独的磁盘。由此,RAID 可以被描述为分区的反面:一种情况是从单块磁盘创建多个逻辑单元,另一种则是从多块物理磁盘创建一个逻辑单元。

​

RAID 系统把数据组织到多块硬盘中,并采用纠错机制以确保存档的可靠性。随着硬盘容量、进而存储数据量的增长,可靠性日益成为关键因素。在 1998 年,也就是 RAID 系统诞生之初,存在 5 个 RAID 级别,编号从 1 到 5,分别对应系统在可靠性和性能上的不同层次。此后,又出现了其他类型的 RAID。它们要么是既有 RAID 的演进,要么是若干基础 RAID 的组合。

为什么使用 RAID?

开发 RAID 系统是为了:

• 增加容量:RAID 系统可以把多块硬盘首尾相接,从而扩大卷的大小。

• 提升性能:数据同时写入多块磁盘。这样,每块磁盘只需写入一部分数据。

• 提供容错能力:某些 RAID 配置可以防范单块磁盘的故障。该功能非常重要,否则 RAID 阵列中任何一块磁盘发生故障都会导致所有磁盘的数据丢失。这正是 RAID 0 级别所会发生的情况。

主要的 RAID 类型

RAID 0:

该配置进行了分段,但没有任何数据冗余。它提供最佳性能,但没有任何容错能力。

RAID 0 提升性能,能够达到非常高的读写吞吐量。阵列中所有磁盘的容量也会累加。因此,2 块 2 TB 的硬盘组成 RAID 0 后,会被操作系统视为一块 4 TB 的磁盘。

Illustration 1 — Qu'est-ce que le RAID en informatique ?

RAID 1:

该配置也称为磁盘镜像,由至少两块复制数据存储的磁盘组成。​一块磁盘的内容会完整复制到另一块上,从而在第一块磁盘发生故障时确保其数据有一份完整的副本。

由于两块磁盘可以同时读取,读取性能得到提升。写入性能与单块磁盘存储时相同。

Illustration 2 — Qu'est-ce que le RAID en informatique ?

RAID 5:​

RAID 5 至少需要三块硬盘。该系统是使用最广泛的 RAID 系统,因为它同时兼顾了磁盘的并行使用(从而获得更好的读写性能)和容错能力。这种奇偶校验机制可以防范其中一块硬盘的故障。此类 RAID 的总容量等于总容量减去一块磁盘的容量(因奇偶校验所致)。

Illustration 3 — Qu'est-ce que le RAID en informatique ?

若按每块磁盘 1 TB 计算

实际可用容量的计算公式:磁盘数 -1

例如:4 块磁盘 -1 = 3 = 3TB

RAID 6:

​RAID 6 则至少需要四块磁盘。它是 RAID 5 的演进,但基于另一种分布方式,因为它具备双重奇偶校验。凭借后者,该系统可以在使用所有磁盘(从而获得更好的读写性能)的同时,具备容许两块硬盘故障的容错能力。

Illustration 4 — Qu'est-ce que le RAID en informatique ?

若按每块磁盘 1 TB 计算

实际可用容量的计算公式:磁盘数 -2

例如:5 块磁盘 -2 = 3 = 3TB

嵌套 RAID 级别:

​

某些 RAID 级别被称为嵌套 RAID,因为它们基于多个 RAID 级别的组合。以下是几个嵌套 RAID 级别的例子。

​

RAID 10(RAID 1 + 0):该级别结合了 RAID 1 和 RAID 0,通常称为 RAID 10,它提供比 RAID 1 更优的性能,但成本高得多。在 RAID 1 + 0 中,数据先做镜像,再对这些镜像进行条带化聚合。

Illustration 5 — Qu'est-ce que le RAID en informatique ?