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 zfs
ou btrfs
como back-end de armazenamento na inicialização doLXDpara oferecer suporte à cota de disco. Outros back-ends de armazenamento não suportam cotas.