Ubuntu资讯

ubuntu server:RAID 10 的故障处理

 ◆故障处理

  下面我们来模拟RAID发生故障时的处理。

  ◆从RAID中移除设备

  正在使用的设备是不允许移除的,要想移除,必须先将其标记为fail。如果你的RAID中有某个设备发生故障,要移除的话,也需要先将其标记为fail。

  1.移除单个RAID物理卷

  假设sda1分区发生异常,我们需要将其移除。

  下面我们将物理卷sda1从RAID中移除:

  $ sudo mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1

  mdadm: set /dev/sda1 faulty in /dev/md0

  mdadm: hot removed /dev/sda1

  如果你打算将移除的设备清空,以便做其他用途,那么你必须将超级块清除掉,否则系统会认为该设备仍然属于某个RAID阵列:

  $ sudo mdadm --zero-superblock /dev/sda1

  2.移除整个硬盘

  要从RAID中移除整个硬盘,需要先将该硬盘上所有的RAID物理卷都移除。

  比如,我们要将第一块硬盘sda整个移除,就需要将sda1、sda2、sda3全部标记为fail,然后将其全部移除:

  


图片1

 

  mdadm: set /dev/sda3 faulty in /dev/md2

  mdadm: hot removed /dev/sda3

  现在,如果在支持热插拔的服务器上,你就可以将该硬盘拔出了

 ◆添加已有RAID物理卷

  向RAID中添加设备,使用--add指令即可。

  如果要添加的设备上已经创建好RAID物理卷,比如我们刚才移除的sda1、sda2、sda3设备,添加过程很简单:

  $ sudo mdadm /dev/md0 --add /dev/sda1

  mdadm: re-added /dev/sda1

  $ sudo mdadm /dev/md1 --add /dev/sda2

  mdadm: re-added /dev/sda1

  $ sudo mdadm /dev/md2 --add /dev/sda3

  mdadm: re-added /dev/sda1

  ◆更换全新硬盘

  1.移除坏硬盘

  假设整个sda已经无法使用,我们需要用全新的硬盘将其替换掉。首先,将sda的所有分区从RAID中移除:

  $ sudo mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1

  $ sudo mdadm /dev/md1 --fail /dev/sda2 --remove /dev/sda2

  $ sudo mdadm /dev/md2 --fail /dev/sda3 --remove /dev/sda3

  移除后,查看一下RAID状态,看看是不是真的移除了:

  


图片1

  我们可以看到,sda的设备已经不在RAID中了,RAID10的状态变成了3个Up设备:[_UUU]。

  现在,如果是在支持热插拔的服务器上,你就可以将硬盘拔出了。

 2.插入硬盘

  虽然第一块硬盘从RAID中移除了,现在系统仍然可以启动。这是因为sdb变成了第一块硬盘,现在grub配置中的hd0实际上就是sdb。所以,即使第一块硬盘坏掉,在不需要更改grub配置的情况下,系统仍然能够启动。

  如果你是在真实的服务器上做实验,而且服务器支持硬盘的热插拔,不需要重新启动服务器,直接将“坏”硬盘拔出,换上新硬盘即可。

  由于我们是在VMware中做实验,不支持热插拔,所以要添加新硬盘的话必须关机:

  $ sudo halt

  关机后,在VMware中,先加入一块新硬盘,再删除原先的第一块“坏”硬盘。请注意,如果你先删除旧硬盘再加入新硬盘,VMware会把新硬盘作为SCSI0:0加入,对Linux来说也就是sda;由于这是一块全新的硬盘,上面还没有grub,所以如果作为sda的话,会导致系统无法启动。

  新硬盘加好后,开机。

  是的,在缺少第一块硬盘、只剩下3块好硬盘的情况下,系统的确还能够正常启动。现在,你体会到我们这个方案的优越性了吧!

  系统启动后,我们来看一下现有硬盘的情况:

  $ sudo fdisk -l

  你应该看到,原有的3块硬盘,位置都往前移动了,原先的sdb成了现在的sda,新加入的硬盘成了sdd。(如果你是在真实服务器上,没有重新启动服务器,而使用热插拔加入新硬盘,那么新硬盘仍然是sda。)

  3.新硬盘分区

  为了方便,我们直接将现有硬盘的分区信息,复制到新硬盘上:

  $ sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdd

希望看到您的想法,请您发表评论x