この章では、自動ストレージ管理(ASM)とASM機能の概要について説明します。この章の内容は次のとおりです。
『Oracle Databaseストレージ管理者ガイド』で使用される用語とその定義については、このマニュアルの「用語集」を参照してください。
ASMは、Oracleデータベース・ファイルのボリューム・マネージャ兼ファイル・システムです。ASMを使用すると、Oracle DatabaseおよびOracle Real Applications Clusters(RAC)の単一インスタンス構成が可能になります。ASMは、オラクル社推奨のストレージ管理ソリューションであり、従来のボリューム・マネージャ、ファイル・システム、およびRAWデバイスに代わる選択肢を提供するものです。
ASMでは、データファイルの格納にディスク・グループが使用されます。ASMのディスク・グループとは、ASMにより1つの単位として管理される、ディスクの集合のことです。ディスク・グループ内では、Oracleデータベース・ファイルのファイル・システム・インタフェースが公開されます。ディスク・グループ内に保存されたファイルの内容は、均等に分散されるか、またはストライプ化されるため、ホット・スポットがなくなり、ディスク間のパフォーマンスが均一になります。このパフォーマンスは、RAWデバイスのパフォーマンスにも匹敵します。
ディスク・グループに対してディスクの追加や削除を行う際、そのディスク・グループのファイルにアクセス中のデータベースがあっても、そのアクセスが妨げられることはありません。ASMは、ディスク・グループに対するディスクの追加や削除が行われる際、ファイルの内容を自動的に再分配します。再分配のための停止時間は発生しません。
ASMのボリューム・マネージャ機能には、サーバーベースのフレキシブルなミラー化オプションが用意されています。標準冗長性と高冗長性の各オプションでは、それぞれ双方向のミラー化と3方向のミラー化をASMディスク・グループに適用できます。外部冗長性を使用すると、RAID(Redundant Array of Inexpensive Disks)ストレージ・サブシステムのミラー化機能を有効にすることができます。
ASMではまた、データベース・ファイルの管理を簡素化するためのOMF(Oracle Managed Files)機能も提供されます。OMFでは、指定の場所にファイルが自動的に作成されます。さらに、ファイルの命名や削除に加え、表領域やファイルを削除する際の領域開放も自動化されます。
ASMは、データ記憶域を少数のディスク・グループに統合することで、データベース記憶域の管理にまつわるオーバーヘッドを低減します。つまり、複数のデータベースの記憶域を統合することによって、I/Oパフォーマンスを向上させることができます。
ASMファイルは、他のストレージ管理オプション(RAWディスクやサード・パーティ製ファイル・システムなど)と共存させることができます。そのため、既存の環境へもシンプルなプロセスでASMを統合できます。
Oracle Enterprise Managerには、非ASMデータベース・ファイルをASMに移行するためのウィザードが用意されています。またASMでは、SQL*Plus、ASMCMDコマンドライン・インタフェース、Oracle Enterprise Managerなどの使いやすい管理インタフェースも使用できます。
関連項目:
|
この項では、ASMの主なコンポーネントの概要について説明します。内容は次のとおりです。
ASMインスタンスは、Oracle Databaseインスタンスと同じテクノロジに基づいています。ASMインスタンスには、システム・グローバル領域(SGA)とOracle Databaseのプロセスに似たバックグラウンド・プロセスがあります。ただし、ASMが実行するタスクの量はデータベースよりも少ないため、ASMのSGAはデータベースのSGAよりもかなり少なくなっています。また、サーバーに対するパフォーマンスの影響も最小限に抑えられます。ASMインスタンスは、ディスク・グループをマウントすることによって、データベース・インスタンスからASMファイルを使用できるようにします。つまり、データベースをマウントするのではありません。
ASMメタデータは、ASMがディスク・グループの制御に使用する情報で、そのディスク・グループ内に存在するメタデータです。ASMメタデータには次の情報があります。
ディスク・グループに属しているディスク
ディスク・グループで使用可能な領域の量
ディスク・グループのファイルのファイル名
ディスク・グループのデータファイルのデータ・エクステントの場所
アトミックに変更するデータ・ブロックの情報を記録するREDOログ
ASMインスタンスとデータベース・インスタンスには、ディスク・グループのディスクへの共有アクセスが必要です。ASMインスタンスはディスク・グループのメタデータを管理して、ファイルのレイアウト情報をデータベース・インスタンスに提供します。
Oracle Clusterwareを使用してASMインスタンスをクラスタ化できます。クラスタ・ノードごとに1つのASMインスタンスがあります。同じノード上に異なるデータベースのデータベース・インスタンスが複数存在する場合は、そのノード上の同じ単一ASMインスタンスがデータベース・インスタンスによって共有されます。
あるノードのASMインスタンスに障害が発生すると、そのノード上のすべてのデータベース・インスタンスで障害が発生します。ファイル・システムの障害とは異なり、ASMインスタンスの障害ではオペレーティング・システムを再起動する必要はありません。Oracle RAC環境の場合、残りのノード上のASMインスタンスとデータベース・インスタンスが、あるノードのASMインスタンスの障害から自動的にリカバリします。
図1-1は、1つのASMインスタンスと複数のデータベース・インスタンスを使用した単一ノード構成を表しています。ASMインスタンスは、メタデータを管理し、ASMファイルの領域を割り当てます。データベース・インスタンスは、ASMファイルを作成またはオープンするときに、それらのリクエストをASMインスタンスに伝えます。それに応じて、ASMインスタンスはファイルのエクステント・マップ情報をデータベース・インスタンスに提供します。
図1-1に2つのディスク・グループがあります。1つのグループには4つのディスクがあり、もう1つのグループには2つのディスクがあります。データベースはどちらのディスク・グループにもアクセスできます。図1-1の構成は複数のデータベース・インスタンスを表していますが、複数のデータベース・インスタンスの要求に応えるのに必要なASMインスタンスは1つのみです。
図1-2は、ASMがクラスタ化ストレージ・プールを提供するOracle RAC環境のASMクラスタを表しています。クラスタ内の複数のOracle RACデータベースまたは単一インスタンス・データベースに対応するASMインスタンスがノードごとに1つあります。データベースはすべて統合され、同じ2つのASMディスク・グループを共有します。
図1-3に示すように、クラスタ化ストレージ・プールを複数の単一インスタンスOracle Databaseで共有できます。この場合、複数のデータベースが共通のディスク・グループを共有します。ASMストレージ・プールは、Oracle Clusterwareを使用して共有されます。ただし、このような環境でOracle RACライセンスは必要ありません。
独立したノード上のASMインスタンスは、ASMクラスタの一部である必要はなく、ASMインスタンス間の通信は行われません。ただし、ASMクラスタの一部ではない複数のノードではディスク・グループを共有できません。複数のノード間でディスク・グループを共有するには、Oracle RACがノードにインストールされているかどうかにかかわらず、Oracle Clusterwareをすべてのノードにインストールする必要があります。
ディスク・グループはASMが管理する複数のディスクで構成される基本オブジェクトです。各ディスク・グループには、ディスク・グループ内の領域の管理に必要なメタデータが含まれています。
ファイルは、ディスク・グループから割り当てられます。ASMファイルは、単一のディスク・グループ内に完全に含まれます。ただし、複数のデータベースに属するファイルがディスク・グループに含まれている場合や、複数のディスク・グループのファイルを単一のデータベースで使用する場合もあります。ほとんどのインストールでは、少数(通常は2つ)のディスク・グループしか必要とされず、3つより多くなることはめったにありません。
ディスク・グループの構成要素は、ディスク、ファイルおよび割当て単位です。図1-4は、ASMディスク・グループの構成要素の関係を表しています。
ミラー化を使用すると、複数のディスクにデータのコピーを保存することにより、データ整合性が保護されます。ディスク・グループ・タイプでは、Oracleがディスク・グループにファイルを作成するときに使用するミラー化レベルが決定されます。
ディスク・グループを作成する場合、次に示す3つの冗長性レベルのいずれかに基づいてASMディスク・グループ・タイプを指定します。
標準(双方向ミラー化の場合)
高(3方向ミラー化の場合)
外部(ASMミラー化を使用しない。冗長性のためにハードウェアのRAIDを構成する場合など)
ディスク・グループ・タイプでは、Oracleがディスク・グループにファイルを作成するときに使用するミラー化レベルが決定されます。冗長性レベルでは、ディスク・グループのディスマウントやデータの消失なしに許容されるディスク障害の数が制御されます。
ASMのミラー化では、各ファイルの冗長性レベルを指定できるため、従来のRAIDのミラー化よりもフレキシブルです。ミラー化されている1つのファイルとミラー化されていない別のファイルで同じディスク・グループを共有できます。
ASMが標準冗長性のファイルにエクステントを割り当てる場合、プライマリ・コピーとセカンダリ・コピーが割り当てられます。プライマリ・コピー以外の別の障害グループのセカンダリ・コピーを保存するディスクが選択されます。障害グループは、データのミラー化コピーを配置するために使用され、これによって各コピーが別々の障害グループのディスク上に配置されます。ある障害グループのすべてのディスクで同時に障害が発生した場合でもデータは失われません。
ユーザーは、ASMディスク・グループの作成時にディスク・グループの障害グループを定義します。ディスク・グループの作成後は、ディスク・グループの冗長性レベルを変更できません。ディスク・グループの冗長性レベルを変更するには、該当する冗長性を備えた別のディスク・グループを作成し、そのファイルを新しいディスク・グループに移動します。領域が不均衡にならず、ミラー化されたデータの分配が不均一にならないように、同じサイズの障害グループを作成することをお薦めします。
障害グループの指定を省略した場合は、各ディスクがそれぞれ固有の障害グループに自動的に配置されます。通常の冗長性のディスク・グループには、少なくとも2つの障害グループが必要です。高い冗長性のディスク・グループには、少なくとも3つの障害グループが必要です。外部冗長性を備えたディスク・グループでは、障害グループは使用されません。
ASMディスクは、ASMディスク・グループにプロビジョニングされるストレージ・デバイスです。ASMディスクの例を次に示します。
ストレージ・アレイのディスクまたはパーティション
ディスク全体またはディスクのパーティション
論理ボリューム
ネットワーク接続ファイル(NFS)
ディスク・グループにディスクを追加する場合、ユーザーがディスク名を割り当てるか、またはディスクにASMディスク名が自動的に付与されます。この名前は、オペレーティング・システムで使用される名前とは異なります。クラスタの場合、異なるノードではディスクに異なるオペレーティング・システムのデバイス名が割り当てられますが、ディスクのASMディスク名はすべてのノードで同じになります。クラスタでは、ディスク・グループを共有するすべてのインスタンスからASMディスクにアクセスできる必要があります。
ディスクが同じサイズの場合、ファイルはディスク・グループ内の全ディスクで均等に分散されます。この割当てパターンにより、すべてのディスクが同じ容量レベルで維持され、ディスク・グループ内の全ディスクのI/O負荷が同じになります。ASMの負荷はディスク・グループ内の全ディスク間で均等に分散されるため、異なるASMディスクが同じ物理ドライブを共有することはできません。
ASMディスク・グループに格納されるファイルは、ASMファイルと呼ばれます。各ASMファイルは、単一のASMディスク・グループ内に含まれます。Oracle Databaseは、ファイルによってASMと通信します。これは、Oracle Databaseがファイル・システムでファイルを使用する場合と同じ方法です。ASMディスク・グループに次のファイル・タイプを格納できます。
制御ファイル
データファイル、一時データファイルおよびデータファイル・コピー
SPFILE
オンラインREDOログ、アーカイブ・ログおよびフラッシュバック・ログ
RMANバックアップ
障害時リカバリ構成
変更トラッキング・ビットマップ
データ・ポンプ・ダンプセット
注意: Oracle実行可能ファイルおよびASCIIファイル(アラート・ログやトレース・ファイルなど)をASMディスク・グループに格納することはできません。 |
ASMでは、データベース操作(表領域作成など)の一部としてASMファイル名が自動的に生成されます。ASMファイル名はプラス記号(+
)で始まり、その後にディスク・グループ名が続きます。ユーザーは、わかりやすいエイリアスをASMファイルに対して指定し、エイリアスの階層ディレクトリ構造を作成できます。次の項では、ASMファイルの構成要素について説明します。
ASMファイルの内容は、ディスク・グループ内の各ディスクに格納されているデータ・エクステントのセット(集合)としてディスク・グループに格納されます。各エクステントは、個々のディスク上にあります。エクステントは1つ以上の割当て単位(AU)から構成されます。次第に大きくなるファイルに対応するために、ASMでは可変サイズのエクステントが使用されます。
可変サイズのエクステントを使用すると、大きなASMデータファイルがサポートされ、大規模なデータベースに必要なSGAメモリーが少なくてすみます。また、ファイルの作成操作やオープン操作のパフォーマンスが向上します。ファイルを定義するエクステント・マップのサイズは、ファイル・サイズに応じて8倍および64倍の規模で縮小することができます。最初のエクステント・サイズは、割当て単位のサイズと同じです。事前定義済のしきい値に基づき、8倍および64倍の規模で増加します。ディスク・グループの互換性属性がOracleリリース11以上に設定されている場合、この機能は、新規作成およびサイズ変更されたデータファイルに対して自動で実行されます。互換性属性の詳細は、「ディスク・グループの互換性」を参照してください。
図1-4は、ASMのファイル・エクステントと割当て単位との関係を表しています。エクステント・サイズは、最初の20000エクステント・セット(0〜19999)までAUと常に同じです。図1-4は、4つのASMディスクに分散された最初の8つのエクステント(0〜7)を示しています。最初の20000エクステント・セットが終わると、次の20000エクステント・セット(20000〜39999)のエクステント・サイズは8*AUになります。太枠の長方形内に20000〜20007のエクステント・セット番号が示されています。ASMのエクステントの次の増分は64*AUです(図には示されていません)。
ASMの粗密なストライプ化ではディスク・グループのAUサイズと常に同じですが、密なストライプ化のサイズはどのような構成でも常に128KBになります(図には示されていません)。AUのサイズは、作成時の割当て単位のサイズ(AU_SIZE
)指定により決定されます。値は、1、2、4、8、16、32および64MBのいずれかです。
ASMのストライプ化には主に次の2つの目的があります。
ディスク・グループ内の全ディスクで負荷を均等に分散します。
I/O待機時間を短縮します。
粗密なストライプ化ではディスク・グループのロード・バランシングが提供されますが、ファイングレイン・ストライプ化では、より広く負荷を分散させることによって特定のタイプのファイルに対する待機時間が短縮されます。
データをストライプ化するために、ファイルはストライプに分割され、データはディスク・グループ内の全ディスクで均等に分散されます。これらのストライプのサイズは有効なAUと同じです。粗密なストライプのサイズは、AUサイズと常に同じです。ファイングレイン・ストライプのサイズは常に128KBです。これにより、REDOログの書込みなどの小規模なI/O操作に対するI/O待機時間が短縮されます。
テンプレートは、ASMファイルの作成時にファイルのミラー化およびストライプ化属性を指定するための属性値の集合です。ファイルの作成時には、テンプレート名を含めることができ、またファイル・タイプではなく個々のファイルに基づいて必要な属性を割り当てることができます。
Oracleファイル・タイプごとにデフォルトのテンプレートが用意されていますが、固有の要件に合せてテンプレートをカスタマイズすることもできます。各ディスク・グループでは、デフォルトのテンプレートが各ファイル・タイプに関連付けられています。
この項では、ASMディスク・グループの管理について説明します。内容は次のとおりです。
ディスク検出プロセスでは、ASMがアクセスできるディスクのオペレーティング・システム名を見つけます。ディスク検出は、マウントされるディスク・グループを構成するすべてのディスクを検出する場合にも使用されます。これらのディスクには、ディスク・グループに追加するディスクや、ディスク・グループへの追加を検討するディスクなどがあります。
ASMインスタンスには、検出文字列を指定するASM_DISKSTRING
初期化パラメータの値が必要です。ASMインスタンスでオープンすることが許可されているパス名のみが検出されます。検出文字列の厳密な構文は、プラットフォームやASMLIBライブラリによって異なります。オペレーティング・システムによって容認されるパス名は、常に検出文字列として使用できます。
データベース・インスタンスでディスク・グループ内のファイルにアクセスするには、ローカルASMインスタンスによってディスク・グループをマウントする必要があります。ディスク・グループをマウントするには、全ディスクを検出し、マウントされているディスク・グループのファイルを検索する必要があります。
ディスク・グループを明示的にディスマウントできます。任意のディスク・グループのファイルが開いているときにそのディスク・グループをディスマウントしようとすると、エラーが記録されます。ASM冗長性設定を超えると、ディスクに障害が生じる可能性があります。この問題が発生した場合は、ディスク・グループが強制的にディスマウントされます。これにより、そのディスク・グループを使用しているデータベース・インスタンスは停止されます。
検出文字列では、追加できるディスクが指定されます。これらのディスクには、ディスク・グループにすでに入っているディスクの他に新しいディスクも含まれます。
ディスクを既存のディスク・グループに追加すると、領域を増やしてスループットを改善することができます。検出文字列では、追加するディスクが指定されます。検出文字列には、ディスク・グループにすでに入っているディスクの他に新しいディスクも含めることができます。追加するディスクは、ASM_DISKSTRING
初期化パラメータを使用してすべてのASMインスタンスによって検出される必要があります。ディスクを追加すると、ASMのリバランス操作によってデータが新しいディスクに移動します。リバランスI/Oを最小限にするには、複数のディスクを同時に追加するのがより効率的です。
ディスクに障害が発生した場合や、容量を初期状態に戻す場合、ディスク・グループからディスクを削除できます。また、障害が発生する前に過剰なソフト・エラーが生じているディスクを手動で削除することもできます。ディスクを削除するには、検出文字列のデバイス名ではなくASMディスク名を使用します。ディスクへの書込み中にエラーが発生すると、ディスクはOracleによって自動的に削除されます。
ディスク・グループのリバランスによってデータがディスク間で移動し、すべてのファイルがディスク・グループ内の全ディスクで均等に分散されます。すべてのファイルが均等に分散されると、全ディスクが同じ割合で均等に埋められます。これにより、ロード・バランシングが保証されます。リバランスではI/O統計に基づいてデータが再配置されることはなく、統計の結果としてリバランスが開始されることもありません。ASMのリバランス操作は、ディスク・グループのディスクのサイズによって制御されます。
ASMは、ディスクの追加、削除またはサイズ変更などのストレージ構成の変更後にリバランスを自動的に開始します。指数設定パラメータは、リバランス操作が行われる速度を決定します。
リバランスを手動で開始して、実行するリバランスの指数設定を変更できます。リバランスを実行しているインスタンスが停止すると、リバランスは自動的に再開されます。データベースはリバランス操作中も動作可能です。再配置では一度に1MBしかロックされず、また書込みしかブロックされないため、リバランスはデータベースのパフォーマンスにはほとんど影響ありません。