【RAID5 作成】
・パーティション単位でRAID化する場合
物理ディスクは、事前に fdisk でパーティションを作成しておく
※ パーティションタイプコードは fd
・ディスク単位でRAID化する場合
特に用意することはない
※ 本説明では、 RAID LEVEL を 5
使用する物理DISKドライブを /dev/sda /dev/sdb /dev/sdc /dev/sde
RAIDドライブのデバイスノードを /dev/md0
として解説している
※ 過去のLinuxバージョンでは、RAIDで使用するDISKデバイスノードを
各々RAIDに参加させる手順が必要であったらしいが、現バージョン
では不要となっている
【RAIDの作成とファイルシステムの作成】
・以下の命令で作成できる
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
※ RAID1(Mirror)の場合、以下のようにする
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
※ RAIDの作成時(タイプにもよるが)は /proc/mdstat の内容を確認し、作成が完了 するまでは、ファイルシステムの構築等の作業は控えたほうが良い模様
・RAID作成後にファイルシステムを以下のように作成
mkfs -t ext4 /dev/md0
※ これらが終了していれば /dev/md0 は普通の物理DISK同様に mount できる
【RAIDの動作確認】
・RAIDの動作は以下の内容を参照することで判る
cat /proc/mdstat
※ 正常に動作している場合の表示例
md0 : active (auto-read-only) raid5 sda[0] sdd[4] sdc[5] sdb[1]
90891264 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
※ 上記の表示例は 未mount状態のもの mountすると(auto-read-only)は消える
※ 異常がある場合は、上記の [UUUU] の部分が [UU_U] の様になり、劣化を示唆
する
【RAIDに問題が起こった場合】
・ cat /proc/mdstat の内容が以下のようになり劣化が示唆される
md0 : active raid5 sda[0] sdd[4] sdb[1]
90891264 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UU_U]
※ 上記例では /dev/sdc に問題が発生してデバイスの認識から外れ [UU_U] の
様に劣化が示唆されている
【RAIDの復旧】
・ 障害ディスクを交換したあと、以下の命令で、リカバリが始まる
mdadm --add /dev/md0 /dev/sdc
※ 障害復旧中は /proc/mdstat が以下の様になり、復旧完了までの時間が判る
md0 : active raid5 sdc[5] sda[0] sdd[4] sdb[1]
90891264 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UU_U]
[>………………..] recovery = 0.0% (10112/30297088) finish=199.3min speed=2528K/sec
【RAIDの停止】
・以下の命令で停止する
mdadm --stop /dev/md0
※ 停止の前に、unmount する必要がある
【RAIDの再開】
・以下の命令で再開できる
mdadm –assemble /dev/md0 /dev/sda /dev/sdb /dev/sdc /dev/sdd
※ 障害発生したドライブの代替えがない場合に、劣化した状態で内容を
バックアップする等したい場合の命令は以下の通り
mdadm –assemble –run /dev/md0 /dev/sda /dev/sdb /dev/sdd
【使用例】
・RAID0 (ストライプ)作成
mdadm –create –verbose /dev/md0 –level=0 –raid-devices=2 /dev/sda /dev/sdb
【意とせずRAIDからDISKが外れた場合】
sudo mdadm --manage /dev/md0 --add /dev/sdc
これで上手くゆけば以下のメッセージが帰る
mdadm: re-added /dev/sdc
恒久的にマウントする際の注意点
/dev/md127 等の名称で/etc/fstabに記述すると、OS起動のトラブルにつながる事がある
# blkid
/dev/md0p1: UUID="f11526c0-5957-4828-8b83-4a2d088c1fa6" BLOCK_SIZE="4096" TYPE="ext2" PARTUUID="b17c6a98-01"
fstabの例は以下の通り
/dev/disk/by-uuid/f11526c0-5957-4828-8b83-4a2d088c1fa6 /usr2 ext4 defaults 0 1
(PARTUUIDの場合)/dev/disk/by-partuuid/a8fda7fc-01 /usr2 ext4 defaults 0 1
blkid にて、UUIDを確認して、このUUIDを使用してマウントする事を推奨(PARTUUIDを使う)
起動時にRAIDがうまく動作しない場合は、UUIDが無効となり、スタックを回避できる