21.2.RAID0——条带

条带化(Striping)将多个磁盘驱动器合并为一个单一的卷。条带化可以通过硬件 RAID 控制器来完成。GEOM 磁盘子系统提供了软件支持的磁盘条带化,也称为 RAID0,无需 RAID 磁盘控制器。

在 RAID0 中,数据被分割成块,跨所有磁盘进行写入。如下面的图示所示,RAID0 不需要等待系统将 256k 数据写入一个磁盘,而是可以同时将 64k 数据写入阵列中的每个磁盘,从而提供更高的 I/O 性能。使用多个磁盘控制器可以进一步提升性能。

Disk Striping Illustration

RAID0 中的每个磁盘必须具有相同的大小,因为 I/O 请求被交错,以便并行地读取或写入多个磁盘。

注意

RAID0 不提供 冗余。这意味着如果阵列中的一个磁盘发生故障,所有磁盘上的数据将丢失。如果数据重要,请实现定期将备份保存到远程系统或设备的备份策略。

在 FreeBSD 系统上使用普通磁盘创建 GEOM 基础的 RAID0 软件阵列的过程如下。创建条带后,参考 gstripe(8) 获取更多关于如何控制现有条带的信息。

过程:创建未格式化的 ATA 磁盘条带

  1. 加载 geom_stripe.ko 模块:

    # kldload geom_stripe
  2. 确保存在合适的挂载点。如果该卷将成为根分区,则暂时使用另一个挂载点,如 /mnt

  3. 确定将要条带化的磁盘的设备名称,并创建新的条带设备。例如,要将两个未使用且未分区的 ATA 磁盘(设备名称为 /dev/ad2/dev/ad3)进行条带化:

    # gstripe label -v st0 /dev/ad2 /dev/ad3
    Metadata value stored on /dev/ad2.
    Metadata value stored on /dev/ad3.
    Done.
  4. 在新卷上写入标准标签(也称为分区表),并安装默认的引导代码:

    # bsdlabel -wB /dev/stripe/st0
  5. 该过程应该在 /dev/stripe 下创建另外两个设备,除了 st0 之外,分别是 st0ast0c。此时,可以使用 newfsst0a 上创建 UFS 文件系统:

    # newfs -U /dev/stripe/st0a

    一些数字会在屏幕上滚动,几秒钟后,过程完成。卷已经创建,可以挂载了。

  6. 手动挂载已创建的磁盘条带:

    # mount /dev/stripe/st0a /mnt
  7. 要在启动过程中自动挂载该条带文件系统,请将卷信息添加到 /etc/fstab。在此示例中,创建了一个名为 stripe 的永久挂载点:

    # mkdir /stripe
    # echo "/dev/stripe/st0a /stripe ufs rw 2 2" \
    >> /etc/fstab
  8. geom_stripe.ko 模块还必须在系统初始化时自动加载,通过向 /boot/loader.conf 添加以下行:

    # echo 'geom_stripe_load="YES"' >> /boot/loader.conf

最后更新于