Ограничение по диску для LXC контейнеров

Ограничение по диску для 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