DegradedArray な障害報告メールが飛んできた。
RAID1(ミラーリング)で障害が発生したっぽい。

環境: Debian GNU/Linux etch (amd64)


From root@hoge.localdomain Sat May 03 11:19:17 2008
Envelope-to: root@hoge.localdomain
Delivery-date: Sat, 03 May 2008 11:19:17 +0900
From: mdadm monitoring <root@hoge.localdomain>
To: root@hoge.localdomain
Subject: DegradedArray event on /dev/md2:hoge
Date: Sat, 03 May 2008 11:19:16 +0900
 
This is an automatically generated mail message from mdadm
running on hoge
 
A DegradedArray event had been detected on md device /dev/md2.
 
Faithfully yours, etc.
 
P.S. The /proc/mdstat file currently contains the following:
 
Personalities : [raid1]
md2 : active raid1 sda3[0]
      310126720 blocks [2/1] [U_]
 
md1 : active raid1 sda2[0] sdb2[1]
      1951808 blocks [2/2] [UU]
 
md0 : active raid1 sda1[0] sdb1[1]
      489856 blocks [2/2] [UU]
 
unused devices: <none>

RAIDデバイス /dev/md2 の パーティション sdb3 が使えなくなっている模様。

/dev/md2 の状態を確認。


# df -ha
Filesystem            Size  Used Avail Use% Mounted on
/dev/md2              292G   87G  190G  32% /
tmpfs                 943M     0  943M   0% /lib/init/rw
proc                     0     0     0   -  /proc
sysfs                    0     0     0   -  /sys
procbususb               0     0     0   -  /proc/bus/usb
udev                   10M   68K   10M   1% /dev
tmpfs                 943M     0  943M   0% /dev/shm
devpts                   0     0     0   -  /dev/pts
/dev/md0              464M   26M  414M   6% /boot
 
# mdadm --query /dev/md2
/dev/md2: 295.76GiB raid1 2 devices, 0 spares. Use mdadm --detail for more detail.
 
# mdadm --detail /dev/md2
/dev/md2:
        Version : 00.90.03
  Creation Time : Mon Sep 24 00:56:01 2007
     Raid Level : raid1
     Array Size : 310126720 (295.76 GiB 317.57 GB)
    Device Size : 310126720 (295.76 GiB 317.57 GB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 2
    Persistence : Superblock is persistent
 
    Update Time : Sat May  3 12:43:55 2008
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0
 
           UUID : 9705e4d8:ff326a8a:35faf0c2:7bc864f5
         Events : 0.2634
 
    Number   Major   Minor   RaidDevice State
       0       8        3        0      active sync   /dev/sda3
       1       0        0        1      removed
 
# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[0]
      310126720 blocks [2/1] [U_]
 
md1 : active raid1 sda2[0] sdb2[1]
      1951808 blocks [2/2] [UU]
 
md0 : active raid1 sda1[0] sdb1[1]
      489856 blocks [2/2] [UU]
 
unused devices: <none>

パーティションがひとつ removed されている。
一応、mdadmコマンドで RAIDデバイス /dev/md2 から パーティション /dev/sdb3 を切り離そうとしてみる。


# mdadm --manage /dev/md2 --remove /dev/sdb3
mdadm: hot remove failed for /dev/sdb3: No such device or address

すでに切り離されているから No such device or address なエラーになる。

次に、パーティション /dev/sdb3 の不良ブロックを badblocks コマンドでチェック。


# badblocks -vs -o sdb3.bad /dev/sdb3
Checking blocks 0 to 310126791
(中略)
Pass completed, 0 bad blocks found.

とくに悪い部分は無さそう。
とりあえず、HDDのハードウェア障害という感じではなさそう。

次は fsck でファイルシステムのチェックと修復をしてみる(あんまり意味ないと思うけど)。


# fsck /dev/sdb3
fsck 1.40-WIP (14-Nov-2006)
e2fsck 1.40-WIP (14-Nov-2006)
/dev/sdb3: recovering journal
Clearing orphaned inode 35569742 (uid=0, gid=0, mode=0100644, size=0)
Clearing orphaned inode 3035031 (uid=0, gid=0, mode=0100755, size=13440)
(中略)
/dev/sdb3 has gone 222 days without being checked, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
 
/dev/sdb3: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb3: 108357/38780928 files (2.7% non-contiguous), 24600651/77531680 blocks

ファイルシステムに問題があったけど修復完了。
でも、どうせこのあと RAID に組み込まれるんだからファイルシステムがどうだろうとあんまり意味ないかも……

障害の原因は不明だけど、HDD自体には問題が無さそうなので、このままパーティションをRAIDデバイスへ戻すことにする。

RAID デバイス /dev/md2 に パーティション /dev/sdb3 を追加。


# mdadm --manage /dev/md2 --add /dev/sdb3
mdadm: added /dev/sdb3

RAID デバイス /dev/md2 の状態をチェック。


# mdadm --detail /dev/md2
/dev/md2:
        Version : 00.90.03
  Creation Time : Mon Sep 24 00:56:01 2007
     Raid Level : raid1
     Array Size : 310126720 (295.76 GiB 317.57 GB)
    Device Size : 310126720 (295.76 GiB 317.57 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 2
    Persistence : Superblock is persistent
 
    Update Time : Sun May  4 06:40:48 2008
          State : clean, degraded, recovering
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1
 
 Rebuild Status : 1% complete
 
           UUID : 9705e4d8:ff326a8a:35faf0c2:7bc864f5
         Events : 0.32880
 
    Number   Major   Minor   RaidDevice State
       0       8        3        0      active sync   /dev/sda3
       2       8       19        1      spare rebuilding   /dev/sdb3
 
# cat /proc/mdstat 
Personalities : [raid1] 
md2 : active raid1 sdb3[2] sda3[0]
      310126720 blocks [2/1] [U_]
      [>....................]  recovery =  1.4% (4574464/310126720) finish=80.5min speed=63232K/sec
      
md1 : active raid1 sda2[0] sdb2[1]
      1951808 blocks [2/2] [UU]
      
md0 : active raid1 sda1[0] sdb1[1]
      489856 blocks [2/2] [UU]
      
unused devices: <none>

Rebuild 中なので、しばし放置したのち、もういちど状態を確認。


# mdadm --detail /dev/md2
/dev/md2:
        Version : 00.90.03
  Creation Time : Mon Sep 24 00:56:01 2007
     Raid Level : raid1
     Array Size : 310126720 (295.76 GiB 317.57 GB)
    Device Size : 310126720 (295.76 GiB 317.57 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 2
    Persistence : Superblock is persistent
 
    Update Time : Wed May  7 12:08:51 2008
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
 
           UUID : 9705e4d8:ff326a8a:35faf0c2:7bc864f5
         Events : 0.35124
 
    Number   Major   Minor   RaidDevice State
       0       8        3        0      active sync   /dev/sda3
       1       8       19        1      active sync   /dev/sdb3
 
# cat /proc/mdstat 
Personalities : [raid1] 
md2 : active raid1 sdb3[1] sda3[0]
      310126720 blocks [2/2] [UU]
      
md1 : active raid1 sda2[0] sdb2[1]
      1951808 blocks [2/2] [UU]
      
md0 : active raid1 sda1[0] sdb1[1]
      489856 blocks [2/2] [UU]
      
unused devices: <none>

復旧完了。
「Linux RAID入門」 を買っておいてよかった……

Ref. Debian GNU/Linux etch で RAID 1 ミラーリングしてみる

tags: zlashdot Linux Debian Linux Raid

Posted by NI-Lab. (@nilab)