Xen and CloudStack
Ewan Mellor Director, Engineering, Open-source Cloud Platforms Citrix Systems Agenda
• What is CloudStack? • Move to the Apache Foundation • CloudStack architecture on Xen • 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 Hypervisor
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 – 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
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 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/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