RAID

ここではLinuxのソフトウェアRAIDを取り扱う
ソフトウェアRAIDの場合、違う型番のHDDを使ったり柔軟な構成を組める。
しかし、ソフトウェアRAIDのバグ=RAIDアレイ崩壊の可能性もある点に注意する。

ステータス表示

RAID同期ステータスの確認方法

# cat /proc/mdstat


RAIDアレイ再構築

HDDが故障した時にRAIDアレイ(RAID-1など)を再構築するには、mdadmコマンドを利用する。
説明に使う各HDDのステータスは下記の通りとする。

ステータス/dev/md0/dev/md1
/dev/sda稼働/dev/sda1/dev/sda2
/dev/sdb故障/dev/sdb1/dev/sdb2
  • /dev/sdb1と/dev/sdb2にFフラグを付ける。拒否されたら直接RAIDアレイから取り除く
    # mdadm /dev/md0 -f /dev/sdb1
    # mdadm /dev/md1 -f /dev/sdb2
    # cat /proc/mdstat
  • 故障したHDDをRAIDアレイから取り除く
    # mdadm /dev/md0 -r /dev/sdb1
    # mdadm /dev/md1 -r /dev/sdb2
  • 故障HDD入れ替え後にパーティション作成
    # fdisk -l /dev/sda
    # fdisk /dev/sdb
    : w
    ---
    稼働中のHDDと同じパーティション(Start-End)を作成する
    パーティション情報をそのままダンプする場合は↓のコマンドを打つ
    ===
    # sfdisk -d /dev/sda | sfdisk /dev/sdb –-force
  • パーティションIDの変更
    # fdisk /dev/sdb
    : t
    : fd
      Changed System type of partition 1 to fd (Linux raid autodetect)
    : w
  • 新しいHDDをRAIDアレイに参加させる
    # mdadm /dev/md0 --add /dev/sdb1
    # mdadm /dev/md1 --add /dev/sdb2
  • RAID-1アレイの構成情報を確認
    # cat /proc/mdstat
    # mdadm --detail /dev/md0
    # mdadm --detail /dev/md1


GRUB手動インストール

kernelのアップデート・再インストール、RAID-1アレイの再構築後は、
RAID-1で冗長化している2台のHDDそれぞれにgrubを入れ直す必要がある。
今回は、/dev/sdaと/dev/sdbでRAID-1を組んでいる事とする。

grubのデバイス指定はLinuxのデバイス指定とリンクしていないので、
明示的に設定を行う必要がある。
例えば、rootデバイスが/dev/sdaの場合、カンマの後の指定は下記のようになる。

/dev/sdagrub> device (hd0) /dev/sda
/dev/sda1grub> root (hd0,0)
/dev/sda2grub> root (hd0,1)
/dev/sda3grub> root (hd0,2)
/dev/sdbgrub> device (hd1) /dev/sdb
/dev/sdb1grub> root (hd1,0)
/dev/sdb2grub> root (hd1,1)
/dev/sdb3grub> root (hd1,2)

 
grubを手動インストールする際は、デバイスIDが大きいサブ側(/dev/sdb)へ先にインストールし、
その後にデバイスIDが小さいメイン側(/dev/sda)へインストールする

# df | grep boot
/dev/md0    636    206984    268336  44% /boot

# cat /proc/mdstat | grep md0
md0 : active raid1 sdb1[1] sda1[0]

# grub
---
> device (hd1) /dev/sdb
> root (hd1,0)
> setup (hd1)
>
> device (hd0) /dev/sda
> root (hd0,0)
> setup (hd0)
>
> quit