Building a Hybrid Cloud
A Hybrid Cloud is an extension of a Private Cloud to combine local resources with resources from remote Cloud providers. The remote provider could be a commercial Cloud service, such as Amazon EC2 or ElasticHosts, or a partner infrastructure running a different OpenNebula instance. Such support for cloudbursting enables highly scalable hosting environments.
An Hybrid Cloud Deployment powered by OpenNebula is fully transparent to infrastructure users. Users continue using the same private and public Cloud interfaces, so the federation is not performed at service or application level but at infrastructure level by OpenNebula. It is the infrastructure administrator who takes decisions about the scale out of the infrastructure according to infrastructure or business policies.
Amazon EC2 cloud appears as a new host in the OpenNebula system:
<xterm> $ onehost list HID NAME RVM TCPU FCPU ACPU TMEM FMEM STAT
0 ec2 0 500 500 500 8912896 8912896 on 1 ursa01 1 100 99 99 2093532 1649913 on 2 ursa02 1 100 100 100 1044956 612345 on 2 ursa03 0 800 798 798 8387584 7791616 on 3 ursa04 0 800 794 794 8387584 713728 on
</xterm>
A simple template like the following is enough to launch Virtual Machines in Amazon EC2:
EC2 = [ AMI="ami-acc723c5", AUTHORIZED_PORTS="22" ]
Assuming the template above has been saved to a file called myEC2Machine.one, the following will launch the Virtual Machine within Amazon EC2:
<xterm> $ onevm submit myEC2Machine.one </xterm>
After submission, details about the Virtual Machine (including hostname to access the machine) can be requested using:
<xterm> $ onevm list
ID USER NAME STAT CPU MEM HOSTNAME TIME 0 oneadmin one-0 runn 0 0 ec2 00 00:07:03
$ onevm show 0 VIRTUAL MACHINE 0 INFORMATION ID : 0 NAME : one-0 STATE : ACTIVE LCM_STATE : RUNNING START TIME : 07/17 19:15:17 END TIME : - DEPLOY ID: : i-53ad943a
VIRTUAL MACHINE TEMPLATE EC2=[
AMI=ami-acc723c5, AUTHORIZED_PORTS=22 ]
IP=ec2-174-129-94-206.compute-1.amazonaws.com NAME=one-0 VMID=0 </xterm>
There is no modification in the operation of OpenNebula to integrate Cloud services. A Cloud service is managed as any other OpenNebula host that may provide “infinite” capacity for the execution of VMs.