[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.service
● systemd-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