使用LINUX 软件RAID,并且安装Ubuntu 9.10系统于其上。
有一台新机器,核心比较 多,是四核的,但是主频并不高,2.5Ghz。有两块大小不同的硬盘。想提高系统的速度,所以想把硬盘做成RAID的。但是,由于两块硬盘大小不同,听说 做RAID0硬盘的话,虽然速度大大提高了,但系统不太安全,一块硬盘出了问题,就再也找不回来数据了。
其实我是想把系统装在RAID0 之中,因为这样才能提高系统运行的速度。就算硬盘坏了,不过也是系统重新安装一遍而已。但是要实现这些,两个硬盘做RAID0,再有个硬盘存储日常的数 据,或者采用安全的RAID5。无论如何,都要求除了机器有RAID卡之外,必须是三块硬盘了。
所以想来,索性做Software Raid。因为我这机器,CPU核心多,所以相信,软件RAID并不会拖累CPU速度。
而且Linux的软件RAID,能够把硬盘上的两个分区,不管大小是否相同,都能做成RAID0的。
使用Ubuntu 9.10 Live CD(我是把它弄到一个U盘上去了,用U盘启动安装的)。接下来就研究如何实现软件RAID,并且把系统安装于其上。我尝试了几次,最后终于成功。下面就是记录:
用Ubuntu 9.10 Live CD启动以后,进入一个虚拟的ubuntu linux之中。注意,ubuntu缺省并没有软件RAID的驱动程序,所以首先要在这个虚拟的LINUX中安装它。
1)虽然是只是Live CD的LINUX,仍然要选择一个速度快一些的源,比如mirror.lupaworld.com之类。
2)使用命令: sudo apt-get install mdadm 来安装
mdadm是LINUX下管理软件RAID的命令。安装它的时候,自然就把它所依赖的软件RAID驱动程序也安装了。在/lib/modules/2.6.31-14-generic/kernel/drivers下可以看到有了md目录。
3)建立RAID分区
sudo mdadm --create /dev/md0 --auto yes -l 0 -n 2 /dev/sda6 dev/sdb3
上述命令中,--create /dev/md0 表明要创建的软件RAID设备是 /dev/md0
--auto yes 含义明显就中“全自动创建”
-l 0 是RAID的级别,我为了速度第一,自然选择RAID0
-n 2 是代表使用两个硬盘分区,后面的 /dev/sda6 dev/sdb3 就是两个要做RAID的分区了。
4)开始安装LINUX,注意,进入分区时,选择手工分区。
5)在手工分区中,选择/dev/md0作为自己的/目录。我是另外再选择了个小分区作为/boot目录,以免GRUB都起不来。
6)开始安装,如同平时ubuntu linux安装,只是注意,安装到最后,不要重启。因为我们还有事情要做。
主要的问题在于,缺省安装的ubuntu linux是没有软RAID驱动程序的,所以上述的安装的结果是,GRUB虽然能够启动,但是调入LINUX核心后,却根本找不到我们刚才做的/dev/md0这个RAID的分区。所以LINUX无法启动。
解决这个问题的办法就是,一定要在启动的核心中,加上软件RAID的驱动程序。
我参考了这篇文档:https://wiki.ubuntu.com/FakeRaidHowto
虽然它讲述的是ubuntu 9.04上的(注意9.10的GRUB与9.04的有很大的区别),且是硬件RAID的安装。
7)以下命令:
把新的根目录分区和启动分区分别加载到 /targret和/target/boot目录下
sudo mount /dev/md0 /target
sudo mount /dev/sda7 /target/boot
然后:
sudo mount --bind /dev /target/dev/
sudo mount -t proc proc /target/proc/
sudo cp /etc/resolv.conf /target/etc/resolv.conf
sudo chroot /target/
做到这一步,实际上在当前窗口中,把你未来的系统给加载了上来,
8)以下命令:
sudo apt-get install mdadm
这就是在未来的新系统中安装上mdadm以及软件RAID的驱动程序
9)下面这条命令,是让启动时内存文件系统中,加载软件RAID的驱动程序,我的是RAID0
echo raid0 >> /etc/initramfs-tools/modules
10) 然后,更新一下启动时的内存文件系统
update-initramfs -u
11) 更新一下GRUB:
update-grub
好了,重启机器,正常的话,ubuntu linux就正常启动了。用df看一下,是不是/目录是加载在/dev/md0上的。
然后。可以用hdparm -t来测试一下硬盘的速度了。我实测达到了 140M/s。已经远远大于普通SATA II的硬盘速度了。