У меня проблема с моим текущим storage.img
файл (btrfs). У меня было 2 ТБ данных внутри контейнера, поэтому storage.img получил 2 ТБ. После этого я удалил все, оставив 100 ГБ реальных данных. Проблема теперь в том, что storage.img не сжался до 100 ГБ. Это все еще 2 ТБ.
Я создал другое хранилище newstorage.img
(btrfs) в LXD командой lxc storage create newstorage
но я не знаю, как перенести контейнеры на новое хранилище правильный путь так что я могу удалить старый storage.img
и освободить место на моем жестком диске.
Я пробовал вручную монтировать два imgs и делать cp -R /one/* /new/
но тогда я не могу запустить контейнеры.
Никаких уловок:
lxc stop container_name
lxc move container_name temp_container_name -s new_storage_pool
lxc move temp_container_name container_name
lxc start container_name
Я нашел "хак", решающий проблему.
Проблема в том, что lxc storage create newstorage
по умолчанию создает образ размером 15 ГБ. Это значение нельзя изменить.
Нужно иметь доступ к другой машине Linux с новой установкой LXD и выполнить lxd init
там. Выберите btrfs, размер устройства цикла с желаемой новой емкостью изображения и имя изображения. Теперь скопируйте этот новый storage.img на сервер.
Шаги по копированию содержимого:
редактировать: Этот метод работает нормально, пока вы не удаляете существующие контейнеры. LXD действительно создает подобъем для каждого контейнера. Если вы хотите сохранить возможность удалять существующие контейнеры, вы должны создать подобтом для каждого контейнера.
btrfs subvolume create [-i <qgroupid>] [<dest>/]<name>