Monday, July 22, 2013

Making sense of XenServer vs. xenserver-core vs. Citrix XenServer [feedly]

Shared via feedly // published on Latest blog entries // visit site
Making sense of XenServer vs. xenserver-core vs. Citrix XenServer

So XenServer is now open-source, what does that mean? I look at XenServer as two things: firstly a set of components selected and engineered to work together as a system; and secondly a Linux distribution to provide the base platform to host and execute those components. Of course these two things are tightly coupled because the choice of base Linux distro and the set of packages installed will be part of the story when engineering the system as a whole. However we want to make it such that XenServer's core components, the stuff that does all the virtualization, management, monitoring and so on, can be used on a variety of Linux distros. This means we need to cleanly separate the components from the base distro, e.g. making XenServer components work with any reasonable distro and avoiding making assumptions about particular versions etc.

Let's start with the core components and refer to them collectively as "xenserver-core" (e.g. that could be the name of the meta-package to install them all to a distro "yum install xenserver-core"/"apt-get install xenserver-core" as used in Dave Scott's recent tech preview). These components include the xapi tool stack, storage manager, network daemon and related tools, HA daemon, etc. A second group of core components includes Xen, the Linux kernel, libvirt and qemu; although considered core components it is desirable to be able to use existing distro versions where possible. With suitable package dependencies it should be possible to manage all of the above.


It's important to remember that many of the core components are derived from upstream projects. For example the xapi tool stack is part of the Linux Foundation's Xen Project but is consumed by XenServer, you could think of the XenServer version of xapi being a short term fork of the upstream code. In practice I don't expect to see much divergence between XenServer's xapi and the upstream xapi because it's the same people working on both and XenServer is the primary consumer of the project. For other components that are more widely used, such as qemu, libvirt and Xen I would expect short term divergence as critical features and fixes are ported to the version used by XenServer (just like Linux distros do) but with a rule that all required code is upstreamed to the relevant project to avoid long term divergence.

OK, we have xenserver-core which can now be installed on top of any reasonable Linux distribution. So when I talk about "XenServer" what do I mean? In general I mean the end result of both aspects of XenServer, the components and the base distro, all wrapped up in an ISO with an installer of some kind. This "appliance" model is how XenServer has been for years and provides a turn-key virtualization platform that does not require Linux sysadmin experience to install. This means we start with xenserver-core packages, choose a particular base distribution and set of packages from it and glue the whole lot together somehow. In a sense this is a distro-customization exercise. XenServer's build system has been doing this since day one albeit in a rather more complex way than described above. As part of the open-sourcing of XenServer we need to clean up this packaging and assembly phase by using standard tools and methods to take the core components and an off-the-shelf Linux distro and put the two together. This tooling, and all the configuration management (which versions of which packages etc.) will become part of the project.


What does Citrix actually release? Citrix XenServer is a particular instance of the XenServer appliance built, packaged, assembled, tested, warranted and certified by Citrix. It is only Citrix XenServer that can be supported by Citrix (remember that Citrix XenServer is free, anyone can use it without paying, but to get support and maintenance a package can be purchased from Citrix).

If you want XenServer you have some choices of how to get it (once all the necessary pieces are published of course):

  1. xenserver-core installed on a distro of your choice (either compile the components yourself or use a distro or binary release)
  2. XenServer appliance - you can assemble one of these from core components and a base Linux distro using the tools on
  3. Citrix XenServer - like option 2 above but let Citrix do the hard work of build and assembly and benefit from the system testing and certification this binary build will get. This also gives you the option to buy support from Citrix.

Sent from my iPad

No comments:

Post a Comment