19.2.RAID0 - 条带

条带化将几个磁盘驱动器组合成一个卷。条带化可以通过使用硬件 RAID 控制器来进行。GEOM 磁盘子系统为磁盘条带化提供软件支持,也称为 RAID0,不需要 RAID 磁盘控制器。

在 RAID0 中,数据被分割成块,在阵列中的所有驱动器上写入。如下图所示,RAID0 不需要等待系统向一个磁盘写入 256k 的数据,而是可以同时向阵列中的四个磁盘各写入 64k 的数据,从而提供卓越的 I/O 性能。这种性能可以通过使用多个磁盘控制器进一步增强。

磁盘条带化说明

RAID0 条带中的每个磁盘必须具有相同的大小,因为 I/O 请求是交错进行的,以平行地读或写到多个磁盘。

注意:

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

在 FreeBSD 系统上使用商品磁盘创建一个基于 GEOM 的软件 RAID0 的过程如下。如果创建了条带,请参考 gstripe(8) 以了解更多关于如何控制现有条带的信息。

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

  1. 加载geom_stripe.ko模块:
# kldload geom_stripe
  1. 确保存在一个合适的挂载点。如果这个卷将成为一个根分区,那么暂时使用另一个挂载点,如 /mnt
  2. 确定要条带化的磁盘的设备名称,并创建新的条带设备。例如,要对两个未使用和未分区的 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.
  1. 在新卷上写一个标准标签,也称为分区表,并安装默认的引导代码。
# bsdlabel -wB /dev/stripe/st0
  1. 这个过程应该在 /dev/stripe 中创建除 st0 之外的另外两个设备。这些设备包括 st0ast0c。在这一点上,可以使用 newfsst0a 上创建一个UFS文件系统。
# newfs -U /dev/stripe/st0a

许多数字会在屏幕上滑过,几秒钟后,这个过程就完成了。卷已经被创建,并准备好被挂载。

要手动挂载创建的磁盘条带:

# mount /dev/stripe/st0a /mnt
  1. 为了在启动过程中自动挂载这个带状文件系统,把卷的信息放在 /etc/fstab 中。在这个例子中,创建了一个永久的挂载点,名为 stripe
# mkdir /stripe
# echo "/dev/stripe/st0a /stripe ufs rw 2 2" \
>> /etc/fstab
  1. geom_stripe.ko 模块也必须在系统初始化时自动加载,方法是在 /boot/loader.conf 中添加一行。
# echo 'geom_stripe_load="YES"' >> /boot/loader.conf