The Complete Magazine on Open Source

OpenNebula: A Free Solution for Building Clouds

SHARE
/ 3648 1

Screenshot from 2016-09-28 17-19-54

OpenNebula is a free and open source software solution for building clouds and for data centre virtualisation. It is based on open technologies and is distributed under the Apache License 2. OpenNebula has features for scalability, integration, security and accounting. It offers cloud users and administrators a choice of interfaces.

OpenNebula is an open source platform for constructing virtualised private, public and hybrid clouds. It is a simple yet feature-rich, flexible solution to build and manage data centre virtualisation and enterprise clouds. So, with OpenNebula, virtual systems can be administered and monitored centrally on different Hyper-V and storage systems. When a component fails, OpenNebula takes care of the virtual instances on a different host system. The integration and automation of an existing heterogeneous landscape is highly flexible without further hardware investments.

Benefits of OpenNebula
The plurality of support to Hyper-V and platform-independent architecture makes OpenNebula the ideal solution for heterogeneous computing centre environments.
The main advantages of OpenNebula are:

  • It is 100 per cent open source and offers all the features in one edition.
  • It provides control via the command line or Web interface, which is ideal for a variety of user groups and needs.
  • OpenNebula is available for all major Linux distributions, thus simplifying installation.
  • The long-term use of OpenNebula in large scale production environments has proven its stability and flexibility.
  • OpenNebula is interoperable and supports OCCI (Open Cloud Computing Interface) and AWS (Amazon Web Services).

Key features of OpenNebula
OpenNebula has features for scalability, integration, security and accounting. The developers also claim that it supports standardisation, interoperability and portability. It allows cloud users and administrators to choose from several cloud interfaces. Figure 1 shows the important features of OpenNebula.

Figure 1

Figure 1: Key features of OpenNebula

Why OpenNebula?

  • Web interface or CLI – the choice is yours
    By using the OpenNebula CLI or Web interface, you can keep track of activities at any time. There is a central directory service through which you can add new users, and those users can be individually entitled. Managing systems, configuring new virtual systems or even targeting the right users and groups is easy in OpenNebula.
  • Availability at all times
    OpenNebula not only takes care of the initial provisioning, but the high availability of its cloud environment is much better compared to other cloud solutions. Of course, the central OpenNebula services can be configured for high availability, but this is not absolutely necessary. All systems continue to operate in their original condition and are automatically included in the restored availability of the control processes.
  • Easy remote access
    In virtual environments, one lacks the ability to directly access the system when there are operational problems or issues with the device. Here, OpenNebula offers an easy solution — using the browser, one can access the system console of the host system with a VNC integrated server.
  • Full control and monitoring
    All host and guest systems are constantly monitored in OpenNebula, which keeps the host and VM dashboards up to date at all times. Depending on the configuration, a virtual machine is to be restarted in case of the host system failing or if migrating to a different system. If a data store is used with parallel access, the systems can of course be moved, while in operation, on to other hardware. The maintenance window can be minimised and can often be completely avoided.
  • Open standards
    OpenNebula is 100 per cent open source under the Apache License. By supporting open standards such as OCCI and a host of other open architecture, OpenNebula provides the security, scalability and freedom of a reliable cloud solution without vendor lock-in, which involves considerable support and follow-up costs.
Figure 2

Figure 2: OpenNebula architecture

Figure 3

Figure 3: OpenNebula components

OpenNebula architecture
To control a VM’s life cycle, the OpenNebula core coordinates with the following three areas of management:
1) Image and storage technologies — to prepare disk images
2) The network fabric — to provide the virtual network environment
3) Hypervisors — to create and control VMs
Through pluggable drivers, the OpenNebula core can perform the above operations. It also supports the deployment of services.
VM placement decisions are taken by a separate scheduler component. It follows the rank scheduling policy, which makes place for VMs on a physical host according to the rank given by the scheduler. These ranks are decided by the scheduler, using a ranking algorithm.
OpenNebula uses cloud drivers to interact with external clouds, and also integrates the core with other management tools by using management interfaces.

Components of OpenNebula
Based on the existing infrastructure, OpenNebula provides various services and resources. You can view the components in Figure 3.

  • APIs and interfaces: These are used to manage and monitor OpenNebula components. |To manage physical and virtual resources, they work as an interface.
  • Users and groups: These support authentication, and authorise individual users and groups with the individual permissions.
  • Hosts and VM resources: These are a key aspect of a heterogeneous cloud that is managed and monitored, e.g., Xen, VMware.
  • Storage components: These are the basis for centralised or decentralised template repositories.
  • Network components: These can be managed flexibly. Naturally, there is support for VLANs and Open vSwitch.

The front-end

  • The machine that has OpenNebula installed on it is known as the front-end machine, which is also responsible for executing OpenNebula services.
  • The front-end needs to have access to the image repository and network connectivity to each node.
  • It requires Ruby 1.8.7 or above.
  • OpenNebula’s services are listed below:
    1. Management daemon (Oned) and scheduler (mm_sched)
    2. Monitoring and accounting daemon (Onecctd)
    3. Web interface server (Sunstone)
    4. Cloud API servers (EC2- query or OCCI)

Virtualisation hosts

  • To run the VMs, we require some physical machines, which are called hosts.
  • The virtualisation sub-system is responsible for communicating with the hypervisor and taking the required action for any node in the VM life cycle.
  • During the installation, the admin account should be enabled to execute commands with root privileges.

Storage
Data stores are used to handle the VM images, and each data store must be accessible by the front-end, using any type of storage technology.
OpenNebula has three types of data stores:

  • File data store – used to store the plain files (not disk images)
  • Image data store – repository for images only
    System data store – used to hold the running VM images
    The image data store type depends on the storage technology used. There are three types of image data stores available:
  • File system – stores VM images in file formats
  • LVM – reduces the overhead of having the file system in place; the LVM is used to store virtual images instead of plain files
  • Ceph – stores images using Ceph blocks
    OpenNebula can handle multiple storage scenarios, either centralised or decentralised.

TableNetworking
There must be at least two physical networks configured in OpenNebula:

  • Service network – to access the hosts to monitor and manage hypervisors, and to move VM images.
  • Instance network – to offer network connectivity between the VMs across the different hosts.

Whenever any VM gets launched, OpenNebula will connect its network interfaces to the bridge described in the virtual network definition.
OpenNebula supports four types of networking modes:

  • Bridged–where the VM is directly attached to the physical bridge in the hypervisor.
  • VLAN–where the VMs are connected by using 802.1Q VLAN tagging.
  • Open vSwitch–which is the same as VLAN but uses an open vSwitch instead of a Linux bridge.
  • VXLAN–which implements VLAN using the VXLAN protocol.