摘要:本文中介绍的安装是在RedHat 6.0上进行的,我认为在其他的Linux版本中应该也能用。我什么时候会转去用Debian呢?我希望能尽快。
一、RAID介绍
我建议你读一读jakob@ostenfeld.dk写的软件RAID HOWTO。很明显,他是个丹麦人。丹麦是一个住着许多聪明人的世界上最好的国家。他的这篇HOWTO写得非常好,也许我根本就没有必要写这篇文章。我之所以写这篇文章是因为文档一般来说都写得不大容易懂,当然现在情况已有很大的改观。本文中介绍的安装是在RedHat 6.0上进行的,我认为在其他的Linux版本中应该也能用。我什么时候会转去用Debian呢?我希望能尽快。
什么是RAID?简单的说,它可以让你在几个硬盘上做些有趣的事。它可以让你把几个硬盘合并起来,把数据分散地存放在这几个硬盘中。它可以提高往硬盘读写数据的速度,也可以在硬盘上备份数据。这样即使你有一个硬盘坏了,你还可以从其他的硬盘中恢复所有的数据。你可以读读软件RAID HOWTO中有关RAID级别的部份来更好的了解不同类型的软件RAID。
为了试验本文中的例子,你需要设置一些小的分区。我建议你设置一个1G的扩展分区,然后在这个扩展分区上建一些100兆的逻辑分区。请千万要记住,你只能在一个无关紧要的硬盘上进行试验。如果你毁了这个硬盘上的数据,那是你自己的错。即使我的文章中写得不对,你也必需对自己的所作所为负责。
二、RAID条带(strip RAID)
我只准备介绍如何设置RAID条带来存放数据。也就是说,我不会把操作系统的主要部份放在RAID条带上。用RAID条带来存放整个系统会带来一些问题,所以我不准备这么做。
简单的说,在Linux系统上设置RAID条带需要四个步骤。条带把数据存放在两个或更多的硬盘(实际上是分区)上,这些数据有一半是在一个硬盘上,另一半在另一个硬盘上。这样可以提高硬盘读写的速度,因为数据是从两个硬盘上同时读出来的。再说一次,你可以在HOWTO读到更详细的内容。
首先,我们要配置/dev/md0,然后我们要格式化这些分区,接下来要配置/etc/rc.d/rc.local来激活RAID,最后要配置/etc/rc.d/rc.local来把这些设备安装到某个目录。
具体步骤
现在,我要使用一些小窍门。我认为大多数的低端用户并没有两个硬盘,所以我要使用同一个硬盘上的两个分区而不是两个硬盘。建立一个有两个逻辑分区的扩展分区。这两个分区,/dev/hda5和/dev/hda6,的大小必需一样。在同一个硬盘上的两个分区之间进行RAID条带是没有任何意义的,即使是在同一个IDE控制器的不同硬盘上这么做也是没有意义的。请记住,这只不过是个练习。
在 /etc/raidtab中这么写:
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
persistent-superblock 1
device /dev/hda5
raid-disk 0
device /dev/hda6
raid-disk 1
使用以下命令格式化分区
mkraid /dev/md0
如果你在用“mkraid”命令时出了些问题,它应该会给出如何解决问题的提示。然后执行如下命令:
mkfs -t ext2 /dev/md0
接着,你可以在“/proc/mdstat”文件中查raid的状态。
cat /proc/mdstat
执行以下命令会在/etc/rc.d/rc.local中增加一行
echo "raidstart /dev/md0" /etc/rc.d/rc.local
把这个命令执行一次。这可以为RAID设备建好目录并在/etc/rc.d/rc.local中增加一条命令。
mkdir /RAID
echo "mount /dev/md0 /RAID" /etc/rc.d/rc.local
如果你不想重启动计算机,你现在就可以激活RAID,
raidstart /dev/md0
mount /dev/md0 /RAID
你可以用此命令来检查已经安装的目录。
df
三、RAID镜象
和以上的例子一样,我要使用同一个硬盘上的两个分区,并且我也只对数据分区进行镜象。
首先,设置/dev/md0,然后格式化分区,接着配置/etc/rc.d/rc.local来激活raid,最后配置/etc/rc.d/rc.local来把镜象设备安装到一个目录下。
如下设置
/etc/raidtab
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
persistent-superblock 1
device /dev/hda5
raid-disk 0
device /dev/hda6
raid-disk 1
用以下命令格式化分区
mkraid /dev/md0
如果你在用“mkraid”命令时出了些问题,它应该会给出如何解决问题的提示。然后执行如下命令:
mkfs -t ext2 /dev/md0
接着,你可以在“/proc/mdstat”文件中查raid的状态。
cat /proc/mdstat
执行以下命令会在/etc/rc.d/rc.local中增加一行
echo "raidstart /dev/md0" /etc/rc.d/rc.local
把这个命令执行一次。这可以为RAID设备建好目录并在/etc/rc.d/rc.local中增加一条命令。
mkdir /RAID
echo "mount /dev/md0 /RAID" /etc/rc.d/rc.local
如果你不想重启动计算机,你现在就可以激活RAID,
raidstart /dev/md0
mount /dev/md0 /RAID
你可以用此命令来检查已经安装的目录。
df
四、使用空闲的分区设置RAID 5
使用一个空闲的设备来试验RAID 5是一件很酷的事。我们还是只用一个硬盘。一般来说,我都会建立一个100M的逻辑分区来进行试验。如果你有一个1G的扩展的分区,那你就可以有10个逻辑分区来进行各种试验。
具体的步骤和以上介绍的镜象以及条带一样,把配置文件按以下修改。
raiddev /dev/md0
raid-level 5
nr-raid-disks 7
nr-spare-disks 1
persistent-superblock 1
parity-algorithmleft-symmetric
chunk-size 32
device /dev/hda5
raid-disk 0
device /dev/hda6
raid-disk 1
device /dev/hda7
raid-disk 2
device /dev/hda8
raid-disk 3
device /dev/hda9
raid-disk 4
device /dev/hda10
raid-disk 5
device /dev/hda11
raid-disk 6
### Also, let us have a spare device
device /dev/hda12
spare-disk 0
五、注解
请使用/etc/rc.d/rc.local来安装raid设备,而不要用/etc/fstab。如果你想用/etc/fstab,你尽可以试一试。这多半没有用,但有些人就是喜欢自己试试看(就象我一样)。
这些文档以前写得挺难懂得,但这些HOWTO已经更新过了,这些工具也变得更好用了。现在,在这些例子的帮助下,任何一个会用Linux的人都可以设置一个raid设备。希望这可以帮助降低RAID服务器的价钱。
如果你想更好的使用软件RAID,请用U2W SCSI控制器,象Adaptec控制器或其他的好品牌,如DPT,Mylex等。对于只需要镜象而不考虑速度的比较便宜的raid,也可以使用IDE控制器。如果你想更进一步使用硬件RAID,有几个公司支持Linux的硬件RAID。