次のページ 前のページ 目次へ

2. なぜ RAID なのか?

RAID を使うと良いことがたくさんあります。例えば、複数のディスクをより大きく「仮想的な」デバイスに結合する能力、パフォーマンス向上、そして冗長性です。

2.1 専門的事項

Linux RAID は、ほとんどのブロック型デバイス上で動作します。使用するハードディスクが IDE、SCSI、もしくは両者が混在していようと、それは重要な事ではありません。ネットワーク越し (Network Block Device - NBD) でうまくいったという報告さえあります。

ドライブに対するバスの速度は充分に速い必要があります。各ドライブが 10 MB/s の能力があり、バス幅が 40 MB/s しかないような場合は、UW(UltraWide) バス 1 本に 14 台の UW-SCSI ドライブを接続するようなことはしない方がよいでしょう。また IDE バスなら、1 本のバスにデバイスは 1 台だけにするべきです。IDE ディスクをマスター/スレーブ構成にするのはパフォーマンスが悪くなります。IDE では1 台以上のドライブがあるバスに対するアクセスは良くありません。最近のマザーボードは、普通は 2 本の IDE バスを持っていますから、よけいなコントローラを買うことなしに 2 台のディスクで RAID を構成することができます。

RAID レイヤは、ファイルシステムのレイヤとはまったく関係ありません。通常のブロックデバイスと同様に、RAID デバイスの上にはどんなファイルシステムでも構築できます。

2.2 用語

「RAID」という語は「Linux Software RAID」を意味するものとします。この HOWTO では Hardware RAID については扱いません。

装置構成について記述する場合には、ディスクの数とサイズの表記を決めておくと便利です。文字 N は、ディスクアレイ(予備ディスクを含まない)の中で、アクティブなディスクの数を示すものとします。文字 S は特に断らない限り、ディスクアレイの中で最も小さいドライブのサイズとします。文字 P はディスクアレイの中の1台のディスクのパフォーマンスを表し、単位は MB/s とします。このP を使う場合には、すべてのディスクが同等の性能だと仮定してますが、それは常に正しいとは言えないかもしれません。

「デバイス」と「ディスク」がほぼ同じ意味で使われている点に注意してください。通常、RAID デバイスを構築するために使われるデバイスはディスクのパーティションであり、必ずしもディスク全体である必要はありません。ですが 1 台のディスクの上でいくつかのパーティションを結合して RAID にしても意味をなさないので、デバイスとディスクは単に「異なるディスク上のパーティション」を意味するものとします。

2.3 RAID レベル

Linux RAID パッチでサポートされることを簡単に書いておきます。非常に基礎的な RAID の情報ですが、Linux における RAID レベルの実装で特別なものについては、多少記述してあります。RAID をよく知っている人はこのセクションをスキップしてください。なにか問題があったら戻ってくればいいのです :)

現在の Linux 用 RAID パッチがサポートするのは以下の各レベルです−

予備ディスク

予備ディスクは、アクティブなディスクのうちの 1 台が故障するまで RAID に参加しないディスクです。デバイス故障が発見されるとそのデバイスは「不良」とマークされ、利用できる最初の予備ディスクの上で直ちに再構築が始まります。

つまり RAID-5 に予備ディスクを装備すると、安全性が格段に向上することになります。1 台のディスクが故障したとしても予備ディスクによって冗長性が維持されていれば、そのまま動作し続けることになってもしばらくの間なら許容できるでしょう。

ただしシステムがディスククラッシュを確実に乗り切るという保証はありません。RAID レイヤはデバイス故障をうまく処理しなければなりませんが、SCSI ドライバがエラー発生時に飛んでしまったり、IDE チップセットが固まってしまったり、他にも似たようなことがいろいろ起こる可能性があります。

2.4 RAIDでのスワッピング

swap の パフォーマンス向上のために RAID を使う必要はありません。fstab ファイルにおいて複数のスワップパーティションに同じ優先度を与えると、カーネル自身がスワップをストライプにすることができるからです。

そのための fstab の記述は−

/dev/sda2       swap           swap    defaults,pri=1   0 0
/dev/sdb2       swap           swap    defaults,pri=1   0 0
/dev/sdc2       swap           swap    defaults,pri=1   0 0
/dev/sdd2       swap           swap    defaults,pri=1   0 0
/dev/sde2       swap           swap    defaults,pri=1   0 0
/dev/sdf2       swap           swap    defaults,pri=1   0 0
/dev/sdg2       swap           swap    defaults,pri=1   0 0
これはスワップを 7 台の SCSI デバイスで並列にする設定です。RAID の必要はありません。これはもう長い間カーネルの機能としてあるものですから。

スワップに RAID を使うもう一つの理由は、高い可用性です。ブートのために例えば RAID-1 デバイスにシステムをセットアップすれば、システムはディスク・クラッシュを乗り切ることができます。しかしスワップが不良デバイスだとしたら、まず間違いなくまずいことになります。RAID-1 デバイスをスワップにすればこの問題を解決してくれます。

最新の RAID パッチでは RAID 上でのスワッピングは安全なはずです。以前はデッドロックの可能性があったため、RAID 上でのスワップは安全とは言えませんでしたが、現在では修正されたはずです。

RAID デバイス上のファイルシステムで、スワップ・ファイルの中で RAID を構成することができます。あるいは RAID デバイスをスワップパーティションとして構成することもできます。例によって、RAID デバイスは単なるブロックデバイスなのですから。


次のページ 前のページ 目次へ