CloudOpen 2012 San Diego, USA, August 29th, 2012 The OpenNebula Cloud Platform for Data Center Virtualization Carlos Martín Project Engineer Acknowledgments The research leading to these results has received funding from Comunidad de Madrid through research grant MEDIANET S2009/TIC-1468, OpenNebula Project. Creative Commons Attribution-NonCommercial-ShareAlike License
What is OpenNebula? IaaS Cloud Computing Tool for Managing a Data Center's Virtual Infrastructure! Data Center Virtualization Manager Open-source Apache license Interoperable, based on standards Adaptable Public User Private Clouds Virtualize your on-premise infrastructure Hybrid Clouds Extend your private cloud with resources from a remote cloud provider Pubic Clouds Expose standard cloud interfaces Administrator Private User Ready for end-users Advanced user management CLI and Web Interface Physical Infrastructure Remote Provider 2/25
What is OpenNebula? A Quick Demo! Let s take a look at Sunstone! 3/25
What is OpenNebula? Appliances Ready to Run! OpenNebula Marketplace Catalog of Virtual Appliances Users and organizations can share their Appliances Fully integrated with OpenNebula Virtual Appliance Virtual machine image and configuration files Ready to run marketplace.c12g.com 4/25
The Cloud Provider Perspective What are the Main Components to Build a Cloud Infrastructure?! VM Instance Networks Public and private networks Internet Front-end Authentication Authorization ACLs, roles, groups Accounting Logging Resource quotas Hosts Multiple hypervisors Up to 500 hosts Automatic failover and HA Resource pools Automatic resource allocation Service Networks Monitoring, control Live migration Storage access Datastores VM image storage Multiple datastores Heterogeneous configurations Shared or non-shared 5/25
The Cloud Provider Perspective Broad Commodity and Enterprise Platform Support! VM Instance Networks VLAN per user (layer2) Open vswitch, 802.1q Ebtables Internet Front-end X509, LDAP, ssh keys ACLs, permissions, groups Hosts VMware, Xen KVM Service Networks SSH, Ganglia/Nagios Additional monitor agents Datastores DFS: NFS, Gluster, GlusterFS SAN: Fibre Channel, iscsi, LVM SSH 6/25
The Cloud Provider Perspective Clustering the Physical Resources! Clusters Pools of hosts that share datastores and networks Used for load balancing, high availability, and high performance computing Multiple Datastores per Cluster Balance I/O operations between storage servers Define different SLA policies (e.g. backup) and performance features for different VM types or users 7/25
The Cloud Provider Perspective Centralized Management of Multiple OpenNebula Instances (Zones)! Cloud Administrator/ Consumer ozones Server Portal Cloud API (EC2, OCCI) Global AuthN Federation of Clouds Multi-tier architecture Scalability Isolation Multiple-site support 8/25
The Cloud Provider Perspective On-demand Provision of Virtual Data Centers! Virtual Private Cloud Computing Typical scenario in large organizations and cloud providers On-demand provision of fullyconfigurable and isolated VDC with full control and capacity to administer its users and resources 9/25
The Cloud Provider Perspective Hybrid Cloud Computing! Extension of the local private infrastructure with resources from remote clouds Cloudbursting to meet peak or fluctuating demands Cloud Consumer Cloud Provider 10/25
The Cloud Provider Perspective How Can I Operate my Cloud Infrastructure?! programming APIs (create new tools and integrate), web interfaces (simplify operation), and command lined interface (create scripts) CLI API XML-RPC OCA (Ruby, Java, Python) 11/25
The Cloud Integrator Perspective The Cloud Integrator Perspective! CLI GUI Cloud Servers OCA (Ruby, Java) Scheduler XML-RPC API OpenNebula core Monitoring Storage Network DB Virtualization Images Auth Design Principles Modularity Lightness Openness Languages 12/25
The Cloud Integrator Perspective How to Develop Drivers! CLI GUI OCA (Ruby, Java) Cloud Servers XML-RPC API OpenNebula core Scheduler Drivers Small scripts for each action Any language (Shell, Ruby ) Different drivers can co-exist in heterogeneous environments Monitoring Storage Network DB Virtualization Images Auth Easy to adapt Easy to create new ones 13/25
The Cloud Integrator Perspective How to Develop Drivers! CLI Monitoring Virtualization GUI OCA (Ruby, Java) OpenNebula core Storage Images Cloud Servers XML-RPC API Network Auth Scheduler DB Virtualization Drivers Translate the OpenNebula VM lifecycle management into specific hypervisor operations Monitoring Drivers Gather information about the physical host and hypervisor status Hybrid Cloud Drivers Interact with an external provider instead of a hypervisor OpenNebula distribution Community contributions 14/25
The Cloud Integrator Perspective How to Develop Drivers! Virtualization Driver Example: Hypervisor: Xen Action: migrate Description: live-migrates a running VM to the specified Host 15/25
The Cloud Integrator Perspective How to Develop Drivers! CLI GUI OCA (Ruby, Java) Cloud Servers XML-RPC API OpenNebula core Scheduler Image & Storage Drivers Create or Import new Images into the Image Repository File management between the Image Repository and the physical hosts Monitoring Storage Network DB Virtualization Images Auth OpenNebula distribution Community contributions Shared FS LVM iscsi SSH HTTP MooseFS Market Place CDMI API scp-tsunami Swift/Glance 16/25
The Cloud Integrator Perspective How to Develop Drivers! CLI GUI OCA (Ruby, Java) Cloud Servers XML-RPC API OpenNebula core Scheduler Networking drivers Manage network configuration in the hosts Firewalling rules Network Isolation Bridge creation Monitoring Storage Network DB Virtualization Images Auth OpenNebula distribution VLAN, 802.1Q OpenvSwitch ebtables FLAT 17/25
The Cloud Integrator Perspective How to Develop Drivers! CLI GUI OCA (Ruby, Java) Cloud Servers Scheduler Authentication drivers Strong security Flexibility XML-RPC API Authorization drivers Monitoring OpenNebula core Storage Network DB Add any limitations to the user actions Virtualization Images Auth OpenNebula distribution Community contributions SSH Keypairs x509 Certificates LDAP Active Directory ACLs Quotas 18/25
The Cloud Integrator Perspective How to Interact with OpenNebula! CLI GUI OCA (Ruby, Java) Cloud Servers Scheduler XML-RPC Simple, fast Works in any language XML-RPC API OCA (OpenNebula Cloud API) OpenNebula core High level bindings Monitoring Virtualization Storage Images Network Auth DB Complete functionality Ruby, Java, Python OpenNebula distribution Community Contributions Administrator GUI User GUI Cloud APIs OCCI OVF CDMI 19/25
The Cloud Integrator Perspective How to Interact with OpenNebula! OCA Ruby Example: Shutdown all my Virtual Machines 20/25
About the OpenNebula Project A Project Aimed at Building the Industry Standard Open Cloud Management Tool! Develop & innovate Support the community Collaborate Third party scalability tests: 16000 VMs Commercial Support TP v1.0 v1.2 v1.4 v2.0 v2.2 v3.0 v3.2 3.4 3.6 2005 2008 2009 2010 2011 2012 dsa group doing research European Funding 4,000 downloads/ month 21/25
About the OpenNebula Project Open Cloud Enabler in the ICT Industry! Enabling Hosting Companies and Telcos to Offer Cloud Services Enabling Technology Companies to Offer Cloud Products Enabling Service Companies to Offer Cloud Consulting and Integration 22/25
About the OpenNebula Project Open Cloud Enabler for Building and Operating Virtualized Data Centers! Industry Supercomputing Centers Research Centers 23/25
Join our growing community! How to contribute Join our mailing list Follow the development at dev.opennebula.org Ecosystem projects OpenNebula hosts an ecosystem catalog Promote and discuss ecosystem projects in our ecosystem mailing list IRC Channel #opennebula on irc.freenode.net 24/25
Questions? We Will Be Happy to Answer any Question! TL; DR: OpenNebula is awesome, go check it out! @opennebula The research leading to these results has received funding from Comunidad de Madrid through research grant MEDIANET S2009/TIC-1468, 25/25