Cota dentro do contêiner LXD

Cota dentro do contêiner LXD

Quero ativar a cota dentro do contêiner LXD para limitar cada usuário a 10 GB de armazenamento. No entanto, recebi o seguinte erro:

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

Como habilitar a cota dentro do contêiner LXD?

Abaixo está minha configuração de host:

$ 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

Abaixo está a configuração do meu contêiner:

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

Responder1

Eu tenho procurado por todo lado tendo o mesmo problema. Aqui está o que terminei.

Os recursos suportados pelo sistema de arquivos sãono documento

Portanto, a única maneira de ter suporte a cotas dentro do contêiner é usando o BTRFS, que eu pessoalmente não quero usar.

No ZFS você só pode definir a cota do host, não do convidado, porque o suporte do ZFS no LXD não marca a caixa "Driver de armazenamento utilizável dentro de um contêiner".Há um problema sobre isso. Em relação às cotas de usuários e grupos definidas no host. Não testei e me pergunto como ele é compatível e se pode ser necessário mapeamento UID/GID do convidado para o host. Não tenho certeza sobre isso.

No ZFS, o ZVOL existe e pode ser formatado como ext4, eles são vistos como um dispositivo de bloco padrão do lado convidado e, portanto, podem ser usados ​​para cotas padrão do Linux. Mas eles não podem ser usados ​​para rootfs,veja o problema no GitHub. Você ainda pode montá-lo em áreas que possuem dados de usuários para verificar cotas (por exemplo, /home, /var).

Depois, há a virtualização libvirt sobre ZFS ZVOLs, que é mais lenta, mas funciona conforme o esperado em relação às cotas do Linux.

Como conselho, sempre faça seus ZVOLs com o tamanho mínimo necessário, pois é muito mais fácil expandir do que diminuir, o que exigirá tempo de inatividade.

Responder2

Você deve selecionar zfsou btrfscomo back-end de armazenamento na inicialização doLXDpara oferecer suporte à cota de disco. Outros back-ends de armazenamento não suportam cotas.

informação relacionada