Solaris ボリュームマネージャの管理

第 9 章 RAID 1 (ミラー) ボリューム (概要)

この章では、 Solaris ボリュームマネージャのミラーとサブミラーに関する基本的な概念について説明します。関連する作業については、第 10 章「RAID 1 (ミラー) ボリューム (作業)」を参照してください。

この章では、以下の内容について説明します。

RAID 1 (ミラー) ボリュームの概要

RAID 1 ボリューム (またはミラー) とは、同じデータのコピーを複数の RAID 0 (ストライプ方式または連結方式) ボリュームで保持しているボリュームのことです。ミラー化するためには、より多くのディスク容量が必要です。少なくとも、ミラー化するデータ量の 2 倍のディスク容量が必要になります。また、ミラー化ではデータがすべてのサブミラーに書き込まれるため、書き込み要求の処理時間が長くなります。

構成したミラーは、物理スライスと同じように使用できます。

既存のファイルシステムを含め、どのようなファイルシステムでもミラー化できます。また、ミラーは、データベースなど、どのようなアプリケーションにも使用できます。


ヒント -

データの安全性と可用性を確保するためには、Solaris ボリュームマネージャのホットスペア機能とミラーを併用します。ホットスペアについては、第 15 章「ホットスペア集合 (概要)」第 16 章「ホットスペア集合 (作業)」を参照してください。


サブミラーの概要

ミラー化された RAID 0 ボリュームを サブミラーと呼びます。 ミラーは、1 つまたは複数の RAID 0 ボリューム (ストライプまたは連結) から構成されます。

ミラーには最大 3 つのサブミラーを使用できますが、実際には 2 面ミラーで十分です。3 つめのサブミラーを構成すると、オンラインでバックアップをとることができます。この場合、バックアップのために 1 つのサブミラーがオフラインになっていても、データの冗長性は失われません。

サブミラーを「オフライン」にすると、そのサブミラーに対する読み取りと、書き込みは停止されます。この時点で、このサブミラーへのアクセスが可能になり、バックアップを実行できます。ただし、オフライン状態のサブミラーは読み取り専用になります。サブミラーがオフライン状態の間、Solaris ボリュームマネージャはミラーに対するすべての書き込みを追跡管理します。サブミラーがオンライン状態に戻ると、サブミラーがオフラインの間に書き込まれた部分 (再同期領域) だけが再同期されます。また、サブミラーをオフラインにすると、エラーが発生した物理デバイスの問題を追跡したり修復したりすることが可能になります。

サブミラーは、いつでもミラーに接続したり、ミラーから切断することができます。ただし、少なくとも 1 つのサブミラーが常時、接続されていなければなりません。

通常は、サブミラーが 1 つだけのミラーを作成し、後で 2 つめのサブミラーを追加します。

シナリオ - RAID 1 (ミラー) ボリューム

図 9-1 に、2 つのボリューム (サブミラー) d20d21 から構成されるミラー d2 の例を示します。

Solaris ボリュームマネージャソフトウェアは、データの複製を複数の物理ディスク上に作成し、1 つの仮想ディスクとしてアプリケーションに提供します。ディスクへの書き込みは常に複製されますが、ディスクからの読み取りはミラーを構成するいずれかのサブミラーだけから行われます。ミラー d2 の容量は、もっとも小さいサブミラーのサイズと同じになります (サブミラーのサイズが異なる場合)。

図 9-1 ミラーの例

Graphic

RAID 1+0 と RAID 0+1 の提供

Solaris ボリュームマネージャは、RAID 1+0 (ミラーをストライプ化した方式) と RAID 0+1 (ストライプをミラー化した方式) の両方の冗長性をサポートします。Solaris ボリュームマネージャインタフェースは、すべての RAID 1 デバイスを RAID 0+1 として扱いますが、可能であれば、ボリュームを構成するコンポーネントやミラーを個別に認識します。


注 -

Solaris ボリュームマネージャは、RAID 1+0 機能を常に提供できるわけではありません。しかし、すべてのサブミラーが同じで、ディスクスライス (ソフトパーティションではない) から構成されている、最適化された環境では、RAID 1+0 も提供します。


たとえば、純粋な RAID 0+1 実装で、ストライプ化された 3 つのスライスからなる 2 面ミラーの場合、1 つのスライスに障害が発生すると、ミラーの片面が使用不能になる場合があります。また、ホットスペアが使用されていない場合、2 番目のスライスに障害が発生すると、このミラーはおそらく使用不能になります。Solaris ボリュームマネージャを使用した場合、最大 3 つのスライスに障害が発生しても、ミラーは動作を継続できます。これは、ストライプ化された 3 つのスライスがそれぞれ、ミラーのもう一方の側の対応するスライスに対してミラー化されているためです。

次の例を見てください。

図 9-2 RAID 1+ 0 の例

Graphic

ミラー d1 は 2 つのサブミラーから構成され、各サブミラーは、構成と飛び越し値が同じ 3 つの物理ディスクから構成されています。この場合、3 つのディスク A、B、F に障害が発生しても、ミラーの論理ブロック域全体が少なくとも 1 つのディスクによって確保されているため、ミラーは使用不能になりません。

しかし、ディスク A と D に障害が発生すると、ミラーのデータの一部がどのディスク上にも存在しないため、その部分の論理ブロックにはアクセスできなくなります。

複数のスライスの障害によってミラーの一部のデータにアクセスできなくなった場合でも、データがまだ利用可能なミラー部分にはアクセスできます。この場合、ミラーは、不良ブロックを含む単一ディスクのように機能します。損傷部分は使用不能になりますが、残りの部分は使用可能です。

RAID 1 (ミラー) ボリュームに関する FAQ (よくある質問)

ミラーを使用する理由は?

ミラーは、データの可用性を最大限に高めます。ただし、ミラーを使用すると、ミラー化するデータ量の 2 倍のスライス (ディスク) が必要になります。

ミラーを構成するサブミラーの最大数は?

Solaris ボリュームマネージャでは、3 面までのミラー (3 つのサブミラーからなるミラー) を作成できます。しかし、通常、ほとんどのアプリケーションでは、2 面ミラーによって十分なデータ冗長性が得られます。また、2 面ミラーの方が、3 面ミラーよりもディスクドライブのコストが低くなります。

1 面ミラーを最初に作成してから、後でサブミラーを追加する理由は?

ミラー化するデータがすでにある場合は、まず 一 次サブミラーを作成してから、新しいサブミラーを追加します。これによって、後で、次サブミラーに格納されているデータを使って新しいサブミラーを更新することができます。

1 つのコマンドで 2 面または 3 面ミラーを作成してもかまわない場合は?

ミラー化する既存のデータがなく、すべてのサブミラーのデータが破壊されてしまってもかまわない場合は、1 つのコマンドですべてのサブミラーを作成すれば、時間の節約になります。

RAID 1 ボリュームの構成指針

RAID 1 ボリュームのオプション

ミラーの性能を最適化するには、次のオプションを使用します。

ミラーオプションは、ミラーを最初に作成するときでも、ミラーを設定した後でも設定できます。これらのオプションの変更に関連する作業については、「RAID 1 ボリュームオプションを変更するには」を参照してください。

RAID 1 ボリュームの読み取りおよび書き込みポリシー

Solaris ボリュームマネージャでは、ミラーに対してさまざまな読み取りおよび書き込みポリシーを設定できます。構成に合わせて、読み取りおよび書き込みポリシーを適切に設定すると、性能が向上することがあります。

表 9-1 ミラーの読み取りポリシー

読み取りポリシー 

説明 

ラウンドロビン (デフォルト) 

すべてのサブミラーの負荷を均一にします。ミラーに属するすべてのサブミラーの読み取りは、ラウンドロビン方式で (1 つずつ順次に) 行われます。 

ジオメトリック 

読み取りを論理的なディスクブロックアドレスに基づいて個々のサブミラーに分割します。たとえば、2 面サブミラーの場合は、ミラーのディスク領域が、論理アドレスに基づいて同じサイズの 2 つの領域に分割されます。一方のサブミラーの読み取りは論理的な領域の半分に限定され、他方のサブミラーの読み取りは同じ領域の残り半分に限定されます。 ジトメトリック読み取りポリシーでは、読み取りに必要なシーク時間が減少します。このモードによって得られる性能の向上は、システムの入出力負荷やアプリケーションのアクセスパターンによって異なります。 

先頭のデバイスから読み取る 

すべての読み取りを最初のサブミラーに送る。このポリシーは、先頭のサブミラーを構成するデバイスが 2 番目のサブミラーのデバイスよりも高速な場合にのみ使用します。 

表 9-2 ミラーの書き込みポリシー

書き込みポリシー 

説明 

並列 (デフォルト)  

ミラーへの書き込みは複製され、すべてのサブミラーに対して同時に実行される。 

順次 

サブミラーへの書き込みは順次実行される (つまり、最初のサブミラーへの書き込みが終わってから、次のサブミラーへの書き込みが始まる)。順次オプションでは、1 つのサブミラーへの書き込みが終わらないと、次のサブミラーへの書き込みは開始されない。この順次オプションは、電源の障害などによってサブミラーが読み取り不能になるのを防止するために使用する。 

RAID 1 ボリューム (ミラー) の再同期

RAID 1 ボリューム (ミラー) の再同期とは、サブミラーに障害が発生した場合、システムがクラッシュした場合、サブミラーをオフラインにしてから、オンラインに戻した場合、あるいは、新しいサブミラーを追加した場合に、サブミラーのデータを他のサブミラーにコピーする処理のことです。

再同期中も、ミラーの読み書きは実行できます。

ミラーの再同期は、すべてのサブミラーに同じデータを書き込むことによって (書き込みが進行中のデータは除く)、ミラーの有効性を保証します。


注 -

ミラーの再同期は必須の処理であり、省略することはできません。ただし、ミラーの再同期を手動で行う必要はありません。この処理は自動的に実行されます。


ミラー全体の再同期

ミラーに新しいサブミラーを接続 (追加) すると、別のサブミラーのすべてのデータが新しいサブミラーに自動的に書き込まれます。ミラーの再同期が完了すると、新しいサブミラーは読み取り可能になります。サブミラーは、明示的に切り離されるまでミラーに接続されたままになります。

再同期の実行中にシステムがクラッシュした場合は、システムが再起動してから、再同期が再開されます。

再同期の最適化

Solaris ボリュームマネージャは、システム障害後の再起動時や、オフラインのサブミラーがオンラインに戻ったときに、最適化されたミラーの再同期を実行します。メタディスクドライバはすべてのサブミラー領域を管理しているため、どのサブミラー領域が障害によって同期の取れない状態になっているかを判定できます。最適化された再同期は、同期が取れていない領域に対してのみ行われます。ユーザーは、再起動時にミラーを再同期する順序を指定できます。また、サブミラーのパス番号を 0 (ゼロ) に設定することによって、ミラーの再同期を省略することができます。 (詳細は、「パス番号」を参照してください。)


注意 - 注意 -

パス番号 0 は、読み取り専用としてマウントされているミラーに対してのみ設定します。


部分的な再同期

サブミラーを構成するスライスを新しいものに交換すると、Solaris ボリュームマネージャはデータの部分的な再同期を実行します。Solaris ボリュームマネージャは、別のサブミラーの有効なスライスから新しいスライスにデータをコピーします。

パス番号

パス番号 (0 から 9 の数字) は、システムの再起動時にミラーを再同期する順序を決定します。デフォルトのパス番号は 1 です。 再同期は、パス番号の小さいミラーから行われます。0 を指定すると、ミラーの再同期はスキップされます。パス番号 0 は、読み取り専用としてマウントされているミラーに対してのみ設定します。同じパス番号をもつミラーの再同期は同時に実行されます。

RAID 1 ボリュームの背景情報

RAID 1 ボリュームを作成するための背景情報

RAID 1 ボリュームオプションを変更するための背景情報

シングルユーザーモードでの起動が RAID 1 ボリュームに与える影響

ルート (/)、/usr、および swap (いわゆる「起動」ファイルシステム) 用のミラーを持つシステムを、boot -s コマンドを使ってシングルユーザーモードで起動した場合、metastat コマンドを実行すると、これらのミラーと、場合によってはシステム上のすべてのミラーが「Needing Maintenance」状態になっていることが示されます。また、これらのスライスに書き込みがあった場合には、ミラーのダーティリージョンが増加していることが示されます。

これは危険な状況に見えますが、心配する必要はありません。metasync -r コマンドは通常、起動時にミラーの再同期のために実行されますが、 システムがシングルユーザーモードで起動された場合には実行を中断されます。システムを再起動すると、metasync -r コマンドが実行され、すべてのミラーの再同期が取られます。

これが心配な場合は、手動で metasync -r コマンドを実行してください。

シナリオ - RAID 1 ボリューム (ミラー)

RAID 1 ボリュームは、冗長ボリュームを構築するための手段です。これによって、RAID 1 ボリュームを構成する RAID 0 ボリュームのどれかに部分的または完全な障害が発生した場合でも、データが失われることはなく、ファイルシステムへのアクセスが中断されることもありません。第 4 章「Solaris ボリュームマネージャの構成と使用」のサンプルシステムに基づく構成例は、RAID 1 ボリュームによって冗長性がいかに達成されるかを示しています。

「ストライプ方式の飛び越し値」で説明するように、サンプルシステムには 2 つの RAID 0 ボリュームがあります。それぞれのボリュームはおよそ 27G バイトの容量を持ち、3 つのディスクにまたがっています。RAID 1 ボリュームを作成してこれら 2 つの RAID 0 ボリュームをミラー化すると、完全に冗長化された記憶領域によって、障害からの回復が可能なデータ記憶域を構築できます。

この RAID 1 ボリュームでは、どちらのディスクコントローラに障害が発生しても、ボリュームへのアクセスは中断されません。さらに、最大 3 つのディスクに障害が発生しても、アクセスが中断されない場合もあります。

アクセスの中断を引き起こす可能性がある問題に対してさらに保護が必要な場合は、ホットスペアを使用します。これについては、第 15 章「ホットスペア集合 (概要)」 (特に 「ホットスペアの仕組み」) を参照してください。