LXD コンテナ内のクォータ

LXD コンテナ内のクォータ

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翻訳ディスク クォータをサポートするため。他のストレージ バックエンドはクォータをサポートしていません。

関連情報