link もっと前
   2009年 1月 30日 -
      2009年 1月 30日  
link もっと後

link 未来から過去へ表示(*)
link 過去から未来へ表示

日々

link permalink

ソフトウェア RAID のディスク交換

RAID-5, 6 あるいは 1 などでディスクが壊れた際の交換方法を紹介します。

ディスクが壊れた
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             62498888   1879716  60619172   4% /
/dev/md0                521580    521580         0 100% /mnt/md0

# mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Sat Jan 31 16:05:28 2009
     Raid Level : raid5
     Array Size : 521600 (509.46 MiB 534.12 MB)
    Device Size : 104320 (101.89 MiB 106.82 MB)
(... 略 ...)

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       18        3      active sync   /dev/sdb2
       4       8       50        4      active sync   /dev/sdd2
       5       8       34        5      active sync   /dev/sdc2

# mdadm --fail /dev/md0 /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0

# mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Sat Jan 31 16:15:28 2009
     Raid Level : raid5
     Array Size : 521600 (509.46 MiB 534.12 MB)
    Device Size : 104320 (101.89 MiB 106.82 MB)
(... 略 ...)

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       18        3      active sync   /dev/sdb2
       4       8       50        4      active sync   /dev/sdd2
       5       8       34        5      active sync   /dev/sdc2

       6       8       17        -      faulty spare   /dev/sdb1

Linux でソフトウェア RAID アレイをいじるには mdadm コマンドを使います。使用中の RAID アレイ(100MB ディスク 6本からなる RAID-5 アレイ)で故障を発生させます。といっても実際にディスクを破壊するわけにはいきませんので、--fail でシステムに故障を伝えます。故障したデバイスは faulty spare という状態に変更されます。

次に故障したディスクを外します。

ディスクを取り除く
# mdadm --remove /dev/md0 /dev/sdb1
mdadm: hot removed /dev/sdb1

# mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Sat Jan 31 16:28:28 2009
     Raid Level : raid5
     Array Size : 521600 (509.46 MiB 534.12 MB)
    Device Size : 104320 (101.89 MiB 106.82 MB)
(... 略 ...)

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       18        3      active sync   /dev/sdb2
       4       8       50        4      active sync   /dev/sdd2
       5       8       34        5      active sync   /dev/sdc2

故障したディスク(faulty spare)を --remove に指定して、アレイから取り除きます。アレイから取り除けるのは、故障している、していないに関わらずスペアディスクのみです。活きているディスクを --remove しようとしても失敗します。

次に新たなディスクを追加します。

ディスクを追加する
# mdadm --add /dev/md0 /dev/sdb1
mdadm: added /dev/sdb1

# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md0 : active raid5 sdb1[6] sdd2[4] sdc2[5] sdb2[3] sdd1[2] sdc1[1]
      521600 blocks level 5, 64k chunk, algorithm 2 [6/5] [_UUUUU]
      [====>................]  recovery = 20.5% (22272/104320) finish=0.0min speed=22272K/sec

unused devices: <none>

# mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Sat Jan 31 16:58:28 2009
     Raid Level : raid5
     Array Size : 521600 (509.46 MiB 534.12 MB)
    Device Size : 104320 (101.89 MiB 106.82 MB)
(... 略 ...)

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       18        3      active sync   /dev/sdb2
       4       8       50        4      active sync   /dev/sdd2
       5       8       34        5      active sync   /dev/sdc2

新たなディスクを --add で加えることでディスクの数が 6本に戻ります。するとリカバリが始まります。今まで通り --detail で見ても良いですが、/proc/mdstat にもっとわかりやすい進行表示が出ます。

素晴らしいことに RAID-5 アレイを止めなくとも、上記の作業が全てできます。リカバリ処理も I/O 帯域を食いつぶさないように加減しますから、ユーザは --remove してディスク交換して --add すれば、後はシステムがよきに計らってくれるわけです。便利ですね。

[編集者: すずき]
[更新: 2009年 2月 1日 06:22]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
   2009年 1月 30日 -
      2009年 1月 30日  
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 12/10 12:33

カレンダー

<2009>
<<<01>>>
----123
45678910
11121314151617
18192021222324
25262728293031

最近のコメント 5件

  • link 18年11月28日
    すずき 「Linux に contribute す...」
    (更新:12/10 12:33)
  • link 18年11月28日
    T4 「やっぱり貴方でしたか、ご苦労さまでした。...」
    (更新:12/05 09:20)
  • link 18年11月28日
    すずき 「RK3228 じゃなくて RK3288 ...」
    (更新:12/05 02:19)
  • link 18年11月28日
    すずき 「ありがとうございます。Linux のコミ...」
    (更新:12/05 02:04)
  • link 18年12月01日
    すずき 「私も最初、HDD, SSD は使いまわそ...」
    (更新:12/04 12:49)

最近の記事 3件

link もっとみる
  • link 18年11月29日
    すずき 「[ROCK64 のアナログオーディオが動いた] 先日(2018年 ...」
    (更新:12/03 10:21)
  • link 18年12月01日
    すずき 「[PC パワーアップ計画] 普段、家の PC のパワー不足を感じる...」
    (更新:12/02 18:32)
  • link 18年11月28日
    すずき 「[ROCK64 の I2S1 が動いた] 先日(2018年 11月...」
    (更新:12/02 16:34)

こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報