我想在 LXD 容器内启用配额,以限制每个用户只能使用 10GB 存储空间。但是我收到以下错误:
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
答案1
我一直在寻找有同样问题的地方。以下是我最终找到的。
文件系统支持的功能包括在文档中
因此,从容器内部获得配额支持的唯一方法是使用 BTRFS,但我个人不想使用它。
在 ZFS 上,您只能从主机设置配额,而不能从客户机设置,因为 LXD 中的 ZFS 支持不选中“容器内可用的存储驱动程序”框。存在一个问题。关于从主机设置的用户和组配额。我还没有测试过,不知道它是如何支持的,是否需要从客户机到主机的 UID/GID 映射。不过我不确定。
在 ZFS 上,ZVOL 确实存在并且可以格式化为 ext4,它们在客户机端被视为标准块设备,因此可以用于标准 Linux 配额。但这些不能用于 rootfs,查看 GitHub 上的问题。您仍然可以将其安装在具有用户数据的区域以检查配额(例如 /home、/var)。
然后是通过 ZFS ZVOLs 进行 libvirt 虚拟化,虽然速度较慢但在 Linux 配额方面能按预期工作。
建议始终将 ZVOL 设置为所需的最小大小,因为扩展比缩小要容易得多,后者需要停机。
答案2
您应该在初始化时选择zfs
或作为存储后端btrfs
路心得支持磁盘配额。其他存储后端不支持配额。