RAID作業の失敗→復旧メモ

前のエントリでRAID5のアレイ拡大を行った。
http://d.hatena.ne.jp/polaroidoon/20100911
が、大きなミスをして、大変なことになったので忘れないためにも、今後やってしまっても戦えるようにメモ。

注意(Readme!!!!!!!!!!!!!)

ここから先の操作はミスをそのまま記録したものです。
失敗した操作も含むので、試す人は読みながら試すのではなく一通り目を通して、必要な操作だけを行ってください。



最初のディスクをアレイから外して再構成するまでは良かった。領域のシステムIDを設定し忘れてることを除けば。
ここで(しなくてもいいのに)確認のために再起動して、次のディスクをfail、removeした。

ここでmdstatを確認。
そしてアレイの中にディスクが2台しかいないことに気付いた。

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 sde2[3] sdb1[0]
      2917700352 blocks level 5, 256k chunk, algorithm 2 [4/2] [U__U]

unused devices: <none>

RAID5の壊れていいディスクは1台。でも、今アレイからは2台外れてることに…\(^o^)/


とりあえず、復旧作業開始。
まず、現状確認。

  • 先ほど再構成したsdcは再起動後、アレイには含めてもらえなかったが一応アレイの中のデータは持っている
  • sdcはシステムIDがRAID用になっていない
  • パーティション切り直しを行ったsddはアレイの中のデータを持っているものの、パーティションは切り直してしまった

これらに対応していく。
まずはsdcのシステムIDをpartedでRAIDにする。

# parted /dev/sdc
(省略)
(parted) set 1 raid on
(parted) print
(parted) quit

次にsddのパーティション情報を古い状態に戻す。
これはまだパーティション切り直しを行っていないsdeを参考にfdiskで行った。


ここで再起動。さらなるミスが…


/etc/fstabでRAIDアレイをマウントしようとしたままだった。
そして、2台もコケたままじゃダメだ!と起動途中でストップ。
rootパスワードで入って、fstabのmd1をコメントアウトすることに。

# mount / -o remount,rw
# vim /etc/fstab

そして、sdc、sddを追加して貰えなかったアレイに無理矢理この2台を追加する。
参考:
http://www.nurs.or.jp/~ogochan/essay/archives/1010#

# cat /etc/mdadm.conf

ディスクのuuidが残っているので、これを見つつ

# mdadm -A /dev/md0 -u 06d8f2da:6a329662:0c546357:1ce1ba4f --run --force

sddが追加されてなんとかアレイにディスクが3台いることをmdstatで確認。

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 sde2[3] sdd2[2] sdb1[0]
      2917700352 blocks level 5, 256k chunk, algorithm 2 [4/3] [U_UU]

unused devices: <none>

Readonlyでマウントして中身の無事を確認。

mount /dev/md1 /mnt -o ro

認識してもらえなかったsdcをアレイに追加して再構成。
なんとか元に戻った。

# mdadm --detail /dev/md1
/dev/md1:
        Version : 0.90
  Creation Time : Tue Aug  4 23:20:39 2009
     Raid Level : raid5
     Array Size : 2917700352 (2782.54 GiB 2987.73 GB)
  Used Dev Size : 972566784 (927.51 GiB 995.91 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Sat Sep 11 02:17:11 2010
          State : clean, degraded, recovering
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 256K

 Rebuild Status : 0% complete

           UUID : 06d8f2da:6a329662:0c546357:1ce1ba4f
         Events : 0.312

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      spare rebuilding   /dev/sdc1
       2       8       50        2      active sync   /dev/sdd2
       3       8       66        3      active sync   /dev/sde2

あとは、作業ミス前のアレイ拡大作業に戻るだけ。

本当に焦った。データ吹っ飛んだかと思った。
Skypeで手伝ってくれた人に感謝しなくては。


復旧後は前エントリのアレイ拡大作業に戻る。