Xen and Apache cloudstack

Preview:

DESCRIPTION

CloudStack, the world's leading open-source cloud infrastructure platform, was recently donated to the Apache Foundation, and is now an incubated Apache project. Ewan Mellor, Director of Engineering in the Citrix Cloud Platforms Group will describe the CloudStack project and explain why Xen is the pre-eminent hypervisor in public clouds today. He will describe the changes coming in CloudStack in the next 12 months, and how they are going to change the way that Xen is consumed in public and private clouds next year.

Citation preview

Xen and CloudStack

Ewan MellorDirector, Engineering, Open-source Cloud PlatformsCitrix Systems

• What is CloudStack?• Move to the Apache Foundation• CloudStack architecture on Xen• The future for CloudStack• Developing on CloudStack

Agenda

• Infrastructure-as-a-Service software• For people to build Amazon-style clouds

– either as a public service,– or as a private cloud within your own organization.

CloudStack is…

CloudStack is…

Compute

XenServer Oracle VM KVMvSphere Bare metal

Hypervisor

Storage

Local Disk iSCSI NFSFiber

ChannelSwift

Block & Object

Network

Network Type

IsolationLoad

balancerFirewall VPN

Network & Network Services

CloudStackApache Foundation (incubating)2008-presentJavaFairly centralizedComplete solution

CloudStack versus OpenStack

OpenStack

OpenStack Foundation (founding in progress)

2010-present

Python

Aggressively distributed

More of a framework

• Citrix donated the CloudStack code to the Apache Software Foundation and Apache Incubator

• The project now needs to prove that it can operate openly and independent of Citrix

• If it can do that, it can be accepted as a top-level Apache project.

Apache incubation

Most CloudStack users choose Xen or XenServer

It is the combination that works the best!

CloudStack and Xen

XenVMwareKVM

• A cluster of management servers• An orchestration engine• State and user management• Region, zone, pod, cluster model• A large collection of effectors• System VMs• Usage reporting• User interface

CloudStack is…

Router

L3 core switch

Access layer switches

Servers

Management cluster

Secondary Storage

Pod 1 Pod 2 Pod 3 Pod N

Load balancer

Users

Pod 1

Host 2

Cluster 1

Host 1Primarystorage

L3 switch

Secondarystorage

L2 switch

Two types of storage

• Stores virtual disks• Configured at cluster level • Close to hosts for better performance• Requires high IOPS

Primary storage

• Stores templates, ISOs and snapshots• Configured at zone level• Zone can have one or more• High capacity, low cost

Secondary storage

Router

L3 core switch

Access layer switches

Servers

Management cluster

Secondary Storage

Pod 1 Pod 2 Pod 3 Pod N

Load balancer

Users

• Choice of network isolation– Physical, VLAN, L3 (anti-spoof), overlay (GRE)

• Multiple networks– Shared networks, project networks

• IPAM / DHCP• Gateway (inc VRRP)• VPN, stateful firewall, NAT, port forwarding• Traffic monitoring• Load balancing• User-data / password-change services

Networking features

Virtual network topologies

Public network

Guest network

DHCP, DNS, NAT, LB, VPN

10.1.1.1Guest VM 1

10.1.1.3Guest VM 2

10.1.1.4Guest VM 3

10.1.1.5Guest VM 4

CSVirtual Router

Public network

DHCP, DNS

10.1.1.1Guest VM 1

10.1.1.3Guest VM 2

10.1.1.4Guest VM 3

10.1.1.5Guest VM 4

NetScalerLB

CS Virtual Router provides network services External devices provide network services

CSVirtual Router

SRX firewall

Guest network

Public network

Multi-tier virtual network topology

DHCP, DNS, user-data

10.1.1.1Web VM

1

10.1.1.3Web VM

2

10.1.1.4Web VM

3

10.1.1.5Web VM

4

NetscalerLB

CSVirtual Router

CSVirtual Router

10.1.2.21

10.1.2.18

10.1.2.38

10.1.2.39

10.1.2.31App VM

1 10.1.3.21

10.1.2.24App VM

2 10.1.3.45

10.1.3.24DB VM 1

DHCP, DNS,

user-data

DHCP, DNSuser-data,NAT, VPN

Public network

Guest network Guest network Guest network

CSVirtual Router

SRX firewall

Router

L3 core switch

Access layer switches

Servers

Management cluster

Secondary Storage

Pod 1 Pod 2 Pod 3 Pod N

Load balancer

Users

Router

L3 core switch

Access layer switches

Servers

Management cluster

Secondary Storage

Pod 1 Pod 2 Pod 3 Pod N

Load balancer

Users

System VMs

Customer VMs

18

Driver domains

Xen Hypervisor

Control domain (dom0)

Host HW

Guest VMn

Apps

Memory CPUsI/O

HW Drivers

PV Back Ends PV Front Ends

Driver Domaine.g. • Disk• Network

HW Driver

PV Back End

KernelGuest OS

The road ahead

• Disentangle some core components– Make it easier for people to work on

subsystems– Make it easier to scale the API layers

The future for CloudStack

………

S3 API VM

S3 API VM

S3 API VM

Object store(e.g., NetApp, Hadoop, …)

S3 API

NFS, CIFS, HDFS, 3rd-party object store API, …

S3 API system VM

• Absorb new changes from Xen and XS– Storage migration– The Windsor architecture– I/O subsystem changes

The future for CloudStack

• New object storage systems– Caringo CAStor– HDFS– Riak CS

• New block storage systems– GlusterFS?– Ceph?

• Open vSwitch / OpenFlow / VXLAN

The future for CloudStack

DevCloud

DevCloud – What is inside?

• VirtualBox VM– Xen Cloud Platform– Ubuntu 12.04 dom0 (aka Kronos)

• JVM, Tomcat, developer tools• NFS server• MySQL

– Working, pre-configured CloudStack– System VMs– Tiny Linux template

Why?

• Eliminates– need for another machine / hypervisor– Primary and secondary storage– Networking, VLAN, etc– Install and configuration of environment

• Disposable changes– Revert to snapshot

Run

• Start the DevCloud VM from VirtualBox UI• Access the CloudStack UI

– http://localhost:8080/client

• Access the dom0– ssh root@localhost –p 2222

• From the UI, enable the zone– System VMs will start up

CloudStack architecture

Management Server Cluster

Replica

InfrastructureResources

User API

Admin API

Load Balancer

Management Server

Management Server

MySQL

MS is stateless. MS can be deployed as physical server or VM

Single MS node can manage up to 10K hosts. Multiple nodes can be deployed for scale or redundancy

Replication

• Hosts• Servers onto which services will be

provisioned

• Primary Storage• VM disk storage

• Cluster• A grouping of hosts and their associated

storage

• Pod• Collection of clusters in the same failure

boundary

• Network• Logical network associated with service

offerings

• Secondary Storage• Template, snapshot and ISO storage

• Zone• Collection of pods, network offerings and

secondary storage

• Management Server Farm• Management and provisioning tasks

Components

Zone

CloudStack Pod

Cluster

Host

HostNetwork

PrimaryStorage

VM

VM

CloudStack Pod

ClusterSeconda

ryStorage

Pod 1

….

Cluster N

L2

Host 2

Cluster 1

Deployment Architecture

Host 1

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

PrimaryStorage

Zone 1

….

L3

Secondary

Storage

Pod N

Management Server Cluster

Internet

DevCloud step-by-step

Overview

• Install Virtual Box• Download DevCloud virtual machine• Install DevCloud VM• Run the VM• Login to the CloudStack GUI• Start a CloudStack VM.

Virtual Box

• Download / install from Oracle• Ensure that VT-d and virtualization

extensions are enabled in your laptop CPU

• Recommend at least 2 GB for DevCloud VM

DevCloud VM

• Download from http://download.cloud.com/templates/devcloud/DevCloud.ova

• Latest install instructions here:http://wiki.cloudstack.org/display/COMM/DevCloud

• Import DevCloud into VirtualBox– Change memory allocation to 2 GB

• Snapshot for known good state

Recommended