6.18 Migrating Exadata Guest VM Images to Exascale Storage

Starting with Oracle Exadata System Software release 26.1.0, you can migrate Exadata guest virtual machine (VM) image files from local storage on the KVM host to Exascale shared storage.

You can perform the operation using the Oracle Exadata Deployment Assistant (OEDA) Command Line Utility (OEDACLI).

Before commencing, consider the following requirements and recommendations:

  • The Exadata system (KVM host and guest) must use Oracle Exadata System Software release 26.1.0 or later.

  • The Exadata system must be configured to use Exascale storage. In particular, the Exascale cluster must be configured with at least one storage pool that has sufficient free space to contain the guest image files. Furthermore, the KVM host containing the guest image files must be configured to run the Exascale volume (EDV) service.

  • Download and use the latest OEDA software bundle.

  • OEDACLI requires a current Exadata XML configuration file. If you cannot supply an up-to-date file, you can generate one using the OEDACLI DISCOVER ES command.

    To generate an up-to-date Exadata XML configuration file, run the DISCOVER ES command and specify:

    • The complete list of servers (KVM hosts and storage servers) in your Exadata system.

    • The directory location to store the Exadata XML configuration information.

    For example:

    oedacli> DISCOVER ES HOSTNAMES='exa01adm01,exa01adm02,exa01celadm01,exa01celadm02,exa01celadm03' LOCATION=/u01/log/exa01_discovered
    Discovering nodes [exa01adm01, exa01adm02, exa01celadm01,exa01celadm02, exa01celadm03]... 
    Getting Guest info on exa01adm02.example.com 
    Getting Guest info on exa01adm01.example.com
    ...
  • Migrating Exadata guest image files requires taking the guest offline and shutting it down for most of the operation. Downtime depends primarily on how long it takes to copy the contents of the guest image files. Under typical conditions, a migration takes about five minutes for each guest. However, when planning an appropriate maintenance window, include the time needed to recover the guest from backup if a failure damages a guest image file.

  • The migration is one-way only. It moves data from local storage on the KVM host to Exascale volumes.

You can use OEDACLI to migrate guest images to Exascale by using the ALTER MACHINE command:

Migrating Guests Individually

To migrate a single guest, the command syntax is:

oedacli> ALTER MACHINE STORAGETYPE=CELLDISK WHERE HOSTNAME=guest_FQDN

The following example shows a complete command sequence along with sample output. In the example, the fully qualified domain name of the guest being migrated is exa01vm01.example.com, the OEDACLI commands are specified in a command file named migrate_vm01_storage.cli, and the Exadata XML configuration file is located at /u01/log/exa01_discovered/Discovered-exa01.xml.

# cat migrate_vm01_storage.cli
ALTER MACHINE STORAGETYPE=CELLDISK WHERE HOSTNAME=exa01vm01.example.com
save action
merge actions
deploy actions

# oedacli -c /u01/log/exa01_discovered/Discovered-exa01.xml -f migrate_vm01.cli
...
Deploying Action ID : 1 ALTER MACHINE STORAGETYPE=CELLDISK WHERE HOSTNAME=exa01vm01.example.com
Deploying ALTER MACHINE
CREATE_EDVVOLUME: Creating EDV volumes for guest exa01vm01.example.com
...
STOP_GUEST: Stopping guest exa01vm01.example.com
...
COPY_DISKS: Copying disk content for guest exa01vm01.example.com
...
RESTART_GUEST: Starting guest exa01vm01.example.com on EDV volumes
Successfully migrated guest exa01vm01.example.com to use EDV volumes

Migrating Multiple Guests Together

As an additional convenience, you can migrate multiple guests in the same operation. To do this, specify a comma-seperated list of guests that is enclosed in quotes.

For example:

oedacli> ALTER MACHINE STORAGETYPE=CELLDISK WHERE HOSTNAME="exa01vm01.example.com,exa01vm02.example.com,exa01vm03.example.com"

When migrating multiple guests together, OEDACLI processes sub-steps for each guest in parallel. Consequently, processing multiple guests together may facilitate migration within a shorter maintenance window, but each guest must be offline for longer than if it was processed separately.

Migrating Guests Using Steps

For additional control over the migration process, you can run each migration sub-step separately by using the STEPNAME parameter. You can specify the migration steps as follows (in normal order):

  1. CREATE_EDVVOLUME

  2. STOP_GUEST

  3. COPY_DISKS

  4. RESTART_GUEST

For example:

oedacli> ALTER MACHINE STORAGETYPE=CELLDISK WHERE HOSTNAME=exa01vm01.example.com STEPNAME=CREATE_EDVVOLUME
oedacli> save action
oedacli> merge actions
oedacli> deploy actions
...

oedacli> ALTER MACHINE STORAGETYPE=CELLDISK WHERE HOSTNAME=exa01vm01.example.com STEPNAME=STOP_GUEST
...

Performing a stepped migration enables you to perform additional validation and troubleshooting between each step. You can also use a stepped migration to create the Exascale volumes before the maintenance window when the guest is offline.