What You Need to Know About XenServer



  • Welcome to the world of XenServer. There is often some confusion around XenServer and clearing up some misconceptions and providing a clear starting path for investigating XenServer (or XS as people tend to call it) can help to clarify things and make starting on your XenServer journey quick and easy.

    So some quick things that we need to know:

    XenServer is Free. In years past, there was a time when XenServer was not free and this has created an impression that XS may not be free today. This is incorrect, it is totally free. There is no cost, and in fact no licensing process, involved in using XenServer! That means unlimited usage: as many CPUs, cores, memory, disks, LUNs, hosts, VMs, hosts as you want. No limits.

    Xen and XenServer are different, but related. Xen is the hypervisor, and nothing else. You can't use Xen on its own, it needs a support ecosystem. Lots of vendors (Oracle, Suse, Ubuntu, Amazon, Rackspace, OpenStack and others) build virtualization platforms off of Xen. XenServer is one of those. Think of Xen like the Linux kernel, it doesn't do anything on its own. XenServer is like CentOS, a full "distro" based on the Xen "kernel". So Xen is the "family", XenServer is the full implementation. You will never use Xen on its own, you might choose to use something other than XenServer, but XenServer is by far the most popular way to use Xen and is, in fact, today the reference implementation of Xen.

    Citrix Does Not Own XenServer. In the past Citrix did own XenServer, as well as Xen, but Xen was open source since being originally created by Cambridge and so has always been fully free and open. XenServer was a proprietary virtualization stack built off of Xen by Citrix. Citrix later donated both Xen and XenServer to the Linux Foundation, who own them today. The Linux Foundation merged Citrix' XenServer code base with their own XCP code base, which had been the former reference implementation of Xen, and kept the name XenServer for the resulting merger. Maybe features that Citrix had removed from XenServer were built back in and the project brought more up to date and powerful. Citrix continues to control the brand name "Xen" and uses it on their own, unrelated non-virtualization products like XenApp and XenDesktop and Citrix offers support contracts for XenServer so that it has the same level of support as you might get with VMware vSphere or Microsoft's Hyper-V.

    XenServer is a Bare Metal, Type 1 Hypervisor Xen, and therefore XenServer, is a Type 1 (Bare Metal) hypervisor and so runs directly on your server hardware and all VMs run on top of it. XenServer does not run on top of any OS. It is a peer with products like VMware ESXi, Microsoft Hyper-V and KVM - all of which are the same basic design.

    XenServer is not Linux Xen was made completely independently of Linux. XenServer utilizes CentOS Linux in the Dom0, but that is a VM on top of Xen, not part of Xen itself. Much of the functionality that we think of as being XenServer comes from the Dom0. Dom0 or "Domain Zero" is a special "control VM" that provides special functionality to Xen such as providing drivers and interface features, logging and monitoring.


    XenServer offers many, many very powerful and advanced features and hopefully you will have many chances to work with them. But to get started, there is a good path for your first XenServer deployment.

    1. Get the latest, XenServer 7 directly from xenserver.org
    2. Download XenCenter from the same site, this is just an app that runs on a Windows desktop
    3. Install XenServer 7 directly to your hardware RAID array, don't try to use SD/USB. While that's great to do, it's an expert use case here. XenServer offers enterprise software RAID built in, but this is not recommended for your first deployment as this is an advanced feature and not generally recommended for normal deployments.
    4. Use your RAID card to expose to logical volumes (disks) to XS directly. Give it one small one, like 70GB, for XenServer itself. And all the rest for the SR (VM storage.) [If you lack this functionality or are not familiar with this process, post a question here in ML and include the RAID controller that you are using so that we can assist!]
    5. Choose Thin Provisioning during the installation process, you can't fix this one thing later. Sucks that they don't default to it. Its my top complaint.
    6. To get started, play with everything via XenCenter. It's a cheesy Windows app, but it is SO easy to use and set up. You'll never need to work with the servers directly after installation. Everything will be remote, as it should be.
    7. OBR10 (one big RAID 10) almost certainly for your local storage.
    8. Use a standard Windows share (SMB share) from the same Windows desktop that you put XenCenter on to place ISO images that you will use for VM installation. This is different than Hyper-V or VMware. ISOs are not stored locally) Just mount this in XenCenter and you can install from that, super easy. You can download new ISOs right to the desktop to make them available.

    Advanced Steps:

    To really get the power of XenServer, you will want to deploy XenOrchestra which exposes much of the power and flexibility of XenServer and is available both free and as a fully supported virtual appliance. XenOrchestra adds important features like host level backups, centralized web interface "single pane of glass" management, host to host replication and more. This is one "advanced step" that nearly everyone should be doing before putting XenServer into production.

    You can also use Linux MD enterprise software RAID in some cases. And you can use DRBD to create highly reliable replicated local storage between XenServer nodes for high availability without need for external storage. You can automate this with the HA-Lizard utility, again, available for free!





  • My biggest complaint with XS is not having any simple method to attach a local ISO repository. Horribly critical flaw (not really).



  • @JaredBusch said in What You Need to Know About XenServer:

    My biggest complaint with XS is not having any simple method to attach a local ISO repository. Horribly critical flaw (not really).

    I think that the bigger flaw, and simpler one to address, is the silly defaulting to thick provisioning during the setup when no one knows what they want yet!

    Although I do dislike the lack of local ISO repo option, that's just silly as it is so simple to address as well.



  • @scottalanmiller said in What You Need to Know About XenServer:

    @JaredBusch said in What You Need to Know About XenServer:

    My biggest complaint with XS is not having any simple method to attach a local ISO repository. Horribly critical flaw (not really).

    I think that the bigger flaw, and simpler one to address, is the silly defaulting to thick provisioning during the setup when no one knows what they want yet!

    Although I do dislike the lack of local ISO repo option, that's just silly as it is so simple to address as well.

    Changing to thin provisioning is easy to handle in a walk through like this though. So while I do agree it is a nasty setting, it is one that is easily changed during install.



  • Great write-up about XenServer. I'm going to book mark this for future reference.



  • Very informative.



  • @JaredBusch said in What You Need to Know About XenServer:

    My biggest complaint with XS is not having any simple method to attach a local ISO repository. Horribly critical flaw (not really).

    Just create a minimal CentOS VM with an ISO disk-repo… five minutes of work, maybe!



  • @scottalanmiller I think that the only "advanced step" is to put your hands into XAPI… what a powerful toolstack! Its logic is different than libvirt, but is just as capable, if not more! Create cronjobs and non-trivial scripts is very easy.

    Maybe, something that is lacking is some form of integration with libguestfs, a KVM-centric set of tool that can do anything with disk images… for example, you can pull the cloud image of your favourite distro and inject ssh keys or passwords, completely skipping the installaton process. Maybe we will see something like that for windows, some day…



  • This was posted at the perfect time, since I'm planning on putting Xenserver on my new box for my home network. Thanks!



  • @Francesco-Provino said in What You Need to Know About XenServer:

    @JaredBusch said in What You Need to Know About XenServer:

    My biggest complaint with XS is not having any simple method to attach a local ISO repository. Horribly critical flaw (not really).

    Just create a minimal CentOS VM with an ISO disk-repo… five minutes of work, maybe!

    I should whip up a script for making one that is designed just for people who don't know how to do that. A really simple script could set all of that up very easily.



  • Main reason to have not thin pro by default is the quality of code for working on files rather than blocks (with LVM).

    In file situation, XenServer has to write metadata twice (like in NFS situation by the way). Historically (and today until SmapiV3), the code managing files is a mess.

    Personally, I never encountered problems using files (in fact I encountered less issues using NFS).

    About ISOs repo: design pattern to work with ISO is shit. And that's really hard to do anything like this on our level (ie with XAPI calls). I hate this because people without XS knowledge often blame us for that 😞 We can't stream ISOs, those repo are read only and everything you can imagine to be complicated to workaround. If you want to read more, see https://github.com/vatesfr/xo-web/issues/288 for discussion.



  • @olivier said in What You Need to Know About XenServer:

    About ISOs repo: design pattern to work with ISO is shit. And that's really hard to do anything like this on our level (ie with XAPI calls). I hate this because people without XS knowledge often blame us for that 😞 We can't stream ISOs, those repo are read only and everything you can imagine to be complicated to workaround. If you want to read more, see https://github.com/vatesfr/xo-web/issues/288 for discussion.

    What if XO was to include a checkbox option that would set up an NFS share from the XO host to store ISOs locally there (including a simple system for uploading, renaming and deleting) that would mount automatically to the XenServer hosts?



  • @scottalanmiller That would:

    • trigger a support shitstorm with people filling XOA disks
    • we have no control inside customer infrastructure to know which XS host can access it and on which IP, eg in case of various DCs (cause of lot support ticket obviously) -> FYI, 90% of our support requests are for misconfigured XS or NFS/SMB mount.

    Ideally, streaming the ISO would be great, but it's not really possible with how XS deal with this.



  • @olivier An aside, have you considered selling general XS support? Even for those not necessarily running XO? Just wondered if it was ever considered as a lower cost alternative to inclusive support from Citrix might be a valuable market offering.



  • A really simple solution to this (where do I put my ISOs) is to outline how simple it is to make a share, and connect to it via Xencenter.

    A 1,2,3 guide to getting started with XenServer.

    Outline the basic installation steps l, how to download XC, and how to get ISOs to the hypervisor.



  • Also @olivier I think it would be a great opportunity as well for you to offer general XS support as well.



  • @scottalanmiller said in What You Need to Know About XenServer:

    @olivier An aside, have you considered selling general XS support? Even for those not necessarily running XO? Just wondered if it was ever considered as a lower cost alternative to inclusive support from Citrix might be a valuable market offering.

    @DustinB3403 said in What You Need to Know About XenServer:

    Also @olivier I think it would be a great opportunity as well for you to offer general XS support as well.

    I don't think you really imagine the colossal amount of work needed to do that. I got ONE customer with XS support included, and during the XS7 disk bug, I spent almost an entire week helping him. Multiply this by more or less 100, and you see the problem. It's not doable with our current size: we can't sell something we can't be sure to deliver. Plus we'll need a team able to be up 24/7, which needs around 8 people dedicated to at least having someone covering a time slot.



  • @olivier you don't need to jump to offering it publicly until you can scale up. Offer it to a select client or two at most.

    See how it progresses from there.



  • @DustinB3403 That's exactly what I've done with one client, and I'm stopping there.



  • @olivier said in What You Need to Know About XenServer:

    @DustinB3403 That's exactly what I've done with one client, and I'm stopping there.

    Ah, I misunderstood your last post, I thought it was theoretical



  • @DustinB3403 No that was real ^^



  • @JaredBusch said in What You Need to Know About XenServer:

    My biggest complaint with XS is not having any simple method to attach a local ISO repository. Horribly critical flaw (not really).

    I completely agree.



  • "Use your RAID card to expose to logical volumes (disks) to XS directly. Give it one small one, like 70GB, for XenServer itself. And all the rest for the SR (VM storage.) [If you lack this functionality or are not familiar with this process, post a question here in ML and include the RAID controller that you are using so that we can assist!]"

    Hi! So I have a Dell PERC H700. Looked around inside of the PERC settings and didn't see a way to do this. Any help would be greatly appreciated.



  • @wirestyle22 said in What You Need to Know About XenServer:

    "Use your RAID card to expose to logical volumes (disks) to XS directly. Give it one small one, like 70GB, for XenServer itself. And all the rest for the SR (VM storage.) [If you lack this functionality or are not familiar with this process, post a question here in ML and include the RAID controller that you are using so that we can assist!]"

    Hi! So I have a Dell PERC H700. Looked around inside of the PERC settings and didn't see a way to do this. Any help would be greatly appreciated.

    Looking through the H700 manual, it does not appear to support logical volumes on the RAID card.



  • @scottalanmiller said in What You Need to Know About XenServer:

    @wirestyle22 said in What You Need to Know About XenServer:

    "Use your RAID card to expose to logical volumes (disks) to XS directly. Give it one small one, like 70GB, for XenServer itself. And all the rest for the SR (VM storage.) [If you lack this functionality or are not familiar with this process, post a question here in ML and include the RAID controller that you are using so that we can assist!]"

    Hi! So I have a Dell PERC H700. Looked around inside of the PERC settings and didn't see a way to do this. Any help would be greatly appreciated.

    Looking through the H700 manual, it does not appear to support logical volumes on the RAID card.

    Good to know it's not me. Thanks!



  • @wirestyle22

    What I ended up doing (though I didn't use it, used USB/SD which I am looking to move away from) was just setting up two small disks as a separate RAID1 array just for the boot device.

    $140ish from xByte so not crazy expensive.





  • @BRRABill I did run into complications while trying to create an ISO Library. It seems pretty unintuitive to me.

    mkdir -p /var/opt/xen/ISO_Lib

    xe sr-create name-label=LocalISO type=iso device-config:location=/var/opt/xen/ISO_Store device-config:legacy_mode=true content-type=iso

    cd /var/opt/xen/ISO_Lib

    I then ran into issues locating the actual link so I could wget

    I found this one eventually: http://care.dlservice.microsoft.com/download/7/5/E/75EC4E54-5B02-42D6-8879-D8D3A25FBEF7/7601.17514.101119-1850_x64fre_server_eval_en-us-GRMSXEVAL_EN_DVD.iso?lcid=1033&cprod=WinSvr2

    I didn't see any failure notifications. However, there was also no ISO's listed in the library.

    I ran df -h to find disk usage and it didn't have enough space so I switched to my 8 TB GPT Partition.

    cd /var/run/sr-mount/etc etc etc code/

    Then I went through the process of creating another directory. I moved it to the new ISO_Lib folder and ran this:

    xe sr-create name-label=ISO_Lib type=iso device-config:location=/var/run/sr-mount/etc etc etc code/ISO_Storage device-config:legacy_mode=true content-type=iso

    To make it an ISO library. Nothing is listed in there. Is it me or this so much just to create local storage?



  • @wirestyle22 said in What You Need to Know About XenServer:

    @BRRABill I did run into complications while trying to create an ISO Library. It seems pretty unintuitive to me.

    mkdir -p /var/opt/xen/ISO_Lib

    xe sr-create name-label=LocalISO type=iso device-config:location=/var/opt/xen/ISO_Store device-config:legacy_mode=true content-type=iso

    cd /var/opt/xen/ISO_Lib

    I then ran into issues locating the actual link so I could wget

    I found this one eventually: http://care.dlservice.microsoft.com/download/7/5/E/75EC4E54-5B02-42D6-8879-D8D3A25FBEF7/7601.17514.101119-1850_x64fre_server_eval_en-us-GRMSXEVAL_EN_DVD.iso?lcid=1033&cprod=WinSvr2

    I didn't see any failure notifications. However, there was also no ISO's listed in the library.

    I ran df -h to find disk usage and it didn't have enough space so I switched to my 8 TB GPT Partition.

    cd /var/run/sr-mount/etc etc etc code/

    Then I went through the process of creating another directory. I moved it to the new ISO_Lib folder and ran this:

    xe sr-create name-label=ISO_Lib type=iso device-config:location=/var/run/sr-mount/etc etc etc code/ISO_Storage device-config:legacy_mode=true content-type=iso

    To make it an ISO library. Nothing is listed in there. Is it me or this so much just to create local storage?

    The reason being that LOCAL repo's aren't supported, is that it literally takes nothing to share out a drive from a windows desktop and connect to it via XenCenter (or XO).

    It's a 5 minute process.