[lxc-users] [Unable to start using lvm backend]

Xavier Gendre gendre.reivax at gmail.com
Mon Apr 13 11:42:46 UTC 2015


It may be useful to give more details about what i am trying to do ;-) I 
work with a Debian Jessie and LXC 1.0.6 from the Debian repository.

First, i give an ID range to root and i set the container's 
configuration with this range:

root # grep root /etc/sub[ug]id
/etc/subgid:root:558752:65536
/etc/subuid:root:558752:65536

root # cat test.conf
lxc.id_map = u 0 558752 65536
lxc.id_map = g 0 558752 65536
lxc.network.type = empty

Then, i create a container with the 'download' template,

root # lxc-create -n test -f test.conf -t download -B lvm --vgname Pool 
-- -d debian -r wheezy -a amd64
File descriptor 3 (/var/lib/lxc/test/partial) leaked on lvcreate 
invocation. Parent PID 1506: lxc-create
   Logical volume "test" created
Using image from local cache
Unpacking the rootfs
[...]

Finally, i try to start this container but it miserably fails,

root # lxc-start -n test --logfile test.log --logpriority DEBUG
lxc-start: failed to determine fs type for '/dev/Pool/test'
lxc-start: failed to determine fs type for '/dev/dm-7'
lxc-start: failed to mount rootfs
lxc-start: failed to setup rootfs for 'test'
lxc-start: Error setting up rootfs mount after spawn
lxc-start: failed to setup the container
lxc-start: invalid sequence number 1. expected 2
lxc-start: failed to spawn 'test'
lxc-start: The container failed to start.
lxc-start: Additional information can be obtained by setting the 
--logfile and --logpriority options.

Here is the content of the log file if it helps,

root # cat test.log
       lxc-start 1428924388.945 INFO     lxc_start_ui - using rcfile 
/var/lib/lxc/test/config
       lxc-start 1428924388.945 INFO     lxc_confile - read uid map: 
type u nsid 0 hostid 558752 range 65536
       lxc-start 1428924388.945 INFO     lxc_confile - read uid map: 
type g nsid 0 hostid 558752 range 65536
       lxc-start 1428924388.945 WARN     lxc_log - lxc_log_init called 
with log already initialized
       lxc-start 1428924388.945 INFO     lxc_lsm - LSM security driver nop
       lxc-start 1428924388.947 DEBUG    lxc_conf - allocated pty 
'/dev/pts/3' (5/6)
       lxc-start 1428924388.947 DEBUG    lxc_conf - allocated pty 
'/dev/pts/4' (7/8)
       lxc-start 1428924388.947 DEBUG    lxc_conf - allocated pty 
'/dev/pts/5' (9/10)
       lxc-start 1428924388.947 DEBUG    lxc_conf - allocated pty 
'/dev/pts/6' (11/12)
       lxc-start 1428924388.947 INFO     lxc_conf - tty's configured
       lxc-start 1428924388.947 DEBUG    lxc_start - sigchild handler set
       lxc-start 1428924388.947 DEBUG    lxc_console - opening /dev/tty 
for console peer
       lxc-start 1428924388.947 DEBUG    lxc_console - using '/dev/tty' 
as console
       lxc-start 1428924388.947 DEBUG    lxc_console - 1587 got SIGWINCH 
fd 17
       lxc-start 1428924388.947 DEBUG    lxc_console - set winsz 
dstfd:14 cols:145 rows:58
       lxc-start 1428924388.947 INFO     lxc_start - 'test' is initialized
       lxc-start 1428924388.948 DEBUG    lxc_start - Not dropping 
cap_sys_boot or watching utmp
       lxc-start 1428924388.961 DEBUG    bdev - trying to mount 
'/dev/Pool/test'->'/usr/lib/x86_64-linux-gnu/lxc/rootfs' with fstype 'ext3'
       lxc-start 1428924388.971 INFO     bdev - mounted '/dev/Pool/test' 
on '/usr/lib/x86_64-linux-gnu/lxc/rootfs', with fstype 'ext3'
       lxc-start 1428924388.971 DEBUG    lxc_conf - mounted 
'/dev/Pool/test' on '/usr/lib/x86_64-linux-gnu/lxc/rootfs'
       lxc-start 1428924388.971 INFO     lxc_start - Set up container 
rootfs as host root
       lxc-start 1428924388.971 INFO     lxc_start - Cloning a new user 
namespace
       lxc-start 1428924388.971 INFO     lxc_cgroup - cgroup driver 
cgroupfs initing for test
       lxc-start 1428924388.983 NOTICE   lxc_start - switching to 
gid/uid 0 in new user namespace
       lxc-start 1428924388.984 DEBUG    bdev - trying to mount 
'/dev/Pool/test'->'/usr/lib/x86_64-linux-gnu/lxc/rootfs' with fstype 'ext3'
       lxc-start 1428924388.984 DEBUG    bdev - mount failed with error: 
Operation not permitted
       lxc-start 1428924388.984 DEBUG    bdev - trying to mount 
'/dev/Pool/test'->'/usr/lib/x86_64-linux-gnu/lxc/rootfs' with fstype 'ext2'
       lxc-start 1428924388.984 DEBUG    bdev - mount failed with error: 
Operation not permitted
       lxc-start 1428924388.984 DEBUG    bdev - trying to mount 
'/dev/Pool/test'->'/usr/lib/x86_64-linux-gnu/lxc/rootfs' with fstype 'ext4'
       lxc-start 1428924388.984 DEBUG    bdev - mount failed with error: 
Operation not permitted
       lxc-start 1428924388.984 ERROR    bdev - failed to determine fs 
type for '/dev/Pool/test'
       lxc-start 1428924388.985 DEBUG    lxc_conf - trying to mount 
'/dev/dm-7'->'/usr/lib/x86_64-linux-gnu/lxc/rootfs' with fstype 'ext3'
       lxc-start 1428924388.985 DEBUG    lxc_conf - mount failed with 
error: Operation not permitted
       lxc-start 1428924388.985 DEBUG    lxc_conf - trying to mount 
'/dev/dm-7'->'/usr/lib/x86_64-linux-gnu/lxc/rootfs' with fstype 'ext2'
       lxc-start 1428924388.985 DEBUG    lxc_conf - mount failed with 
error: Operation not permitted
       lxc-start 1428924388.985 DEBUG    lxc_conf - trying to mount 
'/dev/dm-7'->'/usr/lib/x86_64-linux-gnu/lxc/rootfs' with fstype 'ext4'
       lxc-start 1428924388.985 DEBUG    lxc_conf - mount failed with 
error: Operation not permitted
       lxc-start 1428924388.985 ERROR    lxc_conf - failed to determine 
fs type for '/dev/dm-7'
       lxc-start 1428924388.986 ERROR    lxc_conf - failed to mount rootfs
       lxc-start 1428924388.986 ERROR    lxc_conf - failed to setup 
rootfs for 'test'
       lxc-start 1428924388.987 ERROR    lxc_conf - Error setting up 
rootfs mount after spawn
       lxc-start 1428924388.988 ERROR    lxc_start - failed to setup the 
container
       lxc-start 1428924388.988 ERROR    lxc_sync - invalid sequence 
number 1. expected 2
       lxc-start 1428924388.989 ERROR    lxc_start - failed to spawn 'test'
       lxc-start 1428924388.989 WARN     lxc_conf - Failed to locate 
autodev /dev/.lxc and /dev/.lxc/user.
       lxc-start 1428924388.990 ERROR    lxc_start_ui - The container 
failed to start.
       lxc-start 1428924388.990 ERROR    lxc_start_ui - Additional 
information can be obtained by setting the --logfile and --logpriority 
options.

The problem seems to be that the subuid is not allowed to mount the 
rootfs. Naively, i thought that starting the container as root would 
avoid such a complication. It is the case at time 1428924388.971 but it 
begins to fail after switching to the new user namespace at time 
1428924388.983.

Thanks for help!
Xavier

Le 25/01/2015 01:11, Serge Hallyn a écrit :
> Yes, unprivileged users cannot manipulate the lvm devices on the host.
>
> You can still use user namespaces though.  I have a few containers on my main
> server which do that.  They each run in a unique uid range, but are started by
> root, so that they can use lvm (actually luks-encrypted lvm) backends.
>
> Just add the lxc.id_map lines as per usual to containers which are owned by
> root.  And make sure to allocate the ranges to root in /etc/sub[ug]id.
>
> -serge
>
> Quoting Andrea Masi (eraclitux at gmail.com):
>> The problem seems related to unprivileged containers that seems cannot work
>> with -B lvm.
>> Must we assume that lvm backed store (and maybe others) actually cannot
>> work with unprivileged containers?
>>
>>
>> 2015-01-23 17:02 GMT+01:00 Andrea Masi <eraclitux at gmail.com>:
>>
>>> Hi,
>>> I'm using lxc 1.0.6 on ubuntu 14.04.
>>> I've no problems creating/running on dir backing store but when I use lvm
>>> I cannot start containers getting these errors:
>>>
>>> lxc-start 1422026234.562 ERROR    bdev - failed to determine fs type for
>>> '/dev/lxc/lvm-cont'
>>> lxc-start 1422026234.563 ERROR    lxc_conf - failed to determine fs type
>>> for '/dev/dm-0'
>>> lxc-start 1422026234.564 ERROR    lxc_conf - failed to mount rootfs
>>> lxc-start 1422026234.564 ERROR    lxc_conf - failed to setup rootfs for
>>> 'lvm-cont'
>>> lxc-start 1422026234.565 ERROR    lxc_conf - Error setting up rootfs mount
>>> after spawn
>>> lxc-start 1422026234.565 ERROR    lxc_start - failed to setup the container
>>> lxc-start 1422026234.566 ERROR    lxc_sync - invalid sequence number 1.
>>> expected 2
>>> lxc-start 1422026234.566 ERROR    lxc_start - failed to spawn 'lvm-cont'
>>> lxc-start 1422026234.574 ERROR    lxc_start_ui - The container failed to
>>> start.
>>> lxc-start 1422026234.575 ERROR    lxc_start_ui - Additional information
>>> can be obtained by setting the --logfile and --logpriority options.
>>>
>>> I've tried different template createds with -t download for example:
>>> lxc-create -t download -n lvm-cont -B lvm -- -d ubuntu -r utopic -a amd64
>>>
>>> I can manually mount with no problem /dev/lxc/lvm-cont
>>>
>>> Any idea on what can it be wrong?
>>>
>>> Thanks.
>>>
>>> --
>>> www.eraclitux.com
>>>
>>
>>
>>
>> --
>> www.eraclitux.com
>
>> _______________________________________________
>> lxc-users mailing list
>> lxc-users at lists.linuxcontainers.org
>> http://lists.linuxcontainers.org/listinfo/lxc-users
>
> _______________________________________________
> lxc-users mailing list
> lxc-users at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-users
>


More information about the lxc-users mailing list