Квота в контейнере LXD

Я хочу включить квоту в контейнере LXD, чтобы ограничить каждого пользователя устройством хранения данных на 10 ГБ. Однако я получил следующую ошибку:

root@test:~# quotacheck -avug
quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option.

Как включить квоту в контейнере LXD?

Ниже моя конфигурация хоста:

$ lxc config show test
architecture: x86_64
config:
  raw.lxc: lxc.rootfs.options=usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0
  security.privileged: "true"
  volatile.base_image: 08bbf441bb737097586e9f313b239cecbba96222e58457881b3718c45c17e074
  volatile.eth0.hwaddr: 00:16:3e:d3:ab:f7
  volatile.idmap.base: "0"
  volatile.idmap.next: '[]'
  volatile.last_state.idmap: '[]'
  volatile.last_state.power: RUNNING
devices:
  root:
    path: /
    type: disk
ephemeral: false
profiles:
- default
stateful: false
description: ""

$ cat /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"
NAME="Ubuntu"
VERSION="16.04.4 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

Ниже моя контейнерная конфигурация:

root@test:~# cat /etc/fstab 
LABEL=cloudimg-rootfs   /    ext4   defaults    0 0

root@test:~# cat /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"
NAME="Ubuntu"
VERSION="16.04.4 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
0
задан 2 June 2018 в 12:54

2 ответа

Вы должны выбрать zfs или btrfs в качестве внутреннего хранилища при инициализации LXD для поддержки дисковой квоты. Другие серверные хранилища не поддерживают квоты.

0
ответ дан 29 October 2019 в 05:09

Я искал вокруг себя такую ​​же проблему. Вот чем я закончил.

Поддерживаемые функции файловой системы приведены в документе .

Итак, единственный способ получить поддержку квот изнутри контейнера - использовать BTRFS, чего я лично не хочу использовать.

В ZFS вы можете устанавливать квоту только с хоста, а не с гостя, потому что поддержка ZFS в LXD не устанавливает флажок «Драйвер хранилища можно использовать внутри контейнера». Есть проблема об этом . Относительно пользователей и групп квот, установленных с хоста. Я не проверял и удивляюсь, как это поддерживается и может ли понадобиться отображение UID / GID от гостя к хосту. Хотя в этом нет уверенности.

В ZFS ZVOL существует и может быть отформатирован как ext4, он рассматривается как стандартное блочное устройство со стороны гостя и, таким образом, может использоваться для стандартных квот Linux. Но их нельзя использовать для rootfs, см. Проблему на GitHub . Вы по-прежнему можете монтировать его в областях, где есть данные о пользователях для проверки на соответствие квотам (например, / home, /var).

.

Затем идет виртуализация libvirt через ZFS ZVOL, которая работает медленнее, но работает, как и ожидалось, в отношении квот Linux.

Как совет, всегда делайте ваши ZVOLs с минимально необходимым размером, так как их гораздо легче расширять, чем сжимать, что позже требует простоев.

0
ответ дан 29 October 2019 в 05:09

Другие вопросы по тегам:

Похожие вопросы: