building iaas clouds and the art of virtual machine management: a practical guide with opennebula
DESCRIPTION
TRANSCRIPT
LINUXCON EUROPE 2012Barcelona, November 5th
Rubén S. [email protected]
OpenNebula.org
© OpenNebula Project. Creative Commons Attribution-NonCommercial-ShareAlike License
Building IaaS Clouds and the Art of VirtualMachine Management: A Practical Guide
with OpenNebula
@ruben_s_montero
● What is OpenNebula?
● Design Principles & Vision
● The Anatomy of an IaaS Cloud
● Building an IaaS Cloud: A single node example
● Lessons Learned
Contents
What is OpenNebula?
Simple Web Interface
Infrastructure Resources
Elastic & “infinite”
Public Cloud
A Cloud behind a firewall
Security Concerns
Improve Operations
Private Cloud
Hybrid Cloud / CloudBursting
Supplement Capacity of the Private
Utility Computing for Real
What is OpenNebula?
Physical Hardware
Hypervisor
VM VM VM VM
Host
..
.Physical Hardware
Hypervisor
VM VM VM VM
Host
Monitoring & SchedulingImage Management
Multi-tenancyInterfaces & APIs
Networking
Design Principles and Vision
● Flexible: One solution can not fit all data-centers
● Simple: just-what-you-need components & simple protocols
● Scalable: single instance & multi-tier architectures
● Open Source: Apache License v2.0
● Provide basic components, but easily hack by others
The Anatomy of an IaaS Cloud
Interfaces, Tools & API● CLI & Sunstone (GUI)● API● Cloud (EC2,OCCI)● Service Management & Catalogs
Storage● VM disks (file & block)● Image Distribution● Multiple Backends
Compute Hosts● Grouped in logical clusters● Multiple hypervisors● Monitoring
Multi-tenancy● AAA Services● Scheduling● Permissions & roles
Network● VLAN● Firewalling● Multiple Technologies
Building an IaaS Cloud: A single node example
"NAS"
Image Datastore(DS_ID: 1)
KVM
VM
"NAS"
System Datastore(DS_ID: 0)
wlan0
vbr0Internet
VM
My Laptop
Building an IaaS Cloud: Tools & Interfaces
Command Line Interface
Tools● DevOps vs Users● Command Line Interface● GUI
○ Sunstone○ Self-service
● Cloud API's○ EC2 Query API○ OCCI
Building an IaaS Cloud: Hosts
Host Management● Monitoring
○ Simple - SSH probes○ Ganglia
● Cluster○ Logical set of:
■ Storage■ Network■ Hosts
○ Deal with heterogeneity
HOST HOST HOST
Building an IaaS Cloud: Storage
Storage● Datastore
○ Image store○ Balance I/O○ Policies○ File, iSCSI, LVM, VMFS
● Image distribution○ System Datastore○ Shared/Distributed FS○ SSH○ iSCSI○ LVM
"NAS"
Image Datastore(DS_ID: 1)
"NAS"
System Datastore(DS_ID: 0)
Building an IaaS Cloud: Network
"NAS"
Image Datastore(DS_ID: 1)
"NAS"
System Datastore(DS_ID: 0)
Images● Files vs Block devices
○ Performance○ Management
● Types○ Golden Images○ Persistent○ Volatile
● Context
CD-ROM with custom dataDisk images
Building an IaaS Cloud: Network
Networks● Define a MAC-IP address
space● Layer 2 Isolation (drivers)
○ 802.1Q (Tagging)○ OpenvSwitch○ ebtables○ Flat
● Layer 3 simple firewalling○ TCP/UDP ports○ ICMP's
● Virtual Router
VMvbr0
VM VR
Internet
Building an IaaS Cloud: Virtualization
Virtualization● Virtual Machine Templates
○ Capacity○ Disks○ NICs○ Other (VNC, OS,...)
● Support VM operations○ Stop/Resume○ Migration (live)○ Attach/Detach○ Shutdown/Reboot/Reset
● Hypervisor○ Agnostic○ Xen, KVM and VMware
Hypervisor
VM VM
Building an IaaS Cloud: Misc Services
AuthZ, AuthN & Acct.● Multi-tenancy
○ Groups○ Permissions & ACLs
● Authentication○ X509○ SSH Keys○ LDAP○ Internal
● Authorization○ Quotas
● Accounting (Billing)
Core & Scheduler● OpenNebula core
daemon○ Orchestration○ Driver based○ Fast & Robust (C++)
● Scheduler○ Matchmaking
Building an IaaS Cloud: Misc Services
Marketplace● Ready-to-use Image Sharing● Store meta-data● Images stored elsewhere● Meeting point Devs & Users● "one-click" deployment
Marketplace
Building an IaaS Cloud: Integration at a Glance
Building an IaaS Cloud: Integration at a Glance
2005 2008 2009 2010 2011 2012
dsa group doing research…
TPv1.0 v1.2 v1.4 v2.0 v2.2 v3.0
4,000 downloads/month
European Funding
● Develop & innovate● Support the community● Collaborate
Third party scalability tests: 16000 VMs
Commercial Support
v3.2 3.4 3.8
History of the Project
Lessons Learned
Do not hide the Complexity, Architect the Cloud!● Let IT staff adapt/desgin/develop their cloud deployments
● Design to Automate
● Scale your deployments
Be Interoperable, Have a Rich set of API’s & Interfaces ● Be prepared for different uses cases (don’t look at the service)
● Be prepared to deal with different solutions (storage, virt., nets)
● Be prepared to interoperate at different levels
Join us at www.opennebula.org
@opennebula
#opennebula
dev.opennebula.org
OpenNebula/one
Backup: Survey - Deployment Size
Backup: Survey - Hypervisor
Backup: Survey - Distro
Backup: Survey - Storage