Compatibility Guide 3.8

This guide is aimed at OpenNebula 3.6 users and administrators who want to upgrade to the latest version. The following sections summarize the new features and usage changes that should be taken into account, or prone to cause confusion. You can check the upgrade process in the following guide

Visit the Features list and the Release Notes for a comprehensive list of what's new in OpenNebula 3.8.

OpenNebula Administrators and Users

  • The new Virtual Router Appliance allows users to deploy VMs without being contextualized before, as it offers routing, port forwarding, DHCP, NTP and DNS services (ticket)
  • To ease the access to some user attributes, more variables are now available in context, namely: UNAME, GID and GNAME. Note that this information was already available in the USER template (USER[$TEMPLATE]).
  • Virtual Machines have a new state: PowerOff. A VM in poweroff is like a suspended one, but without a checkpoint file, so it can be restarted to immediately boot it in the same Host. There is also a new poweroff action (ticket)
  • The commands oneuser and onegroup have a new subcommand: batchquota. It allows to set the same quotas to several users or groups. See the Managing Quotas guide (ticket)
  • Fixed VM state transitions from SUSPENDED, UNKNOWN, STOPPED. A failed boot operation in previous version would move the VM to FAILED, making the VM state impossible to recover. In OpenNebula 3.8, the VM will return to the previous state, making possible to retry the resume operation.
  • There is a new onedb fsck command that checks the DB consistency, and fixes any problems found, like wrong 'running_vms' counters or quotas usage.

Command Line Interface

New CLI commands:

  • onegroup batchquota
  • oneuser batchquota
  • onevm poweroff
  • onedb fsck

Changed CLI commands:

  • The oneimage, onetemplate and onevm has been extended to include template options to create new VMs, VM Templates and images, respectively. For example now you can use

#Example for oneimage
$ oneimage create -d 1 --name ubuntu --path /tmp/ubuntu.qcow2 --prefix sd --type OS --driver qcow2 \
  --description "A OS plain installation"

#Example for onevm or onetemplate
$onevm create --name "test vm" --memory 128 --cpu 1 --disk arch,data --network public

  • You can get the list of one* list table columns using the parameter –describe. This will descibe the meaning of each column. It will also be useful to know the parameters we can pass to –list to restrict the columns shown:

$ onevm list --describe
ID                  : ONE identifier for Virtual Machine
NAME                : Name of the Virtual Machine
USER                : Username of the Virtual Machine owner
GROUP               : Group of the Virtual Machine
STAT                : Actual status       
UCPU                : CPU percentage used by the VM
UMEM                : Memory used by the VM
HOST                : Host where the VM is running
TIME                : Time since the VM was submitted
$ onevm list --list ID,NAME
    ID NAME           
     0 web-server
     1 db-server

  • TCPU/MEM, ACPU/MEM, FCPU/MEM columns in onehost and Sunstone have been removed and new columns ALLOCATED_CPU/MEM have been included by default. REAL_CPU/MEM columns are also available, but disabled by default. You can enable them in /etc/one/cli/onehost.yaml or per user $HOME/.one/cli/onehost.yaml

$ onehost list
   1 localhost       -           2    110 / 200 (55%)  640M / 3.6G (17%) update


  • KVM users can now specify SPICE as graphic type to access the VM display, keyboard and mouse. Sunstone has been also updated to reflect this.
  • Sunstone now allows you to add volatile disks in the VM template creation widzard, this was a missing option completely functional through the CLI or the advanced modes in Sunstone


  • DATABLOCK images and volatile disks can use qcow format

OCCI Cloud Server

EC2 Cloud Server

  • New EBS commands:
    • create volume: Creates a new DATABLOCK in OpenNebula
    • delete volume: Deletes an existing DATABLOCK.
    • describe volumes: Describe all available DATABLOCKs for this user
    • attach volume: Attaches a DATABLOCK to an instance
    • detach volume: Detaches a DATABLOCK from an instance
  • New Keypair commands:
    • create keypair: Creates the named keypair
    • delete keypair: Deletes the named keypair, removes the associated keys
    • describe keypairs: List and describe the key pairs available to the user

Log files

  • Improved log file format for xml-rpc requests. Now each request message has a Request ID, and includes the User ID doing the request and all the parameters. For example:
Mon Oct 15 18:32:00 2012 [ReM][D]: Req:5560 UID:0 HostPoolInfo invoked
Mon Oct 15 18:32:00 2012 [ReM][D]: Req:5560 UID:0 HostPoolInfo result SUCCESS, "<HOST_POOL><HOST><ID..."
Mon Oct 15 18:33:23 2012 [ReM][D]: Req:5520 UID:- UserPoolInfo invoked
Mon Oct 15 18:33:23 2012 [ReM][E]: Req:5520 UID:- UserPoolInfo result FAILURE [UserPoolInfo] User couldn't be authenticated, aborting call.

Developers and Integrators

  • There are two new scripts pre and post-migration that are invoked by the transfer manager before and after executing a life-migration, arguments and details can be found at the transfer manager integration guide.
  • New xml-rpc methods:
  • A new acct method is available in the ruby bindings to filter the accounting information

VM Life Cycle

  • New states and transitions. These transitions are only relevant to developers, users will perceive the same functionality.


  • The default path for datastores in the hosts (DATASTORE_LOCATION) can now be defined for each cluster. It is the same for all the hosts in the cluster and it defaults to the OpenNebula 3.6 value: /var/lib/one/datastores. More details in can be found in the cluster guide

VMware drivers

KVM drivers

  • Using the new cgroups support, OpenNebula can enforce the amount of CPU assigned to a VM, as defined in its template. So a VM with CPU=0.5 will get half of the physical CPU cycles than a VM with CPU=1.0 (ticket)

EC2 Cloud Server

  • EBS Support
  • Keypair Support

OCCI Cloud Server

  • Attach/detach support

Sunstone Server

  • Sunstone server's custom routes functionality allows developers to fully integrate the server part of a custom application into Sunstone. See the plugins documentation and the Sunstone server plugin guide (ticket)
  • Improved VNC proxying system. After intalling the new OpenNebula version, please run the new install_novnc script. You can find this script in your OpenNebula share directory (/usr/share/one for most distributions)
  • Added http proxy support to CloudClient.rb. It looks for http_proxy environment variable and works as before if unset. This way, Users will be able to reach Marketplace from private networks

Generic Document Resources

Configuration File Changes

Changes in /ect/one/oned.conf

  • HOOK arguments to specify ID has been changed from $VMID, $HID has been changed to $ID.
  • TM_MAD vmware has been removed, the new one is named vmfs, be sure to update oned.conf file if you are keeping the 3.6 version. Check the VMware storage guide for more details.

Changes in /etc/one/sunstone-server.conf

  • tmpdir attribute changed by default to /var/tmp
  • vnc_proxy_base_port has been renamed to vnc_proxy_port
  • New attribute routes: Array of files containing ruby code to extend the default sunstone-server routes

Changes in /etc/one/occi-server.conf

  • tmpdir attribute changed by default to /var/tmp
  • vnc_proxy_base_port has been renamed to vnc_proxy_port

Changes in EC2 Server configuration files:

  • /ect/one/econe.conf tmpdir attribute changed by default to /var/tmp
  • /ect/one/econe.conf ssl_server attribute needs the port
  • /ect/one/econe.conf new attribute ebs_fstype: FSTYPE that will be used when creating new volumes (DATABLOCKs)
  • /etc/one/ec2query_templates/m1.small.erb EC2 keys