※本ページは、”Deploying VMs on Exadata with Exascale volumes“の翻訳です

Exascaleボリュームは、Oracle Grid Infrastructure(GI)やOracle AI Databaseストレージで従来のOracle ASMを継続利用しながら、Exadata仮想マシン(VM)のイメージファイル保存に利用できることをご存じでしょうか?本記事では、その方法と、なぜこれが重要かを解説します。

なぜ重要なのでしょうか?

Exadata X8M以降のシステムでExascaleを構成している場合は、ExadataデータベースサーバVMのゲストイメージファイルをExascaleボリューム(EDV)を使って保存できます(従来のようにKVMホスト=データベースサーバのローカルSSDを使う必要がありません)。これは次の2つの理由から重要です。

第一に、Exascale上にVMイメージファイルを保存することで、各Exadataデータベースサーバに物理的に搭載されたローカルストレージ容量の制約を解消できます。このメリットと他の技術進化により、Exadata X10M以降のデータベースサーバではKVMホストあたり最大50VM(従来最大12VMから大幅拡張)をホスト可能となりました。

第二に、Exascale上のVMイメージはすべてのKVMホストから簡単にアクセスできます。この機能により、VMゲストとホストの結合度が下がり、あるVMゲストを別ホストへ迅速かつ容易にオフラインマイグレーションできる基盤が整います。VMゲストとホストの分離が実現することで、下記のような追加的な可能性も生まれます:

  • 稼働中のVMを別ホストへ分散してDBサーバVMワークロードをバランスさせる。
  • VMホスト保守時には、VMを積極的に他ホストへ移動させて保守影響を最小化する。
  • 想定外のVMホストダウン時にも、VMを別ホストへ速やかに移して影響緩和に役立てる。

私のデータベースはまだASMを使っているのでExascaleは使えないのでは?

いえ、使えます!

Exascaleは、Oracle AI Database 26aiのすべてのデータベースファイルを保存できます。さらに、Exascaleでは「Exascaleボリューム」という新機能が導入されており、共有Exadataストレージ上に任意サイズのブロックボリュームを作成し、それをVM(またはベアメタルデータベースサーバ)にアタッチして、XFS・ext4・ACFS(現在は「Advanced Cluster File System」と呼ばれる)などのPOSIX準拠ファイルシステムでフォーマットできます。

重要な点として、データベースがどこに保存されているかはVMの運用形態にまったく影響しません。もし既存のVMがデータベースサーバのローカルストレージ上に展開されていれば、それらはこれまで通り同じ方法で稼働し続けます。希望すれば、同じ方法でさらに多くのVMを展開することすら可能です。

または、Exascaleボリュームを利用してVMを新規展開し、上述したメリットを享受することもできます。

Exascaleボリュームを使う大きな利点のもう一つは、RDMA対応である点です!これは、複数のストレージサーバ間でミラーされて高可用・高耐障害性を誇るだけでなく、ハイパフォーマンスを実現するためにボリュームの最もアクセス頻度の高い領域がストレージサーバのフラッシュにキャッシュされ、さらにそのホット領域がExadata RDMAメモリ(XRMEM)にもキャッシュされることで、より高いパフォーマンスが得られるということです!

VMs-on-Exascale-Volumes

この構成を実際にデプロイした際のイメージを見てみましょう。上図では、2つのVM—「VMx」と「VMy」が存在します。「VMx」はASMおよびGrid Infrastructureを伴うOracle Database 19c〜26aiを稼働しています。注目すべきは、root(/)、grid_home(/../grid)、database_home(/../dbhome)のファイルシステムが、いずれも「@vm_vault」という専用Exascale Vault内のボリューム(青色で表現)を使っていることです。ASMは引き続きVM内で動作し、データベースファイルは共有Exadataストレージ上のグリッドディスクに書き込まれています。

図の右側「VMy」も同様で、こちらはOracle AI Database 26aiが稼働し、データベースファイルがExascale上に保存されています。

いずれのケースでも、データベースはSmart Scan、Storage Indexes、XRMEM、カラムナキャッシング等、共有Exadataストレージのすべての利点を享受できます。同時に、データベースVMはRDMA対応ボリュームが使えるため、VMのI/Oパフォーマンスが加速し、KVMホストあたりのVM数増加(X10M以降)、VMの移動性の簡素化といったメリットもあります。

最後にもう一点補足です:Oracle AI Database 26aiはデータベースファイル保存先としてExascale・ASMいずれもネイティブ利用可能ですが、従来リリース(例:19cなど)はASMのみが利用可能です。

VM環境でExascaleボリュームを利用するには?

新しいExadataシステムを構成する場合や、既存システムへ新しいVMクラスタを追加したい場合、その手順は比較的シンプルです。ただし、現時点では既存VMをローカルストレージからExascaleへ移行することはできない点にご注意ください。

まず、Oracle Exadata Deployment Assistant(OEDA)のWebユーザーインターフェースを利用して設定します。以下のスクリーンショットは新規Exadataデプロイ開始時のものですが、既存ExadataデプロイメントのXML構成ファイル(es.xml)をインポートして、既存構成にExascaleを追加することも可能です。

※既存構成にExascaleを追加したい場合は、まず既存ExadataシステムのストレージサーバにExascale用の空き容量があることを確認してください。必要な総空き容量はExascale利用予定容量によって決まります。

必要に応じ、既存ASMディスクグループおよびExadataグリッドディスクの再構成を行い、すべてのExadataセルディスクにExascale用として同じ空き容量が確保されていることを保証してください。また、ストレージ構成に変更を加えた際は、Exadata XML構成ファイル(es.xml)への反映も忘れずに実施してください。

OEDAのExascaleページに移動し、「Enable Exascale」チェックボックスをオンにします。その後、Exascaleページ内の各フィールドを使用して、Exascaleクラスタの初期構成および最初のExascaleストレージプールを指定します。

以下の例のように、次の項目を指定できます:

  • Exascaleクラスタの名称
  • Exascale REST Services(ERS)エンドポイントのホスト名とIPアドレス
  • Exascaleクラスタに含めるストレージサーバノード
  • 最初のExascaleストレージプールの名称とサイズ

Exascaleページを保存すると、Define Clustersページに新たに2つのオプションが表示されます。

  1. 「Use Exascale for VM file storage」とラベル付けされたチェックボックス:このチェックボックスをオンにすると、ExascaleがExadataデータベースサーバVMのゲストイメージファイルの保存に利用されます。
  2. 「Exascale clusters」とラベル付けされたドロップダウンリストより、
    • 「None – Use ASM for storage」を選択した場合、ASMがGIクラスタおよびその配下のすべてのデータベースのストレージとして使用されます。
    • GIクラスタでExascaleストレージを利用したい場合は、Exascaleページで事前に定義したExascaleクラスタを選択する必要があります。

OEDAセッションの残りの設定を完了した後、Exadata XML構成ファイル(es.xml)を生成し、OEDAデプロイ用ユーティリティ(install.sh)でデプロイできます。デプロイ時、このユーティリティはOEDAのExascaleページで定義したExascaleクラスタとストレージプールを作成します。その後、Define Clustersページで指定した通り、VMイメージファイルをExascaleに保存する新しいVMクラスタを作成します。

これで完了です!

最初に述べたように、この機能を使えば各Exadataデータベースサーバあたり最大50VMまでサポート可能です。加えて、この仕組みによりVMゲストとホストの結合度が低減され、VMゲストの別ホストへの迅速・容易なマイグレーションが実現します。今後のさらなる機能拡張にもご期待ください。