LXD コンテナー内でクォータを有効にして、各ユーザーのストレージを 10 GB に制限したいのですが、次のエラーが発生しました。
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 ZVOL を介した libvirt 仮想化もあります。これは速度は遅いですが、Linux クォータに関しては期待どおりに動作します。
アドバイスとしては、ZVOL を常に必要最小限のサイズにしてください。縮小するよりも拡張する方がはるかに簡単で、縮小するとダウンタイムが必要になるためです。
答え2
の初期化では、ストレージバックエンドとしてzfs
またはを選択する必要があります。btrfs
翻訳ディスク クォータをサポートするため。他のストレージ バックエンドはクォータをサポートしていません。