1 Oracle ASMLIBについて
Oracle ASMLIBは、Oracle Automatic Storage Management (ASM)の推奨サポート・ライブラリです。
ASMLIBを使用すると、Oracle以外の書込みI/Oをフィルタリングして、ASMデバイスを上書きできないようにできます。 この保護メカニズムにより、Oracle以外のエンティティによるASMデータの誤った上書きからASMディスク・グループを保存できます。 ASMLIBでは、シン・プロビジョニングおよびエンドツーエンドのデータ整合性の保護もサポートされており、基礎となるストレージではこのサポートが提供されます。
ASMLIB機能サポート・マトリックス
ASMLIBは、システム・カーネルの機能およびインストールされているASMLIBソフトウェアのバージョンに依存する様々な機能を提供します。 この表は、ASMLIBの様々な機能を利用するために必要な、適切な最小ソフトウェア・バージョンおよびプラットフォームとカーネルの組合せを識別するために使用できるリファレンスを示しています。
表1-1機能サポート・マトリックス
| プラットフォーム | ライブラリからカーネルへのインタフェース | 読取り/書込みI/O | エンドツーエンドのデータ整合性 | I/Oフィルタ | 自動ブロック・サイズ選択 | シン・プロビジョニング |
|---|---|---|---|---|---|---|
| Oracle Linux 10とUEK 8 | 組込み(io_uring) | 3 | 3.1 | 3 | 3.1 | 3.1 |
| Oracle Linux 10とRHCK | 組込み(io_uring) | 3 | - | - | 3.1 | 3.1 |
| Oracle Linux 9とUEK 8 | 組込み(io_uring) | 3 | 3.1 | 3 | 3.1 | 3.1 |
| Oracle Linux 9とUEK R7 | 組込み(io_uring) | 3 | - | 3 | 3.1 | 3.1 |
| Oracle Linux 9とRHCK | 組込み(io_uring) | 3 | - | 3.0.0 脚注1 | 3.1 | 3.1 |
| Oracle Linux 8とUEK R7 | 組込み(io_uring) | 3 | - | 3 | 3.1 | 3.1 |
| Oracle Linux 8とUEK R6 | 組込み(oracleasm) | 2 | 2 | - | 3.1.0 脚注2 | - |
| Oracle Linux 8とRHCK | RPM (kmod-redhat-oracleasm) | 2 | - | - | - | - |
| RHEL 10 | 組込み(io_uring) | 3.0.0 脚注3 | - | - | 3.1 | 3.1 |
| RHEL 9 | 組込み(io_uring) | 3.0.0 脚注4 | - | 3.0.0 脚注5 | 3.1 | 3.1 |
| RHEL 8 | RPM (kmod-redhat-oracleasm) | 2 | - | - | - | - |
| スル15 | RPM (oracleasm-kmp-default) | 2 | 2 | - | 3.1.1脚注6 | - |
脚注1 I/Oフィルタは、x86_64でのみ使用できます。
脚注2 UEKR6で自動ブロック・サイズ選択をサポートするには、kernel-uek-5.4.17-2136.342.1以降が必要です。
脚注3 io_uringインタフェースはTech Previewとマークされています。
脚注4 io_uringインタフェースはTech Previewとマークされています。
脚注5 I/Oフィルタは、x86_64でのみ使用できます。
脚注6 自動ブロック・サイズ選択をサポートするには、oracleasm-kmp-default-2.0.8-150600.16.13.2以上が必要です。
Oracle ASMLIB 3.1.1リリース・ノート
Oracle ASMLIBがバージョン3.1.1に更新されました。 次の重要な変更が含まれています:
- ASMLIBでは、パーティション分割されていないブロック・デバイスでASMディスク・ラベルを検出できるようになりました。
- ASMLIBは、カーネルが一時I/Oエラーを報告したときに、追加の再試行を試みます。
- ASMLIBは、無効な最適な I/Oサイズを報告するデバイスの最大値を下げません。
Oracle ASMLIB 3.1リリース・ノート
ASMLIBがバージョン3.1に更新されます。 次の重要な変更が含まれています:
-
エンドツーエンドのデータ整合性: ASMLIBは、UEK R8以降で実行するときにエンドツーエンドのデータ整合性保護を使用できます。 この機能により、各I/Oに整合性メタデータをアタッチすることで、データ破損に対する保護レイヤーが追加されます。 接続された整合性メタデータは、書込み操作時にI/Oコントローラおよびストレージ・デバイスによって、読取り操作時にASMによって検証できます。
エンド・ツー・エンドのデータ整合性の保護では、ASMディスクをT10保護情報タイプ1でフォーマットされたストレージ・デバイスに配置する必要があります。 関連付けられたSCSIストレージコントローラは、Data Integrity Extensions (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パッケージは、下位互換性により古いカーネルで引き続き機能します。 コマンド構文は、実行中のカーネルに関係なく同じままです。
I/Oフィルタ: 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)機能に依存します。