前のエントリで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で手伝ってくれた人に感謝しなくては。
復旧後は前エントリのアレイ拡大作業に戻る。