加了块500G的硬盘,决定和原来的120G组一个RAID1,保证数据安全,主板有BIOS的RAID支持,其实也是软的,还是用内核里的mdadm搞吧。因为是基于分区的RAID,所以2块硬盘不一样大也无所谓,只要做RAID的分区一样大就好了。
sda | sdb | 规划 |
sda1 10G | sdb1 10G | 这2个分区作为以后试验用 |
sda2 20G | sdb2 20G | RAID1 / |
sda3 30G | sdb3 30G | RAID1 /home |
sda4 | sdb4 | |
sda5 52G | sdb5 52G | RAID1 ~/safety |
sdb6 4G | swap | |
sdb7 2G | /portage | |
sdb8 100G | MP3 | |
sdb9 250G | MOVE |
1.准备
LIVECD启动,新的500G硬盘是空的,先按照规划,分好区,并格式化sdb8和sdb9,用来放原来硬盘的数据。
挂载原系统到/mnt/gentoo,挂载sdb8到/mnt/bak放转移数据,然后
cp -a /mnt/gentoo/* /mnt/bak/
完毕后,检查一下,卸载原系统,按照规划对老硬盘分区,另外做raid的分区标记为
fd(Linux raid autodetect)
方便内核启动的时候自动查找并重建raid
加载raid1模块: modprobe raid1
2.建立设计好的三个RAID
mdadm -C /dev/md0 -l 1 -n 2 /dev/sda2 /dev/sdb2
mdadm -C /dev/md1 -l 1 -n 2 /dev/sda3 /dev/sdb3
mdadm -C /dev/md2 -l 1 -n 2 /dev/sda5 /dev/sdb5
有的分区大,初始化太费时间,可以加个参数--assume-clean,反正一会还要格式化。
cat /proc/mdstat ,看到如下信息Personalities : [raid1]
md1 : active raid1 sdb3[1] sda3[0]
31463232 blocks [2/2] [UU]
md2 : active raid1 sdb5[1] sda5[0]
54283520 blocks [2/2] [UU]
md0 : active raid1 sdb2[1] sda2[0]
20980800 blocks [2/2] [UU]
unused devices: <none>
对了,把配置导出一下
mdadm -D -s >> /mnt/gentoo/etc/mdadm.conf
3.配置内核
chroot到系统中,以下编入内核
[*] Multiple devices driver support (RAID and LVM) --->
<*> RAID support
[*] Autodetect RAID arrays during kernel boot
<*> RAID-1 (mirroring) mode
编译安装新内核,顺便把mdadm装了。
4.配置grub
把2块硬盘都setup了,以后无论谁挂了都可以启动
grub.conf里的root改为 root=/dev/md0
5.基本完事,重启进系统,非常顺利,哈哈!
现在很有安全感啊,当然磁盘还是用smartd监视着。
2 reactions
1 From Oasis Feng - 12/01/2009, 02:20
本来最初也有打算上RAID 0+1的,后来还是放弃了。因为我最终意识到,RAID只能防止硬件故障,而无法抵御人为的过失。我真正需要的是跨硬盘的Scheduled Backup,而非RAID……
2 From Druggo - 12/01/2009, 09:34
@Oasis 对于我这种懒人,备份好困难,我东西都是随便丢的,也许哪天就要用上,制定一个备份的列表也不方便,东西太多,太散,而且备来备去还是在我硬盘上,极为重要的我会多放几个地方,避免误删了:D