Howto

ソフトウェアRAID

ハードディスクドライブ(HDD)を2台用意して、ルートファイルシステムをソフトウェアRAIDでミラー化してみます。 はじめに、1台のHDDにDebianをインストールして動作させます。Debianのインストールは、「howto: Debianのセットアップ」を参考にして下さい。

ここでは、Debianをインストールした1台目のHDDのパーティションを /dev/hda1、そしてミラー時に使用する2台目のHDDのパーティションを /dev/hdb1として話を進めます。

1. カーネルのコンパイル

ソフトウェアRAIDを有効にしてカーネルをコンパイルします。make menuconfigでカーネルの設定を選択し、

Multi-device Support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
<*> RAID support
 ...
<*> RAID-1 (mirroring) mode
 ...

上記項目を順に選択してからカーネルを再コンパイルし、Flashメモリを書換えてください

2. ツールのインストール

マルチデバイスをコントロールするためのツールをインストールします。

[armadillo ~]# apt-get install mdadm

3. 2台目のHDDを準備

2台目のHDDにfdiskでパーティションを作成します。/dev/hdb1を/dev/hda1と同じサイズになるように作成し、ファイルシステムのタイプに0xfdを指定してください。

作成したパーティションをアレイに登録し、ext3ファイルシステムを作成します。

[armadillo ~]# mdadm -Cv /dev/md0 -l1 -n2 missing /dev/hdb1
[armadillo ~]# mdadm --zero-superblock /dev/hdb1
[armadillo ~]# mkfs.ext3 /dev/md0

4. 2台目のHDDにルートファイルシステムをコピー

ルートファイルシステムを/dev/md0にコピーします。

[armadillo ~]# mkdir /mntroot; mount /dev/md0 /mntroot
[armadillo ~]# apt-get install rsync
[armadillo ~]# rsync -auHxv --exclude=/proc/ --exclude=/sys/ --exclude=/mntroot/ /* /mntroot/

5. システムを再起動

/mntroot/etc/fstab を編集し、ルートファイルシステムに/dev/md0を指定してから再起動します。 再起動したのち、mountコマンドでルートファイルシステムが/dev/md0になっている事を確認します。

6. ミラー化の実行

/dev/hda1 をミラーディスクとしてアレイに追加します。はじめにfdiskで/dev/hda1のファイルシステムタイプを0xfdに変更します。

つぎに以下のコマンドを実行しミラー化を行います。

[armadillo ~]# mdadm --zero-superblock /dev/hda1
[armadillo ~]# mdadm /dev/md0 -a /dev/hda1

cat /proc/mdstat の表示にてミラー化が進んでいるようなら成功です。完了後に/etc/mdadm/mdadm.confを編集し、DEVICE /dev/hda1 /dev/hdb1という一行だけにした後、以下のコマンドを実行してください。

[armadillo ~]# mdadm --detail --scan >> /etc/mdadm/mdadm.conf 

参照文章 http://www.devil-linux.org/documentation/1.0.x/ch01s05.html