Virtualization 2008
Citrix XenServer 5.0
Frank Kohler, October 2008
Manager System Engineers Server Virtualization
Agenda
• Introduction• Big Picture• XenServer• Competitive
– Vs. Other Xen Virtualization– Vs. VMware– vs. Microsoft
Virtualization Aspects
Partitioning: Presenting physical resources to individual users --> XEN, VMware, VirtualIron
Aggregation: Combining multiple resources to a single unit --> PVM, OpenSSI, ScaleMP
Virtualization Big PictureSoftware Virtualization
CSS / OSS
z/VM -- KVM
bringing virtualization to x86, IA64, ... platformscoexistence of Linux and Windows
[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
Virtualization Challenges/Limitations
Virtualization technology limited by hardware platform
Do you want to get locked?
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
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
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
Xen Control
Interface Virtualized Hardware
Hardware
VT/AMD-V
Drivers
Storage
OpenSource
ControlInterface
Xen Architecture
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
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
>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
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
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
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
Resource Pools
XenServer XenServer XenServer
Local Storage Shared Storage
Anchored VM Agile VM Agile VM
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
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
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
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
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=
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
Management Architectures
The Other Guys XenServer
Traditional ManagementArchitecture
• Single backend management server
Next Generation Management Architecture
• Clustered management layer
High Availability
XenServer 1
XenAppWorkload 1
XenAppWorkload 2
XenAppWorkload 3
XenServer 2
Shared Storage
XenAppWorkload 1
XenAppWorkload 2
XenAppWorkload 3
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
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
Moore’s Law:doubling transistors 2yrs
3.7 TFlops25 racks512 Servers1000 sq ft128 kW
3.7 TFlops1 rack53 Blades40 sq ft21 kW
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
Strong Open Partner Ecosystem
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
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
“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)
New Landing Pages
http://www.xenserver5.com
Top Related