LXD 컨테이너 내부 할당량

LXD 컨테이너 내부 할당량

각 사용자를 10GB 스토리지로 제한하기 위해 LXD 컨테이너 내에서 할당량을 활성화하고 싶습니다. 그러나 다음과 같은 오류가 발생했습니다.

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또는 스토리지 백엔드로 선택해야 합니다.btrfsLXD디스크 할당량을 지원합니다. 다른 스토리지 백엔드는 할당량을 지원하지 않습니다.

관련 정보