Compatibility Guide 4.0

:!: Development version of OpenNebula 4.0. The material on this page needs to be reviewed for completeness and accuracy.

This guide is aimed at OpenNebula 3.8 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 4.0.

inlinetoc

OpenNebula Administrators and Users

Virtual Machines

<xterm> $ onetemplate instantiate 6 –cpu 2 –memory 1024 </xterm>

Permissions management

  • Cluster ids in ACL rules

Resource management

  • Rename operation for templates, images, VMs and VNets

Command Line Interface

Some onevm commands have been renamed. This is the complete list of onevm sub-commands:

OpenNebula 3.8 OpenNebula 4.0
Creation create
hold
release
Attribute updates update
rename
resize
chgrp
chown
chmod
Disk actions attachdisk disk-attach
detachdisk disk-detach
saveas disk-snapshot
disk-snapshot –live
Nic actions nic-attach
nic-detach
Scheduling
and deployment
deploy
migrate
livemigrate migrate –live
resched
unresched
Power on and off poweroff
poweroff –hard FIXME
shutdown
cancel shutdown –hard
reboot
reset reboot –hard
restart boot
Deletion delete destroy
resubmit destroy –recreate
Stop/Resume stop
suspend
resume
VM Snapshots snapshot-create
snapshot-revert
snapshot-delete
Query list
show
top

New CLI commands:

Changed CLI commands:

  • New option –hold for 'onevm create' and 'onetemplate instantiate'. Using this flag, the new VMs are created on hold state instead of pending. VMs in this state are ignored by the scheduler, giving users the chance release them later or to deploy them manually.
  • New option –enforce for 'onevm deploy' and 'onevm (live)migrate'. Using this flag, the core will enforce that the target host's capacity is not overcommitted.
  • 'onetemplate instantiate' will accept a template file to merge with the Template being instantiated.

Options:

  • New options –user and –password are available for all commands. They replace the current credentials, making it easier for administrators to quicky execute commands as another user.

Scheduler

Some of these changes are better explained, with examples, in this blog post.

  • The VM REQUIREMENTS and RANK attributes must be now named SCHED_REQUIREMENTS and SCHED_RANK (#1483)
  • SCHED_REQUIREMENTS and SCHED_RANK can be edited in the VM template (#1483)
  • A new keyword, CURRENT_VMS, can be used in the SCHED_REQUIMENTS expression to deploy VMs in the same hosts where other VMs are (not) running (#1675)
  • SCHED_RANK expression can use first level attributes, e.g. RANK=“ID” to sort the hosts by their /HOST/ID element (#1553)
  • SCHED_REQUIREMENTS and SCHED_RANK expressions can use xpath to identify elements, e.g. REQUIREMENTS=“\”/HOST/HOST_SHARE/MAX_MEM\“ > 0” (#1747)
  • If the scheduler cannot find a suitable host for a VM, or any other problem is found, a message is stored inside the VM template attribute SCHED_MESSAGE (#846)
  • SCHED_REQUIREMENTS and SCHED_RANK expressions can use attributes from the Host's Cluster template (#1554)

Storage

  • There is a new Datastores type that lets you store plain files to be used as VM kernels, ramdisks or context files.
  • The system datastore used by each cluster is now set adding it to the cluster, instead of updating the cluster's template attribute SYSTEM_DS.

Log files

Sunstone

Developers and Integrators

VM Life Cycle

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

XML-RPC API

New xml-rpc methods:

  • New rename methods
  • New one.system.config
  • New user/group quota.info and quota.update
  • one.vm. snapshot methods
  • one.vm.resize

Changed xml-rpc methods:

  • one.vm.savedisk has a new param to save the disk immediately or when the VM shuts down
  • one.vm.deploy and .migrate have a new param, enforce
  • one.vm.allocate and one.template.instantiate have a new param to create VMs on hold instead of pending
  • one.template.instantiate extra param to merge attributes

Ruby OCA

  • Library file is now called 'opennebula', require it using:
require 'opennebula'
  • Now OCA is packaged as a ruby gem, if you are developing on machine that does not have OpenNebula package installed you can install it with this command:

<xterm> $ gem install opennebula-oca –pre </xterm>

Auth drivers

X509:

Storage

VMware drivers

KVM drivers

Sunstone Server

Configuration File Changes

Changes in /ect/one/oned.conf

  • DEFAULT_UMASK The permissions for newly created objects can be set globally in oned.conf, or individually for each User.
  • OpenNebula driver names changed and now they are not prefixed by the driver type. For example, im_kvm changed to kvm, vmm_xen to xen and so on. To add a kvm host the command will be:

<xterm> $ onehost create host_name –im kvm –vm kvm –net dummy </xterm>

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

Changes in /etc/one/auth/x509_auth.conf

  • FIXME check_crl

Changes in /var/lib/one/remotes/vmm/kvm/kvmrc

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

Changes in EC2 Server configuration files: