Fake RAID でインストール
このガイドではオンボードの BIOS RAID コントローラによって作成された RAID セットを使って RAID の中のパーティションから Linux をブートする方法を説明します。いわゆる "fake RAID" あるいは "host RAID" を使用する場合、ディスクセットには /dev/sdX
ではなく /dev/mapper/chipsetName_randomName
からアクセスします。
"fake RAID" とは
- オペレーティングシステムによる RAID は必ずしもブートプロセスを保護するとは限らず、デスクトップ版の Windows では一般的に使用できない。ハードウェア RAID コントローラは高価かつプロプライエタリである。このギャップを埋めるものとして、RAID コントローラのチップを搭載しない安価な『RAID コントローラ』が存在し、標準的なディスクコントローラに特殊なファームウェアとドライバーを搭載している。起動の初期段階にファームウェアによって RAID が実装され、Linux や Microsoft Windows などのオペレーティングシステムカーネルが保護モードでロードされるときに、ドライバーに操作が移る。
- このようなコントローラは RAID コントローラとしてメーカーによって喧伝されるが、RAID コントローラではなくホストコンピュータの中央処理装置が RAID 処理を負担することは基本的に購入者に知らされない。ハードウェアコントローラでは CPU にそのような負担がかかることはない。また、しばしばファームウェアコントローラが RAID アレイで使えるハードドライブが限定される (例: Intel Matrix RAID では Intel ICH のサウスブリッジで SCSI や PATA をサポートしてないため SATA しか使用できない。ただし一部のマザーボードではマザーボードメーカーによってサウスブリッジの外に RAID コントローラが実装されていることがある)。「RAID コントローラ」は本来 RAID 処理を行うコントローラを意味したが、新しい種類のコントローラが登場したことで RAID 自体が正しく実装されていても処理を負担しないコントローラのことを技術畑では "fake RAID" と呼ぶようになった。Adaptec はそのような RAID を "host RAID" と呼称している。
詳しくは FakeRaidHowto @ Community Ubuntu Documentation を参照してください。
名前はともかく、dmraid による "fake RAID" は強固なソフトウェア RAID 実装であり、比較的少ない負担で複数のディスクにデータをミラー・ストライプするシステムを構築できます。dmraid は (純粋な Linux ソフトウェア RAID である) mdraid と比べて、故障が発生したときにシステムを起動する前にドライブを再構築できるというメリットがあります。ただし、全ての BIOS RAID 実装がドライブの再構築をサポートしているわけではないので注意してください。BIOS の RAID セットアップユーティリティでドライブを再構築できない場合、dmraid のかわりに mdraid を使用することを強く推奨します。ドライブが故障したときにアレイを再構築できなかったり、マザーボードが故障したときにアレイから情報を取得できないと気づいても後の祭りです。
歴史
Linux 2.4 では、ATARAID カーネルフレームワークによってフェイク RAID のサポートが提供されていました。Linux 2.6 から device-mapper フレームワークで 2.4 の ATARAID と同じように扱えるようになっています (LVM や EVMS なども同じフレームワークで処理されます)。新しいコードでも RAID の I/O はカーネルで処理されますが、device-mapper の設定は一般的にユーザー空間のアプリケーションで行います。
Heinz Maulshagen によって作成された dmraid ツールは RAID セットを検知してマッピングを作成します。BIOS 機能が内蔵されている (安価な) フェイク RAID の IDE/SATA コントローラがサポートされています。例えば Promise FastTrak コントローラ, HighPoint HPT37x, Intel Matrix RAID, Silicon Image Medley, NVIDIA nForce などです。
準備
- BIOS の設定を開いて RAID コントローラを有効化してください。
- BIOS に SATA ドライブを "IDE", "AHCI", "RAID" に設定するオプションが存在する場合、"RAID" を選択してください。
- BIOS の設定を保存して終了してください。起動時に、RAID のセットアップユーティリティを開いてください。
- RAID ユーティリティは大抵の場合、ブートメニューからアクセス (F8, F10, Ctrl+I) できたり、RAID コントローラの初期化中に開くことができます。
- RAID のセットアップユーティリティを使ってストライプ・ミラーセットを作成してください。
インストール
mdadm を使う
インストールガイドに従ってインストールを進めてください。ドライブは以下のコマンドで確認できます:
# ls -l /dev/md/
chroot した後、RAID の設定を書き出してください:
# mdadm --detail --scan >> /mnt/etc/mdadm.conf
/etc/mkinitcpio.conf
の HOOKS 行に mdadm_udev を追加してください:
HOOKS="base udev autodetect modconf block mdadm_udev filesystems keyboard fsck"
BINARIES 行に /usr/bin/mdmon
を追加してください:
BINARIES="/usr/bin/mdmon"
設定後、initramfs を生成してください:
# mkinitcpio -p linux
後は通常通りにインストールしてください。
dmraid を使う
device-mapper をロードしてください:
# modprobe dm_mod # dmraid -ay
インストールガイドに従ってインストールを進めてください。ドライブは以下のコマンドで確認できます:
# ls -l /dev/mapper/
/dev/mapper/control
しか表示されずチップセットモジュールがロードされない場合、以下のようにロードしてください:
# modprobe sata_sil
利用可能なドライバーは /lib/modules/`uname -r`/kernel/drivers/ata/
で確認できます。
chroot した後、/etc/mkinitcpio.conf
の MODULES 行に dm_mod と chipset_module_driver を追加してください (ミラーリングを使う場合、dm_mirror も追加してください):
MODULES="dm_mod chipset_module_driver"
HOOKS 行に dmraid を追加してください:
HOOKS="base udev autodetect modconf block dmraid filesystems keyboard fsck"
後は通常通りにインストールしてください。