software raid の復旧手順

redhat/whitebox/fedora 系でsoftware raidを復旧する手順は以下の通り.

下準備

  • 状況を把握する
$ cat /proc/mdstat

たとえば以下のような出力が得られた場合,md1を構成しているsda5の領域が壊れている.

Personalities : [raid1]
read_ahead 1024 sectors
md0 : active raid1 sda1[1] sdb1[0] [2/2] [UU]
md1 : active raid1 sda5[1] sdb5[0] [2/1] [_U]

つまり,正常なユニットは "U",異常のあるユニットは "_" で表現されている.

$ fdisk -l /dev/sdb 

ソフトウェアRAIDではパーティション情報の復元まではしてくれない.作業を始めるまえにパーティション情報を確認しておく.

  • 念のためブートフロッピーを作成しておく

ブートローダを入れたHDDを交換するはめになったばあいの事も考慮して,mkbootdiskコマンドでブートフロッピーを作成しておく.使い方は簡単.FDDにFDをさして

$ sudo  /sbin/mkbootdisk /dev/fd0

で終り.

  • 電源を落とす
  • 壊れたHDDを交換する
    • SCSIのIDとか,IDEのマスタスレーブに気をつける
    • 交換日時などをHDDにマジックで書いておくと後々幸になれる.
  • 起動
  • 新しいHDDのパーティション分割

旧HDDに合わせてパーティションを分割する

パーティション分割がおわったら,あとはraidをrebuildするだけ

# raidhotadd /dev/md0 /dev/sda5

このコマンドを実行すると raid の再構築が始まる.進行状況は

$ cat /proc/mdstat

で確認可能