Миграция LXC в LXD
Я просмотрел все, но не вижу, есть ли способ. У меня есть пара контейнеров LXC под управлением Ubuntu 14.04 поверх хоста Ubuntu 14.04. Они стали очень важными для меня, поэтому я хочу иметь возможность легко создавать резервные копии / переносить контейнеры LXC на другой сервер, если оборудование хоста выходит из строя.
Я построил новый сервер Ubuntu 15.1 теперь с LXD, вышел из системы и вернулся, чтобы увидеть новую группу. Для тестирования я добавил один из моих существующих контейнеров LXC с --numeric-owner
включите мой хост 14.04:
tar --numeric-owner -czvf ContToBeMoved.tgz /var/lib/lxc/my_container
--- тогда на новом сервере ---
tar --numeric-owner -xzvf ContToBeMoved.tgz -C /var/lib/lxc/
... и успешно восстановили контейнер LXC на новом сервере 15.1.
Когда я запускаю команды LXD, LXD не видит контейнер. Я пытался переместить контейнер в /var/lib/lxd/containers
каталог и до сих пор, LXD не видит его. Есть ли способ отредактировать / клонировать / перенести контейнер LXC, чтобы мы могли использовать LXD для продвижения вперед?
Заранее спасибо.
1 ответ
LXD использует базу данных sqlite для конфигурации контейнера, поэтому простого сброса корневых файлов контейнера на месте будет недостаточно.
Самый простой способ сделать то, что вы хотите, это создать новый контейнер с LXD, затем удалить его rootfs из / var/lib/lxd/ Containers/NAME/rootfs и заменить тот из вашего исходного хоста.
Обратите внимание, что LXD по умолчанию запускает непривилегированные контейнеры, если ваш исходный контейнер был привилегированным (/var/lib/lxc/NAME/rootfs принадлежит root:root вместо 100000:100000), то вам также понадобится выполнить следующее:
lxc config set NAME security.privileged true