DebianでRAID5組んだ

4台のHDD(/dev/sda,/dev/sdb,/dev/sdc,/dev/sdd)をRAID5で1つにする。

RAID5 ?

RAID6でなくRAID5にした理由は速度のため。
GlusterFSでネットワークRAIDを組む予定なので個々に冗長性はそれほど必要性なくて、
むしろ冒頭で言ったように1つにHDDをまとめることが目的。
LVM使おうかと思ったけどどうせならRAIDある方がいいかなと。その程度の理由です。
まぁでも2GB * 4つとなるとRAID5でも速度がちょっと無視できない結果になるかも...
まだ分からないけど、その時はLVM使うようにしたい。

前準備

パーティションがある場合は消去する。
partedならsudo parted /dev/sdcとかしたあとpでパーティション表示させてrmコマンドでちまちま削除してってもいい。
まとめて全部消去する方法がわからないので自分は上の方法でやった。


まずパーティションテーブルをGPTにする。

$ sudo parted /dev/sdc
(parted) mklabel gpt


アラインメントに沿ったパーティションを作るために次のおまじないを実行してください。
詳しくはわからないので知りたい人はおググりください。

(parted) unit GB


サイズを知るためにpコマンドで表示。(例はここのものです。引用したことにとくに意味はない)

(parted) p
モデル: 不明 (unknown)
ディスク /dev/emcpowerd: 3221GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt

番号  開始  終了  サイズ  ファイルシステム  名前  フラグ


パーティションを作る。上で3221GBって書いてあるのでそれを指定。
(「-1」でもいけたっぽい?)

(parted) mkpart primary 0 3221GB


これを4台全部にやってく。
partedいちいち終了したり起動するのがめんどいなら select /dev/sdb みたいにselectコマンドが使える。

RAID組む

$ sudo apt-get install mdadm
$ sudo mdadm -C /dev/md0 -l5 -n4 -f /dev/sd[abcd]1

RAIDデバイス(/dev/md0)にファイルシステム作る

$ sudo mkfs -t ext4 /dev/md0    # unit GBしてパーティション作ってないとここで「The partition is misaligned by *** bytes」の警告が出る
$ sudo mount -t ext4 /dev/md0 /mnt/data

(2012-03-04 追記) /etc/fstab編集

# RAID5
/dev/md0   /mnt/data   ext4   defaults    0 2

(2012-03-04 追記) 最終的な/etc/mdadm.confの内容

/etc/mdadm.confはいじってない(と思う)けど、mdadmコマンドが勝手に書き換えたんだと思う。
日にちが経ったので細かいところ忘れてしまった...

DEVICE /dev/sd[abcd]1

ARRAY /dev/md0 level=raid5 num-devices=4
   devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1

# auto-create devices with Debian standard permissions
#CREATE owner=root group=disk mode=0660 auto=yes
CREATE group=disk mode=0666 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
    
# instruct the monitoring daemon where to send mail alerts
MAILADDR root

作業中にググってひっかかったページ