20.5. RAID3 - 使用专用校验设备的字节级条带

Written by Mark GladmanDaniel Gerzo.
Based on documentation by Tom RhodesMurray Stokely.

RAID3 是一种将多个磁盘组成一个卷的技术, 在这个配置中包含一个专用于校验的盘。 在 RAID3 系统中, 数据会以字节为单位拆分并写入除校验盘之外的全部驱动器中。 这意味着从 RAID3 中读取数据时将会访问所有的驱动器。 采用多个磁盘控制器可以进一步改善性能。 RAID3 阵列最多可以容忍其中的 1 个驱动器出现故障, 它可以提供全部驱动器总容量的 1 - 1/n, 此处 n 是阵列中的磁盘数量。 这类配置比较适合保存大容量的数据, 例如多媒体文件。

在建立 RAID3 阵列时, 至少需要 3 块磁盘。 所有的盘的尺寸必须一致, 因为 I/O 请求会并发分派到不同的盘上。 另外, 由于 RAID3 本身的设计, 盘的数量必须恰好是 3, 5, 9, 17, 等等 (2^n + 1)。

20.5.1. 建立专用的 RAID3 阵列

在 FreeBSD 中, RAID3 是通过 graid3(8) GEOM class 实现的。 在 FreeBSD 中建立专用的 RAID3 阵列需要下述步骤。

注意:

虽然理论上从 RAID3 阵列启动 FreeBSD 是可行的, 但这并不常见, 也不推荐您这样做。

  1. 首先, 在引导加载器中用下面的命令加载 geom_raid3.ko 内核模块:

    # graid3 load

    此外, 也可以通过命令行手工加载 geom_raid3.ko 模块:

    # kldload geom_raid3.ko
  2. 创建用于挂载卷的挂点目录:

    # mkdir /multimedia/
  3. 确定将要加入阵列的磁盘设备名, 并创建新的 RAID3 设备。 最终, 这个设备将代表整个阵列。 下面的例子使用三个未经分区的 ATA 磁盘: ada1ada2 保存数据, 而 ada3 用于校验。

    # graid3 label -v gr0 /dev/ada1 /dev/ada2 /dev/ada3Metadata value stored on /dev/ada1.Metadata value stored on /dev/ada2.Metadata value stored on /dev/ada3.Done.
  4. 为新建的 gr0 设备分区, 并在其上创建 UFS 文件系统:

    # gpart create -s GPT /dev/raid3/gr0# gpart add -t freebsd-ufs /dev/raid3/gr0# newfs -j /dev/raid3/gr0p1

    屏幕上会滚过许多数字, 这个过程需要一段时间才能完成。 此后, 您就完成了创建卷的全部操作, 可以挂载它了。

  5. 最后一步是挂载文件系统:

    # mount /dev/raid3/gr0p1 /multimedia/

    现在可以使用 RAID3 阵列了。

为了让上述配置在系统重启后继续可用, 还需要进行一些额外的配置操作。

  1. 在挂载卷之前必须首先加载 geom_raid3.ko 模块。 将下面的配置添加到 /boot/loader.conf 文件中, 可以让系统在引导过程中自动加载这个模块:

    geom_raid3_load="YES"
  2. 您需要在 /etc/fstab 文件中加入下列配置, 以便让系统引导时自动挂载阵列上的文件系统:

    /dev/raid3/gr0p1 /multimedia ufs rw 2 2

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.