Задача
Имеем виртуальный хост LXC 3.0.1 на базе Ubuntu 18.04. Мне надо перенести контейнеры с этого хоста на хост Proxmox 5.2.1.
Решение
Перенос будет осуществляться путем экспорта контейнеров в архивы (поскольку физически это хост один - я просто меняю среду виртуализации с XenServer 7.6 на Proxmox 5.2.1).
Создание архива контейнера
На хосте LXC находим папку с контейнером и переходим в нее, в rootfs.
mount | grep wiki lxd/containers/wiki on /var/lib/lxd/storage-pools/lxd/containers/wiki type zfs (rw,relatime,xattr,noacl) cd /var/lib/lxd/storage-pools/lxd/containers/wiki/rootfs
Архивируем
tar -czvf /home/AUTOSYS/mike/wiki.tar.gz ./
Теперь копируем полученных архив имиджа контейнера на новый хост.
Разворачивание имиджа на хосте ProxMox
pct restore 100 ./exported_image.tar.gz --storage pve-data
Однако, в таком случае контейнер будет развернут в файл, который будет монтироваться как loopback устройство.
Для того, чтобы файловая система контейнера на хосте ProxMox хранилась в папке нужно подмонтировать диск и скопировать все файлы в папку, а потом в конфигурации контейнера изменить путь к rootfs на путь к папке:
rootfs: /mnt/test/
Вот тут написано как переместить rootfs с loopback-устройства на файловую систему.
http://wiki.janforman.com/lxc
Вот такой вариант разворачивания НЕ РАБОТАЕТ, поскольку в ProxMox используется свой собственный дистрибутив утилит lxc - lxc-pve.
sudo lxc snapshot wiki wiki_test sudo lxc publish wiki/wiki_test --alias wiki-export sudo lxc image export wiki-export .
При импорте будет ошибка:
ERROR: archive contains no configuration file
Discussion