B.1. Linux RAID 级别的特性

所有 RAID 级别都用于将多个设备组合成一个单独的 MD 阵列。MD 插件是一个区域管理器,因此 EVMS 将 MD 阵列称为“区域”。MD 可以使用磁盘、段或其他区域创建这些区域。这意味着可以使用其他 RAID 区域创建 RAID 区域,从而在单个卷堆栈中组合多个 RAID 级别。

以下小节描述了每个 Linux RAID 级别的特性。在 EVMS 中,这些级别可以被视为 MD 插件的子模块。

B.1.1. 线性模式

线性 RAID 区域通过将对象彼此附加来组合对象。线性写入(或读取)MD 区域首先写入第一个子对象。当该对象已满时,写入继续到第二个子对象,依此类推,直到最后一个子对象已满。线性 RAID 区域的子对象不必大小相同。

优点

缺点

B.1.2. RAID-0

RAID-0 通常被称为“条带化”。这意味着 RAID-0 区域中的数据均匀分布并交错在所有子对象上。例如,当将 16 KB 的数据写入具有三个子对象且块大小为 4 KB 的 RAID-0 区域时,数据将按如下方式写入

优点

缺点

B.1.3. RAID-1

RAID-1 通常被称为“镜像”。RAID-1 区域中的每个子对象都包含区域中数据的相同副本。写入 RAID-1 区域会导致数据同时写入所有子对象。从 RAID-1 区域读取可以导致从任何一个子对象读取数据。RAID-1 区域的子对象不必大小相同,但区域的大小将等于最小子对象的大小。

优点

缺点

B.1.4. RAID-4/5

RAID-4/5 通常被称为“带奇偶校验的条带化”。与 RAID-0 类似,RAID-4/5 区域中的数据被条带化或交错在所有子对象上。但是,在 RAID-4/5 中,还为每个数据条带计算并记录奇偶校验信息,以便在其中一个对象丢失时提供冗余。如果发生磁盘崩溃,则可以根据剩余磁盘上的数据和奇偶校验信息恢复该磁盘的数据。

在 RAID-4 区域中,单个子对象用于存储每个数据条带的奇偶校验信息。但是,这可能会导致此单个对象上的 I/O 瓶颈,因为每次 I/O 写入区域都必须更新奇偶校验信息。

在 RAID-5 区域中,奇偶校验均匀分布在区域中的所有子对象上,从而消除了 RAID-4 中的奇偶校验瓶颈。RAID-5 提供了四种不同的算法来确定奇偶校验的分布方式。实际上,RAID-4 通常被认为是 RAID-5 的一种特殊情况,其奇偶校验算法只是使用一个对象而不是所有对象。这是 Linux 和 EVMS 使用的观点。因此,RAID-4/5 级别通常仅被称为 RAID-5,而 RAID-4 只是五种可用的奇偶校验算法之一。

优点和缺点

B.1.5. 多路径

多路径区域由一个或多个对象组成,就像其他 RAID 级别一样。但是,在多路径中,子对象实际上代表通往同一物理磁盘的多个物理路径。这种设置通常在具有光纤连接存储设备或 SAN 的系统上找到。

多路径实际上不是 RAID 标准的一部分,但已添加到 Linux MD 驱动程序中,因为它提供了一个方便的位置来创建由多个底层设备组成的“虚拟”设备。

之前的 RAID 级别都可以使用各种存储设备创建,包括通用的本地连接磁盘(例如,IDE 和 SCSI)。但是,只有当硬件实际上包含通往存储设备的多个物理路径时,才能使用多路径,并且此类硬件通常在高档系统上可用,这些系统具有光纤或网络连接存储。因此,如果您不知道是否应该使用多路径模块,那么您很可能不需要使用它。

与 RAID-1 和 RAID-4/5 类似,多路径提供针对硬件故障的冗余。但是,与这些其他 RAID 级别不同,多路径保护的是通往设备的路径中的故障,而不是设备本身的故障。如果其中一条路径丢失(例如,网络适配器损坏或光纤电缆被拔出),I/O 将重定向到剩余路径。

与 RAID-0 和 RAID-4/5 类似,多路径可以通过在各种路径之间进行负载均衡 I/O 请求来提供 I/O 性能改进。