16.3. RAID 级别和线性支持
RAID 和线性存储级别提供各种数据保护、性能和容量选项。比较 RAID 级别 0、1、4、5、6、10 和线性阵列,以确定最佳的 Linux 存储配置。
以下是 RAID 支持的配置,包括级别 0、1、4、5、6、10 和线性:
- 0 级
RAID 级别 0,通常称为条带化的数据映射技术。这意味着写入阵列的数据被分成条,并在成员磁盘中写入。这以低的成本提供高 I/O 性能,但不提供冗余。
RAID 级别 0 的实现只在成员设备间条带化数据,最高为阵列中的最小设备大小。如果您有多个设备,它们的大小稍有不同,则每个设备将被视为具有相同的大小。每个设备都被视为最小驱动器的大小。因此,级别 0 阵列的常见存储容量是所有磁盘的总容量。如果成员磁盘具有不同的大小,RAID0 将使用可用区使用这些磁盘的所有空间。
- 1 级
RAID 级别 1 或镜像,通过将相同的数据写入阵列的每个磁盘来提供冗余。它在每个磁盘上保留一个镜像副本。因为其简单且数据高度可用,RAID 1 仍然被广泛使用。级别 1 使用两个或者多个磁盘进行操作,并提供很好的数据可靠性,并提高了读取密集型性能。但是,成本相对很高。
RAID 1 非常昂贵,因为您将相同的信息写入阵列中的所有磁盘。这提供了数据可靠性,但空间效率比基于奇偶校验的 RAID 级别(如级别 5)要低得多。但是,这种空间效率具有性能优势。基于奇偶校验的 RAID 级别会消耗更多 CPU 电源来生成奇偶校验。RAID 级别 1 将相同的数据写入多个成员,且 CPU 开销最小。因此,在使用软件 RAID 的系统上,RAID 1 可能会优于基于奇偶校验的 RAID 级别。当非 RAID 操作大量使用 CPU 资源时,这尤其如此。
1 级阵列存储容量等于硬件 RAID 中最小镜像硬盘的容量。或者,它等同于软件 RAID 中最小镜像分区。级别 1 冗余是所有 RAID 类型的最大可能。阵列可以继续操作只有一个磁盘。
- 级别 4
级别 4 使用单一磁盘驱动器中的奇偶校验来保护数据。奇偶校验信息根据阵列中其余成员磁盘的内容计算。然后当阵列中的一个磁盘失败时,这个信息就可以被用来重建数据。然后,重建的数据可以在替换磁盘前满足 I/O 请求,然后再替换磁盘。
专用奇偶校验磁盘代表所有写入事务到 RAID 阵列的固有瓶颈。因此,在没有包括回写技术(如回写缓存)的情况下,很少使用 4 级。或者,系统管理员有意设计具有这个瓶颈的软件 RAID 设备的位置。这适用于在填充数据后没有写入事务的数组。因此,Anaconda 中并没有提供 RAID 4 这个选项。但是,如果需要,用户可以手动创建它。
硬件 RAID 4 容量等于最小成员分区容量乘以分区的数量减一。RAID 4 阵列的性能是非对称的,即读的性能会好于写的性能。这是因为写操作会在生成奇偶校验时消耗额外的 CPU 资源和主内存带宽。在将实际数据写入磁盘时,它们也会消耗额外的总线带宽,因为您同时写入数据和奇偶校验。读操作只读取数据,而不是奇偶校验,除非阵列处于降级状态。因此,它们会产生较少的流量来驱动和跨计算机总线,以实现相同的数据传输。这在正常操作条件下适用。
- 5 级
这是最常见的 RAID 类型。RAID 5 在阵列的所有成员磁盘驱动器之间分布奇偶校验。这消除了 4 级固有的写瓶颈。唯一性能瓶颈是奇偶校验计算过程本身。现代 CPU 可以非常快速地计算奇偶校验。但是,在 RAID 5 阵列中有很多磁盘,高组合的数据传输速度可能会导致奇偶校验计算瓶颈。
5 级具有非对称性能,读性能显著提高。RAID 5 的存储容量的计算方法与级别 4 的计算方法是一样的。
- 级别 6
当数据冗余和保留而不是性能方面,这是常见的 RAID 级别。但是,1 级空间效率不能接受。级别 6 使用一个复杂的奇偶校验方案来恢复阵列中的任何两个驱动器的丢失。这个复杂的奇偶校验方案对软件 RAID 设备造成大量 CPU 负担,并在写入事务过程中增加负担。因此,与级别 4 和 5 相比,级别 6 的性能不对称性更严重。
RAID 6 阵列的总容量与 RAID 5 和 4 类似。但是,您必须为额外的奇偶校验存储空间从设备数中减去两个设备数。
- 级别 10
这个 RAID 级别将级别 0 的性能优势与级别 1 的冗余合并。它还可减少在具有多于两个设备的 1 级阵列中发现的一些空间。对于级别 10,您可以创建一个 3 个驱动器阵列来仅存储每个数据的两个副本。然后,整个阵列大小会成为最小设备大小的 1.5 倍。这与 3 设备级别 1 阵列(其等于最小大小)不同。与 RAID 级别 6 相比,计算奇偶校验对 CPU 的消耗较少,但空间效率较低。
在安装过程中,不支持创建 RAID 10。您可在安装后手动创建。
- 线性 RAID
线性 RAID 是创建更大的虚拟驱动器的一组驱动器。
在线性 RAID 中,块从一个成员驱动器按顺序分配。只有在第一个填充时,分配才会移动到下一个驱动器。这个分组方法不会提供性能优势,因为 I/O 操作不太可能在不同成员间同时进行。线性 RAID 也不提供冗余性,并会降低可靠性。如果有任何一个成员驱动器失败,则无法使用整个阵列,数据可能会丢失。该容量是所有成员磁盘的总量。