N@i.jp  昨日:3320
 今日:1800
 総計:00097250
keywords
管理者専用
  Post   Add link   Control Panel 






























新しいトピック
最新:11/17 16:16


新しいコメント
最新:06/04 19:41





RAID崩壊(;_;)

RAID 5を構成しているUSBメモリの1つが故障したのだけど


 Raspberry PiのUSBメモリで構築したRAID 5から、先日こんなメールが届きました。

This is an automatically generated mail message from mdadm
running on RaspberryPi

A DegradedArray event had been detected on md device /dev/md0.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdd1[5] sda1[4] sdb1[3](F) sdc1[6]
     185054208 blocks super 1.2 level 5, 128k chunk, algorithm 2 [4/3] [UU_U]

unused devices: <none>

 4台のUSBメモリで構築したRAID 5のうち、1台のUSBメモリが壊れてしまい、縮退(degrade)状態になったようです。ログインして詳細情報を見てみたところ、

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[5] sda1[4] sdb1[3](F) sdc1[6]
      185054208 blocks super 1.2 level 5, 128k chunk, algorithm 2 [4/3] [UU_U]

unused devices: 
# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat Jul 30 11:24:03 2016
     Raid Level : raid5
     Array Size : 185054208 (176.48 GiB 189.50 GB)
  Used Dev Size : 61684736 (58.83 GiB 63.17 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Mon Jun 25 15:45:20 2018
          State : clean, degraded
 Active Devices : 3
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 128K

           Name : RaspberryPi:0  (local to host RaspberryPi)
           UUID : c26559b7:abb329b4:1960d0d5:7b9c8287
         Events : 62916

    Number   Major   Minor   RaidDevice State
       5       8       49        0      active sync   /dev/sdd1
       6       8       33        1      active sync   /dev/sdc1
       4       0        0        4      removed
       4       8        1        3      active sync   /dev/sda1

       3       8       17        -      faulty

という具合に/dev/sdb1が外されていました。1台が壊れただけなら、それを交換すれば復旧できるはずだ。うん、壊れたのは"/dev/sdb"なのだね。と言うことは「2番目」のUSBメモリか・・・と安直に思ってしまって、

交換しようとUSBハブから「2番目」のUSBメモリを抜いたワタシが愚かでした。抜いた瞬間にRAIDは崩壊しました(;_;)。
 理由は、/dev/sd*というデバイス名は、OSがデバイスを認識した順に割り振るのでブートの度に変わってしまい、"/dev/sdb"が2番目のUSBメモリとは限らないからです。そのため、udevでデバイス名を固定すべく、udevのルールファイルを作っていたのでした。これにより、

# ls -l /dev/usb*
lrwxrwxrwx 1 root root 3  8月 28 17:17 /dev/usbma -> sdd
lrwxrwxrwx 1 root root 4  8月 28 17:17 /dev/usbma1 -> sdd1
lrwxrwxrwx 1 root root 3  8月 28 17:17 /dev/usbmb -> sdc
lrwxrwxrwx 1 root root 4  8月 28 17:17 /dev/usbmb1 -> sdc1
lrwxrwxrwx 1 root root 3  8月 28 17:17 /dev/usbmc -> sdb
lrwxrwxrwx 1 root root 4  8月 28 17:17 /dev/usbmc1 -> sdb1
lrwxrwxrwx 1 root root 3  8月 28 17:17 /dev/usbmd -> sda
lrwxrwxrwx 1 root root 4  8月 28 17:17 /dev/usbmd1 -> sda1

こんな風に/dev/usbm* からシンボリックリンクが張られるようにしていたのでした。つまり"/dev/sdb" は、"/dev/usbmc"(a, b, c, d のc)にあたるわけで、壊れたのは3番目のUSBメモリだったわけ(メールされて来た内容や詳細情報を良く見れば、壊れたのは3番目だって判るのにね)。これをすっかり忘れて、生きているUSBメモリを抜いたものだから、縮退状態だったRAIDは崩壊。慌てて抜いたUSBメモリを戻しても後の祭りorz。。。

 壊れた3番目のUSBメモリをMacに挿してみたところ、フォーマットもできない状態であることが判りました。完全に逝っているのですが、このTranscend製64GB USBメモリは永久保証(*1)なので、TranscendのテクニカルサポートにRMAによる交換を依頼しました。

 2016年8月にRAIDを構築して24時間運転を続けてきましたが、2年弱でUSBメモリが1台故障という結果は、どう評価したら良いでしょう。静音、省電力、高信頼サーバーにしたいと思っていたのですが、2年もたないようでは高信頼とは言えないかも?でもUSBメモリが4台なので故障率は4倍になると考えれば、平均して7〜8年の寿命があり、今回のように交換するUSBメモリを間違えなければ、USBメモリを交換していく事で8年以上の連続運転を期待できると考えられなくもないかな。


[今回の教訓]
 RAIDの故障したデバイス(USBメモリ)を特定する際、安直に/dev/sd*で判断してはいけない。必ずudevのデバイス名から特定すること。


(*1) Transcendは今年4月に保証期間を5年間に変更しました。従来、永久保証であった製品も5年間保証になるそうです。


< 過去の記事 [ 11月の 全てのカテゴリ リスト ] 新しい記事 >

2018 calendar
11月
123
45678910
11121314151617
18192021222324
252627282930


掲示板
最新:08/15 17:19



管理人へMAIL

GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.