Virtualization Blog

Discussions and observations on virtualization.

Preview of XenServer support for Docker and Container Management

I'm excited to be able to share with you a preview of our new XenServer support for Docker and Container Management. Downloads can be found on the preview page, read on for installation instructions and more details.

Today many Docker applications run in containers within VMs hosted on hypervisors such as XenServer and other distributions of Xen. The synergy between containers as an application isolation mechanism and hypervisors as a secure physical infrastructure virtualization mechanism is something that I'll be blogging more about in the future. I firmly believe that these two technologies add value to each other, especially if they are aware of each other and designed to work together for an even better result.

That's why we've been looking at how we can enhance XenServer to be a great platform for Docker applications and how we can contribute to the Docker ecosystem to best leverage the capabilities and services available from the hypervisor. As a first step in this initiative I'm pleased to announce a preview of our new XenServer support for Docker applications. Those who attended Citrix Summit in January or FOSDEM in February may have seen an earlier version of this support being demo'd.

The preview is designed to work on top of XenServer 6.5 and comes in two parts: a supplemental pack for the servers and a build of XenCenter with the UI changes. XenCenter is installed in the normal Windows manner. The supplemental pack is installed in the same way as other XenServer supp-packs by copying the ISO file to each server in the pool and executing the following command in domain 0:

xe-install-supplemental-pack xscontainer-6.5.0-100205c.iso
mount: xscontainer-6.5.0-100205c.iso is write-protected, mounting read-only
Installing 'XenServer Container Management'...

Preparing...                ########################################### [100%]
   1:guest-templates        ########################################### [ 50%]
Waiting for xapi to signal init complete
Removing any existing built-in templates
Regenerating built-in templates
   2:xscontainer            ########################################### [100%]
Pack installation successful.

So what do you get with this preview? First off you get support for running CoreOS Linux VMs - CoreOS is a minimal Linux distribution popular for hosting Docker apps. The XenCenter VM installation wizard now includes a template for CoreOS and additional dialogs for setting the VM up (that's setting up a cloud config drive under the hood). This process also prepares the VM to be managed, to enable the main part of the preview's functionality to interact with it.

b2ap3_thumbnail_new_vm_coreos_cloudconfig.jpg

Secondly, and most importantly, XenServer becomes aware of “Container managed” VMs running Docker containers. It queries the VMs to enumerate the application containers running on each and then displays these within XenCenter's infrastructure view. XenCenter also allows interaction with the containers to start, stop and pause them. We want XenServer to be a platform for Docker and complement, not replace, the core part of the Docker application ecosystem, and therefore we expect that the individual Docker Engine instances in the VMs will be managed by one of the many Docker management tools such as Kubernetes, Docker Compose or ShipYard.

b2ap3_thumbnail_container_treeview.png

So what can you do with this preview?

Monitoring and visibility - knowing which VMs are in use for Docker hosting and which containers on them are actually running. Today's interface is more of a "pets" than "cattle" one but we've got experience  in showing what's going on at greater scale.

Diagnostics - easy access to basic container information such as forwarded network ports and originating Docker image name. This can help accelerate investigations into problems where either or both of the infrastructure and application layers may be implicated. Going forward we’d like to also provide easy access to the container-console.

Performance - spotted a VM that's using a lot of resource? This functionality allows you to see which containers are running on that VM, what processes run inside, how much CPU time each consumed, to help identify the one consuming the resource. In the future we'd like to add per-container resource usage reporting for correlation with the VM level metrics.

Control applications - using XenCenter you can start, stop and pause application containers. This feature has a number of use cases in both evaluation and deployment scenarios including rapidly terminating problematic applications.

We'd love to hear your feedback on this preview: what was useful, what wasn't? What would you like to see that wasn't there? Did you encounter problems or bugs? Please can share your feedback using our normal preview feedback mechanism by creating a ticket in the "XenServer Org" (XSO) project at bugs.xenserver.org

This preview is a first step towards a much richer Docker-XenServer mutual awareness and optimization to help bridge the gap between the worlds of the infrastructure administrator and the application developer/administrator. This is just the beginning, we expect to be improving, extending and enhancing the overall XenServer-Docker experience beyond that. Look out for more blog posts one this topic...

For a detailed guide to using this preview please see this article.

iSCSI and Jumbo Frames
Participe do XenServer Day Fortaleza 2015

Related Posts

 

Comments 11

Thomas Subotitsch on Tuesday, 17 March 2015 07:41

Great news. Hope that API will also get commands for docker management.

0
Great news. Hope that API will also get commands for docker management.
Slava on Friday, 24 April 2015 19:23

Get this error when I try to start the Core-OS vm:

Only 1 LUN may be used with shared OCFS

I tried iSCSI SR and Local storage, same issue. Any ideas?

0
Get this error when I try to start the Core-OS vm: Only 1 LUN may be used with shared OCFS I tried iSCSI SR and Local storage, same issue. Any ideas?
James Bulpin on Monday, 27 April 2015 12:26

Slava: You need to use XenServer 6.5 "Creedence" for this preview. As the error message "Only 1 LUN may be used with shared OCFS" only exists in the trunk codebase I'm assuming you are using a nightly trunk dev build and probably hitting an unrelated (to Docker) issue.

0
Slava: You need to use XenServer 6.5 "Creedence" for this preview. As the error message "Only 1 LUN may be used with shared OCFS" only exists in the trunk codebase I'm assuming you are using a nightly trunk dev build and probably hitting an unrelated (to Docker) issue.
Guest - Slava on Wednesday, 29 April 2015 14:56

Ah, that would explain it. I'll try it with Creedence and let you know if I run into issues. Thank you

0
Ah, that would explain it. I'll try it with Creedence and let you know if I run into issues. Thank you
Guest - Anton on Friday, 15 July 2016 10:39

I have same problem when i trying to use "Hardware DVD-Drive" provided by VMWare =)

0
I have same problem when i trying to use "Hardware DVD-Drive" provided by VMWare =)
Guest - Daniel on Wednesday, 27 May 2015 02:36

I have the plugin installed and the latest XenCenter (6.5/SP1) and XenServer 6.5(SP1002) installed.

But for some reason whenever I right click properties on a CoreOS VM it makes XenCenter hang indefinitely. If I manage to get Windows to restore the program, it loads up the properties screen but the cloud-config data is missing saying it was unable to retrieve it.

I'm running XenCenter on Win7. Is there something I can do to solve this issue?

0
I have the plugin installed and the latest XenCenter (6.5/SP1) and XenServer 6.5(SP1002) installed. But for some reason whenever I right click properties on a CoreOS VM it makes XenCenter hang indefinitely. If I manage to get Windows to restore the program, it loads up the properties screen but the cloud-config data is missing saying it was unable to retrieve it. I'm running XenCenter on Win7. Is there something I can do to solve this issue?
Amanda Gomes on Thursday, 02 July 2015 19:30

Good afternoon!
I performed the entire installation of CoreOS normally, but when I try to enable the "Container Management" option, the following error is displayed by XenCenter: "Object reference not set to an instance of an object." So, I can not monitor the containers that are created.

Do you have any idea of what might be happening?

Thank you.
Regards,
Amanda Gomes.

0
Good afternoon! I performed the entire installation of CoreOS normally, but when I try to enable the "Container Management" option, the following error is displayed by XenCenter: "Object reference not set to an instance of an object." So, I can not monitor the containers that are created. Do you have any idea of what might be happening? Thank you. Regards, Amanda Gomes.
Guest - Gregorio Del Olmo Rodriguez on Tuesday, 12 April 2016 00:01

Hello.

About one year later, I have a inverse question about Xen hypervisor and Docker (or LXC Linux Domains), Could be possible to deploy a Xen hypervisor from LXC domain /or Docker as from Virtualbox works, the question is because the LXC / Docker's dom have a very low latencies and could help to consolidate in one machine different virtual technologies.

0
Hello. About one year later, I have a inverse question about Xen hypervisor and Docker (or LXC Linux Domains), Could be possible to deploy a Xen hypervisor from LXC domain /or Docker as from Virtualbox works, the question is because the LXC / Docker's dom have a very low latencies and could help to consolidate in one machine different virtual technologies.
James Bulpin on Tuesday, 12 April 2016 11:20

Hello Gregorio,

You cannot run Xen within a Linux container (LXC or Docker) because Xen is a type-1 hypervisor that runs directly on the hardware (physical or virtual, the latter being the case when running Xen within a VirtualBox VM, for example), running underneath the operating system - whereas a Linux container virtualizes the Linux kernel and therefore things that run in Linux containers must be able to work on top of that kernel (syscall) interface, i.e. they are Linux userspace process.

This contrasts with a type-2 hypervisor such as VirtualBox than runs as a userspace process on top of a host operating system, and thus can, in principle, run inside a container.

0
Hello Gregorio, You cannot run Xen within a Linux container (LXC or Docker) because Xen is a type-1 hypervisor that runs directly on the hardware (physical or virtual, the latter being the case when running Xen within a VirtualBox VM, for example), running [b]underneath[/b] the operating system - whereas a Linux container virtualizes the Linux kernel and therefore things that run in Linux containers must be able to work [b]on top of[/b] that kernel (syscall) interface, i.e. they are Linux userspace process. This contrasts with a type-2 hypervisor such as VirtualBox than runs as a userspace process on top of a host operating system, and thus can, in principle, run inside a container.
Eric Pretorious on Wednesday, 07 September 2016 20:57

Hello, James:

I noticed that the commands that you used to install the SP...

# xe-install-supplemental-pack xscontainer-6.5.0-100205c.iso

...are different that the commands described in CTX142355, "XenServer 6.5.0 Service Pack 1":

# xe patch-upload -s -u root -pw file-name=\XS65ESP1.xsupdate

Is one method preferred to the other? Or are the two commands equivalent? Or might the instructions in CTX142355 be for installing individual hotfixes?

Eric Pretorious,
Portland, OR

http://support.citrix.com/article/CTX142355

0
Hello, James: I noticed that the commands that you used to install the SP... # xe-install-supplemental-pack xscontainer-6.5.0-100205c.iso ...are different that the commands described in CTX142355, "XenServer 6.5.0 Service Pack 1": # xe patch-upload -s -u root -pw file-name=\XS65ESP1.xsupdate Is one method preferred to the other? Or are the two commands equivalent? Or might the instructions in CTX142355 be for installing individual hotfixes? Eric Pretorious, Portland, OR http://support.citrix.com/article/CTX142355
James Bulpin on Friday, 09 September 2016 13:21

Hi Eric,

Supplemental Packs (such as the container management pack) and Service Packs (e.g. SP1) are different things and are installed differently from the command line - so both command lines are correct for their specific cases.

Note that from 6.5SP1 you can also install Supplemental Packs via XenCenter using the same "Install Update" wizard as for hotfixes and Service Packs (the wizard abstracts the underlying differences in this case).

Cheers,
James

0
Hi Eric, Supplemental Packs (such as the container management pack) and Service Packs (e.g. SP1) are different things and are installed differently from the command line - so both command lines are correct for their specific cases. Note that from 6.5SP1 you can also install Supplemental Packs via XenCenter using the same "Install Update" wizard as for hotfixes and Service Packs (the wizard abstracts the underlying differences in this case). Cheers, James

About XenServer

XenServer is the leading open source virtualization platform, powered by the Xen Project hypervisor and the XAPI toolstack. It is used in the world's largest clouds and enterprises.
 
Commercial support for XenServer is available from Citrix.