[Lxc-users] * fix cached rootfs update * fix rootfs path * add handling of systemd (aka >f15)

Stéphane Graber stgraber at ubuntu.com
Wed Mar 7 18:07:21 UTC 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 03/06/2012 10:11 AM, Serge Hallyn wrote:
> Yes, I think ideally you'd have a single
> 
> /var/lib/lxc/fedora-devs
> 
> mounted from a single loopback or block device, with each
> container having a /var/lib/lxc/fedora-devs/<containername>
> directory, populated, for its dev, bind-mounted in through
> lxc.mount.entry.
> 
> -serge

That sounds indeed better than having one loop per container as at
least Ubuntu limits the number of loop devices to 8 by default
(increasable with a kernel boot parameter).


> 
> Quoting rhanna at informatiq.org (rhanna at informatiq.org):
>> i can do that but i didn't do it brcause it could be done
>> differently for different backingsrorage I'll do it anyway and
>> send patch later
>> 
>> -- Sent from my Nokia N9On 6.3.2012 16:59 Serge Hallyn wrote: 
>> Quoting Ramez Hanna (rhanna at informatiq.org):
>>> On Mon, Mar 5, 2012 at 10:28 PM,  <rhanna at informatiq.org>
>>> wrote:
>>>> From: InformatiQ <rhanna at informatiq.org>
>>>> 
>>>> 
>>>> Signed-off-by: InformatiQ <rhanna at informatiq.org> --- 
>>>> templates/lxc-fedora.in |   35
>>>> +++++++++++++++++++++++++++-------- 1 files changed, 27
>>>> insertions(+), 8 deletions(-)
>>>> 
>>>> diff --git a/templates/lxc-fedora.in
>>>> b/templates/lxc-fedora.in index e7f42a6..3f50895 100644 ---
>>>> a/templates/lxc-fedora.in +++ b/templates/lxc-fedora.in @@
>>>> -69,11 +69,6 @@ EOF 127.0.0.1 localhost $name EOF
>>>> 
>>>> -    sed -i 's|.sbin.start_udev||'
>>>> ${rootfs_path}/etc/rc.sysinit -    sed -i
>>>> 's|.sbin.start_udev||' ${rootfs_path}/etc/rc.d/rc.sysinit -
>>>> chroot ${rootfs_path} chkconfig udev-post off -    chroot
>>>> ${rootfs_path} chkconfig network on - 
>>>> dev_path="${rootfs_path}/dev" rm -rf $dev_path mkdir -p
>>>> $dev_path @@ -99,6 +94,23 @@ EOF
>>>> 
>>>> return 0 } +configure_fedora_init() +{ +    sed -i
>>>> 's|.sbin.start_udev||' ${rootfs_path}/etc/rc.sysinit +    sed
>>>> -i 's|.sbin.start_udev||' ${rootfs_path}/etc/rc.d/rc.sysinit 
>>>> +    chroot ${rootfs_path} chkconfig udev-post off +
>>>> chroot ${rootfs_path} chkconfig network on +} + 
>>>> +configure_fedora_systemd() +{ +    unlink
>>>> ${rootfs_path}/etc/systemd/system/default.target +    touch
>>>> ${rootfs_path}/etc/fstab +    chroot ${rootfs_path} ln -s
>>>> /dev/null //etc/systemd/system/udev.service +    chroot
>>>> ${rootfs_path} ln -s /lib/systemd/system/multi-user.target
>>>> /etc/systemd/system/default.target +    #dependency on a
>>>> device unit fails it specially that we disabled udev +    sed
>>>> -i 's/After=dev-%i.device/After=/'
>>>> ${rootfs_path}/lib/systemd/system/getty\@.service +}
>>>> 
>>>> download_fedora() { @@ -170,7 +182,8 @@ copy_fedora()
>>>> 
>>>> update_fedora() { -    chroot $cache/rootfs yum -y update +
>>>> YUM="yum --installroot $cache/rootfs -y --nogpgcheck" +
>>>> $YUM update }
>>>> 
>>>> install_fedora() @@ -353,7 +366,7 @@ if [ "$(id -u)" != "0"
>>>> ]; then fi
>>>> 
>>>> 
>>>> -rootfs_path=$path/$name/rootfs +rootfs_path=$path/rootfs 
>>>> config_path=$default_path/$name cache=$cache_base/$release
>>>> 
>>>> @@ -362,7 +375,7 @@ revert() echo "Interrupted, so cleaning
>>>> up" lxc-destroy -n $name # maybe was interrupted before copy
>>>> config -    rm -rf $path/$name +    rm -rf $path rm -rf
>>>> $default_path/$name echo "exiting..." exit 1 @@ -388,6
>>>> +401,12 @@ if [ $? -ne 0 ]; then exit 1 fi
>>>> 
>>>> +type /bin/systemd >/dev/null 2>&1 +if [ $? -ne 0 ]; then +
>>>> configure_fedora_init +else +    configure_fedora_systemd 
>>>> +fi
>>>> 
>>>> if [ ! -z $clean ]; then clean || exit 1 -- 1.7.7.6
>>>> 
>>> 
>>> there is only problem about systemd not addressed by this
>>> script is that it does mount /dev which stops getty from
>>> starting on tty1 so either make it start on any tty higher than
>>> what your host is using and allow that in your lxc cgroup conf 
>>> or mount the $rootfs/dev to a different block dev that way
>>> systemd won't mount /dev
>> 
>> Could the template create a 1M loopback file, 
>> /var/lib/lxc/<container>/dev.loopback, populated with /dev and 
>> mounted by a lxc.mount.entry?
>> 
>> -serge
>> 
> 
> ------------------------------------------------------------------------------
>
> 
Keep Your Developer Skills Current with LearnDevNow!
> The most comprehensive online learning library for Microsoft
> developers is just $99.99! Visual Studio, SharePoint, SQL - plus
> HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases
> when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d 
> _______________________________________________ Lxc-users mailing
> list Lxc-users at lists.sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/lxc-users


- -- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBCgAGBQJPV6PYAAoJEMY4l01keS1nMLUP/0y5Nu7twRIKVg4H5bTjx1zx
wpqke/nUljTUU1QRcei1neDKnjFMWSEdivnjPpsE+EawUaGQAQkWbdfIZIzTXE9u
Yvl89QNX2nyyuPxe0LfgrjD4Fz2VBoj5orw8gjM9n5qu1NeTHH7eQfVcuNrmYvIm
drTlptcY/xbUFFCgyvYwxvupt+y5I/aljDgsC/jXwXBBMLiMBbheO4SjhLhUg2Bm
coVVDh6EeJF9m4XkC+mKMsdptAIb6gUhBJiJRmRCo8BYb2zmuQrJ3Cc7ZeHiRldW
MgxG+QIS06N+anyzJzXxAHQjGMWlHIOgbkO5m9gUZ6APULz51r4aKYTJO7NBDPJn
GVDWpymQ9J9kOUW/7HQ0IBEbH+S/oV4QsP3qho4i0z28Jfs+vvotpf/nVpXb9HP2
mZtTJjoeHtRH6/nH3DNhzVTEKsqeQRyzQb4FRxT49HWmnA8LoePRYXQcGk4tGayL
vo0iFA/t5yfqtVCcrtBylCtixad3sdQenHbabw3LZQB2IhEZ29kU3eZYuFJifQHg
9h+TCHriiaJBfpjWW7r4jL39705EXY3/Qop5vAFsijtx+PcFToKV4u5QqPP7A9nu
aGo0fkgeUoHAgSz/148ULfmNlgT1LhTp9f2X3Lmb6Gn8WjFvoyjWU2XcnR6nTTra
NTpO3P6/LbEC1T5QDvUm
=IpIZ
-----END PGP SIGNATURE-----




More information about the lxc-users mailing list