Назад | Перейти на главную страницу

Ограничение дискового ввода-вывода в контейнерах LXD в массиве mdadm RAID 1

В контейнере, запущенном на хосте с двумя дисками в массиве mdadm RAID 1, я безуспешно пытался ограничить дисковый ввод-вывод контейнера LXD с именем ci с участием:

lxc config device set ci root limits.read  30MB
lxc config device set ci root limits.write 10MB

Однако при запуске, например, эта команда в контейнере:

dd if=/dev/zero of=/root/testfile bs=1G count=10 oflag=direct

в результате получается весь объем диска, что примерно 130 МБ / с, вместо ожидаемого результата около 10 МБ / с для операций записи:

10737418240 bytes (11 GB, 10 GiB) copied, 81,3877 s, 132 MB/s

Это также подтверждают atop работает на хосте:

Как я могу эффективно ограничить дисковый ввод-вывод контейнера, чтобы независимо от того, что на нем происходит, производительность диска хоста не превышалась?

Во втором тесте я запускаю то же самое дд как указано выше, одновременно на гостевой и на хосте, но хост также не имеет приоритета:

Дополнительная информация:

Я мог бы разделить диск по-другому, если бы это могло помочь ограничить дисковый ввод-вывод контейнера, например наличие RAID-массива, выделенного для ZFS для LXD. Это поможет?

Ограничения ввода-вывода работают, когда файловая система контейнера находится на блочном устройстве, но не работает на виртуальных устройствах, таких как mdadm RAID, при использовании старой версии, например 10.0.9.

После обновления до версии 10.15 лимиты работают. В Ubuntu вы можете обновить с помощью:

sudo add-apt-repository ppa:ubuntu-lxc/lxd-stable 
sudo apt-get update
sudo apt-get install lxd

Подробнее см. Обсуждение этого на https://discuss.linuxcontainers.org/t/limiting-disk-io-on-lxd-containers/261 и открытый вопрос на https://github.com/lxc/lxd/issues/3515