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

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

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

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

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

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

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

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


ヒント

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


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

サブミラーの概要

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

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

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

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

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

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

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

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

図 101 RAID 1 (ミラー) の例

2 つの RAID 0 ボリュームを合わせて RAID 1 (ミラー) ボリュームとして使用し、冗長性のある記憶領域を提供しています。

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 つのスライスがそれぞれ、ミラーのもう一方の側の対応するスライスに対してミラー化されているためです。

次の例を見てください。

図 102 RAID 1+ 0 の例

RAID 1 ボリュームの 6 つのスライスのうち 3 つに障害が発生しても、RAID 1 + 0 を実装しているために、データを失わずにすむケースを示しています。

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

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

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

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


ミラー化されたファイルシステムで、最初に接続したサブミラーがシリンダ 0 から始まらない場合、追加接続するすべてのサブミラーも、シリンダ 0 から始まらないようにする必要があります。最初のサブミラーがシリンダ 0 から始まらないミラーに、シリンダ 0 から始まるサブミラーを接続しようとすると、次のエラーメッセージが表示されます。


can't attach labeled submirror to an unlabeled mirror 

1 つのミラー内で使用するサブミラーは、全部シリンダ 0 から始まるか、どれもシリンダ 0 から始まらないかのどちらかにする必要があります。

開始シリンダは、すべてのサブミラーで同じにする必要はありませんが、すべてのサブミラーにシリンダ 0 が含まれるか、すべてのサブミラーにシリンダ 0 が含まれないかのどちらかでなければなりません。


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

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

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

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

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

表 101 RAID 1 ボリュームの読み取りポリシー

読み取りポリシー 

説明 

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

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

ジオメトリック 

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

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

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

表 102 RAID 1 ボリュームの書き込みポリシー

書き込みポリシー 

説明 

並列 (デフォルト) 

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

順次 

サブミラーへの書き込みは順次実行される (つまり、最初のサブミラーへの書き込みが終わってから、次のサブミラーへの書き込みが始まる)。 順次オプションでは、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 ボリュームのどれかに部分的または完全な障害が発生した場合でも、データが失われることはなく、ファイルシステムへのアクセスが中断されることもありません。 次の例では、第5章「Solaris ボリュームマネージャの構成と使用」のサンプルシステムを使用して、RAID 1 ボリュームで冗長な記憶領域を提供する方法を示します。

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

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

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