RAID でないシステムの RAID への改善はかなり簡単で、いくつかの分離した手順 からなり、それを後述します。その記述は、ブートパーティションとルートパー ティション、そしてスワップパーティションをともなうシステムのためのもので す。
既存システムの古いディスク構成―― /dev/hda1 boot, dos+lodlin か lilo かも /dev/hda2 root /dev/hda3 swap
別のディスクを追加し、全体のシステムを RAID1 に変換します。たくさんのディ スクの追加が容易なら、同じ手順で RAID1 の代わりに RAID5 セットを作ること もできます。
きれいなカーネルと raidtools-0.90 (もしくは最新バージョン)、 そして 0.90 RAID へとカーネルを改善するカーネルパッチを、ダウンロードし てください。
raidtools をコンパイルしインストールします。そして、付属のドキュメントを 読んでください。
使用予定の RAID の種類 (0/1/4/5 ?) をすべてサポートする設定で、カーネル をコンパイルしインストールしてください。カーネルコンフィグレーションにお いて RAID デバイスの autostart を指定したことを確認します。カーネルが適 切にブートするかをテストし、そして、あなたが使おうとしている RAID の種類 が新しいカーネルでサポートされているかを確認するため /proc/mdstat を調べ てください。
新しいディスクを別の IDE コントローラのマスターデバイスとしたなら、それ は /dev/hdc になります。
/dev/hdc1 16MB――もしくはそれ以上でいくつかのカーネルイメージに 十分な領域 /dev/hdc2 ディスクの大部分の領域 /dev/hdc3 必要ならもう少しのスワップ領域。いらなければ hdc2 に加 える。(訳注:このシナリオは swap を RAID にしない)
/dev/hdc1 と /dev/hdc2 のパーティションタイプを raid-autostart の "fd" に変更してください。
failed-disk パラメータを使用して、希望する RAID1 設定のための raidtab を作成します。failed-disk は表の最後に置くべきです。
# example raidtab # md0 is the root array raiddev /dev/md0 raid-level 1 nr-raid-disks 2 chunk-size 32 # Spare disks for hot reconstruction nr-spare-disks 0 persistent-superblock 1 device /dev/hdc2 raid-disk 0 # this is our old disk, mark as failed for now device /dev/hda2 failed-disk 1 # md1 is the /boot array raiddev /dev/md1 raid-level 1 nr-raid-disks 2 chunk-size 32 # Spare disks for hot reconstruction nr-spare-disks 0 persistent-superblock 1 device /dev/hdc1 raid-disk 0 # boot is marked failed as well device /dev/hda1 failed-disk 1
次のコマンドで md デバイスを作成します――
mkraid /dev/md0 mkraid /dev/md1
RAID デバイスは作成され、動作を始めます。/proc/mdstat の調査で、カーネル における RAID の個々の状態と、RAID デバイスの動作を見ることができます。
ブートデバイスとルートデバイスをフォーマットします――
mke2fs /dev/md0 mke2fs /dev/md1新しいルートデバイスをどこか扱いやすい場所にマウントし、その中に /boot のためのディレクトリを作成し、そのディレクトリにブートパーティションをマ ウントします。
mount /dev/md0 /mnt mkdir /mnt/boot mount /dev/md1 /mnt/boot
これは非常に簡単です。
cd / # これを行うバッチファイルを設定しましょう。 cp -a /bin /mnt cp -a /dev /mnt cp -a /etc /mnt cp -a (/mnt と /proc そして nsf マウントを除くすべてのディレクトリ) /mnt
ルートファイルシステムに他のディスクをマウントしたりリンクしていると、こ の操作は用心しなければなりません。上記の例はたいへん単純なシステムを想定 しているので、複雑な場合、手順を若干修正する必要があるかもしれません。
ブートフロッピーを作り、カーネルを rdev します。
dd if=kernal.image of=/dev/fd0 bs=2k rdev /dev/fd0 /dev/md0 rdev -r /dev/fd0 0 rdev -R /dev/fd0 1
RAID デバイス上の fstab を次に示すように修正し、新しいマウントポイントを 反映させます――
/dev/md0 / ext2 defaults 1 1 /dev/md1 /boot ext2 defaults 1 1
RAID デバイスのマウントをはずし、新しいファイルシステムをブートし、 すべて正しく動作しているか確認します。
umount /mnt/boot umount /mnt raidstop /dev/md0 raidstop /dev/md1 shutdown -r now
フロッピーブートディスクで、RAID システムはすぐに作動し、縮退モードで動 くはずです。すべてのものが新しい RAID システムに転送されているか注意深く チェックしてください。バックアップのない状態で、ここで失敗したならば、 あなたは死んでしまいます。
何かが動作しなければ、古いシステムを reboot し、立ち返って修正を行いま す。完全に成功するまでこれを繰り返してください。
前の手順での成功は RAID アレイが現在使用できることを意味しますが、まだ冗 長にはなっていません。すぐに新しい RAID アレイに合うように古い ディスク (群) を切り直すべきです。 ドライブの構成情報が同じでないなら、古いドライ ブのパーティションサイズを RAID パーティションと等しくするかそれより大き くしなければ、RAID セットに追加することができない、ということを記憶して おいてください。
必要に応じて、古いドライブを切り直します。例として――
/dev/hda1 /dev/hdc1 と等しいかそれ以上 /dev/hda2 /dev/hdc2 と等しいかそれ以上 /dev/hda3 使い残し分、swap にでも何にでも・・・
raidtab 内の failed-disk パラメータを raid-disk に書き換え、 RAID アレイに新しい (古い) ディスクパーティションを hot add します。
raidhotadd /dev/md1 /dev/hda1 raidhotadd /dev/md0 /dev/hda2
/proc/mdstat を調べると、1つ以上の RAID デバイスで新しいパーティションのた めに再構築を行っていることが見えます。1分後、いや2分、いやもっと経過す ると、RAID アレイは完全に同期します (パーティションが大きいほど時間がか かります)。
この文書の始めの方のセクションで述べた手順を使い、新しい RAID ペア上で、 ブート可能な RAID の設定をします。この最後の手順の設定とテストが終了する まで、あのブートフロッピーは手放してはなりません。