Ограничение по диску для LXC контейнеров нужно когда в контейнерах на одной машине запускается несколько сервисов. По умолчанию ограничений нет и каждый контейнер может использовать все дисковое пространство хост машины.
Материл является логическим продолжением общей статьи про LXC контейнеризацию и принципы работы с ней.
Ограничение по диску для LXC контейнеров
Изначально выделим на хост машине пространство объемом 10 Гб, которое будет использовано контейнером
truncate -s 10G /var/lib/lxc/container.img
Создаем файловую систему типа ext4
mkfs.ext4 -F /var/lib/lxc/container.img
Теперь нужен каталог, который фактически будет использоваться для хранения данных
mkdir /var/lib/lxc/container
Монтируем img в только что созданную точку файловой системы
mount -t ext4 -o loop /var/lib/lxc/container.img \
/var/lib/lxc/container
Из шаблона ubuntu создаем контейнер
lxc-create -t ubuntu -n container
На этом всё, авторизовавшись в созданном LXC контейнере по SSH и выполнив команду df- h можно увидеть, что доступно только 10 Гб
Чтобы монтирование производилось каждый раз после загрузки автоматически потребуется добавить правило в файл /etc/fstab на сервере
mcedit /etc/fstab
/var/lib/lxc/container.img /var/lib/lxc/container ext4 loop 0 0
Другим вариантом является использование LVM и размещение rootfs контейнера на логическом устройстве
В этом случае контейнер будет создаваться так:
lxc-create -t ubuntu -B lvm -n u1 --fssize 2G