昨日メールが飛んできた。 XenServer仮想ホストRAID10構成の環境で、いきなりディスク2本同時にFailするというトラブルが発生したが、なんとか復旧できました\(^o^)/

自宅サーバのお話。昨日メールが飛んできた。 XenServer仮想ホストRAID10構成の環境で、いきなりディスク2本同時にFailするというトラブルが発生したが、なんとか復旧できました\(^o^)/

その復旧手順メモ。

★とりあえずRAIDアレイがサボっているか確認する。

[root@vmhost01 ~]# mdadm --detail --scan mdadm: md device /dev/md0 does not appear to be active.

以下でディスクを認識しているか確認。

[root@vmhost01 ~]# fdisk -l

★認識してるなら、以下でアレイ状況を確認。FでFailしてたら、Xenserverを再起動して、やり直す。

[root@vmhost01 ~]# watch -n 1 ls -lF

Every 1.0s: cat /proc/mdstat Sat Jun  8 11:39:35 2013

Personalities : [raid1] [raid10] md0 : inactive sdb1[0] sdc1[1] 3907023872 blocks

unused devices: <none>

★バッドセクタをチェックする。

[root@vmhost01 ~]# badblocks -vs -o sdb1.bad /dev/sdb1

Checking blocks 0 to 1953512001 Checking for bad blocks (read-only test): done Pass completed, 0 bad blocks found. ←★バッドセクタなし。

 [root@vmhost01 ~]#

[root@vmhost01 ~]# badblocks -vs -o sdc1.bad /dev/sdc1

Checking blocks 0 to 1953512001 Checking for bad blocks (read-only test): done Pass completed, 0 bad blocks found. ←★バッドセクタなし。

 [root@vmhost01 ~]#

[root@vmhost01 ~]# badblocks -vs -o sdd1.bad /dev/sdd1

 Checking blocks 0 to 1953512001 Checking for bad blocks (read-only test): done Pass completed, 0 bad blocks found. ←★バッドセクタなし。

 [root@vmhost01 ~]#

[root@vmhost01 ~]# badblocks -vs -o sde1.bad /dev/sde1

Checking blocks 0 to 1953512001 Checking for bad blocks (read-only test): done Pass completed, 49 bad blocks found. ←★バッドセクタあり。

 [root@vmhost01 ~]#

[root@vmhost01 ~]# badblocks -vs -o sdd1.bad /dev/sdd1

 Checking blocks 0 to 1953512001 Checking for bad blocks (read-only test):        10664064/     1953512001

★バッドセクタのチェックファイルを確認する。

[root@vmhost01 ~]# watch -n 1 ls -lF

total 52

-rw-r--r-- 1 root root  2980 Jun 11 22:57 dead.letter

-rw-r--r-- 1 root root     0 Jul  4  2012 hddbad.txt

drwxr-xr-x 9 root root  4096 May 17  2012 initrd/

-rw-r--r-- 1 root root  2300 Jul  5  2012 logfile

-rw-r--r-- 1 root root     0 Jun 15 00:20 sdb1.bad ←★バッドセクタなし。

-rw-r--r-- 1 root root     0 Jun 15 00:20 sdc1.bad ←★バッドセクタなし。

 -rw-r--r-- 1 root root     0 Jun 14 22:03 sdd1.bad ←★バッドセクタなし。

-rw-r--r-- 1 root root   539 Jun 15 05:05 sde1.bad ←★バッドセクタあり。

-rw-r--r-- 1 root root 35946 May 17  2012 support.tar.bz2

★スーパーブロックを再作成する。

 [root@vmhost01 ~]# mke2fs -S /dev/sde1 mke2fs

1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 244203520 inodes, 488378000 blocks 24418900 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 14905 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks:         32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,         4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,         102400000, 214990848

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or 180 days, whichever comes first.  Use tune2fs -c or -i to override. [root@vmhost01 ~]#

★バッドセクタを修復する。

 [root@vmhost01 ~]# fsck -l sde1.bad /dev/sde1 -y

fsck 1.39 (29-May-2006) e2fsck 1.39 (29-May-2006) Resize inode not valid.  Recreate? yes

★外れたHDDをmd0アレイに追加する。

[root@vmhost01 ~]# mdadm --manage /dev/md0 --add /dev/sdd1

mdadm: re-added /dev/sdd1

[root@vmhost01 ~]#

[root@vmhost01 ~]# mdadm --manage /dev/md0 --add /dev/sde1

mdadm: re-added /dev/sde1

★もう一回確認。この状態だと、アレイは起動していないので[UUUU]になっていない。

[root@vmhost01 ~]# watch -n 1 cat /proc/mdstat

Every 1.0s: cat /proc/mdstat Sat Jun  8 11:40:43 2013

Personalities : [raid1] [raid10] md0 : inactive sde1[3] sdd1[2] sdb1[0] sdc1[1] 7814047744 blocks

unused devices: <none>

★アレイをアクティブにする。

[root@vmhost01 ~]# mdadm -R /dev/md0

★もう一回確認する。[UUUU]になったことを確認。

[root@vmhost01 ~]# watch -n 1 cat /proc/mdstat

Every 1.0s: cat /proc/mdstat Sat Jun  8 12:55:47 2013

Personalities : [raid1] [raid10] md0 : active raid10 sde1[3] sdd1[2] sdb1[0] sdc1[1] 3907023872 blocks 64K chunks 2 near-copies [4/4] [UUUU]

unused devices: <none>

★この状態で、XenCenterからRepairを試みる。SRが紐付いたらOK.

問題ないなら、VMを起動。スキャンディスクが走る場合でも完走させる。

VM起動後、動作確認。

以上で完了。