[sisyphus] Эксперименты с контейнерами systemd

Eugene Prokopiev enp на itx.ru
Вт Июн 30 11:26:21 MSK 2015


> Правда и хост, и гость у меня i586. Сегодня пересоберу образы обоих
> для x86_64 и проверю с ними.

Итак, собрал на текущем сизифе
http://enp.itx.ru/linux/alt/sisyphus/iso/altlinux-live-systemd-minimal.iso
и http://enp.itx.ru/linux/alt/sisyphus/iso/container.tar.xz из
http://git.altlinux.org/people/enp/packages/mkimage-profile-live-minimal-example.git
и http://git.altlinux.org/people/enp/packages/mkimage-profile-container.git
соответствено. Загляните, кстати, в профили - вдруг там чего не
хватает?

Устанавливаю iso в VirtualBox: там после загрузки нужно разметить диск
с помощью, например, cfdisk (я делаю 3 раздела - под своп, корень и
контейнеры), а потом сказать live-install /dev/sda /dev/sda2. После
ребута в установленной системе говорю:

# apt-repo add sisyphus
# apt-get update
# apt-get install btrfs-progs
# mkfs.btrfs /dev/sda3
# mount /dev/sda3 /var/lib/machines/

Теперь пытаемся создать контейнер:

# machinectl --verify=no pull-tar
http://enp.itx.ru/linux/alt/sisyphus/iso/container.tar.xz
Enqueued transfer job 1. Press C-c to continue download in background.
Pulling 'http://enp.itx.ru/linux/alt/sisyphus/iso/container.tar.xz',
saving as 'container'.
Downloading 52.6M for http://enp.itx.ru/linux/alt/sisyphus/iso/container.tar.xz.
Got 1% of http://enp.itx.ru/linux/alt/sisyphus/iso/container.tar.xz.
...
Got 94% of http://enp.itx.ru/linux/alt/sisyphus/iso/container.tar.xz.
803ms left at 3.5M/s.
Download of http://enp.itx.ru/linux/alt/sisyphus/iso/container.tar.xz complete.
Failed to rename to final image name: Function not implemented
Exiting.

Ладно, тогда так:

# curl http://enp.itx.ru/linux/alt/sisyphus/iso/container.tar.xz >
container.tar.xz
# machinectl import-tar container.tar.xz
Enqueued transfer job 1. Press C-c to continue download in background.
Importing '/root/container.tar.xz', saving as 'container'.
Imported 0%.
...
Imported 99%.
Failed to move image into place: Function not implemented
Exiting.

Тогда вручную:

# cd /var/lib/machines/
# mkdir box0
# cd box0
# tar -xJf /root/container.tar.xz
# machinectl status box0
Could not get path to machine: No machine 'box0' known
# machinectl start box0
# machinectl status box0
box0
           Since: Вт 2015-06-30 11:03:50 MSK; 1s ago
          Leader: 2958 (systemd)
         Service: nspawn; class container
            Root: /var/lib/machines/box0
...

Т.е. до сих пор все без изменений. Тогда настраиваем автостарт:

# echo -e "/dev/sda3\t/var/lib/machines\tbtrfs\trelatime\t0 0" >> /etc/fstab
# machinectl enable box0
Created symlink from
/etc/systemd/system/machines.target.wants/systemd-nspawn на box0.service
to /lib/systemd/system/systemd-nspawn на .service.

После ребута смотрим на результаты:

# mount | grep btrfs
/dev/sda3 on /var/lib/machines type btrfs (rw,relatime,space_cache)
# machinectl status box0
Could not get path to machine: No machine 'box0' known
# systemctl status systemd-nspawn на box0.servicesystemd-nspawn на box0.service - Container box0
   Loaded: loaded (/lib/systemd/system/systemd-nspawn на .service;
enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:systemd-nspawn(1)
# machinectl start box0
# machinectl status box0
box0
           Since: Вт 2015-06-30 11:18:30 MSK; 5s ago
          Leader: 530 (systemd)
         Service: nspawn; class container
            Root: /var/lib/machines/box0
...

Ладно бы проблемы с созданием контейнеров, но с автостартом - это
совсем неприятно.

-- 
WBR,
Eugene Prokopiev


Подробная информация о списке рассылки Sisyphus