0% found this document useful (0 votes)
186 views

Comparing Open Source Private Cloud Platforms Presentation

This document compares four open source private cloud (IaaS) platforms: OpenStack, Eucalyptus, CloudStack, and Ganeti. It discusses the history and components of each platform. For storage, VM images, self-service features, networking, and other factors, the platforms are compared side-by-side in tables. OpenStack is best for large deployments, Eucalyptus for hybrid cloud compatibility, CloudStack for customized private clouds, and Ganeti for small clusters requiring fault tolerance. There is no single best solution, as each platform solves different problems, so evaluating user needs is important.

Uploaded by

dommallylas469
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
186 views

Comparing Open Source Private Cloud Platforms Presentation

This document compares four open source private cloud (IaaS) platforms: OpenStack, Eucalyptus, CloudStack, and Ganeti. It discusses the history and components of each platform. For storage, VM images, self-service features, networking, and other factors, the platforms are compared side-by-side in tables. OpenStack is best for large deployments, Eucalyptus for hybrid cloud compatibility, CloudStack for customized private clouds, and Ganeti for small clusters requiring fault tolerance. There is no single best solution, as each platform solves different problems, so evaluating user needs is important.

Uploaded by

dommallylas469
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

Comparing Open Source Private Cloud (IaaS) Platforms

Lance Albertson OSU Open Source Lab Associate Director of Operations [email protected] / @ramereth

About me
OSU Open Source Lab Server hosting for Open Source Projects Open Source development projects Gentoo Developer Sysadmin Jazz trumpeter

Disclaimer

What I'll Cover


Compare 4 IaaS Platforms IaaS Components Discuss Strengths / Weaknesses Provide best uses for each platform NOT covering PaaS or SaaS platforms

Background Experience
Used Xen+iSCSI for several years Researched an alternative tool Picked Ganeti+KVM 3 years ago Have had excellent experience for our use case Created web front-end for Ganeti Looking at augmenting services with OpenStack

Current State of Private IaaS

Many options AWS API support Maturity of the projects Solving different problems Complexity of the platform Differences in backend architecture

What do you want in an IaaS?


Ease of use Fault tolerance Low-cost of entry/maintenance Performance Ease of expansion API provisioning Compatibility with other platforms Agility / Fast provisioning

Major components of IaaS


Storage VM Image management Self service / Web interface Networking Fault tolerance User management API / Hybrid Cloud Readiness Installation / Maintenance

Platforms I'm comparing

OpenStack History
Joint project with Rackspace & NASA Launched in June 2010 Enable anyone to create and offer cloud computing services Many corporations joined

OpenStack Components

Nova (compute) Swift (object storage) Glance (image service) Keystone (identity management) Horizon (gui interface)

Eucalyptus History
Started as a research project at UC Santa Barbara Company founded in 2009 to commercialize the project Split into two editions:
Open-core Open source

June 2012 back to fully open source

Eucalyptus Components
Cloud Controller (CLC)
Manages the virtualization resources and APIs Provides web interface

Walrus (S3 storage) Cluster Controller (CC)


Controls execution of VMs and their networking

Storage Controller (SC)


Provides block-level storage to VMs (EBS)

Node Controller (NC)


Controls VMs via hypervisors

CloudStack History

Originally developed by Cloud.com Open Sourced in May 2010 (GPLv3) Citrix purchased Cloud.com in Aug 2011 Donated to ASF in Feb 2012

CloudStack Components

Management Server Hypervisor Nodes Storage Nodes Layers: Zone, Pod, Cluster, Host, Primary Storage, Secondary Storage

Ganeti History
Started as internal Google Open sourced in August 2007 Used primarily for back-office servers for Google Focus on hardware fault-tolerance Local block-level storage Cheap commidity hardware

Ganeti Components

Master daemon
Controls overall cluster coordination

Node daemon
Controls node functions (storage, VMs, etc)

Conf daemon
Provide a fast way to query configuration

API daemon - Provide a remote API Htools - Auto-allocation & rebalancing tools

Component Comparison

Storage Comparison
Type
Disk Images Block devices Fault Tolerance

OpenStack
yes yes [2] yes [5]

Eucalyptus
yes yes [2] yes [6]

CloudStack
yes yes [3] yes [7]

Ganeti
yes [1] yes [4] yes

1. 2. 3. 4. 5. 6. 7.

Disk Image support has limitations Via an elastic block storage service iSCSI, OCFS2, CLVM (depends on hypervisor) Primary storage method, also has sharedfs support Uses rsync in the backend Not added until version 3.0, uses DRBD Parts are built-in, Storage is on your own

VM Image Comparison
Type
Image Service Self Service [1] Amazon API

OpenStack
yes yes yes [3]

Eucalyptus
yes yes yes

CloudStack
yes yes yes

Ganeti
no no [2] no

1. Ability for users to create and manage their own VM images 2. Third-party applications can offer this 3. Some support

Self Service Comparison


Type
Web Interface Users & Quotas Console access User management

OpenStack
yes yes yes yes

Eucalyptus
yes yes yes yes

CloudStack
yes yes yes yes

Ganeti
yes [1] yes [1] yes [1] yes [1]

1.

Available via third-party application Ganeti Web Manager

Networking Comparison
Type
Auto-allocation Floating IPs User defined Layer 2

OpenStack
yes yes yes yes

Eucalyptus
yes yes yes yes

CloudStack
yes yes yes yes

Ganeti
no [1] no no no

1. Proposal submitted but not yet implemented

Other factors
OpenStack
Codebase Hypervisors Installation Requirements Maintenance [1] Python Xen, KVM, UML, LXC, VMware Medium Many components to maintain

Eucalyptus
Java, C Xen, KVM, VMware Large Depends on your size

CloudStack
Java Xen, KVM, VMware, Citrix XenServer Medium/Large Medium

Ganeti
Python, Haskell, Shell Xen, KVM, LXC Low Easy

1.

Base on my observation and opinion

Ease of Installation
Included via distribution Amount of upfront configuration needed for a base install Ease of initialization of a cluster
OpenStack
Included in Ubuntu Lots of configuration required Puppet Labs Module

Eucalyptus
Excellent Install Guide Yum/Apt repos

CloudStack
Provide their own repos Excellent install guide

Ganeti
Included in Debian/Ubuntu Good Docs

Few commands for initialization

Minimal configuration needed

Simple initialization

Strengths / Weaknesses
OpenStack
Young codebase Uncertain future Weakness Initial configuration

Eucalyptus
Install requirements Configurable but not very customizable Community Inclusion

CloudStack
Very GUI centric Single java core

Ganeti
Admin centric VM Deployment No AWS integration

AWS integration weak

Single codebase

Excellent commercial support Fault-tolerance Offers a hybrid-cloud solution with AWS

Well-rounded GUI

Fault-tolerance built-in Customizable Very simple to manage and maintain

Strengths

Growing community Corporate support

Stack is fairly simple Customization of the storage backend

Which platform do you choose?


Size of deployment Types of services to be hosted User-base Hardware/Budget limitations Complexity of the system Fault tolerance importance Compatibility with other clouds

Summary of Comparisons
OpenStack
Philosophy public & private cloud, standardized API Some AWS Large group of machines for lots of users

Eucalyptus
hybrid private/public cloud compatibility Excellent AWS Large group of machines for lots of semi-trusted users Good with recent versions

CloudStack
Private, highly customized cloud, standardized API Some AWS Medium group of machines for semi-trusted users Some built-in

Ganeti
Private, node failure tolerant, local storage None Smaller group of machines for highly trusted users with fault tolerance Fully tolerant / Designed

Public Cloud Compatibility Ideal Setting

Fault-tolerance

Some built-in

Choosing Openstack

Very young project Lots of corporate backing Codebase is simplified (python only) Excellent for large deployments Web interface is young, limited Only use the components you need Medium complexity Excellent APIs

Choosing Eucalyptus

Fairly mature project Lots of features Codebase is complicated Complex installation requirements Great commercial support Excellent hybrid-cloud platform Re-focused effort back to Open Source

Choosing CloudStack
No Distribution Support Lots of features Medium complexity to setup Fault-tolerance built into parts AWS compatibility is weak Monolithic component architecture Recent ownership shifts Used by several large hosting providers

Choosing Ganeti
Fault tolerance built-in Ideal for smaller clusters Less complex, but less featureful No EC2 compatibility Better performance Local storage Only solves the compute problem Can be augmented with GlusterFS & other third-party applications

What about the others?


OpenNebula - HPC community Nimbus - Scientific community oVirt - libvirt

No single winner or loser


Solving different problems No perfect solution for everything Try each platform out first Map out what your end goal is Think about: scalability manageability fault-tolerance

Questions?
Lance Albertson [email protected] @ramereth http://lancealbertson.com

You might also like