Xen and CloudStack

Ewan Mellor Director, Engineering, Open-source Cloud Platforms Agenda

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

• 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…

Compute

XenServer Oracle VM vSphere KVM Bare metal

Storage Block & Object

Fiber Local Disk iSCSI NFS Swift Channel

Network Network & Network Services

Network Load Isolation Firewall VPN Type balancer

CloudStack versus OpenStack

CloudStack OpenStack Apache Foundation OpenStack Foundation (incubating) (founding in progress) 2008-present 2010-present Java Python Fairly centralized Aggressively distributed Complete solution More of a framework Apache incubation

• 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. CloudStack and Xen

Most CloudStack users choose Xen or XenServer

Xen VMware KVM

It is the combination that works the best! CloudStack is…

• 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 Users

Router Management cluster Load balancer

L3 core switch Access layer switches

Servers Secondary Storage

Pod 1 Pod 2 Pod 3 Pod N Two types of storage

Primary storage • Stores virtual disks L3 switch • Configured at cluster level • Close to hosts for better performance Pod 1 L2 switch • Requires high IOPS Secondary Cluster 1 storage Host 1 Primary Secondary storage storage Host 2 • Stores templates, ISOs and snapshots • Configured at zone level • Zone can have one or more • High capacity, low cost Users

Router Management cluster Load balancer

L3 core switch Access layer switches

Servers Secondary Storage

Pod 1 Pod 2 Pod 3 Pod N Networking features

• 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

Virtual network topologies

CS Virtual Router provides network services External devices provide network services

Guest network Guest network

Public network Public network Guest Guest 10.1.1.1 10.1.1.1 VM 1 VM 1 SRX CS firewall Guest Guest Virtual 10.1.1.3 VM 2 10.1.1.3 VM 2 Router NetScaler DHCP, DNS, NAT, Guest Guest 10.1.1.4 LB LB, VPN VM 3 10.1.1.4 VM 3

Guest Guest 10.1.1.5 VM 4 10.1.1.5 VM 4

CS DHCP, DNS Virtual Router Multi-tier virtual network topology

Guest network Guest network Guest network Public network

App VM 10.1.2.31 1 10.1.3.21 Web VM 10.1.1.1 1 10.1.2.21 SRX firewall App VM

Web VM 10.1.2.24 2 10.1.3.45 10.1.1.3 2 10.1.2.18

Netscaler Web VM DB VM 1 LB 10.1.1.4 3 10.1.2.38 10.1.3.24

Web VM 10.1.1.5 4 10.1.2.39

DHCP, DNS, CS DHCP, CS DHCP, DNS CS user-data Virtual DNS, Virtual user-data, Virtual Router user-data Router NAT, VPN Router

Public network

Users

Router Management cluster Load balancer

L3 core switch Access layer switches

Servers Secondary Storage

Pod 1 Pod 2 Pod 3 Pod N Users

Router Management cluster Load balancer

L3 core switch Access layer switches

Servers Secondary Storage

Pod 1 Pod 2 Pod 3 Pod N System VMs

Customer VMs Driver domains

Control domain Guest VMn Driver Domain (dom0) e.g. • Disk Apps • Network

PV Back Ends PV Front Ends PV Back End

HW Drivers HW Driver

Guest OS Kernel

Xen Hypervisor

Host HW I/O Memory CPUs

18 The road ahead The future for CloudStack

• Disentangle some core components – Make it easier for people to work on subsystems – Make it easier to scale the API layers S3 API system VM

S3 API

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

S3 API Object store VM … … … (e.g., NetApp, Hadoop, …)

S3 API VM The future for CloudStack

• 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 DevCloud DevCloud – What is inside?

• VirtualBox VM – Xen Cloud Platform – 12.04 dom0 (aka Kronos) • JVM, Tomcat, developer tools • NFS server • MySQL – Working, pre-configured CloudStack – System VMs – Tiny 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

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

User API Management  Single MS node can Server manage up to 10K Load Balancer Replication hosts. Multiple nodes Admin API Management can be deployed for Server scale or redundancy Replica

Infrastructure Resources Components

• Hosts

• Servers onto which services will be VM provisioned Host • Primary Storage VM Network • VM disk storage Host • Cluster Primar • A grouping of hosts and their associated y storage Storag e • Pod Cluster • Collection of clusters in the same failure boundary Seconda ry Cluster • Network Storage • Logical network associated with service offerings CloudStack Pod • Secondary Storage • Template, snapshot and ISO storage CloudStack Pod • Zone Zone • Collection of pods, network offerings and secondary storage • Management Server Farm • Management and provisioning tasks Deployment Architecture

Management Internet  Hypervisor is the basic Server Cluster unit of scale. Zone 1  Cluster consists of one ore more hosts of same L3 hypervisor  All hosts in cluster have Pod 1 Pod N Secondar L2 access to shared y …. (primary) storage Cluster N Storage  Pod is one or more clusters, usually with L2 …. switches.

Cluster 1  Availability Zone has one Host 1 or more pods, has Primary access to secondary Host 2 Storage storage.  One or more zones represent cloud

DevCloud step-by-step Overview

• Install Virtual Box • Download DevCloud • 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 extensions are enabled in your laptop CPU • Recommend at least 2 GB for DevCloud VM DevCloud VM

• Download from http://download.cloud.com/templates/devcl oud/DevCloud.ova • Latest install instructions here: http://wiki.cloudstack.org/display/COMM/DevClo ud • Import DevCloud into VirtualBox – Change memory allocation to 2 GB • Snapshot for known good state