CTO, XenServer, Citrix
Transforming XenServer into a proper open-source project
James Bulpin
Transforming XenServer into a proper open-source project James - - PowerPoint PPT Presentation
Transforming XenServer into a proper open-source project James Bulpin CTO, XenServer, Citrix About the speaker James Bulpin Head of technology for XenServer group in Citrix; member of the Citrix CTO office Oversees XenServer
CTO, XenServer, Citrix
James Bulpin
About the speaker
Citrix; member of the Citrix CTO office
2005
Group at the University of Cambridge
Talk overview
Anatomy of a Xen system
memory and processors, and polices access to devices
Linux environment
ᵒ Dom0 kernel with drivers ᵒ Xen Management Toolstack ᵒ Qemu for emulating non-virtualized bits ᵒ Virtual device backends
Control domain (dom0) Host HW VMn VM1 VM0
Guest OS and Apps
Console
Memory CPUs I/O
Dom0 Kernel Toolstack
Hypervisor
Scheduler MMU XSM
Anatomy of a Xen system
memory and processors, and polices access to devices
Linux environment
ᵒ Dom0 kernel with drivers ᵒ Xen Management Toolstack ᵒ Qemu for emulating non-virtualized bits ᵒ Virtual device backends
Control domain (dom0) Host HW VMn VM1 VM0
Guest OS and Apps
Console
Memory CPUs I/O
Dom0 Kernel Toolstack
Hypervisor
Scheduler MMU XSM
When we talk about “Xen” we generally mean the hypervisor and toolstack
What is XenServer?
Networking High availability Storage Cluster management User accounts Performance monitoring
Anatomy of a XenServer system
Control domain (dom0) Host HW VMn VM1 VM0
Guest OS and Apps
Console UI
Memory CPUs I/O
Dom0 Kernel XAPI Toolstack
Hypervisor
Scheduler MMU XSM
Lots of other stuff
A quick plug for the Xen Project User Summit
Hartman, The Linux Foundation)
Russell Pavlicek, Citrix Systems)
XenServer’s history – the early days
creators of the Xen hypervisor
virtualization platform with very limited capabilities
Xen low level tool stack
VMs (using Intel VT) and additional storage and network management
XenServer’s history - XAPI
in late 2007
both functional and imperative programming styles
ᵒ Bypassing “official” Xen toolstack Xen xend xm CLI Xen libxenctrl xapi xe CLI
XenServer
libxenctrl
XenServer’s history – XCP and open-source XAPI
ᵒ Under the xen.org (now Xen Project) umbrella ᵒ Code hosted on github
ᵒ Called “Xen Cloud Platform” ᵒ Very similar to XenServer but without (most of the) non-FOSS pieces
XenServer’s history – Project Kronos
XenServer’s history – open-sourcing the rest
Why do it?
XenServer
but all the time
the best it can be
Non-goals
Xen Linux Kernel XAPI Storage Manager
XenServer Tools (PV drivers)
HA CentOS 5.x AD Integration
XenCenter
XenServer – previously
Proprietary OSS, public dev
Key:
Transfer VM
CIM Server Qemu
OSS, non-public dev
Xen Linux Kernel XAPI Storage Manager
XenServer Tools (PV drivers)
HA CentOS 5.x AD Integration
XenCenter
XenServer – after open sourcing
Proprietary OSS Key:
Transfer VM
CIM Server Qemu
Open test harnesses Open defect tracking
Not just about the code..
Open build Open roadmap
Interactive Community Portal for engaging with Citrix and other users
XenServer.org
What does this mean for XCP users?
XenServer (which is now equivalent)
Project in the Linux Foundation
ᵒ No more delays to XCP releases ᵒ Timely hotfixes that can be easily installed, ᵒ A product that's even more open than it was before.
Progress – done so far
ᵒ XenCenter UI, Windows PV drivers, HA daemon
ᵒ qemu-xen traditional, openvswitch
Progress – still to do
roadmaps etc.
Problems with the current architecture
ᵒ Requires reimplementation of functionality present in other stacks (libvirt, libxl)
ᵒ Requires reimplementation of storage datapaths in other stacks (primarily qemu)
Problems with the current architecture
ᵒ Requires reimplementation of functionality present in other stacks (libvirt, libxl)
ᵒ Requires reimplementation of storage datapaths in other stacks (primarily qemu)
Xen xend xm CLI Xen libxenctrl xapi xe CLI
XenServer
libxenctrl
Problems with the current architecture
ᵒ Requires reimplementation of functionality present in other stacks (libvirt, libxl)
ᵒ Requires reimplementation of storage datapaths in other stacks (primarily qemu)
Xen libxl xl CLI Xen libxenctrl xapi xe CLI
XenServer
libxenctrl
Xen libxl xl CLI Xen libxenctrl xapi xe CLI
XenServer
libxenctrl Port xapi stack to libxl
Xen libxl xl CLI xapi xe CLI
XenServer
libxenctrl Port xapi stack to libxl
Problems with the current architecture
CentOS 5.x
ᵒ High cost to maintain this distribution ᵒ Incompatible with tools used to manage distribution installation etc. ᵒ Providing packages for any other distribution is a side show so costs more ᵒ On a very old base – newer package versions often needed
ᵒ Builds take a very long time ᵒ Makes it hard to rebuild just one piece (not community friendly) ᵒ Easy to make mistakes, especially related package uninstall and upgrade
MyBuildBox:~ $ ./configure && make && make install
ap
myDebianBox:~ $ apt-get install xenserver-core … myCentOSBox: ~ $ yum-install xenserver-core … etc.