Jun
16
前两天写了一份《用软RAID启动系统》。这两天又看了些关于mdadm的资料。突然看到在mdadm源码包里面篇叫《Assembling md arrays at boot time》的文章。看完后发现,觉得只要DIY一个包含mdadm的initrd.img文件,即可直接把整个根分区放到软RAID里面。
在解压红旗预安装的initrd.img文件后(方法前面的日志中有提到),更发现本来红旗预装的initrd.img文件里面就支持mdadm。
太开心咯!!
※前提:使用2.6以上核心,mdadm建议是2.6.15以上,但证明在红旗DC Server 5.0上可以使用。
一、原理
由于初始化时候带有mdadm,所以可以让整个系统都由md驱动的阵列进行管理,而不需要任何手工的操作。分区格式如下:
/ 分区--/dev/md1:/dev/sda1、/dev/sdb1
swap分区--/dev/md0:/dev/sda2、/dev/sdb2
二、操作步骤
1、系统安装
系统识别到的硬盘:

在每个硬盘上分别建立1个512M的Software RAID(用于swap):



同样的,把剩下的空间也做成Software RAID(用于/分区):


用第一个Software RAID组成RAID1的swap分区:



剩下的Software RAID组成RAID1的/分区:

分区结果:

安装grub:

选择软件包:

2、后续操作
由于安装程序只会把gurb安装在第一个硬盘sda上,所以需要手动把其安装到sdb上:
到此已经全部做完。

简单很多吧??:ex2_8:
(请一定要分清楚物理设备sd和虚拟阵列设备md)
三、备份及修复
1、今后若第一个硬盘sda出现故障,可关闭系统后,把第二个硬盘替换上去,即可正常启动。
2、新硬盘放在原来sdb的位置上,对新硬盘进行同步:

a、用fdisk划分两个新的Software RAID分区,分别对应swap和/的大小:

b、把新raid分区加入阵列中;

完成

c、对新硬盘做grub即可。

四、维护
常用的维护是一样的,只是针对的设备改为/dev/md1即可。当出现需要使用拯救盘的时候,同样可以用光盘启动,输入:
拯救光盘可以自动识别到/分区的阵列和位置,并挂载:

只是改了设备号,一切不变。^_^
※注意:
1、每次只能对一个磁盘进行Software RAID划分;
2、组成md阵列后,不要进行普通的分区,要划分区,用lvm方式;(请参考上一份日志)
3、/boot分区不能在lvm上,若要单独划分,请给一个独立的md阵列它;
4、可引导分区只能在RAID1设备上。
这是错误的:

(没有单独的/boot时,/分区不能在除RAID1设备上)

(没有独立/boot分区时,/分区不能在lvm设备上)
这是正确的:

(单独划分/boot分区后,/分区可以在任何设备上,如RAID0)

(除/boot分区外,其他分区可以放在lvm里面)
在解压红旗预安装的initrd.img文件后(方法前面的日志中有提到),更发现本来红旗预装的initrd.img文件里面就支持mdadm。

※前提:使用2.6以上核心,mdadm建议是2.6.15以上,但证明在红旗DC Server 5.0上可以使用。
一、原理
由于初始化时候带有mdadm,所以可以让整个系统都由md驱动的阵列进行管理,而不需要任何手工的操作。分区格式如下:
引用
/ 分区--/dev/md1:/dev/sda1、/dev/sdb1
swap分区--/dev/md0:/dev/sda2、/dev/sdb2
二、操作步骤
1、系统安装
系统识别到的硬盘:

在每个硬盘上分别建立1个512M的Software RAID(用于swap):



同样的,把剩下的空间也做成Software RAID(用于/分区):


用第一个Software RAID组成RAID1的swap分区:



剩下的Software RAID组成RAID1的/分区:

分区结果:

安装grub:

选择软件包:

2、后续操作
由于安装程序只会把gurb安装在第一个硬盘sda上,所以需要手动把其安装到sdb上:
启动grub程序
#grub
在sdb上把grub安装到MBR上
grub>root (hd1,0)
grub>setup (hd1)
为了正常启动,恢复到sda上
grub>root (hd0,0)
grub>setup (hd0)
#grub
在sdb上把grub安装到MBR上
grub>root (hd1,0)
grub>setup (hd1)
为了正常启动,恢复到sda上
grub>root (hd0,0)
grub>setup (hd0)
到此已经全部做完。

简单很多吧??:ex2_8:
(请一定要分清楚物理设备sd和虚拟阵列设备md)
三、备份及修复
1、今后若第一个硬盘sda出现故障,可关闭系统后,把第二个硬盘替换上去,即可正常启动。
2、新硬盘放在原来sdb的位置上,对新硬盘进行同步:

a、用fdisk划分两个新的Software RAID分区,分别对应swap和/的大小:
fdisk /dev/sdb
用n指定新的分区;
用t指定格式为fd格式。
用n指定新的分区;
用t指定格式为fd格式。

b、把新raid分区加入阵列中;
mdadm /dev/md1 -add /dev/sdb1
mdadm /dev/md0 -add /dev/sdb2
mdadm /dev/md0 -add /dev/sdb2

完成

c、对新硬盘做grub即可。

四、维护
常用的维护是一样的,只是针对的设备改为/dev/md1即可。当出现需要使用拯救盘的时候,同样可以用光盘启动,输入:
linux rescue
拯救光盘可以自动识别到/分区的阵列和位置,并挂载:

只是改了设备号,一切不变。^_^
※注意:
1、每次只能对一个磁盘进行Software RAID划分;
2、组成md阵列后,不要进行普通的分区,要划分区,用lvm方式;(请参考上一份日志)
3、/boot分区不能在lvm上,若要单独划分,请给一个独立的md阵列它;
4、可引导分区只能在RAID1设备上。
这是错误的:

(没有单独的/boot时,/分区不能在除RAID1设备上)

(没有独立/boot分区时,/分区不能在lvm设备上)
这是正确的:

(单独划分/boot分区后,/分区可以在任何设备上,如RAID0)

(除/boot分区外,其他分区可以放在lvm里面)