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

第 14 章 RAID-5 ボリューム (概要)

この章では、Solaris ボリュームマネージャの RAID-5 ボリュームに関連する概念について説明します。関連する作業の実行手順については、第 15 章「RAID-5 ボリューム (作業)」を参照してください。

この章の内容は、次のとおりです。

RAID-5 ボリュームの概要

RAID レベル 5 はストライプ方式に似ていますが、パリティーデータがすべてのコンポーネント (ディスクまたは論理ボリューム) に分散されている点が異なります。コンポーネントに障害が発生した場合には、障害が発生したコンポーネント上のデータを、他のコンポーネント上に分散されているデータとパリティー情報から再構築することができます。Solaris ボリュームマネージャでは、「RAID-5 ボリューム」は RAID レベル 5 をサポートするボリュームを意味します。

RAID-5 ボリュームでは、ボリューム内の 1 つのコンポーネントに相当する記憶容量を使用して、冗長情報 (パリティー) を格納します。このパリティー情報には、残りの RAID-5 ボリュームのコンポーネントに格納されているユーザーデータに関する情報が含まれます。つまり、3 つのコンポーネントがあれば、1 つのコンポーネントに相当する領域がパリティー情報に使用されます。同じように、5 つのコンポーネントがある場合にも、1 つのコンポーネントに相当する領域がパリティー情報に使用されます。パリティー情報は、ボリューム内のすべてのコンポーネントに分散されます。ミラーと同様に、RAID-5 ボリュームではデータの可用性が向上しますが、ハードウェアのコストは最小限に抑えることができます。書き込み性能に対する影響は中程度です。ただし、RAID-5 ボリュームを ルート (/)、 /usr、および swap ファイルシステム、あるいはその他のすでに存在するファイルシステムに対して使用することはできません。

Solaris ボリュームマネージャは、既存のコンポーネントが置き換えられると、RAID-5 ボリュームの再同期を自動的に実行します。また、Solaris ボリュームマネージャは、システム障害やパニックが発生した場合、リブート時に、RAID-5 ボリュームを再同期します。

例 — RAID-5 ボリューム

図 14–1 に、4 つのディスク (コンポーネント) からなる RAID-5 ボリュームを示します。

最初の 3 つのデータセグメントは、コンポーネント A (飛び越し値 1)、コンポーネント B (飛び越し値 2)、およびコンポーネント C (飛び越し値 3) に書き込まれます。次のデータセグメントは、パリティーセグメントに書き込まれます。このパリティーセグメントは、コンポーネント D (P 1–3) に書き込まれます。このセグメントは、最初の 3 つのデータセグメントの排他的論理和からなります。次の 3 つのデータセグメントは、コンポーネント A (飛び越し値 4)、コンポーネント B (飛び越し値 5)、およびコンポーネント D (飛び越し値 6) に書き込まれます。次に、別のパリティーセグメントが、コンポーネント C (P 4–6) に書き込まれます。

データセグメントとパリティーセグメントをこのように書き込むことによって、データとパリティーの両方が、RAID-5 ボリュームを構成するすべてのディスクに分散されます。各ドライブは個別に読み取ることができます。パリティー情報により、いずれか 1 つのディスクが故障しても、データの安全性が保証されます。この例のディスクがそれぞれ 2G バイトだとすると、RAID-5 ボリュームの総容量は 6G バイトになります。ディスク 1 つ分の領域がパリティー用に割り当てられます。

図 14–1 RAID-5 ボリュームの例

これは RAID-5 ボリュームの例です。複数のコンポーネントを使用して、データセグメントとともにパリティーセグメントを書き込みます。

例 — RAID-5 ボリュームの連結 (拡張)

次の図に、当初 4 つのディスク (コンポーネント) から構成されていた RAID-5 ボリュームの例を示します。5 つ目のディスクがボリュームに動的に連結され、RAID-5 ボリュームが拡張されています。

図 14–2 RAID-5 ボリュームの拡張例

追加のコンポーネントを RAID-5 ボリュームに連結することによって、冗長性のある大型のボリュームが提供されています。

パリティー領域は、RAID 5-ボリュームの作成時に割り当てられます。パリティーには 1 つのコンポーネントに相当する領域が割り当てられますが、実際のパリティーブロックは、入出力を分散するためにすべてのオリジナルコンポーネントに分散されます。追加のコンポーネントを RAID-5 ボリュームに連結した場合、追加領域はすべてデータ用になります。新しいパリティーブロックは割り当てられません。ただし、連結されたコンポーネントのデータはパリティー計算の対象になるため、データは単一のデバイス障害から保護されます。

連結した RAID-5 ボリュームは長期間の使用には適しません。連結した RAID-5 ボリュームを使用するのは、大型の RAID-5 ボリュームを再構成できるようになるまでの間です。その後、データを大型ボリュームにコピーします。


注 –

RAID-5 ボリュームに新しいコンポーネントを追加すると、Solaris ボリュームマネージャは、そのコンポーネントのすべてのデータブロックを「ゼロ」にします。この処理は、パリティー情報によって新しいデータを保護するために実行されます。つまり、データが新しい領域に書き込まれると、Solaris ボリュームマネージャはそのデータをパリティー計算の対象とします。


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

RAID-5 ボリュームを使用するときは、「RAID-5 ボリュームの要件」「RAID-5 ボリュームの指針」を考慮してください。また、RAID-5 ボリュームの構成には、ストライプ化に関する指針の多くが適用されます。「RAID-0 ボリュームの要件」を参照してください。

RAID-5 ボリュームの要件

RAID-5 ボリュームの指針

RAID-5 ボリュームの状態のチェック (概要)

RAID-5 ボリュームの状態をチェックするには、ボリュームの状態とスライスの状態を調べます。RAID-5 ボリュームのエラーに対処する場合は、スライスの状態からもっとも具体的な情報が得られます。RAID-5 ボリュームの状態からわかるのは、「正常 (Okay)」、「保守 (Maintenance)」といった総合的な状態情報だけです。

RAID-5 ボリュームの状態が「保守 (Maintenance)」になっている場合は、スライスの状態を確認します。スライスの状態は、スライスが「保守 (Maintenance)」状態なのか、それとも「最後にエラー (Last Erred)」状態なのかを具体的に示します。スライスが「保守 (Maintenance)」状態なのか「最後にエラー (Last Erred)」状態なのかによって、異なる回復処置を実行します。「保守 (Maintenance)」状態のスライスが 1 つだけ存在する場合は、データを失うことなくスライスを修理できます。「保守 (Maintenance)」状態のスライスと「最後にエラー (Last Erred)」状態のスライスが 1 つずつある場合は、おそらくデータは破壊されています。この場合には、「保守」状態のスライスを修理してから「最後にエラー」状態のスライスを修理する必要があります。

次の表に、RAID-5 ボリュームの状態を示します。

表 14–1 RAID-5 ボリュームの状態

状態 

意味 

初期化中 (Initializing) 

スライスは、ディスクブロックをゼロで初期化しています。この処理は、データとパリティーを飛び越し方式でストライプ化する RAID-5 ボリュームの特性上、必要になるものです。 

状態が「正常 (Okay)」になったら、初期化が完了しており、デバイスを開くことができます。この状態になるまで、アプリケーションはエラーメッセージを受け取ります。 

正常 (Okay) 

デバイスにはエラーはなく、使用可能な状態です。 

保守 (Maintenance) 

入出力エラーまたはオープンエラーが原因で、スライスが障害扱いになっています。このようなエラーが発生するのは、読み取り操作または書き込み操作時です。 

次の表に、RAID-5 ボリュームのスライス状態と実行可能な処置を示します。

表 14–2 RAID-5 のスライスの状態

状態 

意味 

処置 

初期化中 (Initializing) 

スライスは、ディスクブロックをゼロで初期化しています。この処理は、データとパリティーを飛び越し方式でストライプ化する RAID-5 ボリュームの特性上、必要になるものです。 

通常は必要ありません。この間に入出力エラーが発生すると、デバイスの状態は「保守」に変わります。初期化に失敗すると、このボリュームの状態は「初期化失敗」に、スライスの状態は「保守」になります。この場合には、ボリュームを削除してから作成し直す必要があります。 

正常 (Okay) 

デバイスにはエラーはなく、使用可能な状態です。 

必要ない必要に応じて、スライスを追加および交換に使用できます。 

再同期中 (Resyncing) 

スライスの再同期処理が進行しています。エラーが発生したが、すでに訂正され、スライスが有効になっているか、あるいは、新しいスライスが追加された後です。 

必要であれば、再同期が終了するまで RAID-5 ボリュームの状態を監視します。 

保守 (Maintenance) 

入出力エラーまたはオープンエラーが原因で、1 つのスライスが障害扱いになっています。このようなエラーが発生するのは、読み取り操作または書き込み操作時です。 

障害が発生したスライスを有効にするか、交換します。「RAID-5 ボリューム内のコンポーネントを有効にするには」または 「RAID-5 ボリューム内のコンポーネントを置き換えるには」を参照してください。metastat コマンドを実行すると、metareplace コマンドを使用して行うべき処置を示す invoke 回復メッセージが表示されます。

保守/最後にエラー (Maintenance/Last Erred) 

複数のスライスでエラーが発生しました。障害スライスの状態は「保守」または「最後にエラー」のどちらか一方です。この状態のとき、「保守」状態のスライスには入出力が行われません。しかし、「最後にエラー」とされたスライスには入出力が試行されます。その結果、入出力要求全体の状態が「最後にエラー」になります。 

障害が発生したスライスを有効にするか、交換します。「RAID-5 ボリューム内のコンポーネントを有効にするには」または 「RAID-5 ボリューム内のコンポーネントを置き換えるには」を参照してください。metastat コマンドを実行すると、metareplace コマンドを使用して行うべき処置を示す invoke 回復メッセージが表示されます。このコマンドは、-f フラグを指定して実行する必要があります。この状態は、複数のスライスに障害が発生したため、不正なデータが生成された可能性があることを示しています。

RAID-5 ボリューム内のスライスの置き換えと有効化 (概要)

Solaris ボリュームマネージャには、ミラーおよび RAID-5 ボリューム内でコンポーネントの「置き換え」と「有効化」を行う機能があります。この機能についての問題点と要件は、ミラーおよび RAID-5 ボリュームに関するものと同じです。詳細については、「RAID-1 および RAID-5 ボリューム内のコンポーネントの交換と有効化の概要」を参照してください。

シナリオ—RAID-5 ボリューム

RAID-5 ボリュームでは、RAID-1 ボリュームよりも少ないオーバーヘッドで記憶領域の冗長性を達成できます (RAID-1 ボリュームでデータの冗長性を得るには、合計記憶領域の 2 倍の領域が必要)。RAID-5 ボリュームを設定すると、同じ数のディスクコンポーネントでも、RAID-1 ボリュームで得られるより大容量の冗長記憶領域を確保できます。さらに、ホットスペア (第 16 章「ホットスペア集合 (概要)」と特に「ホットスペアの仕組み」を参照) を利用することによって、ほぼ同程度の安全性を確保できます。問題点は、コンポーネント障害が発生した場合に、書き込み時間が増大し、性能が相当低下することです。しかし、このような問題点が目立つような状況はあまりありません。次の例では、第 5 章「Solaris ボリュームマネージャの構成と使用」のサンプルシナリオを使用して、RAID-5 ボリュームで追加の記憶容量を提供する方法を示します。

RAID-0 と RAID-1 ボリュームに対応するシナリオでは、2 つのコントローラに分散された 6 つのディスク上の 6 つのスライス (c1t1d0c1t2d0c1t3d0c2t1d0c2t2d0c2t3d0) によって、27G バイトの冗長記憶領域が得られます。RAID-5 構成で同じスライスを使用すると、45G バイトの記憶領域が使用できます。この構成の場合は、1 つのコンポーネントで障害が発生しても、データが失われたりアクセスが停止されたりすることはありません。さらに、RAID-5 ボリュームにホットスペアを追加すれば、複数のコンポーネントに障害が発生しても対応できます。この方式で最大の問題点は、コントローラ障害が発生すると、この RAID-5 ボリュームのデータが失われることです。RAID-1 ボリュームではこの問題は起こりません。「シナリオ—RAID-1 ボリューム (ミラー)」を参照してください。