ディスク・グループ容量の管理

標準冗長性または冗長性でディスク・グループを作成するなど、Oracle ASMによって冗長性が提供される場合、1つまたは2つの障害グループに障害が発生した後に失われたデータの再作成を管理するには、各ディスク・グループに十分な容量を確保する必要があります。1つ以上のディスクに障害が発生した後、すべてのデータの冗長性をリストアするには、ディスク・グループ内の残りのディスクにある領域が必要です。十分な領域が残っていない場合、一部のファイルの冗長性が損われる可能性があります。

冗長性が損われるとは、ファイル内の1つ以上のエクステントが期待されるレベルでミラー化されないことを意味します。たとえば、高冗長性のディスク・グループで冗長性が損われたファイルの場合、少なくとも1つのファイル・エクステントと、3つではなく2つ以下のエクステント・コピーがあります。保護されていないファイルの場合、データ・エクステントが完全に失われる可能性があります。これ以外にもファイルの冗長性が損われる原因には、ディスクの領域が足りない場合や、障害グループの数が十分でない場合があります。

次のガイドラインは、1つ以上のディスクに障害が発生した後、すべてのディスク・グループ・データの冗長性を完全にリストアするための領域が十分であるかどうかを確認する上で役に立ちます。

  • 標準冗長性のディスク・グループ: 1つの障害グループのすべてのディスクの損失を許容できる十分な空き領域を確保することが最も適切です。空き領域の量は、最大の障害グループのサイズと等しくする必要があります。

  • 高冗長性のディスク・グループ: 2つの障害グループのすべてのディスクの損失に対応できる十分な空き領域を確保することが最も適切です。空き領域の量は、2つの最大障害グループの合計サイズと等しくする必要があります。

    注意:

    複数の障害グループから複数のディスクが失われる場合、データのプライマリ・コピーと冗長コピーも失われる可能性があります。また、冗長性をリストアするのに十分な容量がない場合もOracle ASMは引き続き動作します。ただし、別のディスクに障害が発生すると、これ以上の障害を許容することができません。

V$ASM_DISKGROUPビューには、容量の管理に役立つ情報が含まれる次の列があります。

注意:

ディスク・グループ・タイプがFLEXまたはEXTENDの場合、V$ASM_DISKGROUPビューのREQUIRED_MIRROR_FREE_MB列およびUSABLE_FILE_MB列の値は0です。この場合の0値は、値が指定されていないという意味で、REQUIRED_MIRROR_FREE_MB列およびUSABLE_FILE_MB列の数量がゼロという意味ではありません。

  • REQUIRED_MIRROR_FREE_MBは、ディスク・グループで許容できる最悪の障害が発生した後、追加ストレージを追加せずに、完全な冗長性をリストアするためにディスク・グループで使用可能にする必要のある領域の量を示します。この要件により、冗長性をリストアするのに十分な障害グループが確保されます。また、この最悪の障害は、ディスクを削除する必要がある永久障害を指し、ディスクをオフラインにした後オンラインに戻すようなものではありません。

    この列に表示される領域の量は、ミラー化の影響を考慮します。値は次のように算出されます。

    • 2つ以上の標準の障害グループがある標準冗長性ディスク・グループの場合

      値は、最大の障害グループにあるすべてのディスクのRAW領域の合計になります。最大の障害グループとは、RAW領域の合計が最大のグループです。たとえば、各ディスクがそれぞれの障害グループにある場合、値は最大容量ディスクのサイズになります。

    • 3つ以上の標準の障害グループがある高冗長性ディスク・グループの場合

      値は、2つの最大の障害グループにあるすべてのディスクのRAW領域の合計になります。

    関連項目:

    Oracle ExadataシステムでのREQUIRED_MIRROR_FREE_MBの計算の詳細は、Oracle Exadataのドキュメントを参照してください。

    Oracle Database ApplianceシステムでのREQUIRED_MIRROR_FREE_MBの計算の詳細は、Oracle Database Applianceのドキュメントを参照してください。

  • USABLE_FILE_MBは、ミラー化のために調整され、ディスクに障害が発生した後、冗長性をリストアするために新しいファイルに使用可能な空き領域の量を示します。USABLE_FILE_MBは、ディスク・グループの空き領域合計からREQUIRED_MIRROR_FREE_MBを差し引き、ミラー化の値の調整を行って算出されます。たとえば、標準冗長性のディスク・グループで、ミラー化されたファイルがデフォルトでそのサイズの2倍に等しいディスク領域を使用する場合、実際に残っている使用可能なファイル領域が4GBであると、USABLE_FILE_MBは約2GBになります。この場合、最大2GBのファイルを追加できます。負の値のUSABLE_FILE_MB詳細は、負の値のUSABLE_FILE_MBを参照してください。

  • TOTAL_MBは、ディスク・グループの使用可能な容量の合計です(MB)。この列のデータの算出には、ディスク・ヘッダーのオーバーヘッドを考慮に入れます。ディスク・ヘッダーのオーバーヘッドは、Oracle ASMディスクとOracle ASMファイルの数によって異なります。この値は、通常、RAWストレージ容量の合計の約1%になります。たとえば、Oracle ASMにプロビジョニングされたLUN容量の合計が100GBの場合、TOTAL_MB列の値は約99GBになります。

  • FREE_MBは、ディスク・グループの未使用の容量です(MB)。データの不均衡は考慮されません。FREE_MB列の値が未使用の容量を示していても、1つのOracle ASMディスクがいっぱいであるために、ディスク・グループ内の不均衡によってデータベースの書込みが失敗するという状況が発生することがあります。手動リバランスを開始して、均等なデータの分散を強制的に行うことにより、FREE_MB列の値が正確に表示されるようにします。

    128KBを使用する密なストライプ化では、ストレージはAUサイズの8倍になるように事前に割り当てられます。したがって、この事前割当てのために、Oracle ASM上のデータファイルのサイズはローカル・ファイルシステムよりもわずかに大きくなります。

    Oracle ASMの標準冗長性または高冗長性を使用する場合、ディスク領域の使用状況の測定は、複数の変数に依存するため、より複雑になります。

    注意:

    TOTAL_MB列とFREE_MB列の値は、Oracle ASMのミラー化を構成しない場合、つまり外部冗長性を使用する場合は領域の使用状況を最適に表します。

次の問合せの結果は、各ディスクが独自の障害グループに属している6つの1GB(1024MB)のディスクで構成された標準冗長性のディスク・グループの容量メトリックを示しています。

SQL> SELECT name, type, total_mb, free_mb, required_mirror_free_mb, 
     usable_file_mb FROM V$ASM_DISKGROUP;

NAME         TYPE     TOTAL_MB    FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
------------ ------ ---------- ---------- ----------------------- --------------
DATA         NORMAL       6144       3768                    1024           1372

REQUIRED_MIRROR_FREE_MB列は、1つ以上のディスクに障害が発生した後に冗長性を完全にリストアするには1GBの追加容量が必要であることを示しています。問合せ結果の最初の3つの数値列は未処理の数値です。つまり、これらの数値では冗長性が考慮されていません。標準冗長性として調整されているのは最後の列のみです。dataディスク・グループの問合せ出力の例では、次のように計算されています。

(FREE_MB - REQUIRED_MIRROR_FREE_MB) / 2 = USABLE_FILE_MB

(3768 - 1024) / 2 = 2744 / 2 = 1372

負の値のUSABLE_FILE_MB

FREE_MBREQUIRED_MIRROR_FREE_MBUSABLE_FILE_MBの関係により、USABLE_FILE_MBが負の値になることがあります。これは必ずしも重大な状況ではありませんが、次のような意味があります。

  • FREE_MBの値によっては、新しいファイルを作成できない場合があります。

  • 次に障害が発生したとき、ファイルの冗長性が損われる場合があります。

USABLE_FILE_MBが負の値になった場合、できるかぎり早くディスク・グループに領域を追加することをお薦めします。