Linux のソフトウェア RAID を修復・復旧
2007-7-1 13:02
CentOS の Software RAID 1 にしているサーバで、Logwatch デーモンから次のようなエラーが含まれたメールが届きました。
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error } hda: dma_intr: error=0x84 { DriveStatusError BadCRC } hda: dma_intr: status=0x51 { DriveReady SeekComplete Error } hda: dma_intr: error=0x84 { DriveStatusError BadCRC } ……
RAID の状態を調べると、RAID が一部が解除されています。
# cat /proc/mdstat Personalities : [raid1] md2 : active raid1 hdb2[1] hda2[0] 20482752 blocks [2/2] [UU] md1 : active raid1 hdb3[1] hda3[0] 522048 blocks [2/2] [UU] md3 : active raid1 hda5[0] 58926272 blocks [2/1] [U_] md0 : active raid1 hda1[0] 104320 blocks [2/1] [U_]
e2fsck コマンドを使って自動修復を試みます。
# e2fsck -p /dev/hdb5 /dev/hdb5: clean, 25514/7372800 files, 570840/14731568 blocks
問題はなさそうなので、RAID の状態に加えて元に戻してみます。
# mdadm /dev/md3 -a /dev/hdb5
このとき次のようなエラーが出ることがあります。この場合は mdadm -r で一度その領域を RAID から解除して、もう一度 -a で追加します。
mdadm: Cannot open /dev/hdb5: Device or resource busy
修復の状態を確認
# cat /proc/mdstat Personalities : [raid1] md2 : active raid1 hdb2[1] hda2[0] 20482752 blocks [2/2] [UU] md1 : active raid1 hdb3[1] hda3[0] 522048 blocks [2/2] [UU] md3 : active raid1 hdb5[2] hda5[0] 58926272 blocks [2/1] [U_] [>....................] recovery = 0.2% (121664/58926272) finish=24.1min speed=40554K/sec md0 : active raid1 hdb1[1] hda1[0] 104320 blocks [2/2] [UU]
失敗したり再発するようならば、ファイルシステムを強制的にチェックするにはの方法で、強制的に不良セクタをチェックします。それで問題があればハードディスクを交換しましょう。
こんばんは、はじめまして。
この操作をされる時は、
1.1度 linuxをリブートされたでしょうか?
2.シングルユーザにして、実施されたでしょうか?
3. CDROMなどで、linuxを起動して、HDDがマウントされていない状態で実施されたでしょうか?
コメント by 田中 — 2009-12-23 21:45
田中さん、こんにちは。
リブートはしていません。シングルユーザモードにもしていません。
上記の修復例については HDD がマウントされた状態でした。
ただ、ソフトウェア RAID が壊れる原因も色々ありますので、同じように修復はできないかもしれません。
コメント by 津田 ふみか — 2009-12-23 22:18