11.2. 使用 RAID 实现高可用性

随着存储需求的增长,有时需要将更大容量的额外驱动器联机。然而具有讽刺意味的是,概率定律表明,随着存储设备数量的增加,设备发生故障的可能性也随之增加。因此,单硬盘系统的硬件故障可能性仅为四硬盘系统的 25%。[ 好吧,理论上是这样 :-) ]

幸运的是,可以使用一种称为 “廉价磁盘冗余阵列” (RAID) 的技术来优雅地处理此类故障,更重要的是无需停机。该技术使用多种方法之一将数据分布在多个磁盘上。这种冗余允许在设备发生故障时自动恢复数据。

本节将介绍使用 Mylex AcceleRAID DAC960 控制器安装、配置和设置 RAID 磁盘阵列。我对控制器本身的性能和可靠性以及我从 Mylex 获得的技术支持印象深刻——他们对 Linux 非常友好!(但是,有各种各样的 Linux 硬件 RAID 解决方案,RAID 也可以在 Linux 内核本身中以软件方式实现。)最有用的 RAID 实现类型可能是 RAID 级别 5。

在 Linux 下使 RAID 控制器可用的第一步是构建一个自定义内核,其中包含对硬件的驱动程序支持。Mylex DAC960 的驱动程序可以从 Dandelion Digital Linux 页面下载,网址为 http://www.dandelion.com/Linux/DAC960-2.0.tar.gz

在 Linux 下使您的 RAID 阵列可用的最后一步是使用 ``fdisk'' 实用程序创建有效分区。这与您在 IDE 或常规 SCSI 驱动器上使用的方式完全相同。有关如何设置分区信息的详细信息,请参阅 第 4.3 节

注意:注意:DAC960 驱动程序每个逻辑驱动器最多支持 7 个分区。如果您需要定义更多分区,您需要在 RAID 配置实用程序中定义多个逻辑驱动器(按<Alt>-<R>在系统启动时进入设置实用程序)。

一旦您能够看到您的 RAID 阵列,您应该初始化您希望定义的任何交换区和文件系统。以下是在第二个驱动器的第三个分区上初始化交换区,以及在第一个驱动器的第一个分区上初始化 ext2 格式文件系统的示例

/sbin/mkswap -c /dev/rd/c0d1p3
/sbin/swapon /dev/rd/c0d1p3
/sbin/mkfs.ext2 -c /dev/rd/c0d0p1

注意:注意:上述 ``-c'' 中的 ``mkswap'' 和 ``mkfs.ext2'' 命令在创建相应的交换/文件系统时启用坏块检查。这会大大增加完成过程所需的时间,但执行此类检查可能是一个非常好的主意。

对于您定义的任何新交换区,您应该在 ``/etc/fstab'' 文件中添加一个条目,以确保交换区在后续启动时实际使用。按照上面的示例,应添加以下行

/dev/rd/c0d1p3  swap       swap  defaults   0 0

最后,一旦您的文件系统被初始化,您就可以在那里创建挂载点,并将您的大型文件系统移动到阵列上,如您所愿。在生产环境中使用阵列之前,最好先测试几天。

有关 Mylex AcceleRAID 控制器的更多信息,请访问 Mylex 网站 http://www.mylex.com/ 以及 Dandelion Digital DAC960 驱动程序页面 http://www.dandelion.com/Linux/DAC960.html。有关 RAID 的更多信息(包括基于软件和硬件的解决方案),请参阅 Linux 高可用性网站 http://linas.org/linux/raid.html