Допустим, у нас есть один сервер с установленным lxc и контейнер lxc, используемый как базовый img /var/lib/lxc/ubuntu_base
. Для простоты давайте забудем об изменениях конфигурации после копирования базы img.
некоторые люди предлагают использовать подобъемы и снимки для создания новых контейнеров, но можно легко сделать cp --reflink с одинаковыми результатами.
Итак, как лучше (или что лучше) управлять несколькими контейнерами?
- моментальные снимки
Этот способ кажется лучшим, но такие команды, как lxc-destroy, не будут работать, так как он не сможет удалить каталог.
btrfs subvolume snapshot /var/lib/lxc/ubuntu_base /var/lib/lxc/container_1
- cp с reflink
Я не уверен, есть ли разница в производительности между этим или снимками
cp --reflink=always /var/lib/lxc/ubuntu_base /var/lib/lxc/container_1
- или есть какой-то другой лучший способ сделать это, о котором я не знаю.
редактировать:
Одна вещь, которую я видел с опцией reflink, состоит в том, что вы не можете удалить базовый контейнер, если работают другие, потому что /proc
и /dev
смонтированы и никогда не меняются, так как ссылка всегда одинакова. Но закрытие всех скопированных контейнеров, кажется, помогает.