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

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

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

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

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

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

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

既存のファイルシステムを含め、どのようなファイルシステムでもミラー化できます。これらのファイルシステムは、ルート (/)、swap、および /usr です。また、ミラーは、データベースなど、どのようなアプリケーションにも使用できます。


ヒント –

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


サブミラーの概要

ミラーは、サブミラーと呼ばれる 1 つ以上の RAID-0 ボリューム (ストライプ方式または連結方式) からなります。

ミラーには最大 4 つのサブミラーを使用できます。しかし通常、ほとんどのアプリケーションでは、2 面ミラーによって十分なデータ冗長性が得られますし、ディスクドライブのコストも低くなります。 3 つめのサブミラーを構成すると、オンラインでバックアップを取ることができます。この場合、バックアップのために 1 つのサブミラーがオフラインになっていても、データの冗長性は失われません。

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

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

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

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

図 10–1に、ミラー d20 を示します。このミラーは、2 つのボリューム (サブミラー) d21d22 からなります。

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

図 10–1 RAID-1 (ミラー) の例

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

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

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


注 –

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


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

図 10–2 に、RAID-1 ボリュームではスライスが失われることがあるのに対して、RAID-1+0 の実装ではデータ損失が起きないことを示します。

図 10–2 RAID-1+ 0 の例

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

RAID-1 ボリュームは、2 つのサブミラーからなります。各サブミラーは、同じ飛び越し値が設定された3 つの同一物理ディスクからなります。3 つのディスク A、B、および F で障害が発生しても、支障はありません。ミラーの論理ブロック範囲全体が少なくとも 1 つの正常なディスクに格納されています。ボリュームの全データが使用可能です。

ただし、ディスク A と D で障害が発生した場合は、ミラーの一部分のデータがどのディスクでも使用できなくなります。これらの論理ブロックにはアクセスできません。しかし、データが使用可能なミラー部分へのアクセスは、引き続き可能です。この場合、ミラーは、不良ブロックを含む単一ディスクのように機能します。損傷部分は使用不能になりますが、残りの部分は使用可能です。

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

RAID-1 ボリューム (ミラー) の再同期は、次のいずれかの条件が発生したときに、あるサブミラーから別のサブミラーにデータをコピーするプロセスです。

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

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


注 –

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


ミラー全体の再同期

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

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

再同期の最適化

Solaris ボリュームマネージャは、システム障害後のリブート時や、オフラインのサブミラーがオンラインに戻ったときに、最適化されたミラーの再同期を実行します。メタディスクドライバがサブミラーの領域を追跡します。この機能によって、メタディスクドライバは障害発生後に同期が外れたサブミラー領域を識別できます。最適化された再同期は、同期が取れていない領域に対してのみ行われます。リブート時にどの順序でミラーを再同期するかを指定できます。サブミラーパス番号をゼロに設定すると、ミラーの再同期を省略できます。パス番号の変更に関連する作業については、例 11–16 を参照してください。


注意 – 注意 –

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


部分的な再同期

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

RAID-1 ボリュームの作成と保守

ここでは、ミラーの作成に関する指針を示します。さらに、作成したミラーの性能に関する指針も示します。

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

RAID-1 ボリュームの性能に関する指針

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

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

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

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

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

表 10–1 RAID-1 ボリュームの読み取りポリシー

読み取りポリシー 

説明 

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

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

ジオメトリック 

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

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

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

表 10–2 RAID-1 ボリュームの書き込みポリシー

書き込みポリシー 

説明 

並列 (デフォルト) 

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

順次 

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

パス番号

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

保守作業を決定するサブミラーの状態

Solaris ボリュームマネージャの metastat コマンドによって、RAID-1 ボリュームとサブミラーの状態情報が報告されます。この状態情報に基づいて、RAID-1 ボリュームに対して保守作業が必要かどうかを判断できます。次の表で、RAID-1 ボリュームに対して metastat コマンドを実行したときに表示される、サブミラーの状態について説明します。

表 10–3 サブミラーの状態

状態 

意味 

正常 (Okay) 

サブミラーにはエラーがなく正常に動作しています。 

再同期中 (Resyncing) 

サブミラーで再同期処理が実行されている。エラーが発生したが、すでに訂正され、オンラインに戻されたか、あるいは、新しいサブミラーが接続されています。 

保守が必要 (Needs Maintenace) 

サブミラー内のスライスに入出力エラーまたはオープンエラーが発生しました。スライスに対するすべての読み取りと書き込みはすでに停止されています。 

metastat コマンドはさらに、サブミラーのスライスごとに次の情報を提供します。

Device

ストライプ内のスライスのデバイス名

Start Block

スライスの開始ブロック

Dbase

スライスに状態データベースの複製が含まれているかどうか

State

スライスの状態

Hot Spare

スライスは障害スライスのホットスペアとして使用中

サブミラーの状態が伝えるのは、サブミラーの総合的な状態情報だけです。ミラーのエラーに対処する場合は、通常、スライスの状態がもっとも重視しなければならない情報です。サブミラーが「保守が必要 (Needs Maintenance)」の状態になっている場合、スライスの状態を参照して詳細を調べる必要があります。

スライスの状態が「保守 (Maintenance)」の場合と「最後にエラー (Last Erred)」の場合では、障害から回復するための処置が異なります。「保守 (Maintenance)」状態のスライスだけが複数ある場合は、どのような順序でスライスを修理してもかまいません。しかし、「保守 (Maintenance)」状態のスライスと「最後にエラー (Last Erred)」状態のスライスの両方が混在する場合は、先に「保守 (Maintenance)」状態のスライスを修理する必要があります。「保守 (Maintenance)」状態のスライスを修理したあとで、「最後にエラー (Last Erred)」状態のスライスを修理します。詳細については、「RAID-1 および RAID-5 ボリューム内のコンポーネントの交換と有効化の概要」を参照してください。

次の表に、サブミラーのスライスの状態と実行可能な処置を示します。

表 10–4 サブミラーのスライスの状態

状態 

意味 

処置 

正常 (Okay) 

スライスはエラーがなく正常に動作しています。 

必要ない 

再同期中 (Resyncing) 

スライスの再同期処理が進行しています。エラーが発生したが、すでに訂正され、オンラインに戻されたか、あるいは、新しいサブミラーが接続されています。 

必要であれば、再同期処理が終了するまでサブミラーの状態を監視します。 

保守 (Maintenance) 

スライスで 入出力エラーかオープンエラーが発生しました。このコンポーネントに対するすべての読み取りと書き込みはすでに停止されています。 

障害が発生したスライスを有効にするか、交換します。「サブミラー内のスライスを有効にするには」または「サブミラー内のスライスを交換するには」を参照してください。metastat コマンドを実行すると、metareplace コマンドを使って行うべき処置を示す invoke 回復メッセージが表示されます。metareplace -e コマンドを使用することもできます。

最後にエラー (Last Erred) 

スライスで 入出力エラーかオープンエラーが発生しました。しかし、別のスライスに障害があるため、データは他のスライスには複製されません。したがって、入出力は引き続きこのスライスに対して行われます。この入出力がエラーになると、ミラー入出力は失敗します。 

まず、「保守 (Maintenance)」状態のスライスを有効にするか、交換します。「サブミラー内のスライスを有効にするには」または 「サブミラー内のスライスを交換するには」を参照してください。通常は、このエラーがあるとデータが失われるため、ミラーの修復後にミラーを検証する必要があります。ファイルシステムの場合は、fsck コマンドを実行してからデータをチェックします。アプリケーションやデータベースでは、独自の方法でデバイスを検証できなければなりません。

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

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

この状況は潜在的な危険性を意味します。ただし、metasync -r コマンドは通常、ブート時にミラーの再同期のために実行されますが、 システムがシングルユーザーモードでブートされた場合には実行を中断されます。システムをリブートすると、metasync -r コマンドが実行され、すべてのミラーの再同期が取られます。

この状況が問題になる場合は、手動で metasync -r コマンドを実行してください。

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

RAID-1 ボリュームによって冗長ボリュームを作成できます。したがって、構成要素である RAID-0 ボリュームの 1 つで部分障害または完全障害が発生しても、データ損失は生じません。また、ファイルシステムにアクセスできなくなることもありません。次の例では、第 5 章「Solaris ボリュームマネージャの構成と使用」「シナリオ—RAID-0 ボリューム」で説明したシナリオを前提に、RAID-1 ボリュームで冗長記憶領域を提供する方法を示します。

「シナリオ—RAID-0 ボリューム」で説明したとおり、このシステム例には 2 つの RAID-0 ボリュームがあります。1 つのボリュームは約 27G バイトの容量で、3 つのディスクにまたがっています。RAID-1 ボリュームを作成してこれら 2 つの RAID-0 ボリュームをミラー化すると、完全に冗長化された記憶領域によって、障害からの回復が可能なデータ記憶領域を構築できます。

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

アクセス中断を引き起こす状況に対して保護を強化するには、ホットスペアを使用します。第 16 章「ホットスペア集合 (概要)」を参照してください。特に 「ホットスペアの仕組み」を参照してください。