Thursday, September 1, 2011

Overview of OpenNebula Step by Step Guide


OpenNebula can be primarily used as a virtualization tool to manage your virtual infrastructure in the data-center or cluster.
  • OpenNebula is a toolkit for building Clouds ( public cloud,private cloud )
  •  It Supports KVM , Xen , Vmware Server , VirtualBox (planned from 1.4.2)
  •  It consists of  Front End , Node
    Front End installation
    $ sudo apt-get install opennebula
          Reading package lists... Done 
          Building dependency tree 
          Reading state information... Done 
          The following extra packages will be installed: 
            opennebula-common 
          The following NEW packages will be installed: 
            opennebula opennebula-common 
          0 upgraded, 2 newly installed, 0 to remove and 2 not upgraded. 
          Need to get 280kB of archives. 
          After this operation, 1352kB of additional disk space will be used. 
          Do you want to continue [Y/n]? 
          … 
          Setting up opennebula-common (1.2-0ubuntu1~intrepid1) … 
          … 
          Adding system user `oneadmin’ (UID 107) … 
          Adding new user `oneadmin’ (UID 107) with group `nogroup’ … 
          Generating public/private rsa key pair. 
          … 
          Setting up opennebula (1.2-0ubuntu1~intrepid1) …
          oned and scheduler started 


    Node Installation

    $ sudo apt-get install opennebula-node 
        Reading package lists... Done 
        Building dependency tree 
        Reading state information... Done 
        The following extra packages will be installed: 
          opennebula-common 
        The following NEW packages will be installed: 
          opennebula-common opennebula-node 
        ... 
        Setting up opennebula-node (1.2-0ubuntu1~intrepid1) ...
        Adding user `oneadmin' to group `libvirtd' ... 
        Adding user oneadmin to group libvirtd 
        Done. 

     OpenNebula Core
    ----------------------
        *      Request Manager, to handle client requests
        *      Virtual Machine Manager, to manage and monitor of VMs
        *      Transfer Manager, to manage VM images
        *      Virtual Network Manager, to manage virtual networks
        *      Host Manager, to manage and monitor physical resources
        *      Database, persistent storage for ONE data structures

    OpenNebula does the following:
    ------------------------------------
        *      Manages Virtual Networks. Virtual networks interconnect VMs. Each Virtual Networks includes a description.
        *      Creates VMs. The VM description is added to the database.
        *      Deploys VMs. According to the allocation policy, the scheduler decides where to execute the VMs.
        *      Manages VM Images. Before execution, VM images are transferred to the host and swap disk images are created. After execution, VM images may be copied back to the repository.
        *      Manages Running VMs. VM are started, periodically polled to get their consumption and state, and can be shutdown, suspended, stopped or migrated.

    The main functional components of an OpenNebula Private Cloud are the following:
    -------------------------------------------------------------------------------------
        *      Hypervisor: Virtualization manager installed in the resources of the cluster that OpenNebula leverages for the management of the VMs within each host.
        *      Virtual Infrastructure Manager: Centralized manager of VMs and resources, providing virtual network management, VM life-cycle management, VM image management and fault tolerance.
        *      Scheduler: VM placement policies for balance of workload, server consolidation, placement constraints, affinity, advance reservation of capacity and SLA commitment.



    Daemon Configuration Attributes
    -------------------------------------

        *      HOST_MONITORING_INTERVAL : Time in seconds between host monitorization
        *      VM_POLLING_INTERVAL : Time in seconds between virtual machine monitorization
        *      VM_DIR : Remote path to store the VM images, it should be shared between all the cluster nodes to perform live migrations. This path will be used for all the cluster nodes.
        *      MAC_PREFIX: Default MAC prefix to generate virtual network MAC addresses
        *      NETWORK_SIZE: Default size for virtual networks
        *      PORT : Port where oned will listen for xml-rpc calls
        *      DEBUG_LEVEL : Sets the level of verbosity of $ONE_LOCATION/var/oned.log log file. Possible values are:

    DEBUG_LEVEL    Meaning
    ---------------------------------
    0                               ERROR
    1                               WARNING
    2                               INFO
    3                               DEBUG 



    Command line interface
    --------------------------------

        *      onevm: to submit, control and monitor virtual machines
        *      onehost: to add, delete and monitor hosts


    $ onehost list
     HID NAME                      RVM   TCPU   FCPU   ACPU    TMEM        FMEM       STAT
       0 host01                      0         800     800     800      8194468    7867604   on
       1 host02                      0         800      797    800      8387584    1438720   on

    onevm list
     ID     USER     NAME         STAT  CPU     MEM            HOSTNAME        TIME
     1001 oneadmin  fc11AOS   dele      0          512000           node2                02 22:10:56