Debian Bookworm, systemd 및 EXT4 할당량은 어떻게 작동합니까?

Debian Bookworm, systemd 및 EXT4 할당량은 어떻게 작동합니까?

나는 새로운 Debian 12 시스템을 가지고 있고 EXT4 파일 시스템 할당량을 켜고 적용하려고 합니다. 저는 manRed Hat에서 다음과 같은 내용을 많이 읽었습니다 .https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_file_systems/limiting-storage-space-usage-on-ext4-with-quotas_managing-file-systems

나는 그것을 작동시킬 수 없으며 몇 시간 동안 노력한 후에는 너무 혼란 스럽습니다. 이 작업을 수행하는 합리적인 방법이 있는지 또는 뭔가 빠졌는지 모르겠습니다. 루프 파일에서 시도해 보겠습니다.

vagrant@bookworm:~$ sudo dd status=progress if=/dev/zero of=ext4_fs bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.595179 s, 1.8 GB/s

vagrant@bookworm:~$ sudo mkfs.ext4 ext4_fs 
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done                            
Creating filesystem with 256000 4k blocks and 64000 inodes
Filesystem UUID: 2d5eedba-eada-4b9f-ba88-e182b3ff24fa
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

vagrant@bookworm:~$ sudo tune2fs -O quota ext4_fs 
tune2fs 1.47.0 (5-Feb-2023)

vagrant@bookworm:~$ mkdir mountpoint
vagrant@bookworm:~$ sudo mount ext4_fs mountpoint/
vagrant@bookworm:~$ ls mountpoint/
lost+found

vagrant@bookworm:~$ sudo quotaon -v -p mountpoint/
group quota on /home/vagrant/mountpoint (/dev/loop0) is on (accounting)
user quota on /home/vagrant/mountpoint (/dev/loop0) is on (accounting)
project quota on /home/vagrant/mountpoint (/dev/loop0) is off

여태까지는 그런대로 잘됐다. 이제 aquota.user여전히 문서가 aquota.group필요합니까? 그렇다면 다음을 사용하여 자동으로 생성되어야 합니다 quotacheck.

vagrant@bookworm:~$ sudo quotacheck -cugm mountpoint/
quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option.

이상한. 시스템을 다시 설치했을 때 ro명령이 시작되었지만 제대로 작동하지 않아 다음 파일을 작성했습니다.

vagrant@bookworm:~$ sudo quotacheck -cugm mountpoint/
quotacheck: Cannot create new quotafile /home/vagrant/mountpoint/aquota.user.new: Read-only file system
quotacheck: Cannot initialize IO on new quotafile: Read-only file system

할당량을 시도하면 enforcing추가 usrquota하고 fstab다시 시작합니다.

/home/vagrant/ext4_fs /home/vagrant/mountpoint ext4 rw,nodev,nosuid,defaults,usrquota 0 0

할당량이 적용되었지만 aquota.user파일이 누락되어 여전히 실행할 수 없습니다 quotacheck. 이제 systemd믹스에 추가하면 실패합니다 quotaon.service.

vagrant@bookworm:~$ sudo systemctl status quotaon.service 
× quotaon.service - Enable File System Quotas
     Loaded: loaded (/lib/systemd/system/quotaon.service; static)
     Active: failed (Result: exit-code) since Sun 2023-09-24 15:18:07 UTC; 8min ago
       Docs: man:quotaon(8)
    Process: 359 ExecStart=/sbin/quotaon -aug (code=exited, status=1/FAILURE)
   Main PID: 359 (code=exited, status=1/FAILURE)
        CPU: 1ms

Sep 24 15:18:07 bookworm systemd[1]: Starting quotaon.service - Enable File System Quotas...
Sep 24 15:18:07 bookworm quotaon[359]: quotaon: using . on /dev/loop0 [/home/vagrant/mountpoint]: File exists
Sep 24 15:18:07 bookworm systemd[1]: quotaon.service: Main process exited, code=exited, status=1/FAILURE
Sep 24 15:18:07 bookworm systemd[1]: quotaon.service: Failed with result 'exit-code'.
Sep 24 15:18:07 bookworm systemd[1]: Failed to start quotaon.service - Enable File System Quotas.

그리고 또한:

vagrant@bookworm:~$ sudo systemctl status systemd-quotacheck.service
● systemd-quotacheck.service - File System Quota Check
     Loaded: loaded (/lib/systemd/system/systemd-quotacheck.service; static)
     Active: active (exited) since Sun 2023-09-24 15:18:07 UTC; 12min ago
       Docs: man:systemd-quotacheck.service(8)
    Process: 354 ExecStart=/lib/systemd/systemd-quotacheck (code=exited, status=0/SUCCESS)
   Main PID: 354 (code=exited, status=0/SUCCESS)
        CPU: 3ms

Sep 24 15:18:07 bookworm systemd[1]: Starting systemd-quotacheck.service - File System Quota Check...
Sep 24 15:18:07 bookworm systemd[1]: Finished systemd-quotacheck.service - File System Quota Check.

2023년에 디스크 할당량을 구성하는 현명한 방법은 무엇입니까?

감사합니다.

답변1

할당량은 ext4 트랜잭션을 통해 내부적으로 자동으로 처리되므로 ext4에 대한 할당량 파일이 필요하지 않습니다.해서는 안 된다각 사용자/그룹/프로젝트가 소유한 실제 파일과 동기화되지 않습니다. 이런 일이 발생하면 e2fsck가 문제를 해결합니다.

관련 정보