2. OpenNebula Tutorial @ Loadays
OpenNebula Tutorial
Tomorrow at 09.30 Room 3
Bring VirtualBox or KVM or VMware if
possible!!
The OpenNebula Project
3. What is OpenNebula?
Overview of the Project
● Started in 2008
● Core dedicated team of 7 engineers
● Contributions of code and documentation patches by
users: RIM, Akamai, Logica,FermiLab, SARA, Terradue…
(approx. 100 listed at http://www.opennebula.org/about:
contributors)
● A lot of users (http://opennebula.org/users:users)
● 500 validated users at dev.opennebula
● Sunstone GUI being translated into 17 languages by the
community
The OpenNebula Project
4. What is OpenNebula?
Public Cloud Private
Cloud
Simple Web Interface A Cloud behind a
Infrastructure Resources firewall
Elastic & “infinite” Security Concerns
Improve Operations
Hybrid Cloud / CloudBursting
Supplement Capacity
of the Private Cloud
The OpenNebula Project
5. What is OpenNebula?
Interfaces, Tools & API
● CLI & Sunstone (GUI)
● API
● Cloud (EC2,OCCI)
● Service Management & Catalogs
Network Storage
● VLAN ● VM disks (file & block)
● Firewalling ● Image Distribution
● Multiple Technologies ● Multiple Backends
Multi-tenancy
● AAA Services
● Scheduling
● Permissions & roles
Compute Hosts
● Grouped into logical clusters
● Multiple hypervisors
● Monitoring
The OpenNebula Project
6. What is OpenNebula?
Design Principles
● Flexible: One solution can not fit all data-centers
● Provide basic components, but easily hacked by others
● Simple: just-what-you-need components & simple protocols
● Scalable: single instance & multi-tier architectures
● Be interoperable! rich set of API's & Interfaces
● Open Source: Apache License v2.0000
The OpenNebula Project
7. What is OpenNebula?
Simplicity
VM VM VM VM VM VM VM VM
Hypervisor
Physical Hardware
... Hypervisor
Physical Hardware
Host Host
The OpenNebula Project
8. The Cloud Integrator Perspective
CLI GUI Cloud Servers
Scheduler
OCA (Ruby, Java)
XML-RPC API
OpenNebula core
Monitoring Storage Network
DB
Virtualization Images Auth
Languages
The OpenNebula Project
9. Demo environment
Image Datastore System Datastore
(DS_ID: 1) (DS_ID: 0)
"NAS" "NAS"
wlan0
Internet
br0
VM VM
KVM
My Laptop
The OpenNebula Project
10. Building an IaaS Cloud: Hosts
Host Management
● Monitoring
○ Simple - SSH probes
○ Ganglia HOST HOST HOST
● Cluster
○ Logical set of:
■ Storage
■ Network
■ Hosts
○ Deal with heterogeneity
The OpenNebula Project
11. Building an IaaS Cloud: Network
Networks
● Define a MAC-IP address
space
● Layer 2 Isolation (drivers)
○ 802.1Q (Tagging)
○ OpenvSwitch br0
○ ebtables VM VM VR
○ Flat
● Layer 3 simple firewalling
○ TCP/UDP ports
Internet
○ ICMP's
● Virtual Router
● IPv6
The OpenNebula Project
12. Building an IaaS Cloud: Storage (Datastores)
Storage
● Datastore
○ Image store Image Datastore System Datastore
(DS_ID: 1) (DS_ID: 0)
○ Balance I/O
○ Policies
○ File, iSCSI, LVM, VMFS
"NAS" "NAS"
● Image distribution
○ System Datastore
○ Shared/Distributed FS
○ SSH
○ iSCSI
○ LVM
○ Ceph
The OpenNebula Project
13. Building an IaaS Cloud: Storage (Datastores)
Shared Datastore
The OpenNebula Project
14. Building an IaaS Cloud: Storage (Datastores)
SSH Datastore
The OpenNebula Project
15. Building an IaaS Cloud: Storage (Images)
Images
● Files vs Block devices
○ Performance Image Datastore System Datastore
(DS_ID: 1) (DS_ID: 0)
○ Management
● Types
○ Golden Images
"NAS" "NAS"
○ Persistent
○ Volatile
● Context
CD-ROM with
custom data
Disk images
The OpenNebula Project
16. Building an IaaS Cloud: Virtualization
Virtualization
● Virtual Machine Templates
○ Capacity
○ Disks, NICs, etc... VM VM
○ Other (VNC, OS,...)
Hypervisor
● Support VM operations
○ Suspend/Power Off
○ Stop/Undeploy
○ Reboot/Destroy
○ Shutdown
○ Resume
○ Migration (live)
○ Attach/Detach - NIC/Disk
○ Snapshotting
● Hypervisor
○ Agnostic
○ Xen, KVM and VMware
The OpenNebula Project
18. The Cloud Integrator Perspective
How to Develop Drivers
Drivers
Cloud
CLI GUI
Servers
● Small scripts for each action
OCA (Ruby, Java) Scheduler
● Any language (shell, Ruby, Python,...)
● Different drivers can co-exist in
XML-RPC API
heterogeneous environments
OpenNebula core
Monitoring Storage Network DB
Virtualization Images Auth
Easy to adapt
Easy to create new ones
Easy to maintain
The OpenNebula Project
19. The Cloud Integrator Perspective
How to Develop Drivers Virtualization Drivers
Cloud ● Translate the OpenNebula VM life-cycle
CLI GUI management into specific hypervisor
Servers
operations
OCA (Ruby, Java) Scheduler
Monitoring Drivers
XML-RPC API
● Gather information about the physical host
and hypervisor status
OpenNebula core
Hybrid Cloud Drivers
Monitoring Storage Network DB ● Interact with an external provider instead of
Virtualization Images Auth a hypervisor
OpenNebula distribution Community contributions
The OpenNebula Project
20. The Cloud Integrator Perspective
Virtual Machine Manager Drivers
Deployment flow for KVM
Deployment ssh $host: ● write deployment file
Core
file bash kvm/deploy ● virsh create
[...]
<domain type='kvm'>
domain=$1
<name>one-1</name>
<cputune> mkdir -p `dirname $domain`
<shares>103</shares>
</cputune> cat > $domain
<memory>65536</memory>
<os> data=`virsh --connect $LIBVIRT_URI
<type arch='i686'> create $domain`
hvm
</type> if [ "x$?" = "x0" ]; then
<boot dev='hd'/> echo $data | sed 's/Domain //' |
</os> sed 's/ created from .*$//'
else
<devices>
error_message "Could not create"
... " domain from $domain"
</devices> exit -1
</domain> fi
The OpenNebula Project
21. The Cloud Integrator Perspective
Virtual Machine Manager Drivers
Virtualization Driver Example:
Hypervisor: Xen
Action: migrate
Description: live-migrates a running VM to the specified Host
The OpenNebula Project
22. The Cloud Integrator Perspective
How to Develop Drivers Image & Storage Drivers
Cloud ● Create or Import new Images into the
CLI GUI
Servers Image Repository
Scheduler ● File management between the Image
OCA (Ruby, Java)
Repository and the physical hosts
XML-RPC API
OpenNebula core
Monitoring Storage Network DB
Virtualization Images Auth
OpenNebula distribution Community contributions
● Shared FS (nfs, gluster, lustre, ...)
● LVM
● iSCSI (tgt)
● SSH
● HTTP
● Ceph
The OpenNebula Project
25. The Cloud Integrator Perspective
How to Interact with OpenNebula
XML-RPC
Cloud
CLI GUI ● Simple, fast
Servers
● Works in any language
OCA (Ruby, Java) Scheduler
XML-RPC API OCA (OpenNebula Cloud API)
● High level bindings
● Complete functionality
OpenNebula core ● Ruby, Java, Python
Monitoring Storage Network DB
Virtualization Images Auth
OpenNebula distribution Community Contributions
Administrator GUI User GUI
OCCI
●
Cloud APIs
CDMI
●
OVF
●
The OpenNebula Project
26. The Cloud Integrator Perspective
How to Interact with OpenNebula
OCA Ruby Example:
Shutdown all my Virtual Machines
The OpenNebula Project
27. Tools for Users and Administrators
OpenNebulaApps
Manage services Automatic installation of Host your own
software stacks marketplace
Service Example App Example
{"name": "my_service", {"name": "wordpress",
"deployment": "run_list": [
"straight", "recipe[mysql::server]",
"roles": [ "recipe[wordpress]"
{ ],
"name": "frontend", "wordpress": {
"vm_template": 0 "db": {
}, "database": "${WP_DB_NAME}",
{ "user": "${WP_DB_USER}",
"name": "db_master", "password": "${WP_DB_PASSWORD}"
"parents": [ }
"frontend" },
], "mysql": {
"vm_template": 1 "server_root_password":
}] "${DB_PASSWORD}"
} }
The OpenNebula Project }
28. Join our growing community!
I Like OpenNebula, what can I do?
Help us make OpenNebula even better by... Community Activity
● Use OpenNebula! give us feedback ● Contributions by users: RIM, Akamai, Logica,
● Join our mailing list
FermiLab, SARA, Terradue…
● Report bugs or features at development at dev.
opennebula.org ● > 100 in opennebula.org/about:contributors
● Translate OpenNebula ● ~ 500 in dev.opennebula.org
● Share your Virtual Appliances ● Sunstone in 17 languages
● Use 'master'
● Components in the ecosystem by RIM, China
● Write howto's
Mobile…
● Share your use cases
● Submit patches
● Maintain OpenNebula in your distro of choice
IRC Channel
● #opennebula on irc.freenode.net
The OpenNebula Project
29. What is OpenNebula?
Try OpenNebula
Cloud Sandbox - Virtual Appliance
A real cloud in your laptop under 5 minutes by downloading a pre-
configured automated installation of OpenNebula.
opennebula.org/cloud:tryout
Available Platforms
● Amazon
● VirtualBox
● VMWare
● KVM
The OpenNebula Project
30. OpenNebula Tutorial @ Loadays
OpenNebula Tutorial
Tomorrow at 09.30 Room 3
Bring VirtualBox or KVM or VMware if
possible!!
The OpenNebula Project
31. Questions?
We Will Be Happy to Answer any Question
TL; DR: OpenNebula is awesome, go check it out!
@opennebula
The OpenNebula Project
32. History of the Project
A Project Aimed at Building the Industry Standard Open Cloud Management Tool
Third party scalability
●Develop & innovate tests: 16,000 VMs
●Support the community
●Collaborate Commercial Support
TP v1.0 v1.2 v1.4 v2.0 v2.2 V3.0 V3.2 V3.4 V3.6 V3.8
2005
2008 2009 2010 2011 2012 2013
Research
Project
5,000 CentOS
downloads/month
European Funding
The OpenNebula Project
33. About the Project
Differentiating Factors in the Market
● Focus on enterprise data center virtualization
● Rich functionality for private clouds: on-demand provision of virtual data
centers, self-service portal and catalog, clustering, fault tolerance…
● Wide integration capabilities with data center services: monitoring,
computing, storage, networking, chargeback, authentication…
● Service management with automatic installation and configuration of
software stacks, multi-tier service catalog and provision…
● External cloud connectors for hybrid cloud computing
● Delivered as a production-proven, packaged product with single installing
and upgrade process
● Direct support from developers
The OpenNebula Project