Compatibility Guide 3.4

This guide is aimed at OpenNebula 3.2 users and administrators who want to upgrade to the latest 3.4 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.4.

OpenNebula Administrators and Users

Storage

OpenNebula 3.4 supports multiple datastores. This replaces the previous Image Repository.

Configuration and Administration

  • Hosts can be grouped into Clusters. Clusters can have associated Datastores and Virtual Networks, this is how the administrator sets which Hosts have the underlying requirements for each Datastore and Virtual Network configured.
  • Restricted attributes for VMs and Images can be configured in oned.conf
  • Template files for VMs, Templates, Virtual Networks and Images can be in XML, see the syntax here. XML templates can be also used in the update methods, visit the xml-rpc api documentaion for more information.

oZones Servers

  • Revamped Virtual Data Centers. They are now associated with Datastores and virtual Networks as well as Hosts. See here for details of the new template needed to create one VDC
  • Support for self-service UI.

Cloud Servers

  • New configurations variables for Sunstone VNC and SelfService setup. Following #1069 and #1076:
    • Config variable :novnc_path has been replaced by :vnc_proxy_path in sunstone-server.conf. It is now a full path to the proxy file.
    • New VNC-related configuration variables in sunstone-server.conf:
      • :vnc_proxy_support_wss: Specify support for secure websockets connection.
      • :vnc_proxy_cert: Path to certificate.
      • :vnc_proxy_key: Path to key.
    • New VNC-related configuration variables in occi-server.conf:
      • :vnc_enable: Enable websockets based vnc console support.
      • :vnc_proxy_base_port: Base port to run vnc proxy.
      • :vnc_proxy_path: Full path to proxy file.
      • :vnc_proxy_support_wss: Enable wss connections.
      • :vnc_proxy_cert: Path to certificate.
      • :vnc_proxy_key: Path to key.
  • Upgrade to sunstone-plugins.yaml configuration file. Following #1112, Sunstone menus have been reworked and base plugins need to be loaded in a different order (and new ones need to be added to it). Please proceed to update this configuration file with the new one provided in this release.
  • New ElasticIP related configuration variables in econe.conf
    • elasticips_vnet_id VirtualNetwork containing the elastic ips to be used with EC2. If no defined the Elastic IP functionality is disabled.
    • associate_script Script to associate a public IP with a private IP; arguments: elastic_ip private_ip vnet_template(base64_encoded)
    • disassociate_script Script to disassociate a public IP; arguments: elastic_ip
  • New datastore and cluster id variables in econe.conf and occi-server.conf
    • datastore_id Datastore in which the Images uploaded through EC2/OCCI will be allocated, by default 1
    • cluster_id Cluster associated with the EC2 resources, by default no Cluster is defined
  • New opennebula CloudAuth. Using this method the authentication will be done by the opennebula core using the driver defined for the user. For instance, a user interacting with OpenNebula through Sunstone can be authenticated using the LDAP driver.

Command Line Interface

New CLI commands:

  • onedatastore
  • onecluster

Changed CLI commands:

  • onehost create
  • oneimage create
  • onevnet create

New EC2 CLI commands:

  • econe-describe-addresses
  • econe-release-address
  • econe-allocate-address
  • econe-associate-address
  • econe-disassociate-address

New OCCI CLI commands:

  • occi-instance-type

New verbose option for occi-* list commands

Developers and Integrators

  • The following xml-rpc methods have been modified:
  • New xml-rpc methods:
  • The XML objects returned by OpenNebula have changed to accommodate the new features. Download the 3.4 XML Schemas (XSD) here.
  • Changes to Javascripts APIs. Only affects if you have developed javascript plugins for any of the UIs. Following #1155, delete actions in opennebula.js, ozones.js, occi.js have been renamed to del, to avoid use of the reserved word. For example, a call to OpenNebula.Host.delete() should now be OpenNebula.Host.del().
  • The VM attribute DISK/SOURCE can't be used anymore, all files need to be registered as an Image and be referenced in the VM template.

Transfer Manager Drivers

There have been some modification on the Transfer Manager/Datastore architecture. The basic Transfer Driver protocol has been preserved, although some adaptation is needed in order to make custom drivers to work with the new release:

  • Deprecated configuration files for TM drivers: now /etc/tm/tm_<driver>.conf does not exist. Instead, the driver will automatically look in <remotes_dir>/tm/<driver>/<action>. where action is: clone, context, delete, ln, mkimage, mkswap, mv or mvds.
  • The new mv script is now conceptually different: it moves disk images between system datastores across different hosts. The mvds, which moves disk images back to their original datastore, is more similar to the old mv script.
  • Although there has been a slight change in the philosophy of the shipped TM drivers (now clone and ln are always performed remotely) they're backwards compatible.

Configuration File Changes

Removed files:

  • tm_lvm/tm_lvmrc: LVM driver has been superseded by iSCSI drivers.
  • tm_lvm/tm_lvm.conf: LVM driver has been superseded by iSCSI drivers.
  • tm_ssh/tm_ssh.conf: Configuration files for TM drivers have been dropped. See explanation above.
  • tm_vmware/tm_vmware.conf: Configuration files for TM drivers have been dropped. See explanation above.
  • tm_shared/tm_shared.conf: Configuration files for TM drivers have been dropped. See explanation above.
  • tm_dummy/tm_dummy.conf: Configuration files for TM drivers have been dropped. See explanation above.
  • tm_ssh/tm_sshrc: Empty file.
  • tm_shared/tm_sharedrc: Empty file.
  • tm_dummy/tm_dummyrc:Empty file.
  • image/fs.conf: The configuration parameters that used to be specified here are now specific the each datastore and should be added to the datastore's template.

New files:

  • cli/onecluster.yaml: New CLI command.
  • cli/onedatastore.yaml: New CLI command.