[Debian] mdadmを利用したソフトウェアRAID 5の構築
2008/07/18
HDD4台でソフトウェアRAID 5を構築した時のメモ。
RAIDのメンバとなるのはsdb, sdc, sdd, sde。パーティション単位で構築できるので、容量が不揃いな場合最小となる容量でパーティションをそれぞれ作り、余った部分でさらにRAIDを組んだり、単体のドライブとして利用すると幸せになれそうです。
mdadmのインストール
# apt-get install mdadm
fdiskでRAIDのメンバとなるパーティションの作成
sdb, sdc, sdd, sdeそれぞれ同じ容量になるように1つのパーティションを作成。RAIDのメンバにするパーティションはそれぞれ次のようにした。
- プライマリパーティション (パーティション番号1)
- システムID: FD (Linux RAID)
RAIDの構築
# mdadm -C /dev/md0 -l5 -n4 -f /dev/sd[bcde]1
構築が終了すると/dev/md0は通常のHDD(/dev/sdaなど)と同じように利用することが可能となる。後はfdiskでパーティション*1を作成し、好きなファイルシステムでフォーマットをかけてやればいい。
自動マウント
# echo 'DEVICE /dev/sd[bcde]1' > /etc/mdadm.conf # mdadm -Ds >> //etc/mdadm.conf
後は通常のHDDと同じように/etc/fstabを編集してやれば起動時に自動的にマウントされる。
アレイの詳細確認 (08/11/01追記)
"mdadm -D アレイのスペシャルデバイス (例:/dev/md0)"で行う
# mdadm -D /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Thu Jul 17 01:30:04 2008 Raid Level : raid5 Array Size : 400018176 (381.49 GiB 409.62 GB) Device Size : 133339392 (127.16 GiB 136.54 GB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Sat Nov 1 06:27:29 2008 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K UUID : md0固有のUUID値 Events : 0.8 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 65 3 active sync /dev/sde1
パフォーマンスとか
今回構築したソフトウェアRAID 5のボリュームに3GBのデータを書き込んでみた。
# dd if=/dev/zero of=/data/SW-RAID/test.img bs=10M count=300 300+0 records in 300+0 records out 3145728000 bytes (3.1 GB) copied, 60.0993 seconds, 52.3 MB/s
ちなみにRAIDを構成したドライブと同一モデルで単体の場合
# dd if=/dev/zero of=/data/temp/test.img bs=10M count=300 300+0 records in 300+0 records out 3145728000 bytes (3.1 GB) copied, 27.1808 seconds, 116 MB/s
パリティ演算のオーバーヘッドが大きいので単体ドライブよりも低いパフォーマンスとなってしまいました。
ただ、速度的に困ることはない程度に出るので問題はなさそうです。
# RAID0で組んだら相当速そうですが、バスの速度の方がボトルネックになるのであまり幸せにはなれなさそう(苦笑