Linux Software RAID構築手順 Since: 2004.08.04
Last: 2004.08.04

■環境情報
OS: Vine Linux 2.6rc2
kernel: 2.4.26

■作業手順
1. kernelのRAIDサポート有効化
2. raidtoolsの導入
3. raidtabの作成
4. パーティションの作成
5. デバイスファイルの作成
6. RAIDアレイの作成
7. RAIDアレイのフォーマット
8. RAIDアレイのマウント
9. 転送性能の測定

■ 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ファイルを作成する。
記述する項目は以下の通り。

raiddevRAIDデバイスファイル名
raid-levelRAIDレベル(0,1,5)
persistent-superblockRAIDデバイスの自動認識
chunk-sizeデバイスに書き込むことができる最小のデータ量(KB)
nr-raid-disks使用するディスク数
nr-spare-disks予備ディスク数
deviceRAIDを構成するデバイス
raid-disk上記deviceパラメータのディスク番号

hde1とhdg1にてRAID 1アレイを構築する場合は以下の様な設定となる。

raiddev/dev/md0
raid-level1
persistent-superblock1
chunk-size4
nr-raid-disks2
nr-spare-disks0
device/dev/hde1
raid-disk0
device/dev/hdg1
raid-disk1

■ パーティションの作成
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

■ 読み出し性能の測定
参考までに構築したアレイの読み出し性能測定結果を掲載。

動作環境は以下の通り。

CPUPentiumIII 667MHz x2
M/BSuperMicro PIIIDME(i840)
HDDWestanDigital 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







戻る