|
最近需要搭建一台Linux Server,用来提供SVN、FTP、SAMBA等服务。因为是文件服务器,所以就想到了有必要对里面的数据进行冗余保护。某些关键数据当然是经常备份为好,但是大容量的文件如果经常备份,周期太长,且也消耗空间。不保护不好,经常备份也麻烦,于是就干脆搞个RAID1算了。
由于服务器的硬件较老,BIOS里面不支持设置RAID,且也没有必要买昂贵的RAID卡,更没有必要用到专业的NAS/SAN,我决定采用Linux的Software RAID。OS版本是SUSE Linux Enterprise 11 SP1,它能够在安装系统的时候就可以创建RAID,且能够把系统分区也挂载到RAID上面。这个多多少少有点出乎我的意料,之前我只是想对数据分区做RAID保护而已。一不做二不休,干脆把所有的分区都建在RAID上,这样拔掉一块硬盘,系统还能够正常启动正常使用。我用了两块一模一样的硬盘,每块硬盘按照相同的规则分了三个区,把两个硬盘的第一个分区组成/dev/md0,用来挂载/boot,第二个分区组成/dev/md1,用来挂载/swap。第三个分区组成/dev/md2,因为想到未来可能会扩大容量存放更多的内容,所以利用Linux的LVM机制,在/dev/md2的基础上用建了一个Volume Group,然后把里面所有的空间都划分给一个Logica Volume,根分区/挂载这个逻辑卷上。以后如果要扩容,只要把新的块设备加到该Group当中,即可方便地扩大Logic Volume的容量。
虽然系统在两个硬盘上都有一模一样的拷贝,但是还有一个额外的步骤需要完成,那就是对GRUB的设置。GRUB这时还只存在第一块硬盘上。为了支持任意一块硬盘启动,我更改了GRUB 菜单:
default 0
failback 1
timeout 5
gfxmenu (hd0,0)/message
title SUSE Linux Enterprise Server 11 SP1 - 2.6.32.12-0.7 (default)
root (hd0,0)
kernel /vmlinuz-2.6.32.12-0.7-default root=/dev/datavg/datalv resume=/dev/md1 splash=silent showopts vga=0x31a
initrd /initrd-2.6.32.12-0.7-default
title SUSE Linux Enterprise Server 11 SP1 - 2.6.32.12-0.7 (failback)
root (hd1,0)
kernel /vmlinuz-2.6.32.12-0.7-default root=/dev/datavg/datalv resume=/dev/md1 splash=silent showopts vga=0x31a
initrd /initrd-2.6.32.12-0.7-default
#...
且运行grub ,以此键入如下命令:
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)把GRUB安装在两个硬盘上。然后,我测试了一下,拔掉任何一块硬盘,系统都可以启动且提供服务。
整个过程就这么简单。这个方案仅能对硬盘的损坏做一些保护,可靠性也不算多好。凑合着用吧! |
|