1 Oracle ASMLIBについて
Oracle ASMLIBは、Oracle Databaseの自動ストレージ管理機能のオプションのサポート・ライブラリです。 自動ストレージ管理(ASM)は、データベース管理を簡素化し、オープン・ファイル記述子の数などのカーネル・リソースの使用量を削減します。 ASMでは、DBAが多数のOracleデータベース・ファイルを直接管理する必要がなくなり、Oracle Databaseに割り当てられたディスクのグループの管理のみが必要になります。 ASMLIBにより、ASMを使用するOracle Databaseが、使用しているディスク・グループに効率的にアクセスできるようになります。
Oracle ASMLIBに関するその他の技術情報は、次のリソースを参照してください。
Oracle ASMLIB 3.1リリース・ノート
ASMLIBがバージョン3.1に更新されます。 次の重要な変更が含まれています:
-
ASMLIBは、UEK R8以降で実行する場合、エンド・ツー・エンドのデータ整合性保護を使用できます。 この機能により、各I/Oに整合性メタデータをアタッチすることで、データ破損に対する保護レイヤーが追加されます。 接続された整合性メタデータは、書込み操作時にI/Oコントローラおよびストレージ・デバイスによって、読取り操作時にASMによって検証できます。
エンド・ツー・エンドのデータ整合性の保護では、ASMディスクをT10保護情報タイプ1でフォーマットされたストレージ・デバイスに配置する必要があります。 関連付けられたSCSIストレージ・コントローラはDIXをサポートする必要があります。 NVMeストレージ・コントローラは、個別のメタデータ・バッファ機能をサポートしている必要があります。
-
ASMでは、論理ブロック・サイズと物理ブロック・サイズのどちらをI/O単位で使用するかを選択できるようになりました。 この機能により、元々異なるブロック・サイズを使用して構成されたディスクをASMで移行またはアクセスできるようになります。 以前のリリースでは、ブロック・サイズの選択はグローバルで、システム上のすべてのディスクに適用されていました。
I/Oごとのブロック・サイズ選択を使用するには、
ORACLEASM_USE_LOGICAL_BLOCK_SIZE構成オプションをfalseに設定し、I/Oごとのブロック・サイズ機能を実装するためにOracle Databaseにパッチを適用する必要があります。 既知の問題を参照してください。
-
マップ解除のサポートが含まれているため、シン・プロビジョニングされたストレージ・デバイスで未使用のディスク領域を再利用できます。 この機能には、KABI_V3 (UEK R7以降)が必要です。
oracleasm querydisk -iまたはoracleasm discover -lを使用して、ASMディスクがシン・プロビジョニングをサポートしているかどうかを問い合せます。 -
KABI_V3 (UEK R7以降)を使用すると、そのSCSIおよびそれをサポートするNVMeストレージ・デバイスに対して、汎用一意識別子(UUID)が報告されます。
oracleasm querydisk -iまたはoracleasm discover -lを使用して、クラスタ内のすべてのノードでASMに対するストレージ・デバイスを一意に識別するUUIDを取得します。
oracleasm-support 3.1リリース・ノート
oracleasm-supportバージョン3.1には、次の重要な変更が含まれています:
-
ディスク・ラベリング操作により、ASMディスク・グループのメンバーとしてマークされたASMディスクの書込みが禁止されるようになりました。 これは、クラスタ内の他のノードによってアクティブに使用されているASMディスクを誤って削除または名前変更しないようにするために行われます。
-
oracleasmサービスが完全に動作していることを確認するために、oracleasm statusコマンドにチェックが追加されました。 このチェックには、ASMLIBがインストールされていること、および構成済のORACLEASM_UID/ORACLEASM_GIDからio_uringインタフェースにアクセスできることの確認が含まれます。 -
-iオプションがoracleasm querydiskコマンドに追加され、指定されたASMディスクの詳細情報が出力されます。-lオプションがoracleasm discoverコマンドに追加され、システムに接続されているすべてのASMディスクの詳細情報が出力されます。各ケースで出力される詳細情報には、デバイス・ノード、ディスクUUID、ASMディスク・グループ名、ディスク・サイズ、論理および物理ブロック・サイズ、最大I/Oサイズ、およびディスクがエンド・ツー・エンドのデータ整合性とシン・プロビジョニングをサポートしているかどうかが含まれます。 一部の情報は、KABI_V3インタフェース(UEK R7以降)を使用する場合にのみ使用できます。
Oracle ASMLIB 3.0リリース・ノート
Oracle ASMLIBの以前のリリースでは、長年にわたりoracleasmドライバによって実装された複数のバージョンのインタフェースをサポートしていました。 ライブラリは、実行時にカーネルによって報告されたoracleasmバージョンに基づいて正しいインタフェースを選択しました。 したがって、1つのライブラリ・バイナリを様々なカーネル・リリースで使用できました。
ASMLIBバージョン3.0以降、ライブラリに別のI/O送信インタフェースが追加されました。 新しいI/O送信インタフェースは、最新のLinuxカーネルで使用可能な高パフォーマンスのio_uringインタフェースを利用します。 oracleasmドライバがロードされていないシステムにASMLIBバージョン3.0がロードされ、io_uringが有効化されているカーネルが実行されており、最新の十分なバージョンのio_uringがサポートされている場合は、io_uringインタフェースを使用して、oracleasmのかわりにI/Oがカーネルに送信されます。
単一のASMLIBバージョン3.0バイナリは、io_uringに加えて、以前のすべてのI/O送信インタフェース・バージョンを処理するため、io_uringが有効になっていないカーネルと有効になっているカーネルを切り替える場合、構成の変更は必要ありません。
ライブラリは、実行中のカーネルに適切なインタフェースを自動的に使用します。
既知の問題
-
データ整合性パススルーは、
io_uringインタフェースではサポートされていません。カーネルの制限のため、
io_uringインタフェースを使用する場合、データ整合性パススルーはサポートされていません。 この問題は、以降のカーネル・バージョンで解決される可能性があります。この制限は、UEK R6で
oracleasmドライバを使用してASMLIBバージョン3.0を実行する場合には適用されません。 -
Arm用のASMLIBバージョン3.0は、Oracle Database 19cでのみサポートされています
oracleasm-support 3.0リリース・ノート
oracleasm-supportパッケージは、ASMLIBのバージョン3.0で動作するように拡張されています。ASMLIBでは、汎用io_uringインタフェースを使用して、この機能を含むカーネル上のASMディスクを管理します。 更新されたoracleasm-supportパッケージは、下位互換性により古いカーネルで引き続き機能します。 コマンド構文は、実行中のカーネルに関係なく同じままです。
UEK R7またはRHCKを使用するOracle Linux 9を実行しているシステムでは、oracleasm-supportによって自動的にI/Oフィルタが追加され、ASMディスクが誤って上書きされないように保護されます。 フィルタは、ASMによって起動されていない書込み操作を拒否し、ディスクがインスタンス化された後のddなどの管理コマンドによるASMディスクへの書込みを防止します。 I/Oフィルタ・マップを管理するために、新しいユーザー・レベルのコマンドは必要ありません。 ディスク・デバイスに有効なASMディスク・ラベルがあることが判明した場合、フィルタ・マップ・エントリが自動的に追加されます。
oracleasm構成には、システムで使用できるASMディスクの最大数を指定する新しいパラメータORACLEASM_CONFIG_MAX_DISKSがあります。 このパラメータは、I/Oフィルタ・マップのサイズを計算するために使用されます。
I/Oフィルタリングは、カーネル内のBPF (Berkeley Packet Filter)機能に依存します。