现在,我们的新硬盘已经分好区,可以加入RAID了。
4.将新分区加入RAID
在把新分区加入到RAID之前,我们先来查看一下md1的详细信息:
图片1
可以看到,目前只有3个设备在md1中工作,原先的第一个设备已经被移除了
好,现在我们将sdd2加入md1:
$ sudo mdadm /dev/md1 --add /dev/sdd2
命令执行后,mdadm会重建md1,你可以查看创建进度和状态:
$ sudo mdadm --detail /dev/md1
[...]
Rebuild Status : 7% complete
[...]
Number Major Minor RaidDevice State
4 8 50 0 spare rebuilding /dev/sdd2
[...]
根据分区的大小,重建过程的时间长短会不一样。等重建结束,其状态应该是这样:
图片1
然后,我们把md0和md2也重建:
$ sudo mdadm /dev/md0 --add /dev/sdd1
$ sudo mdadm /dev/md2 --add /dev/sdd3
5.设置grub
最后,还需要设置一下grub,否则新硬盘无法启动系统:
$ sudo grub
grub> root (hd3,0)
grub> setup (hd3)
grub> quit
如果你是在真实服务器上,新硬盘为sda,则应该将grub安装在hd0上。
好,现在新硬盘已经加入到RAID中,将原先的坏硬盘替换掉了
◆添加备用硬盘
如果我们的RAID阵列中有备用设备,那么,在某个设备发生故障时,系统会自动将备用设备替换上,我们也就不需要进行手工更换的操作了。
我们可以在安装Ubuntu之初,就为RAID准备好备用硬盘,在创建RAID设备时使用-x或者--spare-devices=选项将备用物理卷添加到RAID中。
当然,我们也可以事后再添加备用硬盘;只是不能使用--spare-devices=选项,而要采用--add了。
在添加之前,我们先看一下RAID中有没有备用设备:
$ sudo mdadm --detail /dev/md1 | grep Spare
Spare Devices : 0
可见,当前RAID阵列中没有备用设备。
◆插入新硬盘
现在,我们按照上一节中介绍过的步骤,向服务器中添加一块新硬盘。
系统启动后,我们来看一下现有硬盘的情况:
$ sudo fdisk -l
你应该看到有sde设备,这个设备就是我们新加入的硬盘。
◆新硬盘分区
为了简化操作,我们还是直接将现有硬盘的分区信息,复制到新硬盘上:
$ sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sde
好,现在我们的新硬盘已经分好区,可以加入RAID了。
◆新分区加入RAID
下面我们将新硬盘上的3个分区,分别加入md0、md1、md2这3个RAID阵列:
$ sudo mdadm /dev/md0 --add /dev/sde1
$ sudo mdadm /dev/md1 --add /dev/sde2
$ sudo mdadm /dev/md2 --add /dev/sde3
现在来查看一下md0中有没有备用设备:
图片1
可以看到,总设备的数量、工作中的设备数量、备用设备数量,都发生了改变。
同样的,你也可以查看md1和md2的详细信息,应该都有了1个备用设备
◆设置grub
我们需要事先将备用硬盘的grub设置好,以防万一:
$ sudo grub
grub> root (hd4,0)
grub> setup (hd4)
grub> quit
◆故障模拟
现在,我们假设sda1出了故障,我们把它标记为fail:
$ sudo mdadm /dev/md0 --fail /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md0