Overview Demo Claudia OpenNebulac.pdf · Opennebula commands (1/2) • OpenNebula provides four...
Transcript of Overview Demo Claudia OpenNebulac.pdf · Opennebula commands (1/2) • OpenNebula provides four...
1
OverviewDemoClaudiaOpenNebula
2
RESERVOIR Reference Architecture
3
Virtual Execution Environment Manager
Monitoring
VMI Client
OpenNebula
Policy Engine
Service Manager
VEE Hosts
RemoteVEEMs
4
VEEH
• Dynamic binding of VEE’s to VEEH
• Responsible for VEE provisioning– as opposed to the management
• Provides abstraction to the virtualization technology– adding to the virtualisation platform the
necessary functions
5
VEEH
• Perform the elementary control and monitoring of VEEs and their resources– placement of VEEs– creating a VEE, – allocating additional resources to a VEE, – monitoring a VEE, – migrating a VEE, – creating a virtual network and storage pool, – etc.
6
Credits: Borja SotomayorUniversity of Chicago
7
8
9
10
11
12
13
14
15
16
17
OpenNebula Management Console
18
OpenNebula Management Console
Setup: http://dev.opennebula.org/projects/management-console/wiki/onemc_install_ubuntu
19
Platform ISF VMware Vsphere Eucalyptus Nimbus OpenNebula
Virtualization Management
VMware, Xen
VMware Xen, KVM XenXen, KVM,
VMware
Virtual Network Management
Yes Yes No Yes Yes
Image Management
Yes Yes Yes Yes Yes
Service Contextualization
No No No Yes Yes
Scheduling Yes Yes No No Yes
Administration Interface
Yes Yes No No Yes
Hybrid Cloud Computing
No No No No Yes
Cloud Interfaces No vCloud EC2 WSRF, EC2 EC2 Query
Flexibility and Extensibility
Yes No Yes Yes Yes
Open Source No No GPL Apache Apache
20
Opennebula, basic installationArchitecture Overview• Front-end: executes the
OpenNebula service
• Nodes: hosts providing resources needed by VMS.
• Image repository: any storage medium holding images of the VMs.
• OpenNebula daemon (oned): core service of the system.
• Drivers: used by the core to interface with subsystems
• (oneadmin: administration user)
21
Opennebula, basic installationImages storage• Shared FS: Non shared FS
configuration possible (but only allows cold migrations)
• Accounts: oneadmin created and able to perform sshcommands.
• Virtualisation tools: to be installed on nodes
– Xen– KVM– VMWare
22
Opennebula commands (1/2)• OpenNebula provides four commands:
– onevm to submit, control and monitor VMs– onehost to add, delete and monitor hosts– onevnet to add, delete and monitor virtual networks– oneuser to add, delete and monitor users
• Common parameters:– -l, list x,y,z: Selects columns to display with list command.– -f, filter x,y,z: Filter data. An array is specified with column=value pairs.– -d, delay seconds: Sets the delay in seconds for top command.– -h, help: Shows help information.– -v, verbose: Tells more information if the command is successful
23
Opennebula commands (2/2)• Examples:Submit a new virtual machine, adding it to the ONE VM pool
onevm create <template>
Starts a previously submitted VM on a specific hostonevm deploy <vm_id> <host_id>
Shutdown an already deployed VMonevm shutdown <vm_id>
Saves a running VM and starts it again in the specified hostonevm migrate <vm_id> <host_id>
Saves a running VM: onevm suspend <vm_id>
Resume execution of a saved VM: onevm resume <vm_id>
Stop a running VM: onevm stop <vm_id>
Delete a VM from the pool: onevm delete <vm_id>
24
Opennebula, before installation
Impact of Linux distribution
• Installation of OpenNebula is eased under Ubuntu (packages available in repositories, documentation, …) but …– Is it the distribution of your scientific cluster?
– Is your enterprise contracting support for it?
• Deployment on Red Hat related/compatible distros must be considered– Use of CentOS in examples too
25
Ubuntu basic installation• Ubuntu 10.04 (Lucid Lynx) version (1/3)
– Deploying application– Opennebula already in repositories
• Deployment of front end nodesudo apt-get install opennebula
Deployment of compute node (to be replicated X times!)sudo apt-get install opennebula-node
User oneadmin created, setting password and keys (for ssh and scp)sudo scp /var/lib/one/.ssh/id_rsa.pub
oneadmin@mynode01:/var/lib/one/.ssh/authorized_keys
sudo scp /var/lib/one/.ssh/id_rsa.puboneadmin@mynodeXX:/var/lib/one/.ssh/authorized_keys
sudo sh -c "cat /var/lib/one/.ssh/id_rsa.pub >> /var/lib/one/.ssh/authorized_keys"
sudo sh -c "ssh-keygen -f .ssh/known_hosts -F mynode01 1>> /etc/ssh/ssh_known_hosts"
sudo sh -c "ssh-keygen -f .ssh/known_hosts -F mynodeXX 1 >> /etc/ssh/ssh_known_hosts"
26
Ubuntu basic installation• Ubuntu 10.04 (Lucid Lynx) version (2/3)
– Configuration (1/2)• Preparing space for VMs
sudo mkdir /var/lib/one/imagessudo chown oneadmin /var/lib/one/images/
Adding VMs to Opennebulaonehost create node01 im_kvm vmm_kvm tm_sshonehost create node02 im_kvm vmm_kvm tm_ssh
• Network configuration (basic):• « vnet01.template » file:
NAME = "LAN"TYPE = RANGEDBRIDGE = br0NETWORK_SIZE = CNETWORK_ADDRESS = 192.168.0.0
• Applying network configuration• onevnet create vnet01.template
27
Ubuntu basic installation• Ubuntu 10.04 (Lucid Lynx) version (3/3)
– Configuration (2/2)• Preparing VM template• « vm01.template » file:
NAME = vm01CPU = 0.5MEMORY = 512OS = [ BOOT = hd ]DISK = [
source = "/var/lib/one/images/vm01.qcow2",target = "hda",readonly = "no" ]
NIC = [ NETWORK="LAN" ]GRAPHICS = [type="vnc",listen="127.0.0.1",port="-1" ]
• Applying VM configurationonevm submit vm01.template
– Check details about VMs:onevm list onevm show vm01
28
Ubuntu basic installation• Ubuntu versions prior to 10.04
– Setting up repositories• deb http://ppa.launchpad.net/opennebula-
ubuntu/ppa/ubuntu intrepid main
• Ubuntu 8.10 (intrepid) configuration.• Use same value for 9.04 (jaunty).• Also available for 8.04 LTS with « hardy » value
– Deploying application• Follow steps described for 10.04
– Checking resultonevm list
ID NAME STAT CPU MEM HOSTNAME TIME
0 one-0 runn 0 65536 testh01 00 0:00:02
29
CentOS basic installation• CentOS5, front node
– Plain vanilla CentOS installation– OpenNebula requires several applications / libraries
• Manual installation– ruby >= 1.8.6 (install through yum)– sqlite3 >= 3.5.2 – sqlite3-dev >= 3.5.6-3 – sqlite3-ruby – libxmlrpc-c >= 1.06 – scons >= 0.97 – g++ >= 4 (install through yum)
• Adding repositories and installing packages– Add « Extra Packages for Enterprise Linux » (EPEL) repository
(http://fedoraproject.org/wiki/EPEL)» Packages to install: ruby ruby-devel gcc gcc-c++ make openssl-devel scons flex bison
– Add Karan repository http://centos.karan.org» Packages to install: xmlrpc-c
– Still manually install sqlite …
– Optional: setup dynamic DNS– Setup VM images repository (as in Ubuntu installation)– Install mkisofs (for contextualisation)
30
Opennebula, Public Cloud
• OCCI Interface– RESTful API (HTTP)– Allow to specify requirements on
• Storage• Network• Compute resources
– Authentication• In each message (user/password parameters)• Based on server location
31
OCCI short exampleStorage
<DISK> <NAME>UbuntuImage</NAME>
<URL>file: //images/ubuntu.img</URL>
</DISK>
Network<NETWORK> <NAME>MyServiceNetwork</NAME>
<ADDRESS>192.168.71.1</ADDRESS> <SIZE>200</SIZE>
</NETWORK>
Compute resource<COMPUTE> <NAME>MyCompute</NAME>
<STORAGE>
<SWAP size=”1024” dev=”sda2”/>
<DISK image=”abcd8888-5ade-012c-f1d5-00254 bd6f386” dev=”sda1 ”/>
<FS size=”512” format=”ext3” dev=”sda3”/>
</STORAGE>
<NETWORK> <NIC network=”23” ip=”192.168.71.26”/> </N ETWORK>
<INSTANCE TYPE>small</INSTANCE TYPE>
</COMPUTE>
Request executed through occi-compute command
32
Opennebula, Hybrid Cloud configuration
• Adaptors (MAD) configuration in oned.conf file for EC2IM_MAD = [
name = "im_ec2",
executable = "one_im_ec2",
arguments = "im_ec2/im_ec2.conf",
default = "im_ec2/im_ec2.conf" ]
VM_MAD = [
name = "vmm_ec2",
executable = "one_vmm_ec2",
arguments = "<ec2_options> vmm_ec2/vmm_ec2.conf",
type = "xml" ]
<ec2_options>: flags used to setup EC2 environment (home, cert., etc.)Authentication information must also be set (see ec2rc file in mad folder)Maximum capacity is set in im_ec2.conf file
33
OpenNebula Architecture summary
34
OpenNebula, summary• Internal Interfaces for Administrators and Users - Unix-like CLI and XML-RPC API to
manage VM life-cycle and physical boxes; and libvirt virtualization API
• Scheduler - Requirement/rank matchmaker allowing the definition of workload and resource-aware allocation policies; and support for advance reservation of capacity
• Virtualization Management Xen, KVM and VMware connectors; and generic libvirtconnector to other VM managers. Virtual Box (planned)
• Image Management - General mechanisms to transfer and clone VM images
• Network Management - Definition of isolated virtual networks to interconnect VMs
• Service Management and Contextualization - Support for multi-tier services consisting of groups of interconnected VMs, and their auto-configuration at boot time
• Security - Management of users by the infrastructure administrator
• Fault Tolerance - Persistent database backend to store host and VM information
• Scalability - Tested in the management of medium scale infrastructures
• Installation - on a UNIX cluster front-end, include in Linux distros.
• Flexibility and Extensibility - Open, flexible and extensible architecture, interfaces and components, allowing its integration with other products or tools