My Blog

Migrating a VMware virtual server to an ODA-VP

by Nigel Fowler on 25th November 2016 No comments

This blog details the steps required to migrate a VMware virtual server into ODA-VP (ODA Virtualized Platform).    I decided to make a blog of this for 2 reasons:   1.  ODA-VP is becoming more widely used.   2.  I struggled to find much info out there on the net about this.

There are two (2) distinct ways to configure an ODA machine.   The first is the “bare metal” configuration, where there is an operating system installed directly on each of the two (2) physical nodes, with shared storage.   The second is the “Virtualised Platform”, where each physical node has (1) a hypervisor (dom0), (2) a privileged virtual machine called ODA_BASE which houses Oracle RAC databases and also provides management control of the overall ODA environment, and (3) multiple virtual guests to run application servers etc.

In this blog, we will see how to migrate a VMware virtual server into ODA-VP.   The method provided will easily translate for another source hypervisor, as we are using the open standard OVF.


The method of exporting an OVA package directly from VMware and importing into ODAVP is preferred because it is the quickest, most efficient, and allows for converting multiple virtual drives at the same time.

Note that if the available VMware version/tools only allow for exporting to OVF files instead of OVA, then the OVF files must be converted to OVA format prior to import:



  1.  Oracle MOS Note: ODAVP: Migrating systems to ODA Virtualized Platform (ODA VP) (Doc ID 1608367.1)
  2. Oracle Whitepaper: Migration from VMware to Oracle VM – A Case Study



 1.    Gather configuration details about the existing virtual server.

 a.  obtain Virtual Machine specifications for Memory, Network, CPU, and Storage; including over-provisioning factors. (For test/dev, ignore over-provisioning.)

b. determine whether the virtual server has any RDMs (Raw Device Mappings). This can be determined definitively from vCenter, but can also be derived from the disk/LVM/ASM configuration on the virtual server itself.  Determine the filesystem/LVM/device disk mapping and populate in a spreadsheet.  It will come in handy

c.  obtain IP address(es) and other network configuration details of the existing Virtual Machine.

2.   Decide whether to migrate to a new IP address or keep the existing address.   This will impact whether the new and old servers can be running concurrently.

3.   Determine whether the default gateway will be the same or different in the new environment.   This can be easily checked by examining ODA_BASE and dom0.

4.    Ensure that the target environment has sufficient capacity for the virtual server specifications



1.   Pre Export Steps

  • If your VM is Windows, apply fix for KB31408 if you are using scsi devices in the VM as per MOS note 754071.1.
  • uninstall VMWare tools: (for example in Linux):
  • delete any snapshots associated with the virtual machine
  • cleanup any un-necessary files, drives, applications etc
  • Shutdown services (eg Oracle, Apache, Middleware etc) and ensure startup of services is disabled
  • Remove the MAC address(es) on interfaces by editing (Linux) /etc/sysconfig/network-scripts/ifcfg-<interface> or as appropriate for your guest o/s.
  • Stop the virtual machine

2.    Export VMware virtual server to OVF/OVA format.

On some versions of ESX, the VMware conversion wizard (File…Import or Export…) doesn’t support Oracle Enterprise Linux as a guest, but there is a command line tool (“ovftool”) that can be downloaded from:   You may have to register with VMware to obtain this tool.

Export as OVA if possible.  If not, export as OVF, and then create an OVA tar file from the OVF files.  For example, to create an OVA file called “myserver.ova”:

tar cvf myserver.ova myserver.ovf myserver -disk1.vmdk

In vSphere Client (or vCenter), select File → Export → Export OVF Template.      If asked for a single OVA file, say yes.    Select an appropriate setting for “Optimised For”.   Generally, this is “Web (OVF)”, but this may need specific testing for ODAVP.

3.   Copy the export to dom0 on your ODA machine.

4.   Ensure there is a shared repository

(login to ODA_BASE)
oakcli show repo

5.     Import OVA file into an OVM Template

These commands run from ODA_BASE, but the file referenced is on dom0.

(logon to ODA_BASE)
oakcli import vmtemplate <template_name> -assemblyfile <OVA_file> -repo <repo_name>
oakcli show vmtemplate
oakcli show vmtemplate <template_name>     # more details

6.    Review vm.cfg

Once the template has been registered review the vm configuration file ‘vm.cfg’ (from dom0)
The VM configuration file (vm.cfg) is stored under

/OVS/Repositories/<repo name>/Templates/otml_<VM template name>/vm.cfg

# cat vm.cfg
vif = ['']
name = 'otml_MsWin2008'
builder = 'hvm'
vcpus = 2
memory = 4096
serial = 'pty'
disk = [u'file:/OVS/Repositories/odarepo1/Templates/otml_MsWin2008/6ee6ea13b3264f7a8e36ff5dfbd95015.img,xvda,w']
uuid = 'd001944ceebd42399a37a6bc140c309b'

Change the entry:

vif = ['']


vif = [ 'type=ioemu,bridge=net1']

Add the entry:

vfb = [ 'type=vnc,vnclisten=,vncunused=1' ]

The backend listens on IP port 5900+N by default where N would be the domain ID. You can override both address and N (IP address means dom0 IP):

vfb = [ 'type=vnc,vnclisten=,vncdisplay=10' ]

or bind the first unused port above 5900 (on dom0 ip address):

vfb = [ 'type=vnc,vnclisten=,vncunused=1' ]

or override the password

vfb = [ 'type=vnc,vnclisten=,vncpassword='MyPassword',vncunused=1' ]


7.     Configure the template with cpu/memory settings

(logon to ODA_BASE)

oakcli configure vmtemplate <template_name> -vcpu 8 -maxvcpu 8 -memory 32768M -disk <list of disks>
oakcli show vmtemplate

8. Generate OVM virtual server from OVM Template

(logon on ODA_BASE)
oakcli clone vm -vmtemplate -repo

(check the status of your VM repository)
oakcli show vmtemplate
oakcli show vm


9.    modify the VM to use the network and VLAN, and configure failover.

oakcli modify    vm  <servername> -addnetwork net1
oakcli configure vm  <servername> -prefnode <node1> -failover <node2>


10.   start the VM

(logon to ODA_BASE)
oakcli start vm <servername>

11. show config

(logon to ODA_BASE)
oakcli show vm # check the new vm is running
oakcli show cpupool -node 0 # ensure that you create a new pool
# and pin cpus because of Oracle licensing

12. show console

oakcli show vmconsole

13. Connect

Connect to your guest server and test/start your databases and applications.

That’s it!! You should now have a new virtual server on ODA-VP.

Good luck! Let me know if this helps!

Kind regards,

Nigel FowlerMigrating a VMware virtual server to an ODA-VP

Related Posts

Take a look at these posts

Join the conversation