Sei sulla pagina 1di 87

CloudStack Overview

Written by: Chiradeep Vittal, Alex Huang @ Citrix Revised by: Gavin Lee, Zhennan Sun @ TCloud Computing

Outline

Overview of CloudStack

Problem Definition

Feature set overview

Network

Storage

MS internals

System VMs

System Interactions

Roadmap

Comparisons

What is CloudStack?

What is CloudStack? Build your cloud the way the world’s most successful clouds are built •

Build your cloud the way the world’s most successful clouds are built

Multi-tenant cloud orchestration platform

Turnkey

Hypervisor agnostic

Scalable

Secure

Open source, open standards

Deploys on premise or as a hosted solution

BSS, self service portal. (Not ASL)

Extensive networking service

Deliver cloud services faster and cheaper

CloudStack Supports Multiple Cloud Strategies

Private Clouds

Public Clouds

On-premise

Hosted

Multi-tenant

Enterprise Cloud

Enterprise Cloud

Public Cloud

Enterprise Cloud Enterprise Cloud Public Cloud • Dedicated resources • Security & total control

Dedicated

resources

Security & total control

Internal network

Managed by Enterprise or 3 rd party

network • Managed by Enterprise or 3 r d party • Dedicated resources • Security •

Dedicated

resources

Security

SLA bound

3 rd party owned and operated

• SLA bound • 3 r d party owned and operated • Mix of shared and

Mix of shared and dedicated resources

Elastic scaling

Pay as you go

Public internet, VPN access

CloudStack Provides On-demand Access to Infrastructure Through a Self-Service Portal

Org A Admin Users
Org A
Admin
Users
Org B Admin Users
Org B
Admin
Users
Users
Users

End User

Compute Network Storage
Compute
Network
Storage

Admin

Compute
Compute
Storage
Storage
Network
Network
Open Flexible Platform Hypervisor XenServerXenServer VMwareVMwareVMware OracleOracle VMVM KVMKVM BareBare metalmetal
Open Flexible Platform
Hypervisor
XenServerXenServer
VMwareVMwareVMware
OracleOracle VMVM
KVMKVM
BareBare metalmetal
Block & Object Fiber Fiber Local Disk Local Disk iSCSI iSCSI NFS NFS Swift Swift
Block & Object
Fiber
Fiber
Local Disk
Local Disk
iSCSI
iSCSI
NFS
NFS
Swift
Swift
Channel
Channel
Primary Storage
Secondary Storage
Network & Network Services Connection Connection Load Load Isolation Isolation Firewall Firewall VPN VPN
Network & Network Services
Connection
Connection
Load
Load
Isolation
Isolation
Firewall
Firewall
VPN
VPN
Type
Type
balancer
balancer

Problem Definition

Offer a scalable, flexible, manageable IAAS platform that follows established cloud computing paradigms

IAAS

Orchestrate physical and virtual resources to offer self-service infrastructure provisioning and monitoring

Scalable

1 -> N hypervisors / VMs / virtual resources

1 -> N end users

Flexible

Handle new physical resource types

Hypervisors, storage, networking

Add new APIs

Add new services

Add new network models

Problem Definition (contd)

Manageable

Hide complexity of underlying resources

Rich functional end-user and admin UI

Admin API to automate operations

Easy install, upgrade for small -> large clouds

Simple scaling, automated resilience

Established Paradigms

EC2 –inspired

Semantic variations based on cloud provider needs, hypervisor capabilities

Feature Set Overview
Feature Set Overview
Feature Set Overview

Feature Set Overview

Create Custom Virtual Machines via Service Offerings

Create Custom Virtual Machines via Service Offerings Select Operating System • Windows, Linux Select Compute Offering

Select Operating System

Windows, Linux

Offerings Select Operating System • Windows, Linux Select Compute Offering • CPU & RAM Select Disk

Select Compute Offering

CPU & RAM

Windows, Linux Select Compute Offering • CPU & RAM Select Disk Offering • Volume Size Select

Select Disk Offering

Volume Size

• CPU & RAM Select Disk Offering • Volume Size Select Network Offering • Network &

Select Network Offering

Network & Services

Create VM
Create VM

Dashboard Provides Overview of Consumed Resources

Running, Stopped & Total VMs

Public IPs

Private networks

Latest Events

of Consumed Resources • Running, Stopped & Total VMs • Public IPs • Private networks •

Virtual Machine Management

Users
Users
VMVM OperationsOperations Start Stop Restart Destroy VMVM AccessAccess
VMVM OperationsOperations Start Stop Restart Destroy VMVM AccessAccess

VMVM OperationsOperations

StartStop Restart Destroy

StopStart Restart Destroy

RestartStart Stop Destroy

DestroyStart Stop Restart

VMVM AccessAccess

VMVM OperationsOperations Start Stop Restart Destroy VMVM AccessAccess
VMVM OperationsOperations Start Stop Restart Destroy VMVM AccessAccess

VMVM StatusStatus

CPU Utilized

Network Read

Network Writes

Change

Change

Service Offering

Service Offering

2

2

CPUs

CPUs

1

1

GB RAM

GB RAM

20

20

20

20

GB

GB

Mbps

Mbps

2 2 CPUs CPUs 1 1 GB RAM GB RAM 20 20 20 20 GB GB

4

4

CPUs

CPUs

4

4

GB RAM

GB RAM

200

200

100

100

GB

GB

Mbps

Mbps

Volume & Snapshot Management

Add / Delete Add / Delete Volumes Volumes
Add / Delete
Add / Delete
Volumes
Volumes
Create Templates Create Templates from Volumes from Volumes Schedule Schedule Snapshots Snapshots
Create Templates
Create Templates
from Volumes
from Volumes
Schedule
Schedule
Snapshots
Snapshots
View Snapshot View Snapshot History History
View Snapshot
View Snapshot
History
History

VM 1

VolumeSnapshots View Snapshot View Snapshot History History VM 1 Template Volume Now Hourly Daily Weekly Monthly

Template
Template
Volume
Volume

Now

Hourly

Daily

Weekly

Monthly

….View Snapshot View Snapshot History History VM 1 Volume Template Volume Now Hourly Daily Weekly Monthly

View Snapshot View Snapshot History History VM 1 Volume Template Volume Now Hourly Daily Weekly Monthly

Network & Network Services

• •

• •

• •

Create Networks and attach VMs

Create Networks and attach VMs

Acquire public IP address for NAT &

Acquire public IP address for NAT &

load balancing

load balancing

Control traffic to VM using ingress

Control traffic to VM using ingress

and egress firewall rules

and egress firewall rules

• •

Set up rules to load balance traffic

Set up rules to load balance traffic

between VMs

between VMs

rules • • Set up rules to load balance traffic Set up rules to load balance

CloudStack Deployment Architecture

Internet CloudStack Management Server Zone 1 L3 core Pod 1 Pod N Access Layer Secondary
Internet
CloudStack
Management
Server
Zone 1
L3 core
Pod 1
Pod N
Access
Layer
Secondary
….
Storage
Cluster N
….
Cluster 1
HostHost 11
Primary
Storage
HostHost 22

Hypervisor is the basic unit of scale.

Cluster consists of one ore more hosts of same hypervisor

All hosts in cluster have access to shared (primary) storage

Pod is one or more clusters, usually with L2 switches.

Availability Zone has one or more pods, has access to secondary storage.

One or more zones represent cloud

CloudStack Cloud Architecture

CloudCloud Data Center 1 Data Center 2 Data Center 2 Data Center 3 Zone1 Zone
CloudCloud
Data Center 1
Data Center 2
Data Center 2
Data Center 3
Zone1
Zone 2
Zone 2
Zone 3
Zone Zone 4 3
Data Center 2
Data Center 2
Data Center 2
Zone 2
Zone 2
Zone Zone 2 3
Zone 3
Zone 3

CloudStack Cloud can have one or more Availability Zones (AZ).

Management Server Managing Multiple Zones

CloudCloud Data Center 1 Data Center 2 Data Center 2 Data Center 3  Single
CloudCloud
Data Center 1
Data Center 2
Data Center 2
Data Center 3
 Single Management Server can
manage multiple zones
Mgmt
Mgmt
Server
Server
Zone1
Zone 2
Zone 2
Zone 3
Zone Zone 4 3
 Zones can be geographically
distributed but low latency links are
expected for better performance
 Single MS node can manage up to
10K hosts.
Data Center 2
Data Center 2
Data Center 2
 Multiple MS nodes can be deployed
as cluster for scale or redundancy
Zone 2
Zone 2
Zone Zone 2 3
Zone 3
Zone 3

Management Server Deployment Architecture

Single-node Multi-node Deployment Deployment MSMS User API User API Load MSMS MySQL MSMS Balancer DB
Single-node
Multi-node
Deployment
Deployment
MSMS
User API
User API
Load
MSMS
MySQL
MSMS
Balancer
DB
Admin API
Admin API
MySQL
DB
MSMS
 MS is stateless. MS can be deployed
as physical server or VM
Infrastructure
 Single MS node can manage up to
10K hosts. Multiple nodes can be
deployed for scale or redundancy
Infrastructure
Resources
Resources
 Commercial: RHEL 5.4+; FOSS:
Ubuntu 10.0.4, Fedora 16
Back Up DB
Back Up
DB

Replication

CloudStack Storage

Primary Storage

Configured at Cluster-level. Close to hosts for better performance

Stores all disk volumes for VMs in a cluster

Cluster can have one or more primary storages

Local disk, iSCSI, FC or NFS

Secondary Storage

Configured at Zone-level

Stores all Templates, ISOs and Snapshots

Zone can have one or more secondary storages

NFS, OpenStack Swift

L3L3 switchswitch Pod 1 L2L2 switchswitch Secondary Cluster 1 Storage HostHost 11 Primary Storage HostHost
L3L3 switchswitch
Pod 1
L2L2 switchswitch
Secondary
Cluster 1
Storage
HostHost 11
Primary
Storage
HostHost 22

Core CloudStack Components

Hosts

Servers onto which services will be provisioned

Primary Storage

VM storage

Cluster

A grouping of hosts and their associated storage

Pod

Collection of clusters

Network

Within the same L2 switch

Secondary Storage

Template, snapshot and ISO storage

Zone

Collection of pods, network offerings and secondary storage

Management Server Farm

Responsible for all management and provisioning tasks

VM Host VM Host Primary Storage Cluster Secondary Cluster Storage Network CloudStackCloudStack PodPod
VM
Host
VM
Host
Primary
Storage
Cluster
Secondary
Cluster
Storage
Network
CloudStackCloudStack PodPod
CloudStackCloudStack PodPod
ZoneZone

Understanding the Role of Storage and Templates

Host Host Primary Storage Cluster PodPod Secondary Storage ZoneZone
Host
Host
Primary Storage
Cluster
PodPod
Secondary Storage
ZoneZone

Primary Storage

Cluster level storage for VMs

Connected directly to hosts

NFS, iSCSI, FC and Local

Secondary Storage

Zone level storage for template, ISOs and snapshots

NFS or OpenStack Swift via CloudStack System VM

Templates and ISOs

Imported into CloudStack

Can be private or public

Template
Template

Provisioning Process

1. User Requests Instance

2. Provision Optional Network Services

3. Copy instance template from secondary storage to primary storage on appropriate cluster

4. Create any requested data volumes on primary storage for the cluster

5. Create instance

6. Start instance

VM Host Host Primary Storage Cluster PodPod Template Secondary Storage ZoneZone
VM
Host
Host
Primary Storage
Cluster
PodPod
Template
Secondary Storage
ZoneZone

Citrix XenServer

Integrates directly with XenServer Pool Master

Snapshots at host level

System VM control channel at host level

Network management is host level

CloudStack Manager XenServer Pool Master Host XenServer Host XenServer Host XenServer Host XenServer Host
CloudStack
Manager
XenServer Pool
Master Host
XenServer Host
XenServer Host
XenServer Host
XenServer Host
XenServer
Resource Pool

Oracle VM

Integrates with ovs-agent

Snapshots at host level

System VM control channel at host level

Network management is host level

Does not use OVM Manager

All templates must be from Oracle

CloudStack configures ocfs2 nodes

Requires “helper” cluster

XenServer, KVM or vSphere

CloudStack Manager OVS Agent OVM Host OVS Agent OVM Host OVS Agent OVM Host OVS
CloudStack
Manager
OVS Agent
OVM Host
OVS Agent
OVM Host
OVS Agent
OVM Host
OVS Agent
OVM Host

RedHat Enterprise Linux (KVM)

Integrates with libvirt using Cloud Agent

Snapshots at host level

System VM control channel at host level

Network management is host level

Only RHEL 6, not RHEV

Also supports Ubuntu 10.04

CloudStack Manager Cloud Agent Libvirt KVM Host Cloud Agent Libvirt KVM Host
CloudStack
Manager
Cloud Agent
Libvirt
KVM Host
Cloud Agent
Libvirt
KVM Host

VMware vSphere

Integration through vCenter

System VM control channel via CloudStack private network

Snapshot and volume management via Secondary Storage VM

Networking via vSphere vSwitch

CloudStack Manager vSphere Host vCenter vSphere Host vSphere Cluster vSphere Host vSphere Host vSphere Host
CloudStack
Manager
vSphere Host
vCenter
vSphere Host
vSphere Cluster
vSphere Host
vSphere Host
vSphere Host
vSphere Cluster
Data Center

Management Server Interaction with Hypervisors

Management Management Server Server XAPI HTTPS vCentervCenter Agent Agent XenServerXenServer KVMKVM OOVMVM
Management
Management
Server
Server
XAPI
HTTPS
vCentervCenter
Agent
Agent
XenServerXenServer
KVMKVM
OOVMVM
ESXESX

XS 5.6, 5.6FP1, 5.6 SP2, 6.0

ESX 4.1, 5.0 (coming)

Incremental Snapshots

Full Snapshots

VHD

VMDK

NFS, iSCSI, FC & Local disk

NFS, iSCSI, FC & Local disk

Storage over-provisioning:

Storage over-provisioning:

NFS

NFS, iSCSI

RHEL 6.0, 6.1, 6.2 (coming)

OVM 2.2

Full Snapshots (not live)

No Snapshots

QCOW2

RAW

NFS, iSCSI & FC

NFS & iSCSi

Storage over-provisioning:

No storage over- provisioning

NFS

Multi-tenancy & Account Management

Cloud Resources Domain VMs, IPs, Snapshots… Org A Admin Domain Reseller A Admin Resources Sub-Domain
Cloud
Resources
Domain
VMs, IPs, Snapshots…
Org A
Admin
Domain
Reseller A
Admin
Resources
Sub-Domain
VMs, IPs, Snapshots…
Org C
Admin
Account
Group A
Account
Group B
User 1
User 2

Domain is a unit of isolation that represents a customer org, business unit or a reseller

Domain can have arbitrary levels of sub- domains

A Domain can have one or more accounts

An Account represents one or more users and is the basic unit of isolation

Admin can limit resources at the Account or Domain levels

CloudStack Network
CloudStack Network
CloudStack Network

CloudStack Network

Network Terminology

Traffic type

Guest: The tenant network to which instances are attached

Storage: The physical network which connects the hypervisor to primary storage

Management: Control Plane traffic between CloudStack management server and hypervisor clusters

Public:

“Outside” the cloud [usually Internet] Shared public VLANs trunked down to all hypervisors

Network type

Shared, same subnet for different user

Direct. 1 subnet Direct tagged. VLAN, multiple subnet

Isolated, different subnet for different user

Virtual (tagged)

All traffic can be multiplexed on to the same underlying physical network using VLANs

Usually Management network is untagged

Storage network usually on separate nic (or bond)

Admin informs CloudStack how to map these network types to the underlying physical network

Configure traffic labels on the hypervisor

Configure traffic labels on Admin UI

VMVM InstanceInstance VMVM InstanceInstance •• ChooseChoose thethe instantiatedinstantiated guestguest
VMVM InstanceInstance
VMVM InstanceInstance
•• ChooseChoose thethe instantiatedinstantiated guestguest networknetwork
•• ChooseChoose thethe instantiatedinstantiated guestguest networknetwork
•• IPIP isis arbitraryarbitrary
•• IPIP isis arbitraryarbitrary
GuestGuest NetworkNetwork GuestGuest NetworkNetwork •• InstanceInstance ofof NetworkNetwork OfferingOffering ••
GuestGuest NetworkNetwork
GuestGuest NetworkNetwork
•• InstanceInstance ofof NetworkNetwork OfferingOffering
•• InstanceInstance ofof NetworkNetwork OfferingOffering
•• Shared:Shared: createdcreated byby AdminAdmin
•• Shared:Shared: createdcreated byby AdminAdmin
•• Isolated:Isolated: CreatedCreated andand ownedowned byby useruser
•• Isolated:Isolated: CreatedCreated andand ownedowned byby useruser
•• OneOne virtualvirtual routerrouter forfor oneone networknetwork
•• OneOne virtualvirtual routerrouter forfor oneone networknetwork
•• CrossCross pod,pod, withinwithin ZoneZone
•• CrossCross pod,pod, withinwithin ZoneZone
•• VLANVLAN idid pickedpicked fromfrom thethe poolpool
•• VLANVLAN idid pickedpicked fromfrom thethe poolpool
PhysicalPhysical NetworkNetwork PhysicalPhysical NetworkNetwork •• ZoneZone levellevel •• ZoneZone levellevel
PhysicalPhysical NetworkNetwork
PhysicalPhysical NetworkNetwork
•• ZoneZone levellevel
•• ZoneZone levellevel
•• DefinedDefined byby NICNIC
•• DefinedDefined byby NICNIC
•• AssignedAssigned withwith traffictraffic typetype (P,(P, G,G, M,M, S)S)
•• AssignedAssigned withwith traffictraffic typetype (P,(P, G,G, M,M, S)S)
•• AssociatedAssociated byby label/label/vswitchvswitch namename
•• AssociatedAssociated byby label/label/vswitchvswitch namename
•• AttachedAttached withwith devicedevice asas serviceservice providerprovider
•• AttachedAttached withwith devicedevice asas serviceservice providerprovider
NetworkNetwork OfferingOffering NetworkNetwork OfferingOffering •• OnlyOnly forfor GuestGuest traffictraffic ••
NetworkNetwork OfferingOffering
NetworkNetwork OfferingOffering
•• OnlyOnly forfor GuestGuest traffictraffic
•• OnlyOnly forfor GuestGuest traffictraffic
•• GuestGuest networknetwork type:type: SharedShared oror IsolatedIsolated
•• GuestGuest networknetwork type:type: SharedShared oror IsolatedIsolated
•• DefinedDefined aa setset ofof networknetwork services,services, suchsuch
•• DefinedDefined aa setset ofof networknetwork services,services, suchsuch
asas DHCP,DHCP, Firewall,Firewall, VPN,VPN, NAT…NAT…
asas DHCP,DHCP, Firewall,Firewall, VPN,VPN, NAT…NAT…
••
••
BandwidthBandwidth
BandwidthBandwidth
TagTag
TagTag

TagTag

TagTag
TagTag

Physical Network

Physical Network Operations Users Admin and Cloud API CloudStack MS Cluster Router MySQL Load Balancer L3

Operations

Users Admin and Cloud API CloudStack MS Cluster Router MySQL Load Balancer L3 Core Switch
Users
Admin and
Cloud API
CloudStack MS
Cluster
Router
MySQL
Load Balancer
L3 Core Switch
Access
Layer
Switches
Secondary
Servers
Storage
Pod 1
Pod 2
Pod 3
Pod N

Availability Zone

Network Isolation

Network Isolation WebWeb WebWeb VMVM VMVM WebWeb WebWeb VMVM VMVM … WebWeb WebWeb VMVM VMVM Web
WebWeb WebWeb VMVM VMVM WebWeb WebWeb VMVM VMVM
WebWeb
WebWeb
VMVM
VMVM
WebWeb
WebWeb
VMVM
VMVM

WebWeb WebWeb VMVM VMVM
WebWeb
WebWeb
VMVM
VMVM

Web

Security

Group

VMVM VMVM … WebWeb WebWeb VMVM VMVM Web Security Group DB DB VM VM WebWeb WebWeb
DB DB VM VM WebWeb WebWeb VMVM VMVM
DB
DB
VM
VM
WebWeb
WebWeb
VMVM
VMVM

WebWeb WebWeb VMVM VMVM
WebWeb
WebWeb
VMVM
VMVM

DB

Security

Group

WebWeb WebWeb VMVM VMVM … WebWeb WebWeb VMVM VMVM DB Security Group WebWeb WebWeb VMVM VMVM
WebWeb WebWeb VMVM VMVM DB DB VM VM
WebWeb
WebWeb
VMVM
VMVM
DB
DB
VM
VM

WebWeb WebWeb VMVM VMVM … WebWeb WebWeb VMVM VMVM DB Security Group WebWeb WebWeb VMVM VMVM

Network Isolation (Security Group, L3)

Public

Internet

Guest 1 VM 1 10.1.0.1 Pod 1 L2 Switch Guest 2 VM 1 Guest 1
Guest 1
VM 1
10.1.0.1
Pod 1 L2
Switch
Guest 2
VM 1
Guest 1
VM 2
10.1.8.1
L3 Core
Pod 2 L2
Switch
Switch
10.1.16.1
Load
Guest 2
VM 2
Balancer
Pod 3 L2
Switch
Guest 2
VM 3
Guest 1
VM 3
Guest 1
VM 4

10.1.0.2

10.1.0.3

10.1.0.4

10.1.16.12

10.1.16.21

10.1.16.47

10.1.16.85

Network Isolation (VLAN, L2)

VLAN 101 Traffic

VLAN 102 Traffic

Core (L3) Network

Pod K Pod M Access Switch(es) Hypervisor R V … … CLUSTER 1 Hypervisor 1
Pod K
Pod M
Access Switch(es)
Hypervisor
R
V
CLUSTER 1
Hypervisor 1
R
Hypervisor 8
CLUSTER 4
Hypervisor N
V
V
Hypervisor N+1
V
V R
V
R
Pod N Hypervisor V V
Pod N
Hypervisor
V
V

Tenant VM

Tenant Virtual Router

Guest virtual network

Guest Virtual Network

10.1.1.0/24

Public

Public IP

Gateway

 

Guest 1

Network

address

address

 

VM 1

65.37.141.11

   

10.1.1.1

   

65.37.141.36

     
 

Guest 1 Virtual

 

Guest 1

Public

   

Router

   

VM 2

Internet

NAT DHCP Load Balancing VPN

 
   

Guest 1

VM 3

 
   

Guest 1

VM 4

Public IP

Guest Virtual Network

address

10.1.1.0/24

Gateway

 

Guest 2

65.37.141.24

address

 

VM 1

65.37.141.80

10.1.1.1

 
 

Guest 2 Virtual

 

Guest 2

   

Router

   

VM 2

 

Guest 2

VM 3

NAT DHCP Load Balancing VPN

Guest

address

10.1.1.2

Guest

address

10.1.1.3

Guest

address

10.1.1.4

Guest

address

10.1.1.5

Guest

address

10.1.1.2

Guest

address

10.1.1.3

Guest

address

10.1.1.4

Guest Virtual Network With Physical Device

CS Virtual Router provides Network Services

Guest Virtual Network 10.1.1.1/8 VLAN 100

10.1.1.1 Gateway address CS 10.1.1.1 Virtual 10.1.1.3 Router DHCP, DNS NAT Load Balancing 10.1.1.4 VPN
10.1.1.1
Gateway
address
CS
10.1.1.1
Virtual
10.1.1.3
Router
DHCP, DNS
NAT
Load Balancing
10.1.1.4
VPN
10.1.1.5

Public

Public IP

65.37.141.11

Network/Internet

Guest VM 1
Guest
VM 1
Guest VM 2
Guest
VM 2
Guest VM 3
Guest
VM 3
Guest VM 4
Guest
VM 4

External Devices provide Network Services

Guest Virtual Network 10.1.1.1/8 VLAN 100

Private IP 10.1.1.1 Juniper 10.1.1.111 SRX Firewall 10.1.1.3 Private IP NetScaler 10.1.1.112 Load Blancer
Private IP
10.1.1.1
Juniper
10.1.1.111
SRX
Firewall
10.1.1.3
Private IP
NetScaler
10.1.1.112
Load
Blancer
10.1.1.4
10.1.1.5
IP NetScaler 10.1.1.112 Load Blancer 10.1.1.4 10.1.1.5 CS Virtual Router Public Public IP 65.37.141.111
CS Virtual Router
CS
Virtual
Router

Public

Public IP

65.37.141.111

Public IP

65.37.141.112

Network/Internet

Guest VM 1
Guest
VM 1
Guest VM 2
Guest
VM 2
Guest VM 3
Guest
VM 3
Guest VM 4
Guest
VM 4

DHCP, DNS

Layer-3 Guest Network

Network Services Managed Externally

Public Network

65.11.0.0/16 Security Group 1 65.11.1.2 Guest VM 1 65.11.1.3 Guest VM 2 65.11.1.4 Guest VM
65.11.0.0/16
Security Group 1
65.11.1.2
Guest VM
1
65.11.1.3
Guest VM
2
65.11.1.4 Guest VM
3
65.11.1.5 Guest VM
4
CS
Virtual
DHCP,
Security Group 2
Router
DNS

Network Services Managed by CS

Security Group 1 Public Network/Internet 10.1.2.3 Guest VM 1 10.2.12.4 65.11.1.2 NetScaler Guest VM L3
Security Group 1
Public
Network/Internet
10.1.2.3
Guest VM
1
10.2.12.4
65.11.1.2
NetScaler
Guest VM
L3
65.11.1.3
Load
2
switch
Blancer
65.11.1.4
EIP,
ELB
10.5.2.99
Guest VM
3
10.1.2.18
Guest VM
4
CS
Virtual
DHCP,
Security Group 2
Router
DNS

Multi-tier network

Multi-tier network

Virtual Network

10.1.3.0/24

VLAN 141

Virtual Network

10.1.2.0/24

Virtual Network

10.1.1.0/24

 

VLAN 100

Private IP

10.1.1.1

10.1.1.111

10.1.1.3

Private IP

10.1.1.112

10.1.1.4

10.1.1.5

CS Virtual Router
CS
Virtual
Router

DHCP,

DNS

User-

data

VLAN 1001 App VM 10.1.2.31 1 Web VM 1 10.1.2.21 App VM 10.1.2.24 2 Web
VLAN 1001
App VM
10.1.2.31
1
Web VM
1
10.1.2.21
App VM
10.1.2.24
2
Web VM
2
10.1.2.18
Web VM
3
10.1.2.38
Web VM
4
10.1.2.39
CS
DHCP,
Virtual
DNS,
Router
User-

data

Public Network/Intern et Public IP 65.37.141.11 Juniper 1 SRX Firewall Public IP 65.37.141. Netscaler 112
Public
Network/Intern
et
Public IP
65.37.141.11
Juniper
1
SRX
Firewall
Public IP
65.37.141.
Netscaler
112
Load
Balancer

10.1.3.21

10.1.3.45

DB VM 1
DB VM 1

10.1.3.24

DHCP,

DNS

User-

CS Virtual Router Public IP
CS
Virtual
Router
Public IP

data,

Source

-NAT,

VPN

65.37.141.115

Multi-tier unified [vision]

Internet IPSec or SSL site-to-site VPN Loadbalancer CS Virtual Router / Other Customer Premises Monitoring
Internet
IPSec or SSL site-to-site VPN
Loadbalancer
CS
Virtual Router /
Other
Customer
Premises
Monitoring VLAN
Virtual Router Services
App VM
• IPAM
10.1.2.31
1
• DNS
Web VM
10.1.1.1
1
• LB [intra]
• S-2-S VPN
App VM
10.1.2.24
• Static Routes
2
Web VM
• ACLs
10.1.1.3
2
• NAT, PF
• FW [ingress & egress]
Web VM
• BGP
10.1.3.24
DB VM 1
10.1.1.4
3
Web VM
10.1.1.5
4
Virtual Network
Virtual Network
Virtual Network
10.1.2.0/24
10.1.1.0/24
10.1.3.0/24
VLAN 1001
VLAN 100
VLAN 141

Multi-tier unified with SDN[vision]

Internet IPSec or SSL site-to-site VPN Loadbalancer Virtual Appliance CS Virtual Router / Other Customer
Internet
IPSec or SSL site-to-site VPN
Loadbalancer
Virtual Appliance
CS
Virtual Router /
Other
Customer
Premises
Monitoring VLAN
Virtual Router Services
App VM
• IPAM
10.1.2.31
1
• DNS
Web VM
10.1.1.1
1
• LB [intra]
• S-2-S VPN
App VM
10.1.2.24
• Static Routes
2
Web VM
• ACLs
10.1.1.3
2
• NAT, PF
• FW [ingress & egress]
Web VM
• BGP
10.1.3.24
DB VM 1
10.1.1.4
3
Web VM
10.1.1.5
4
Overlay
Overlay
Overlay
Network
Network
Network
10.1.2.0/24
10.1.1.0/24
10.1.3.0/24

Network Offerings

Cloud provider defines the feature set for guest networks

Toggle features or service levels

Security groups on/off

Load balancer on/off

Load balancer software/hardware

VPN, firewall, port forwarding

User chooses network offering when creating network

Enables upgrade between network offerings

Default offerings built-in

For classic CloudStack networking

• Enables upgrade between network offerings • Default offerings built-in – For classic CloudStack networking
CloudStack Storage
CloudStack Storage
CloudStack Storage

CloudStack Storage

Storage

Zone-Level Layer 3 Switch Private Network Pod 1 Pod Pod Pod-Level Layer-2 2 N Switch
Zone-Level Layer 3 Switch
Private Network
Pod 1
Pod
Pod
Pod-Level Layer-2
2
N
Switch
Scale-Out
NFS
Computing
Primary
Server 1
Storage
Computing
Primary
Server 2
Storage
Scale-Out
Computing
NFS
Server 3
Primary
Storage
Computing
Server 4
Cluster 1
Cluster 2

Primary Storage

Block device to the VM

IOPs intensive

Accessible from host or cluster wide

Supports storage tiering

WORM Storage

Secondary Storage or Object Store for templates, ISO, and snapshot archiving

High capacity

CloudStack manages the storage between the two to achieve maximum benefit and resiliency

Primary Storage Support Matrix

Type

XenServer

VmWare

KVM

Local Disk

Supported

Supported

Supported

iSCSI

Supported

Supported

Not Supported

Fiber Channel

Supported

Supported

Not Supported

NFS

Supported

Supported

Supported

Storage Tagging

Supported via storage tags for primary storage

Specify a tag when adding a storage pool

Specify a tag when adding a disk offering

Only storage pools with the tag will be allocated for the volume

WORM Storage

Write Once Read Many storage pattern is supported by two different storage types

Secondary Storage (NFS Server within an availability zone)

Object Store (Swift implementation for cross-zone)

Objective for WORM storage

High capacity, cheap storage

Easy to increase capacity

Used to store templates, ISOs, and snapshots

Snapshots

Snapshots are used as backups for DRS

Taken on the primary storage and moved to secondary storage

Supports individual snapshots and recurring snapshots

Full snapshots on VmWare and KVM. Need help.

Incremental snapshots on XenServer

Allows backup network traffic to be specified in zone to segregate the backup network traffic from other network traffic types

MS Internals • Architecture • Workflow • High Availability • Scalability
MS Internals • Architecture • Workflow • High Availability • Scalability
MS Internals • Architecture • Workflow • High Availability • Scalability

MS Internals

Architecture

Workflow

High Availability

Scalability

Inside a Management Server

CS API API Servlet
CS API
API
Servlet
Services Plugins API Plugins cmd.execute() Cmds Plugins Async Job Queue Kernel Mgr Responses Agent API
Services
Plugins
API
Plugins
cmd.execute()
Cmds
Plugins
Async
Job
Queue
Kernel
Mgr
Responses
Agent API
(Commands)
Agent
Resources
Manager
Local
Or
Remote
Hypervisor
Network
Native
Device
APIs
API
MySQL

Old Architecture

API Layer EC2 CloudStack Access Control … Agent Manager XenServ NetScal KVM SRX F5 Other
API Layer
EC2
CloudStack
Access Control
Agent Manager
XenServ
NetScal
KVM
SRX
F5
Other
er
er
Resour
Resour
Resour
Resourc
Resourc
Resour
ce
ce
ce
es
e
ce
Virtual Machine Manager
Storage Manager
Network Manager
Console Proxy Manager
Snapshot Manager
Async Job Manager
Template Manager

Pros

Agile development for existing developers

Scales well horizontally Cons

Monolithic

Difficult to educate new and third-party developers

Easy to introduce bugs

New Deployment Architecture

New Deployment Architecture • Scales horizontally to different pressure points • Automatically scales service VMs in

Scales horizontally to different pressure points

Automatically scales service VMs in zones to facilitate most efficient data path transfers

Fault isolation between API servers and Execution Servers and resources within zones

New Architecture – API Server

Cloud Other UI CLI Portal Clients REST API Server Pluggable API Engine End User EC2
Cloud
Other
UI
CLI
Portal
Clients
REST
API Server
Pluggable API Engine
End User
EC2
Other
OAM&P API
API
API
APIs
Management Services
ACL &
Integration
- Resource
management
Authentication
- Accounts,
- Configuration
Domains, and
- Additional
operations added
by third party
Projects
- ACL, limits
checking
Framework
- Job Queue
- Database Access Layer
- OSGi

API Server isolates integration code from Execution Server

API Server can horizontally scale to handle traffic
Easily adds other API compatibility
Easily exposes API needed by third party vendors

New Architecture – Execution Server

Execution Server

 

Services API

 

Kernel

Plugins

Drives long running VM operations

Storage

Syncs between resources managed and DB

Handling

Network

Generates events

Handling

Deployment

planning

Hypervisor

Handling

 

Framework

 

Cluster Management

Component Framework

Job Management

(OSGi)

Alert & Event Management

Transaction Management

Database Access Layer

 

Messaging Layer

Execution Server protected by job queue

Kernel kept small for stability. It

only drives processes.

Plugins provide mappings of

virtual entities to physical resources

Third party plugins to provide vendor differentiation in CloudStack

Communicates with resources within data center over message bus

New Architecture – Resources

Agent

Hypervisor Resources
Hypervisor Resources
Network Resources Storage Resources
Network Resources
Storage Resources
Image & Template Resources
Image & Template Resources
Snapshot Resources
Snapshot Resources

Resources are carried in service VMs to be in close network proximity to the physical resources it manages

Easily scales to utilize the most abundant resource in data center (CPU & RAM)

Communicates with Execution Server over message bus (JSON)

Can be replicated for fault tolerance

Cloud Other UI CLI Portal Clients
Cloud
Other
UI
CLI
Portal
Clients
Management Server REST API OAM&P API End User API EC2 API Other APIs Pluggable Service
Management Server
REST API
OAM&P API
End User API
EC2 API
Other APIs
Pluggable Service API Engine
Console Proxy
ACL & Authentication
Security Adapters
Management
- Accounts, Domains, and Projects
- ACL, limits checking
Account Management
Connectors
Template
Services API
Access
Deployment Planning
Kernel
HA
Usage
- Drives long running VM
operations
Network Configurations
Calculations
- Syncs between resources
managed and DB
Network Elements
Additional
- Generates events
Services
Hypervisor Gurus
Cluster
Resource
Job
Management
Management
Management
Alert & Event
Management
Database
Access
Event Bus
Message Bus
Hypervisor
Network
Storage
Image
Snapshot
Resources
Resources
Resources
Resources
Resources
Services API
Plugin API

Kernel Module

Understands how to orchestrate long running processes (i.e. VM starts, Snapshot copies, Template propagation)

Well defined process steps

Calls Plugin API to execute functionalities that it needs

Plugins

Various ways to add more capability to CloudStack

Implements clearly defined interfaces

All operations must be idempotent

All calls are at transaction boundaries

Compiles only against the Plugin API module

Anatomy of a Plugin

Rest API ServerResource - Optional. Required only if needs to expose configuration API to admin.
Rest API
ServerResource
-
Optional. Required only if needs to expose configuration API to admin.
- Optional. Required if
Plugin needs to be co-
located with the
resource
- Implements translation
layer to talk to resource
Implmentation
- Communicates with
server component via
JSON
Data Access Layer
Plugin API

Anatomy of a Plugin

Can be two jars: server component to be deployed on management server and an optional ServerResource component to be deployed co- located with the resource

Server component can implement multiple Plugin APIs to affect its feature

Can expose its own API through Pluggable Service so administrators can configure the plugin

As an example, OVS plugin actually implements both NetworkGuru and NetworkElement

Plugin Interfaces Available

NetworkGuru – Implements various network isolation technologies and ip address technologies

NetworkElement – Facilitate network services on network elements to support a VM (i.e. DNS, DHCP, LB, VPN, Port Forwarding, etc)

DeploymentPlanner – Different algorithms to place a VM and volumes.

Investigator – Ways to find out if a host is down or VM is down.

Fencer – Ways to fence off a VM if the state is unknown

UserAuthenticator – Methods of authenticating a user

SecurityChecker – ACL access

HostAllocator – Provides different ways to allocate host

StoragePoolAllocator – Provides different ways to allocate volumes

Adding a Plugin to CloudStack

Components are configured through components.xml

Supports DAO, Manager, and Adapter patterns

Open to other component frameworks (OSGi a possibility)

Components.xml Example

<components.xml> <system-integrity-checker class="com.cloud.upgrade.DatabaseUpgradeChecker"> <checker name="ManagementServerNode" class="com.cloud.cluster.ManagementServerNode"/> <checker name="EncryptionSecretKeyChecker" class="com.cloud.utils.crypt.EncryptionSecretKeyChecker"/> <checker name="DatabaseIntegrityChecker" class="com.cloud.upgrade.DatabaseIntegrityChecker"/> <checker name="DatabaseUpgradeChecker" class="com.cloud.upgrade.PremiumDatabaseUpgradeChecker"/> </system-integrity-checker> <interceptor library="com.cloud.configuration.DefaultInterceptorLibrary"/> <management-server class="com.cloud.server.ManagementServerExtImpl" library="com.cloud.configuration.PremiumComponentLibrary"> <adapters key="com.cloud.storage.allocator.StoragePoolAllocator"> <adapter name="LocalStorage" class="com.cloud.storage.allocator.LocalStoragePoolAllocator"/> <adapter name="Storage" class="com.cloud.storage.allocator.FirstFitStoragePoolAllocator"/> </adapters> <pluggableservice name="VirtualRouterElementService" key="com.cloud.network.element.VirtualRouterElementService" class="com.cloud.network.element.VirtualRouterElement"/> </management-server> </components.xml>

ServerResource

Translation layer between CloudStack commands and resource API

May be Co-located with resource

Have no access to DB

API defined in JSON messages

DAO

SQL generation done mostly in GenericDaoBase

Uses JPA annotations

Very little code to write for each individual DAO

Database Access Layer for Kernel

No support for more complicated features such as fetch strategy

Welcome to use other types of ORM in other modules but like to hear about preferred library. (Hibernate is out due to licensing issues)

Example DAO

// ExampleVO.java @Entity @Table(name=“example”) public class ExampleVO { @Id @GeneratedValue(strategy= GenerationType.IDENTITY) @Column(name=“id”) long id;

@Column(name=“name”) String name;

@Column(name=“value”) String value;

}

// ExampleDao.java public interface ExampleDao extends GenericDao<ExampleVO, Long> {

}

// ExampleDaoImpl.java @Local(value=ExampleDao.class) public class ExampleDaoImpl extends GenericDaoBase<ExampleVO, Long> implements ExampleDao {

protected ExampleDaoImpl() {

}

}

Sequence Flow for deploy VM

Kernel User VM VirtualMac Network Storage Mgr hine Mgr Mgr Mgr Allocate VM Allocate NIC
Kernel
User VM
VirtualMac
Network
Storage
Mgr
hine
Mgr
Mgr
Mgr
Allocate VM
Allocate NIC
Allocate IP
Allocate Volume
End User Rest API
End User
Rest API
Network Security Job Guru Checkers Scheduling ACL Checks Allocate Entity in CS Schedules Deploy Job
Network
Security
Job
Guru
Checkers
Scheduling
ACL Checks
Allocate Entity in CS
Schedules Deploy Job

Deploy VM

Allocate Entity in CS Schedules Deploy Job Deploy VM Returns with job id, VM id Query

Returns with job id, VM id

Query Job Result

Query Job Result

Allocate Entity in CS Schedules Deploy Job Deploy VM Returns with job id, VM id Query

Returns with job status

Allocate Entity in CS Schedules Deploy Job Deploy VM Returns with job id, VM id Query

Sequence Flow for deploy VM

Job Threads

Job Threads

Sequence Flow for deploy VM Job Threads Services API User VM Mgr Storage Network Network Template
Services API

Services API

User VM

User VM
Mgr

Mgr

Storage Network Network Template Deployment Server Mgr Guru Element Mgr Planner Resource Reserve resources for
Storage
Network
Network
Template
Deployment
Server
Mgr
Guru
Element
Mgr
Planner
Resource
Reserve resources for Nic
Notify that Nic is about to be started in network
Agent Calls
Prepare template on Primary Storage
Agent Calls

Start VM

Prepare template on Primary Storage Agent Calls Start VM Start User VM Start VM Get a

Start User VM

on Primary Storage Agent Calls Start VM Start User VM Start VM Get a Deployment Plan

Start VM

Primary Storage Agent Calls Start VM Start User VM Start VM Get a Deployment Plan (Host

Get a Deployment Plan (Host and StoragePool)

VM Start VM Get a Deployment Plan (Host and StoragePool) Prepare Nics Prepare Volumes Agent Start

Prepare Nics

Start VM Get a Deployment Plan (Host and StoragePool) Prepare Nics Prepare Volumes Agent Start VM

Prepare Volumes

Start VM Get a Deployment Plan (Host and StoragePool) Prepare Nics Prepare Volumes Agent Start VM

Agent Start VM Call

Start VM Get a Deployment Plan (Host and StoragePool) Prepare Nics Prepare Volumes Agent Start VM

Stores job result

High Availability

High Availability

Service Offering contains a flag for whether HA should be supported for the VM

Does not use the native HA capability of hypervisors for XenServer and KVM

Uses adapters to fine tune HA process

Triggering High Availability

VM HA are triggered via the following methods:

VM Sync detects out of band VM changes

Resource Management detects that a resource is unreachable and its state can not be determined.

VM start/stop has been sent to the resource but resource does not return

Details of how high availability is done is at

http://docs.cloudstack.org/CloudStack_Documentation/Design_Documents/CloudStack_High_Availability_-

_Developer's_Guide

High Availability

Has VM changed since Yes Cancel Work work scheduled? No Investigation No Needed? Yes Up
Has VM
changed since
Yes
Cancel Work
work scheduled?
No
Investigation
No
Needed?
Yes
Up
Failure
Start VM
Is VM Up or
Down?
Up
Down
Is hypervisor
host Up or
Down?
Success
Unknown
Down
Completed Work
Has more
Yes
Investigators
?
No
Reschedule Work
Fence off
Yes
VM?
No
More
Yes
Fencers??
No

Investigation

Uses investigators to find out if VM is alive or down

Each investigator returns three states

Up

Down

Unknown

Fencing

Uses fencers to fence off the VM from accessing storage to ensure VM is not corrupted

Each Fencer returns three states

Fenced

Unable to Fence

Don’t know how to fence

Restart

Restarts the VM

Scalability

Current Status

10k resources managed per management server node

Scales out horizontally (must disable stats collector)

Real production deployment of tens of thousands of resources

Internal testing with software simulators up to 30k physical resources with 300k VMs managed by 4 management server nodes

We believe we can at least double that scale per management server node

Balancing Incoming Requests

Each management server has two worker thread pools for incoming requests: effectively two servers in one.

Executor threads provided by tomcat

Job threads waiting on job queue

All incoming requests that requires mostly DB operations are short in duration and are executed by executor threads because incoming requests are already load balanced by the load balancer

All incoming requests needing resources, which often have long running durations, are checked against ACL by the executor threads and then queued and picked up by job threads.

# of job threads are scaled to the # of DB connections available to the management server

Requests may take a long time depending on the constraint of the resources but they don’t fail.

Comparison of two Approaches

Stats Collector – collects capacity statistics

Fires every five minutes to collect stats about host CPU and memory capacity

Smart server and dumb client model: Resource only collects info and management server processes

Runs the same way on every management server

VM Sync

Fires every minute

Peer to peer model: Resource does a full sync on connection and delta syncs thereafter. Management server trusts on resource for correct information.

Only runs against resources connected to the management server node

Numbers

Assume 10k hosts and 500k VMs (50 VMs per host)

Stats Collector

Fires off 10k requests every 5 minutes or 33 requests a second.

Bad but not too bad: Occupies 33 threads every second.

But just wait:

2 management servers: 66 requests

3 management servers: 99 requests

It gets worse as # of management servers increase because it did not auto-balance across management servers

Oh but it gets worse still: Because the 10k hosts is now spread across 3 management servers. While it’s 99 requests generated, the number of threads involved is three-fold because requests need to be routed to the right management server.

It keeps the management server at 20% busy even at no load from incoming requests

VM Sync

Fires off 1 request at resource connection to sync about 50 VMs

Then, push from resource as resource knows what it has pushed before and only pushes changes that are out-of-band.

So essentially no threads occupied for a much larger data set.

Resource Load Balancing

As management server is added into the cluster, resources are rebalanced seamlessly.

MS2 signals to MS1 to hand over a resource

MS1 wait for the commands on the resources to finish

MS1 holds further commands in a queue

MS1 signals to MS2 to take over

MS2 connects

MS2 signals to MS1 to complete transfer

MS1 discards its resource and flows the commands being held to MS2

Listeners are provided to business logic to listen on connection status and adjusts work based on who’s connected.

By only working on resources that are connected to the management server the process is on, work is auto-balanced between management servers.

Also reduces the message routing between the management servers.

CloudStack System VMs
CloudStack System VMs
CloudStack System VMs

CloudStack System VMs

CloudStack System VMs

System VMs optimize and scale the data path on behalf of CloudStack

Stateless, can be destroyed and recreated from database state

Highly Available

Communicates with Management Server over management network

Usually have 3 interfaces: control(linked-local), mgmt and public

Console Proxy VM

Provides AJAX-style HTTP-only console viewer

Grabs VNC output from hypervisor

Scales out (more spawned) as load increases

Java-based server Communicates with MS

Secondary Storage VM

Provides image (template) management services

Download from HTTP file share or Swift

Copy between zones

Scale out to handle multiple NFS mounts

Java-based server communicates with MS

CloudStack System VMs

Virtual Router VM

Provides multiple network services

IPAM (DHCP), DNS, NAT, Source NAT, Firewall, Port Forwarding, VPN

User-data, Meta-data, guest SSH keys and password change server

Redundancy via VRRP

MS configures VR over SSH

Proxied via the hypervisor on XS and KVM

System VM spec

Debian 6.0 ("Squeeze"), 2.6.32 kernel with the latest security patches from the Debian security APT repository. No extraneous accounts

32-bit for enhanced performance on Xen/VMWare

Only essential software packages are installed. Services such as, printing, ftp, telnet, X, kudzu, dns, sendmail are not installed.

SSHd only listens on the private/link-local interface. SSH port has been changed to a non- standard port (3922). SSH logins only using keys (keys are generated at install time and are unique for every customer)

pvops kernel with Xen paravirt drivers + KVM virtio drivers + VMware tools for optimum performance on all hypervisors. Xen tools inclusion allows performance monitoring

Template is built from scratch and is not polluted with any old logs or history

Latest versions of haproxy, iptables, ipsec, apache from debian repository ensures improved security and speed

Latest version of jre from Sun/Oracle ensures improved security and speed

System VM contd

SSH keys and password are unique to cloud installation

Code can be patched by restarting system vm

Mounts a special ISO file with latest code at boot

If ISO contents differ, patch and reboot

Same system vm works on XS, KVM, VMWare

Bootstrap step for the cloud is to install the template for this system vm

Ready to be re-purposed for other specialized tasks

Monitoring

End

User UI

Admin

UI

Domain

Admin

UI

Monitoring End User UI Admin UI Domain Admin UI Cloud user {API client (Fog/etc)} Cloud user

Cloud user {API client (Fog/etc)}

Admin UI Domain Admin UI Cloud user {API client (Fog/etc)} Cloud user {ec2 API client }

Cloud user {ec2 API client }

ec2 API

Ajax

Console

(Fog/etc)} Cloud user {ec2 API client } ec2 API Ajax Console Cloud user Interactions CS API

Cloud user

Interactions

CS API Clustered CloudStack CloudStack CS Admin & CloudStack End-user API Management Server
CS API
Clustered
CloudStack
CloudStack
CS Admin &
CloudStack
End-user API
Management
Server

XAPI

JSON

JSON

JSON

NetConf

Nitro API

MySQL

HTTPS

{Proxied} SSH

Router VM

Router VM

Router VM

VNC

NFS

Primary OVM Cluster Storage
Primary
OVM Cluster
Storage

vcenter

   

Primary

vSphere Cluster

Storage

 

Primary

XS

Cluster

Storage

 

Primary

KVM Cluster

Storage

Juniper SRX

  Primary KVM Cluster Storage Juniper SRX Console Console Proxy Proxy VM VM Sec. Storage Sec.

Console Console Proxy Proxy VM VM

Sec. Storage Sec. VM Storage VM

Netscaler

NFS

Server

NFS

HTTP (Template Download)

HTTP (Template Copy)

HTTP (Swift)

CloudStack Roadmap
CloudStack Roadmap
CloudStack Roadmap

CloudStack Roadmap

CloudStack Roadmap 2012 2013 Feb Apr Jul Oct Feb Acton ? Bonita Burbank Campo
CloudStack Roadmap
2012
2013
Feb
Apr
Jul
Oct
Feb
Acton
?
Bonita
Burbank
Campo

Swift Integration

Support XenServer 6

Support Vsphere 5

Netscaler Integration

Refine Resource

Management

UI refinement

LDAP/AD

Authentication

OpenvSwitch Support Inter-Vlan Routing

VMWare Distributed

Multi-tier App

Site-to-Site VPNs

AWS-style tags

VM Tiers

vSwitch Support

Cisco Nexus 1000v Support

Upload Volume

Clustered LVM support

AWS-style Regions

IPv6

Resource Scaling

Dedicated Resource Module

Scalability (50K hosts)

Plugin Architecture

Hypervisor

Enhancement

Hyper-V (win 8)