[libvirt-users] libvirt and lxc

Ryota Ozaki ozaki.ryota at gmail.com
Tue Aug 3 18:01:12 UTC 2010


On Wed, Aug 4, 2010 at 2:28 AM, Nirmal Guhan <vavatutu at gmail.com> wrote:
> On Tue, Aug 3, 2010 at 6:07 AM, Ryota Ozaki <ozaki.ryota at gmail.com> wrote:
>> Hi Nirmal,
>>
>> On Tue, Aug 3, 2010 at 10:30 AM, Nirmal Guhan <vavatutu at gmail.com> wrote:
>>> Is anyone using libvirt for lxc ? I am trying to do so and running
>>> into an issue. The system container starts fine with lxc tools and am
>>> able to connect to it.
>>>
>>> Here is the snippet of my xml file (rest is same as in
>>> http://libvirt.org/drvlxc.html)
>>>
>>>  <devices>
>>>    <emulator>/usr/libexec/libvirt_lxc</emulator>
>>>    <filesystem type='mount'>
>>>      <source dir='/lxc/f12'/>
>>>      <target dir='/'/>
>>>    </filesystem>
>>>    <interface type='bridge'>
>>>      <mac address='52:54:00:82:87:64'/>
>>>      <source bridge='br0'/>
>>>      <target dev='tap0'/>
>>>    </interface>
>>>    <console type='pty'>
>>>      <target port='0'/>
>>>    </console>
>>>  </devices>
>>>
>>> Am able to start the container but when I do console :
>>>
>>> virsh # console f12lxc
>>> Connected to domain f12lxc
>>> Escape character is ^]
>>> <<hangs here and I press enter, it destroys the domain>>
>>> virsh #
>>
>> Probably you set:
>>  <os>
>>    <type>exe</type>
>>    <init>/init</init>
>>  </os>
>> right? If so, could you try "/bin/sh" instead of "/init"?
>
> Thanks. /bin/bash got me to console. But the init sequence for my
> container is different from the one started using lxc tools with
> /bin/bash. So I changed it to /sbin/init and now I can get the usual
> login prompt. Fun doesn't end there. Am prompted for login but the
> password is never accepted whereas I can login using the same password
> (as root) in the container started using lxc tools. So eventually am
> not able to login :-(

AFAIK libvirt still doesn't support /sbin/init as the init program.

In my case, I write up and use a script of 'fake' init which sets up
inside a container, e.g., assigning IP addresses, launching sshd,
etc. The script eventually 'exec /bin/bash', then the shell is shown
via virsh console. That's enough for my purpose.

Note that libvirt lxc driver is a different implementation from lxc tools
and doesn't use lxc tools internally. You may not be able to do what
you are doing with lxc tools. Especially, the driver doesn't take aware
of files and settings inside a container at all. You have to prepare them
by yourself in advance.

  ozaki-r

>
>
>>
>>  ozaki-r
>>
>>>
>>> Am running Fedora 12 with 2.6.32.10-90.fc12.i686. I changed target
>>> dev='tap0' to 'veth' and no change in the behavior.
>>>
>>> Please help.
>>>
>>> Thanks,
>>> Nirmal
>>>
>>> _______________________________________________
>>> libvirt-users mailing list
>>> libvirt-users at redhat.com
>>> https://www.redhat.com/mailman/listinfo/libvirt-users
>>>
>>
>




More information about the libvirt-users mailing list