ソフトウェアRAID構成のDebianをUSBメモリから起動
(sgk - 2006/10/9)
最近、RAIDに助けられることが多いです。やっぱりRAIDはいいですよ。 ディスクが1個壊れても、胃がきりきり痛むこともありません。 せいぜい、(少し)急いで新しいハードディスクを買ってくるだけのことです。 RAIDにしていなかったらと考えると、なかなか恐ろしいものがあります。 もちろん、大事なデータはRAIDだけじゃだめで、地理的に離れた場所に1日1回はバックアップを取ることも必要でしょうけどね。
RAIDというと、以前は専用ハードウェアの物を使っていました。
- マザーボードや、PCIカードにRAID処理チップが搭載されているもの。
- IDEポートに接続して、複数のIDEハードディスクに接続するRAIDアダプタ。OSからはIDEにしか見えない。
- SCSIケーブルで接続する外部筐体で、複数のハードディスクを内蔵するもの。
などなど。 ところが、最近はこれらを使うことが無くなりました。 LinuxのソフトウェアRAIDがなかなか調子よくて、最近ではもっぱらこれです。 ソフトウェアRAIDを使い始めてみると、ハードウェアRAIDは使いづらい。
- OSを選ぶ。Linuxでは使えないなんてものもある。
- ドライバのソースコードが提供されてないことがある。 OSをバージョンアップしたくても、メーカーが新しいドライバを提供してくれるまでできないというはめに陥る。
- ハードディスクの交換の時、全く同じ機種が要求される。
- 設定の柔軟性が低い。ハードディスクの一部分を別の用途に使うなんてことも当然できない。
- 動作を制御できない。つなげたらリビルド、それだけだったりする。
- 動作状態を知ることができないものもある。
ソフトウェアRAIDでは、これらが全て解決しちゃうわけで、とても素敵です。 以前は「ソフトウェアRAIDなんてだいじょぶなのかよ?」なんて思ってましたが、最近ではトラブルはほとんど聞きません。 不利な点があるとしたら、パフォーマンス。 ソフトウェアでやるのだから、ハードウェアより遅いのはしかたないですが、最近はCPUは余ってるのだから許しましょう。 あと、ホットスワップができるかどうかは何とも言えません。
では、例によってDebianで、RAID構成のシステムを組んでみましょう。
ここで困るのは、Linuxのカーネルモジュールで提供されるRAID機能で実現されたRAIDドライブの中に、Linuxのカーネルを入れていいのかということです。卵が先か、鶏が先か。 案の定、普通にはうまくいきません。 PCに電源を入れた瞬間にはRAIDディスクが認識されていないのだから、あたりまえです。 このことを、USBメモリからLinuxを起動することで解決しようというのがこのページの趣旨です。前置きが長すぎますね。
レシピ
執筆中
考察
上記の方法と、その他ネットで見られる方法について考察します。
