※本ページは、”Using OEDACLI for offline migration of Exadata VMs between KVM hosts“の翻訳です。
最近の投稿で、Peter Fusekと私は、新しいVMクラスタのイメージファイルにExascaleボリュームを使用すべき理由と、OEDAを使ってそれを実装する方法を説明しました。
本記事では、Exascaleボリュームを使用して実装されたVMを、OEDACLIを使ってKVMホスト間で迅速かつ容易に移動する方法を紹介します。
VMを移動したい理由は?
- ファームウェアやOSアップデート、またはハードウェア保守を適用する際にVMのダウンタイムを最小化するため
- ワークロードの変化に伴い、KVMホスト間でVMやリソースを再バランスするため
- デプロイメント内の古いKVMホストを廃止する前に退避(エバキュエート)するため
- 元々稼働していた物理KVMホストの修理中に、別のKVMホスト上でVMを再起動するため
VMをホスト間で簡単かつ迅速に移動できるようにすることで、運用の俊敏性が高まり、メンテナンス中のSLA維持に役立ち、リソース利用率とコスト効率も向上します。
以下の例では、3台のKVMホストを備えたExadataシステムがあり、そのうち2台は最新のExadata System Softwareリリースへ更新済み、残り1台は未更新です。また2台構成のVMクラスタがあり、1台は更新済みKVMホスト上、もう1台は旧Exadata System SoftwareリリースのKVMホスト上で稼働しています。この環境では、KVMホストの1台が空であるため、そのホストを更新し、最新カーネルとファームウェアを有効化するために再起動できます。その後、OEDACLIを使ってVMの1台を更新済みKVMホストへ移動できます。これにより、更新が必要なKVMホストを退避(空に)して、VMへの追加影響なく再起動できるようになります。

前提条件
この投稿の内容は、以下で説明されているとおり、Exascaleボリュームを使用するVMを備えたX8M以降のオンプレミスExadata(仮想化あり)に適用されます:
https://blogs.oracle.com/oracle4engineer/ja-deploying-vms-on-exadata-with-exascale-volumes
必要な環境:
- 仮想化を備えたX8M以降のオンプレミスExadata Database Machine
- システム上にExascaleをデプロイし、ストレージプールを作成済みであること
- VMクラスタ(KVMゲスト)定義時に「Use Exascale for VM file storage」を選択していること
これにより、KVMホストの内蔵SSD上のローカルストレージではなく、ExascaleボリュームがVMイメージに使用されます - Exascaleボリュームを使用してVM内で稼働するデータベースは、ASM(11g~26ai)またはExascale(26ai)を使用可能
- https://www.oracle.com/database/technologies/oeda-downloads.html から入手できる最新のOEDA
- 現在のデプロイメントのes.xmlファイル
- ソースおよびターゲットのKVMホスト、ならびにExascaleクラスタは、同一のExadataシステム構成に属し、同一のネットワーク可視性を持つ必要があります。異なるExadataデプロイメント間でVMを移行することはできません(Data Guard、GoldenGate、Data Pump Export/Import、Zero Downtime Migrationなどのデータベース移行手法を使用してください)
- KVMホスト間でVMを移動する前に、移行対象VMをターゲットホストで起動できるだけのCPUおよびメモリがあることを確認する必要があります。また、VM名がターゲットKVMホスト上で既に使用されていないことも必要です
要件の完全な一覧は「Moving a Guest Using Automated Offline Migration」に記載されています。
VMがKVMホスト上のローカルストレージを使用して作成されている場合は、KVMホスト間でVMを移動するために、こちらに記載の手順を使用してください:「6.18 別のKVMホストへのゲストの手動による移動(Manually Moving a Guest to a Different KVM Host)」
では、VMをどのように移行するのでしょうか?
良い質問です。
実は、とても簡単です。OEDACLIのMIGRATE GUESTコマンドを使用するだけです。
最新のOEDACLIでは、MIGRATE GUESTのヘルプを確認すると以下のように表示されます。
oedacli> HELP MIGRATE GUEST
Usage:
MIGRATE GUEST
HOSTNAME = <guesthostname>
MODE = <migrationmode>
SRCHOST = <sourcekvmhost>
TGTHOST = <targetkvmhost>
WHERE
[ STEPNAME = <stepname> ] |
Purpose:
Migrate a guest VM from one KVM host to another, including any related database instances, Oracle home directories, and clusterware definitions.
Arguments:
<migrationmode> : migration mode can be OFFLINE, OFFLINEFORCE, or LIVE.
Where:
<stepname> : The name of an individual migration step being performed (optional)
For OFFLINE/OFFLINEFORCE mode: STOP_GUEST | CREATE_BRIDGES | DETACH_INTERFACES | ATTACH_VOLUMES | MIGRATE_GUEST | ATTACH_INTERFACES | DETACH_VOLUMES | STARTUP_GUEST
For LIVE mode: ATTACH_VOLUMES | CREATE_BRIDGES [| CREATE_NAT_BRIDGE_TGT] | MIGRATE_GUEST | DETACH_VOLUMES
The step name 'PRECHECK_LIVEMIGRATION' serves as a standalone command for the LIVE migration pre-check
Comments: Use STEPNAME to run a specific guest migration step or undo a failed step.
: Use OFFLINE mode for cold migration
: Use OFFLINEFORCE mode for cold migration involving an unresponsive source KVM host or guest
: Use LIVE mode to keep the KVM guest running continuously during migration
: Use SRCHOST to specify the source KVM host, which contains the guest VM before the migration.
: Use TGTHOST to specify the target KVM host, which will contain the guest VM after the migration.
Immediate command : no
Deployment command : yes</stepname></migrationmode></stepname></targetkvmhost></sourcekvmhost></migrationmode></guesthostname>
本記事ではOFFLINE VM マイグレーションについて説明しますが、MIGRATE GUESTコマンドには次の3つのオプションがあります。
- OFFLINE:KVMホスト間でのVMの自動マイグレーション
- OFFLINEFORCE:KVMホスト間でのVMの自動マイグレーション。ソースKVMホストが利用できない場合に使用します。
- LIVE:このオプションは近日提供予定で、現時点ではまだ有効化されていません。利用可能になったら、改めて詳細を解説する投稿を行う予定です。
次に、es.xmlファイルを使用して、MIGRATE GUESTコマンドでマイグレーション設定を行います。
oedacli> MIGRATE GUEST HOSTNAME=exadpm01adm06vm11.us.oracle.com MODE=offline SRCHOST=exadpm01adm06.us.oracle.com TGTHOST=exadpm01adm05.us.oracle.com
oedacli> SAVE ACTION
oedacli> MERGE ACTIONS
processMerge
processMergeActions
Merging Action : MIGRATE GUEST HOSTNAME=exadpm01adm06vm11.us.oracle.com MODE=offline SRCHOST=exadpm01adm06.us.oracle.com TGTHOST=exadpm01adm05.us.oracle.com
Merging MIGRATE GUEST
Action Validated and Merged OK
最後に、DEPLOY ACTIONSを使用してマイグレーションを実行します。
oedacli> DEPLOY ACTIONS
Deploying Action ID : 29 MIGRATE GUEST HOSTNAME=exadpm01adm06vm11.us.oracle.com MODE=offline SRCHOST=exadpm01adm06.us.oracle.com TGTHOST=exadpm01adm05.us.oracle.com
Deploying MIGRATE GUEST
Migrate Guest
Starting Guest Migration : exadpm01adm06vm11.us.oracle.com
Stopping Guest exadpm01adm06vm11.us.oracle.com on KVM host exadpm01adm06.us.oracle.com
Waiting for node : exadpm01adm06vm11.us.oracle.com to be stopped
exadpm01adm06vm11.us.oracle.com is down
exadpm01adm06vm11.us.oracle.com is Down
Detaching Network Interfaces for Guest : exadpm01adm06vm11.us.oracle.com on KVM host exadpm01adm06.us.oracle.com
Attaching Exascale volumes for Guest : exadpm01adm06vm11.us.oracle.com on KVM host exadpm01adm05.us.oracle.com
Attaching EDV Volume exadpm01adm06vm11_u01 using device exadpm01adm06vm11_u01_vol0078_e47f36d83b214eec97268fd928e32fc1 to host exadpm01adm05.us.oracle.com
Attaching EDV Volume exadpm01adm06vm11_sys using device exadpm01adm06vm11_sys_vol0074_ab74345d2e4e413aa9ac59f453015123 to host exadpm01adm05.us.oracle.com
Attaching EDV Volume exadpm01adm06vm11_gih01 using device exadpm01adm06vm11_gih01_vol0079_3f6970ce1ce74c38a13bb2c0a8eb49f5 to host exadpm01adm05.us.oracle.com
Attaching EDV Volume exadpm01adm06vm11_dbh01 using device exadpm01adm06vm11_dbh01_vol0072_b8d71b2e39524795b28746b942b420da to host exadpm01adm05.us.oracle.com
Mounting Guest Configuration Files volume /dev/exc/exadpm01adm06vm11_cfg_vol0071_1540f1a11423495eb31f29f55541ca42 for guest exadpm01adm06vm11.us.oracle.com on kvmhost exadpm01adm05.us.oracle.com.
Adding Guest Configuration Volume entry /dev/exc/exadpm01adm06vm11_cfg_vol0071_1540f1a11423495eb31f29f55541ca42 for guest exadpm01adm06vm11.us.oracle.com to fstab on kvmhost exadpm01adm05.us.oracle.com.
Creating Network Bridge for Guest : exadpm01adm06vm11.us.oracle.com on KVM host exadpm01adm05.us.oracle.com
Migrating Guest exadpm01adm06vm11.us.oracle.com from KVM host exadpm01adm06.us.oracle.com to KVM host exadpm01adm05.us.oracle.com
Enabling autostart for guest exadpm01adm06vm11.us.oracle.com on kvm host exadpm01adm05.us.oracle.com
Removing Network Bridges for Guest : exadpm01adm06vm11.us.oracle.com on KVM host exadpm01adm06.us.oracle.com
Attaching Network Interfaces for Guest : exadpm01adm06vm11.us.oracle.com on KVM host exadpm01adm05.us.oracle.com
Removing Guest networks for Guest exadpm01adm06vm11.us.oracle.com on KVM host exadpm01adm06.us.oracle.com
Detaching Exascale Volumes for Guest : exadpm01adm06vm11.us.oracle.com on KVM host exadpm01adm06.us.oracle.com
Unmounting Guest Configuration Files volume /dev/exc/exadpm01adm06vm11_cfg_vol0071_1540f1a11423495eb31f29f55541ca42 for guest exadpm01adm06vm11.us.oracle.com on kvmhost exadpm01adm06.us.oracle.com.
Removing Guest Configuration Volume entry /dev/exc/exadpm01adm06vm11_cfg_vol0071_1540f1a11423495eb31f29f55541ca42 for guest exadpm01adm06vm11.us.oracle.com from fstab on kvmhost exadpm01adm06.us.oracle.com.
Removing Guest Configuration Files directory /EXAVMIMAGES/GuestImages/exadpm01adm06vm11.us.oracle.com for guest exadpm01adm06vm11.us.oracle.com on kvmhost exadpm01adm06.us.oracle.com.
Detaching EDV Volume exadpm01adm06vm11_u01 from KVM host exadpm01adm06.us.oracle.com
Detaching EDV Volume exadpm01adm06vm11_sys from KVM host exadpm01adm06.us.oracle.com
Detaching EDV Volume exadpm01adm06vm11_cfg from KVM host exadpm01adm06.us.oracle.com
Detaching EDV Volume exadpm01adm06vm11_gih01 from KVM host exadpm01adm06.us.oracle.com
Detaching EDV Volume exadpm01adm06vm11_dbh01 from KVM host exadpm01adm06.us.oracle.com
Starting Guest exadpm01adm06vm11.us.oracle.com on KVM host exadpm01adm05.us.oracle.com
Waiting for node : exadpm01adm06vm11.us.oracle.com to be ready
Done...
Done [Elapsed = 189379 mS [3.0 minutes] Tue Jan 20 21:14:53 PST 2026]]
デプロイメントと同期が取れなくならないよう、es.xmlファイルを忘れずに保存してください!
oedacli> save file
File : ExadataConfigurations/ExadataPM-exadpm01-exadpm01050611.xml saved OK
お分かりでしょうか?
Exascaleボリュームをファイルシステムストレージとして使用するExadata上のVMを、KVMホスト間で迅速・簡単・自動でオフラインマイグレーションできました!本記事の前半でも触れた通り、OEDACLIには(現時点では未有効ですが)KVMホスト間でVMをライブマイグレーションするためのオプションも既に用意されています。これに対応するExadata System Softwareおよびドキュメントが利用可能になり次第、詳細な記事を公開する予定です。
