LINUXCON EUROPE 2012
                                        Barcelona, November 5th




         Building IaaS Clouds and the Art of Virtual
          Machine Management: A Practical Guide
                      with OpenNebula
                                                Rubén S. Montero
                                               rsmontero@opennebula.org
                                                    OpenNebula.org


                                                    @ruben_s_montero




© OpenNebula Project. Creative Commons Attribution-NonCommercial-ShareAlike License
Contents


● What is OpenNebula?

● Design Principles & Vision

● The Anatomy of an IaaS Cloud

● Building an IaaS Cloud: A single node example

● Lessons Learned
What is OpenNebula?
     Public Cloud                            Private
                                             Cloud
  Simple Web Interface                A Cloud behind a firewall
  Infrastructure Resources            Security Concerns
  Elastic & “infinite”                Improve Operations




            Hybrid Cloud / CloudBursting
              Supplement Capacity of the
              Private
              Utility Computing for Real
What is OpenNebula?
                           Image Management
Monitoring & Scheduling
                                  Networking
                                               Multi-tenancy
              Interfaces & APIs




  VM VM VM VM                              VM VM VM VM
        Hypervisor

  Physical Hardware
                        ..                       Hypervisor

                                           Physical Hardware
 Host                                     Host
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




Network                                                 Storage
● VLAN                                                  ● VM disks (file & block)
● Firewalling                                           ● Image Distribution
● Multiple Technologies                                 ● Multiple Backends



                                           Multi-tenancy
                                           ● AAA Services
                                           ● Scheduling
                                           ● Permissions & roles
    Compute Hosts
    ● Grouped in logical clusters
    ● Multiple hypervisors
    ● Monitoring
Building an IaaS Cloud: A single node example



 Image Datastore   System Datastore
   (DS_ID: 1)         (DS_ID: 0)




     "NAS"              "NAS"
                                       wlan0
                                               Internet
                                vbr0
  VM         VM
               KVM

  My Laptop
Building an IaaS Cloud: Tools & Interfaces

Tools
 ●   DevOps vs Users
 ●   Command Line Interface
                              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                   HOST   HOST   HOST
 ●   Cluster
      ○ Logical set of:

         ■ Storage

         ■ Network

         ■ Hosts

      ○ Deal with heterogeneity
Building an IaaS Cloud: Storage

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
Building an IaaS Cloud: Network

 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
Building an IaaS Cloud: Network

 Networks
  ●   Define a MAC-IP address
      space
  ●   Layer 2 Isolation (drivers)
       ○  802.1Q (Tagging)
       ○  OpenvSwitch                                    vbr0
       ○  ebtables                  VM   VM     VR
       ○  Flat
  ●   Layer 3 simple firewalling
       ○  TCP/UDP ports
                                              Internet
       ○  ICMP's
  ●   Virtual Router
Building an IaaS Cloud: Virtualization

 Virtualization
  ●   Virtual Machine Templates
       ○  Capacity
       ○  Disks                   VM   VM
       ○  NICs
                                        Hypervisor
       ○  Other (VNC, OS,...)
  ●   Support VM operations
       ○  Stop/Resume
       ○  Migration (live)
       ○  Attach/Detach
       ○  Shutdown/Reboot/Reset
  ●   Hypervisor
       ○  Agnostic
       ○  Xen, KVM and VMware
Building an IaaS Cloud: Misc Services

 AuthZ, AuthN & Acct.
  ●   Multi-tenancy
       ○ Groups
       ○ Permissions & ACLs
  ●   Authentication
       ○ X509                 Core & Scheduler
       ○ SSH Keys
                              ●   OpenNebula core
       ○ LDAP
                                  daemon
       ○ Internal
                                   ○ Orchestration
  ●   Authorization
                                   ○ Driver based
       ○ Quotas
                                   ○ Fast & Robust (C++)
  ●   Accounting (Billing)
                              ●   Scheduler
                                   ○ Matchmaking
Building an IaaS Cloud: Misc Services

Marketplace
                                  Marketplace
 ●   Ready-to-use Image Sharing
 ●   Store meta-data
 ●   Images stored elsewhere
 ●   Meeting point Devs & Users
 ●   "one-click" deployment
Building an IaaS Cloud: Integration at a Glance
Building an IaaS Cloud: Integration at a Glance
History of the Project

                                     Third party scalability
  ●   Develop & innovate             tests: 16000 VMs
  ●   Support the community
  ●   Collaborate                              Commercial Support


         TP                                                        v3.2 3.4 3.8
              v1.0     v1.2   v1.4           v2.0      v2.2 v3.0


2005 2008            2009       2010                2011        2012
dsa group doing
  research…


                                                         4,000
                                                    downloads/month
                  European Funding
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/one

     @opennebula         dev.opennebula.org
Backup: Survey - Deployment Size
Backup: Survey - Hypervisor
Backup: Survey - Distro
Backup: Survey - Storage

Building IaaS Clouds and the Art of Virtual Machine Management: A Practical Guide with OpenNebula

  • 1.
    LINUXCON EUROPE 2012 Barcelona, November 5th Building IaaS Clouds and the Art of Virtual Machine Management: A Practical Guide with OpenNebula Rubén S. Montero rsmontero@opennebula.org OpenNebula.org @ruben_s_montero © OpenNebula Project. Creative Commons Attribution-NonCommercial-ShareAlike License
  • 2.
    Contents ● What isOpenNebula? ● Design Principles & Vision ● The Anatomy of an IaaS Cloud ● Building an IaaS Cloud: A single node example ● Lessons Learned
  • 3.
    What is OpenNebula? Public Cloud Private Cloud Simple Web Interface A Cloud behind a firewall Infrastructure Resources Security Concerns Elastic & “infinite” Improve Operations Hybrid Cloud / CloudBursting Supplement Capacity of the Private Utility Computing for Real
  • 4.
    What is OpenNebula? Image Management Monitoring & Scheduling Networking Multi-tenancy Interfaces & APIs VM VM VM VM VM VM VM VM Hypervisor Physical Hardware .. Hypervisor Physical Hardware Host Host
  • 5.
    Design Principles andVision ● 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
  • 6.
    The Anatomy ofan IaaS Cloud 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 in logical clusters ● Multiple hypervisors ● Monitoring
  • 7.
    Building an IaaSCloud: A single node example Image Datastore System Datastore (DS_ID: 1) (DS_ID: 0) "NAS" "NAS" wlan0 Internet vbr0 VM VM KVM My Laptop
  • 8.
    Building an IaaSCloud: Tools & Interfaces Tools ● DevOps vs Users ● Command Line Interface Command Line Interface ● GUI ○ Sunstone ○ Self-service ● Cloud API's ○ EC2 Query API ○ OCCI
  • 9.
    Building an IaaSCloud: Hosts Host Management ● Monitoring ○ Simple - SSH probes ○ Ganglia HOST HOST HOST ● Cluster ○ Logical set of: ■ Storage ■ Network ■ Hosts ○ Deal with heterogeneity
  • 10.
    Building an IaaSCloud: Storage 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
  • 11.
    Building an IaaSCloud: Network 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
  • 12.
    Building an IaaSCloud: Network Networks ● Define a MAC-IP address space ● Layer 2 Isolation (drivers) ○ 802.1Q (Tagging) ○ OpenvSwitch vbr0 ○ ebtables VM VM VR ○ Flat ● Layer 3 simple firewalling ○ TCP/UDP ports Internet ○ ICMP's ● Virtual Router
  • 13.
    Building an IaaSCloud: Virtualization Virtualization ● Virtual Machine Templates ○ Capacity ○ Disks VM VM ○ NICs Hypervisor ○ Other (VNC, OS,...) ● Support VM operations ○ Stop/Resume ○ Migration (live) ○ Attach/Detach ○ Shutdown/Reboot/Reset ● Hypervisor ○ Agnostic ○ Xen, KVM and VMware
  • 14.
    Building an IaaSCloud: Misc Services AuthZ, AuthN & Acct. ● Multi-tenancy ○ Groups ○ Permissions & ACLs ● Authentication ○ X509 Core & Scheduler ○ SSH Keys ● OpenNebula core ○ LDAP daemon ○ Internal ○ Orchestration ● Authorization ○ Driver based ○ Quotas ○ Fast & Robust (C++) ● Accounting (Billing) ● Scheduler ○ Matchmaking
  • 15.
    Building an IaaSCloud: Misc Services Marketplace Marketplace ● Ready-to-use Image Sharing ● Store meta-data ● Images stored elsewhere ● Meeting point Devs & Users ● "one-click" deployment
  • 16.
    Building an IaaSCloud: Integration at a Glance
  • 17.
    Building an IaaSCloud: Integration at a Glance
  • 18.
    History of theProject Third party scalability ● Develop & innovate tests: 16000 VMs ● Support the community ● Collaborate Commercial Support TP v3.2 3.4 3.8 v1.0 v1.2 v1.4 v2.0 v2.2 v3.0 2005 2008 2009 2010 2011 2012 dsa group doing research… 4,000 downloads/month European Funding
  • 19.
    Lessons Learned Donot 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
  • 20.
    Join us atwww.opennebula.org #opennebula OpenNebula/one @opennebula dev.opennebula.org
  • 21.
    Backup: Survey -Deployment Size
  • 22.
    Backup: Survey -Hypervisor
  • 23.
  • 24.