18.2. RAID0 - 条带

Written by Tom RhodesMurray Stokely.

串连会合并数个磁盘成单一个磁盘区(Volume),可以透过使用硬件RAID控制器来做到串连。GEOM磁碟子系统提供了软件支持的磁盘串连,也就是所谓的RAID0,而不需要RAID磁盘控制器。

RAID0中,数据会被切割成数个数据内存块(Block)写入到磁盘阵列中的每一个磁碟机。如下图所示,取代以往等候系统写入256k到一个磁盘的时间,RAID0可以同时写入64k到磁盘阵列中四个磁盘的每个磁盘,这可提供优异的I/O性能,若使用多个磁盘控制器可增加更多的性能。

Disk Striping Illustration

RAID0串连中的每个磁盘必须要相同大小,因为I/O的请求是平行交错读取或写入到多个磁盘的。

注意:

RAID0提供任何备援(Redundancy)功能。这意谓着若磁盘阵列中的其中一个磁盘故障,所有在该磁盘上的数据便会遗失。若数据很重要,请规画备份策略,定期储存备份到远端系统或装置。

创建基于 GEOM 的 RAID0 磁盘阵列方法如下。创建完成后,控制创建好的条带(stripe)的方法请参阅gstripe(8)

过程 18.1. 在未格式化的 ATA 磁盘上建立条带
  1. 加载 geom_stripe.ko 模块:

    # kldload geom_stripe
  2. 确保存在合适的挂接点 (mount point)。 如果这个卷将成为根分区, 那么暂时把它挂接到其他位置i, 如 /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. 接着需要写标准的 label, 也就是通常所说的分区表到新卷上, 并安装标准的引导代码:

    # bsdlabel -wB /dev/stripe/st0
  5. 上述过程将在 /dev/stripe 目录中的 st0 设备基础上建立两个新设备。 这包括 st0ast0c。 这时, 就可以在 st0a 设备上用下述 newfs 命令来建立 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 中增加下述设置, 以便在系统初始化过程中自动加载:

    # sysrc -f /boot/loader.conf geom_stripe_load=YES

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

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

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