[lxc-users] Converting from libvirt lxc

Peter Steele pwsteele at gmail.com
Wed Dec 2 14:49:06 UTC 2015


On 12/01/2015 08:25 PM, Fajar A. Nugraha wrote:
> Is there a reason why you can't install a centos7 container using the 
> download template? It would've been MUCH easier, and some of the 
> things you asked wouldn't even be an issue.
Well, there's a bit of history involved. Originally we were building 
systems using KVM based virtual machines. As part of this, we developed 
a custom installation process where the user burns our boot image onto a 
USB stick and boots a server with this image. There is a corresponding 
UI a user installs on his workstation that lets the user communicate 
with the server being installed and customize the installation. After 
the user hits "start install" in the UI the process is mostly hands-free 
where the server gets installed with our CentOS based hypervisor and 
then VMs being automatically created on top of that. The OS image that's 
used for the VMs gets created on the fly as part of this process. 
Everything is self-contained and we cannot make the assumption that the 
server has access to the external internet. Everything that's needed is 
on the boot stick.

This past year we moved to libvirt based containers instead of VMs, and 
we were able to use the same image we build for the VMs for the libvirt 
containers, with only a few minor changes, and our CentOS hypervisor now 
manages containers instead of VMs. The installation process is largely 
unchanged from the user's perspective and the fact that containers are 
being used is completely hidden.

Unfortunately, libvirt-lxc is being deprecated by Redhat, and that means 
it will eventually disappear in CentOS. That's why we're moving to LXC, 
but it is a transitional process. With the work I'm doing, when I create 
a boot image it can be flagged as either using libvirt containers or LXC 
containers. I need to keep the overall process as similar as possible 
and eventually, when the port to LXC is complete, we can make the 
official switch to LXC. We will need to handle upgrades in the field as 
well for our existing customers, converting their libvirt based systems 
to LXC based systems in-place. That means we'll need to create LXC 
flavored config files that match the XML definitions of the libvirt 
containers. We ultimately had to do the same thing when we transitioned 
from VMs to libvirt containers, so we know the process well. We just 
have to learn the particulars of LXC containers.

So, that long winded answer is why we can't just use the LXC template 
for CentOS directly. I was assuming (hoping) that the libvirt container 
image we build would be largely LXC friendly. Apparently it's not going 
to be quite as straightforward as I'd hoped. I'm going to have to 
dissect the steps used for creating a CentOS LXC template and make sure 
our container image provides what is needed/expected by LXC.
>
>     My containers are coming up but things are running really slowly,
>     although CPU usage is low. I'm not entirely sure what's going on
>     and need to do some more digging.
>
>
> Works for me. However I seem to recall an issue with centos' version 
> of systemd sometime ago.
>
Yes, I hit that systemd issue early on and found the fix for it. The 
slowness I'm seeing now is something else.
>
>
>     whereas under LXC /dev has the following:
>
>
>     I know how to trim the /dev/ttyN entries to match libvirt, but I'm
>     not sure what's needed for the others. For example, how do I get
>     rid of /dev/snd?
>
>
> Here's mine. Centos 7 container, ubuntu 14.04 host, lxc-1.1.4 and 
> lxcfs-0.10 from ubuntu ppa:
>
> c7 / # ls /dev
> console  core  fd  full  hugepages  initctl  log  lxc  mqueue  null 
>  ptmx  pts  random  shm  stderr  stdin  stdout  tty  tty1  tty2  tty3 
>  tty4  urandom  zero
>
>
That ultimately is very similar to my libvirt dev list. I clearly need 
to dig into the CentOS template to see what's being done differently 
compared to my libvirt image.

Peter

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20151202/98c9f527/attachment.html>


More information about the lxc-users mailing list