highload frank kohler

76
Virtualization 2008 Citrix XenServer 5.0 Frank Kohler, October 2008 Manager System Engineers Server Virtualization

Upload: ontico

Post on 02-Nov-2014

2.653 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Highload Frank Kohler

Virtualization 2008

Citrix XenServer 5.0

Frank Kohler, October 2008

Manager System Engineers Server Virtualization

Page 2: Highload Frank Kohler
Page 3: Highload Frank Kohler

Agenda

• Introduction• Big Picture• XenServer• Competitive

– Vs. Other Xen Virtualization– Vs. VMware– vs. Microsoft

Page 4: Highload Frank Kohler

Virtualization Aspects

Partitioning: Presenting physical resources to individual users --> XEN, VMware, VirtualIron

Aggregation: Combining multiple resources to a single unit --> PVM, OpenSSI, ScaleMP

Page 5: Highload Frank Kohler

Virtualization Big Picture

physical partition into virtual instances. each partition w/resources

Page 6: Highload Frank Kohler

Virtualization Big PictureSoftware Virtualization

CSS / OSS

z/VM -- KVM

bringing virtualization to x86, IA64, ... platformscoexistence of Linux and Windows

Page 7: Highload Frank Kohler

Server Virtualization

Page 8: Highload Frank Kohler

[left] type II VMM: Application w/virtual extension

[center] OS w/virtual extension

[right] type I VMM: hardware w/virtual extension: Vanderpool (IVT/VT-x), Pacifica (AMD-V) x86, Power, Sparc, Itanium

Virtualization Aspects

Page 9: Highload Frank Kohler

Virtualization Challenges/Limitations

Virtualization technology limited by hardware platform

Do you want to get locked?

Page 10: Highload Frank Kohler

Step Back for the Full Picture

Page 11: Highload Frank Kohler

Case for Server Virtualization

• Servers are costly to maintain

– Costs encompass provisioning, housing, power, cooling, management, etc.

– Complex, expensive management

• Servers are poorly utilized

– Yet, they proliferate as apps are added

• Physical servers are static

– Locked to one workload per server

Page 12: Highload Frank Kohler

What problems are we solving

Data Centers are static

Data Centers should be dynamic

Page 13: Highload Frank Kohler

Citrix Virtualization Division - History

• XenSource founded in 2005

• Creators of Xen and leaders of Xen project

• Acquired by Citrix Systems –Oct 2007

• Home of the Xen Hypervisor

• Open source, next generation architecture

• High performance bare metal virtualization engine

• Deliver Commercial Virtualization Platform

• Citrix XenServer Express, Standard, Enterprise Editions

Page 14: Highload Frank Kohler

Xen - the Industry Standard Hypervisor

Page 15: Highload Frank Kohler

Small Performance Overhead

• Native 64 Bit Hypervisor• Code base ~50.000 lines of code

• Approx 3180 C functions

• Small Overhead

• Guests Linux/Win: ½ – 8%

• Supports large workloads

• Up to 8 virtual CPUs per guest

• Up to 128 GB RAM

• Up to 32 GB per VM

Page 16: Highload Frank Kohler

•Supports large machines

Page 17: Highload Frank Kohler

Industry develops Xen Hypervisor -- xen.org

Page 18: Highload Frank Kohler

ArchitectureXenServer‘Orlando’

Page 19: Highload Frank Kohler

Xen Control

Interface Virtualized Hardware

Hardware

VT/AMD-V

Drivers

Storage

OpenSource

ControlInterface

Xen Architecture

Page 20: Highload Frank Kohler

UserApps

UserApps

Hardware

HALTHYPERCALL

HALT

XenServer

VT/AMD-V

Paravirtualized guests makes high-speed calls

directly to the hypervisor

Paravirtualization

• Relies on “modified” operating systems

• Kernel and I/O paths know they are being virtualized

• Cooperation provides best performance

Page 21: Highload Frank Kohler

Hardware-Assisted Virtualization

UserApps

UserApps

Hardware

HALTHYPERCALL

HALT

XenServer

VT/AMD-V

Other guests benefit from hardware-accelerated call

translation

• Hardware-assist allows high performance without emulation

Page 22: Highload Frank Kohler

From Xen to XenSource to Citrix Xenserver

Page 23: Highload Frank Kohler

From Open Source to Enterprise Product

xm xe

Page 24: Highload Frank Kohler

>xe help -all

host-backup, host-bugreport-upload, host-call-pluginhost-compute-free-memory, host-cpu-list, host-cpu-param-gethost-cpu-param-list, host-crashdump-destroy, host-crashdump-listhost-crashdump-param-get, host-crashdump-param-listhost-crashdump-upload, host-data-source-forget, host-data-source-listhost-data-source-query, host-data-source-record, host-disablehost-dmesg, host-emergency-ha-disablehost-emergency-management-reconfigure, host-enable, host-evacuatehost-forget, host-get-system-status, host-get-system-status-capabilitieshost-get-vms-which-prevent-evacuation, host-is-in-emergency-modehost-license-add, host-license-view, host-list, host-logs-downloadhost-management-disable, host-management-reconfigure, host-param-addhost-param-clear, host-param-get, host-param-list, host-param-removehost-param-set, host-power-on, host-reboot, host-restorehost-send-debug-keys, host-set-hostname-live, host-shutdownhost-shutdown-agent, host-sync-data, host-syslog-reconfigure

vm-cd-add, vm-cd-eject, vm-cd-insert, vm-cd-list, vm-cd-remove, vm-clonevm-compute-maximum-memory, vm-copy, vm-crashdump-listvm-data-source-forget, vm-data-source-list, vm-data-source-queryvm-data-source-record, vm-destroy, vm-disk-add, vm-disk-listvm-disk-remove, vm-export, vm-import, vm-install, vm-listvm-memory-shadow-multiplier-set, vm-migrate, vm-param-addvm-param-clear, vm-param-get, vm-param-list, vm-param-removevm-param-set, vm-pause, vm-reboot, vm-reset-powerstate, vm-resumevm-shutdown, vm-snapshot, vm-snapshot-with-quiesce, vm-start, vm-suspendvm-uninstall, vm-unpause, vm-vcpu-hotplug, vm-vif-list

blob-create, blob-get, blob-list, blob-param-clear, blob-param-getblob-param-list, blob-param-set, blob-put, bond-create, bond-destroybond-list, bond-param-get, bond-param-list, cd-list, console-listconsole-param-add, console-param-clear, console-param-getconsole-param-list, console-param-remove, console-param-setdiagnostic-compact, diagnostic-db-log, diagnostic-db-statsdiagnostic-gc-stats, diagnostic-timing-stats, diagnostic-vdi-statusdiagnostic-vm-status, event-wait, log-get, log-get-keys, log-reopen

log-set-output, message-create, message-list, message-param-getmessage-param-list, network-create, network-destroy, network-listnetwork-param-add, network-param-clear, network-param-getnetwork-param-list, network-param-remove, network-param-set, patch-applypatch-clean, patch-destroy, patch-list, patch-param-clearpatch-param-get, patch-param-list, patch-pool-apply, patch-precheckpatch-upload, pbd-create, pbd-destroy, pbd-list, pbd-param-addpbd-param-clear, pbd-param-get, pbd-param-list, pbd-param-remove

pbd-param-set, pbd-plug, pbd-unplug, pif-forget, pif-introduce, pif-listpif-param-add, pif-param-clear, pif-param-get, pif-param-listpif-param-remove, pif-param-set, pif-plug, pif-reconfigure-ip, pif-scanpif-unplug, pool-designate-new-master, pool-dump-database, pool-ejectpool-emergency-reset-master, pool-emergency-transition-to-masterpool-ha-compute-hypothetical-max-host-failures-to-toleratepool-ha-compute-max-host-failures-to-tolerate, pool-ha-disablepool-ha-compute-hypothetical-max-host-failures-to-toleratepool-ha-compute-max-host-failures-to-tolerate, pool-ha-disablepool-ha-enable, pool-join, pool-list, pool-param-add, pool-param-clearpool-param-get, pool-param-list, pool-param-remove, pool-param-setpool-recover-slaves, pool-restore-database, pool-sync-databasepool-vlan-create, sm-list, sm-param-get, sm-param-list, sr-createsr-destroy, sr-forget, sr-introduce, sr-list, sr-param-addsr-param-clear, sr-param-get, sr-param-list, sr-param-removesr-param-set, sr-probe, sr-scan, sr-update, task-cancel, task-listtask-param-get, task-param-list, template-export, template-listtemplate-param-add, template-param-clear, template-param-gettemplate-param-list, template-param-remove, template-param-setupdate-upload, user-password-change, vbd-create, vbd-destroy, vbd-ejectvbd-insert, vbd-list, vbd-param-add, vbd-param-clear, vbd-param-getvbd-param-list, vbd-param-remove, vbd-param-set, vbd-plug, vbd-unplugvdi-clone, vdi-copy, vdi-create, vdi-destroy, vdi-forget, vdi-importvdi-introduce, vdi-list, vdi-param-add, vdi-param-clear, vdi-param-getvdi-param-list, vdi-param-remove, vdi-param-set, vdi-resizevdi-snapshot, vdi-unlock, vdi-update, vif-create, vif-destroy, vif-listvif-param-add, vif-param-clear, vif-param-get, vif-param-listvif-param-remove, vif-param-set, vif-plug, vif-unplug, vlan-createvlan-destroy, vlan-list, vlan-param-get, vlan-param-list

Page 25: Highload Frank Kohler

Open Source XEN

stable, tested

not tested

unstable

Quality Assuranceand Testing on Enterprise Level

Automated Regression

Optimization

BETA releases

XenServer

stable, tested

Proprietary software

Fixes

Fixes

Enterprise Virtualization Software

Manual Regression

From Open Source to Enterprise Product

Platinum Edition

Page 26: Highload Frank Kohler

OtherArchitectures

Page 27: Highload Frank Kohler

Architectures

Page 28: Highload Frank Kohler

Monolithic & Microkernelized

• Monolithic hypervisor– Simpler than a modern kernel,

but still complex

– Contains its own drivers model

• Microkernelized hypervisor– Simple partitioning functionality– Increase reliability and minimize TCB– No third-party code– Drivers run within guests

VM 1(“Admin”)

VM 3

Hardware

Hypervisor

VM 2(“Child”)

VM 3(“Child”)

Virtual-ization Stack

VM 1(“Parent”)

DriversDriversDriversDriversDriversDrivers

DriversDriversDriversHypervisor

VM 2

Hardware

DriversDriversDrivers

VMware ESX ApproachWindows Server Virtualization

Approach

“Our view is that virtualization

is something that should be

built into the operating system.”Steve Ballmer

Page 29: Highload Frank Kohler

KVM Arch

Page 30: Highload Frank Kohler

XenServerConcepts

Page 31: Highload Frank Kohler

Xen and XenServer

XenInterrupts, CPU, memory

Management StackXAPI

Control DomainHardware, management

XenCenter GUIWindows / C#

HP ProLiant ConsolePython

StorageVHD, iSCSI, Fibre Channel

OS SupportWindows PV, Linux Kernels

Dom0: stripped Centos5, smaller footprint, linux

drivers

Page 32: Highload Frank Kohler

Resource Pools

XenServer XenServer XenServer

Local Storage Shared Storage

Anchored VM Agile VM Agile VM

Page 33: Highload Frank Kohler

service api {start | stop | restart}

Citrix XenCenter

CitrixWorkflow Studio

Windows Powershell

EgeneraPAN Manager

CIMbridge

ProLiantVirtual Console

Citrix XenServerpools

All these clients are using the same API

Page 34: Highload Frank Kohler

StorageManagement

Page 35: Highload Frank Kohler

Storage Management

Storage API

Leverage the capabilities of

enterprise storage systems

Leave storage to the storage

experts. Open up an API for

command and control.

The XenServer way

Intelligent storage reduced to

commodity disk

Storage operations controlled

by virtualization software

File System

The Old Way

Page 36: Highload Frank Kohler

XenServer APIs

Citrix XenCenter

CitrixWorkflow Studio

Windows Powershell

EgeneraPAN Manager

CIMbridge

ProLiantVirtual Console

Citrix XenServerpools

All storage is accessed through the same API

• fdisk –l

• fdisk /dev/sdb

• mkfs -t ext3

/dev/sdb

• xe sr-create

– content-type= device-config: host-uuid= name-label= physical-size= shared= sm-config: type=lvm

• vgdisplay

• pvcreate /dev/sdb

• vgextend VG_Name /dev/sdb

• vgdisplay

Page 37: Highload Frank Kohler

NetApp: ONTAP API: snapshotting und recovery

Page 38: Highload Frank Kohler

XenServer Resource Pools

Ability to join multiple physical servers into one logical pool of resources.

Allows VM agility• Automatic Initial Placement

• Live Migration

Shared configurations• Networking

• Remote Storage

Resiliency to single system failures• Clustered management layer

• No backend management server

• Built-in replicated database on each node

xe pool-join master-address=a

master-username=root

master

password=password

Example 1: To import multiple metadata files into a pool:# importscript.sh

# Imports multiple numbered VM Metadata files## Usage: ./importscript.sh filenameecho Importing $1xe vm-import filename=$1 metadata=truei=2

while [ -f $1$i ]doecho Importing $1$ixe vm-import filename=$1$i metadata=truei=`expr $i + 1`

done

Page 39: Highload Frank Kohler

Active-active NIC Bonding Architecture

Physical NIC 1

Physical NIC 2

Control Domain VM

eth 0

Virtual NIC

Virtual SwitchBond 0

eth 1

Xen Hypervisor

Virtual Interface

Linux Device Drivers

• New NIC• lspci

• ifconfig -a

• xe pif-scan host-uuid=UUID

• Announce new hardware:xe pif-introduce device=eth0

mac= 00:16:D3:C4:B9:BB host-

uuid=

Page 40: Highload Frank Kohler

Snapshotting VMs (CLI)

New commands:

• Perform a regular snapshotxe vm-snapshot vm=vm_name

new-name-label=vm_snapshot_name

• Perform a quiesced snapshotxe vm-snapshot-with-quiesce

vm=vm_name

new-name-label=vm_snapshot_name

Page 41: Highload Frank Kohler

HighAvailability

Page 42: Highload Frank Kohler

Management Architectures

The Other Guys XenServer

Traditional ManagementArchitecture

• Single backend management server

Next Generation Management Architecture

• Clustered management layer

Page 43: Highload Frank Kohler

HighAvailability

Features

Dynamic Failure Planning

Adaptive Heuristics

E-mail Alerting

“Invisible”

Page 44: Highload Frank Kohler
Page 45: Highload Frank Kohler

High Availability

XenServer 1

XenAppWorkload 1

XenAppWorkload 2

XenAppWorkload 3

XenServer 2

Shared Storage

XenAppWorkload 1

XenAppWorkload 2

XenAppWorkload 3

Page 46: Highload Frank Kohler

Standard HA everRun VM

everRun VM + Lockstep

Option (Q4 ‘08)

Level 2 –Component-LevelFault Tolerance

Zero downtime – I/O failures

Automated setup & configuration

Automated fault management

Guaranteed recovery

Geographic protection

Dynamic upgrades

Level 3 –System-LevelFault Tolerance

Zero downtime – Any failure

Maintains application state

Maintains memory state

Level 1 –Basic Failover

Best-effort failover

Linux & Windows guest support

No secondary resource allocation

Shared-LUN support

Marathon – HA Level

Page 47: Highload Frank Kohler

Automated High Availability to protect against host failures

I/O multi-path support

Multi-site Disaster Recovery enablement

IncreasednumberofsupportedhostphysicalNICs

Increasednumberofsupportedhosts per pool

Latest Xen 3.x hypervisor

SLES 10 x64 support

SLES 9 SP4 support

Full 32 and 64-bit RHEL support

Windows Server 2008 support 32 & 64-bit (incl. streaming)

New Guest /HV Support

Automated High Availability to protect against host failures

Business Continuity

Windows PV drivers for max performance

MSFT certified hypervisor

Search and Tag Virtual MachinesPersistent performance data / trending

Near bare-metal performance

Sorting, searching, grouping, tagging in XenCenter

XenConvert P2V

Alerting for key runtime events

Bulletproof Reliability

Role-based admin for streaming

Host networking config via XenCenter

QLogic / Emulex 8Gb FC HBA support

Dell EqualLogic SR driver

Snapshots for advanced storage arrays

FC SR creation via XenCenterFC + iSCSI SAN Support

enterprise features…

Increasednumberofsupportedhosts per pool

XenConvert P2VOracle DB certified hypervisor

Oracle Apps certified hypervisor

NIC bonding

NetApp SR driver

10 to Xen installation

Workflow templates

FT upgradable

Auto VM placement and load balancingXenAPIXen SDK

Auto backup of VM metadata

Workflow Studio-enabled

Intuitive XenCenter UI

Page 48: Highload Frank Kohler

Performance Comparisons

Page 49: Highload Frank Kohler

Performance comparisons

Page 50: Highload Frank Kohler

Moore’s Law:doubling transistors 2yrs

3.7 TFlops25 racks512 Servers1000 sq ft128 kW

3.7 TFlops1 rack53 Blades40 sq ft21 kW

Page 51: Highload Frank Kohler

XEN: build W2K3 DDK build

Page 52: Highload Frank Kohler

XEN & ApplicationSAP scalability on XEN

Page 53: Highload Frank Kohler

Reducing XenApp Server Count

Issue: 32-bit Windows can only address 4 GB RAM

Underutilizes modern multi-core processors

4 GB RAM exhausted

Plenty of processor cycles still available

Page 54: Highload Frank Kohler

Test Results – Performance Comparison

Physical Server RAM exhausted at <90 users

Page 55: Highload Frank Kohler

Test Results – Performance Comparison

Page 56: Highload Frank Kohler

Optimized for XenApp

XenServer

Other Guys

73%moreusers

Page 57: Highload Frank Kohler

Pool Scalability

Page 58: Highload Frank Kohler

1400 VMs, 28 hosts, 1 pool

Page 59: Highload Frank Kohler

Citrix XenServer OEM Edition

Page 61: Highload Frank Kohler

Enterprise Ready!

Page 62: Highload Frank Kohler

WindowsCertification

Page 63: Highload Frank Kohler

DisasterRecovery

Page 64: Highload Frank Kohler

ImprovedHardwareSupport

Page 65: Highload Frank Kohler

UserExperience

Page 66: Highload Frank Kohler

Beyond Citrix XenServer 5

Page 67: Highload Frank Kohler

Future of Xen, e.g. Client Initiative

• Power Management

• S3 suspend to RAM, Rapid Boot

• GPU passthru w/IOMMU

• USB passthru

• WiFi / WiMax

• Native UEFI support

• Security

• TPM, emulated TPM

• OVF specs

Page 68: Highload Frank Kohler

Decision points for XenServer?

• Stability, Performance

• Ease of use: „10 minutes to Xen“; real :-)

• High performance workloads

• Best price/performance ratio

• Provisioning Server

• Close Partnership w/Microsoft

Page 69: Highload Frank Kohler

“Citrix is a great partner! They know how to partner

best with Microsoft. They are the best example

for ISV partnership.”

—Steve Ballmer (Photo from Microsoft CIO Summit, Mar 1, 2007)

Page 70: Highload Frank Kohler

New Landing Pages

http://www.xenserver5.com

Page 71: Highload Frank Kohler
Page 72: Highload Frank Kohler
Page 73: Highload Frank Kohler
Page 74: Highload Frank Kohler

Backup Slides

Page 75: Highload Frank Kohler
Page 76: Highload Frank Kohler

That’s all for Orlando folks!

Engineering willreturn in 2009 in“Midnight Ride”

Happy Selling!