ソフトウェアRAIDの構築手順
http://extstrg.asabiya.net/pukiwiki/index.php?%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2RAID%A4%CE%B9%BD%C3%DB%BC%EA%BD%E7Linux SoftwareRAID構築手順 †
kernelのRAIDサポート有効化 †
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の再構築を行なう。
raidtoolsの導入 †
RAID構築・管理用のツール類を導入する。
Vine Linux 2.6rc2には初めから含まれているので詳細は省略。
rpm -qa | grep raid raidtools-1.00.2-1.3vl3
raidtabの作成 †
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
記述する項目は以下の通り。
- raiddev
RAIDデバイスファイル名 - raid-level
RAIDレベル(0,1,5) - persistent-superblock
RAIDデバイスの自動認識 - chunk-size
デバイスに書き込むことができる最小のデータ量(KB) - nr-raid-disks
使用するディスク数 - nr-spare-disks
予備ディスク数 - device
RAIDを構成するデバイス - raid-disk
上記deviceパラメータのディスク番号
パーティションの作成 †
RAIDアレイに使用するパーティションを作成する。
作成にはfdisk等のパーティション作成ツールを使用するが、詳細は省略。
一点注意することは、ファイルタイプをfd(Linux raid autodetect)にすること。
デバイスファイルの作成 †
RAIDアレイを制御するデバイスファイルは /dev/md[n] となるが、これらのデバイスファイルが存在しない場合がある。
この場合は以下の手順にてデバイスファイルを作成する。
cd /dev ./MAKEDEV md
RAIDアレイの作成 †
上記手順が完了した段階で以下のコマンドを実行して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
RAIDアレイのフォーマット †
アレイ構築が完了したら、以下のコマンドでフォーマットを行なう。
以下のコマンドはファイルシステムをExt3としてフォーマットを行なう場合。
mkfs.ext2 -j /dev/md0
RAIDアレイのマウント †
構築したアレイが正常にマウントできるかを確認する。
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
- RAID 1アレイの読み出し性能
/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