Linux上にてSoftware RAIDを使用するにはkernelがRAIDをサポートしている必要がある。このため、RAIDサポートの行われていないkernelを使用している場合はRAIDサポートの有効化の再構築が必要となる。 kernel再構築手順の説明は省くが、以下の設定項目を必要に応じて選択すること。
make menuconfig
kernelコンフィギュレーションメニューが表示されたら、以下の項目を選択
Multi-device support (RAID and LVM) --->
以下の設定項目が現れる
Multiple devices driver support (RAID and LVM)
項目を選択すると以下の項目が表示される。
RAID support Logical volume manager (LVM) support
RAID supportを選択すると以下の項目が表示される。
これらの中から使用するRAIDレベルを選択する。(複数選択可)
Linear (append) mode RAID-0 (striping) mode RAID-1 (mirroring) mode RAID-4/RAID-5 mode Multipath I/O support
必要な項目を選択し、kernelの再構築を行なう。
RAID構築・管理用のツール類を導入する。
Vine Linux 2.6rc2には初めから含まれているので詳細は省略。
rpm -qa | grep raid raidtools-1.00.2-1.3vl3
RAIDアレイの情報を記述する/etc/raidtabファイルを作成する。
hde1とhdg1にてRAID 1アレイを構築する場合は以下の様な設定となる。
raiddev /dev/md0 raid-level 1 persistent-superblock 1 chunk-size 4 nr-raid-disks 2 nr-spare-disks 0 device /dev/hde1 raid-disk 0 device /dev/hdg1 raid-disk 1
記述する項目は以下の通り。
RAIDアレイに使用するパーティションを作成する。
作成にはfdisk等のパーティション作成ツールを使用するが、詳細は省略。
一点注意することは、ファイルタイプをfd(Linux raid autodetect)にすること。
RAIDアレイを制御するデバイスファイルは /dev/md[n] となるが、これらのデバイスファイルが存在しない場合がある。
この場合は以下の手順にてデバイスファイルを作成する。
cd /dev ./MAKEDEV md
上記手順が完了した段階で以下のコマンドを実行してRAIDアレイを構築する。
mkraid /dev/md0 handling MD device /dev/md0 analyzing super-block disk 0: /dev/hde1, 195358401kB, raid superblock at 195358336kB disk 1: /dev/hdg1, 195358401kB, raid superblock at 195358336kB
コマンドの処理結果は直に表示されるが、アレイの構築がバックグラウンドで実行されており、この段階でアレイが構築されたわけではない。
アレイ構築処理の進行状態を知りたい場合は以下の/proc/mdstatを参照する。
cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 hdg1[1] hde1[0] 195358336 blocks [2/2] [UU] [>....................] resync = 0.5% (990336/195358336) finish=81.7min speed=39613K/sec unused devices: none
アレイ構築が完了したら、以下のコマンドでフォーマットを行なう。
以下のコマンドはファイルシステムをExt3としてフォーマットを行なう場合。
mkfs.ext2 -j /dev/md0
構築したアレイが正常にマウントできるかを確認する。
mount /dev/md0 /mnt/tmp
df | grep md /dev/md0 192292060 32828 182491316 1% /mnt/tmp
参考までに構築したアレイの読み出し性能測定結果を掲載。
動作環境は以下の通り。
| CPU | PentiumIII 667MHz x2 |
| M/B | SuperMicro PIIIDME(i840) |
| HDD | WestanDigital WD2000BB(200GB ATA-100) x2 |
| IDE拡張 | Promis Ultra100TX2 |
M/BのIDEコントローラはビッグドライブに対応しておらず、200GBのHDDを使用することはできない。このため、Promis製のIDE拡張カードを使用した。
HDDは同型機を2台用意し、拡張カードに各チャンネルのマスターデバイスとして接続した。このため、デバイスファイル名は /dev/hde と /dev/hdg となる。
読み出し性能の測定は hdparm -tT にて行なう。
/dev/hde: Timing buffer-cache reads: 128 MB in 0.88 seconds =145.45 MB/sec Timing buffered disk reads: 64 MB in 1.30 seconds = 49.23 MB/sec
/dev/hdg: Timing buffer-cache reads: 128 MB in 0.88 seconds =145.45 MB/sec Timing buffered disk reads: 64 MB in 1.33 seconds = 48.12 MB/sec
/dev/md0: Timing buffer-cache reads: 128 MB in 0.96 seconds =133.33 MB/sec Timing buffered disk reads: 64 MB in 1.33 seconds = 48.12 MB/sec