리눅스 디스크 쿼터(Quota) 설정(Fedora 41)

리눅스 디스크 쿼터(Quota) 설정(Fedora 41)

2025-05-31
수정

Fedora 41 환경에서 디스크 쿼터(Quota) 설정

실습 목적 및 개요

디스크 쿼터(Quota)란?

디스크 쿼터는 파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량과 개수를 제한하는 기능입니다. 리눅스 시스템은 기본적으로 사용자의 용량을 제한하지 않기 때문에, 특정 사용자가 디스크의 모든 용량을 사용할 수 있는 문제가 있습니다. 이를 방지하기 위해 쿼터 시스템을 사용합니다.

쿼터의 종류

  1. 사용자 쿼터(User Quota): 개별 사용자의 디스크 사용량 제한
  2. 그룹 쿼터(Group Quota): 그룹 단위의 디스크 사용량 제한

제한 방식

  • Soft Limit: 사용자에게 기본적으로 제공되는 용량으로, 초과 시 경고 메시지와 함께 유예기간이 적용됩니다.
  • Hard Limit: 절대 초과할 수 없는 최대 용량입니다.
  • 유예기간(Grace Period): Soft Limit 초과 시 Hard Limit까지 사용할 수 있는 기간입니다.

실습 목적

본 실습을 통해 다음을 학습합니다:

  • 쿼터 패키지 설치 및 설정
  • 사용자별 디스크 사용량 제한 설정
  • 쿼터 활성화 및 모니터링 방법

사전 준비사항

1. 시스템 요구사항

  • Fedora 41 시스템
  • root 권한 또는 sudo 권한
  • 최소 1GB 이상의 여유 디스크 공간
  • 쿼터를 적용할 별도 파티션 또는 테스트용 디스크

2. 필수 확인사항

  • SELinux 상태 확인 (실습 중 비활성화 권장)
  • 커널의 쿼터 지원 여부 확인
  • 테스트용 사용자 계정 준비

3. 주의사항

  • 실습은 테스트 환경에서 진행하세요
  • 중요한 데이터가 있는 파티션에서는 주의가 필요합니다
  • 모든 명령어는 root 권한으로 실행합니다

단계별 실습 과정

1단계: 쿼터 패키지 설치 및 확인

1-1. 현재 설치된 쿼터 패키지 확인

rpm -qa | grep quota

CleanShot 2025-05-31 at 19.32.02@2x.png

1-2. 쿼터 패키지가 없는 경우 설치

sudo dnf install -y quota

예상 결과:

Dependencies resolved.
Package         Architecture    Version              Repository    Size
Installing:
 quota           x86_64          4.09-6.fc41          fedora       1.9 M

Complete!

2단계: 테스트 환경 준비

2-1. 테스트용 디스크 이미지 생성

cd ~/
dd if=/dev/zero of=quota_test.img bs=1M count=100

CleanShot 2025-05-31 at 19.34.14@2x.png

2-2. 파일시스템 생성

sudo mkfs.ext4 quota_test.img

CleanShot 2025-05-31 at 19.35.38@2x.png

2-3. 마운트 포인트 생성 및 마운트

sudo mkdir /mnt/quota_test
sudo mount -o loop quota_test.img /mnt/quota_test

CleanShot 2025-05-31 at 19.36.19@2x.png

2-4. 마운트 확인

df -h | grep quota_test

CleanShot 2025-05-31 at 19.36.42@2x.png

3단계: 쿼터 설정을 위한 파일시스템 구성

3-1. /etc/fstab 파일 백업

sudo cp /etc/fstab /etc/fstab.backup

3-2. /etc/fstab에 쿼터 옵션 추가

echo "/home/$(whoami)/quota_test.img /mnt/quota_test ext4 loop,usrquota,grpquota 0 0" | sudo tee -a /etc/fstab

CleanShot 2025-05-31 at 19.42.47@2x.png

3-3. 쿼터 옵션으로 리마운트

sudo umount /mnt/quota_test
sudo mount -a

3-4. 마운트 옵션 확인

mount | grep quota_test

CleanShot 2025-05-31 at 20.09.24@2x.png

4단계: 쿼터 데이터베이스 생성

4-1. 쿼터 체크 및 데이터베이스 생성

sudo quotacheck -cug /mnt/quota_test

4-2. 생성된 쿼터 파일 확인

ls -la /mnt/quota_test/
total 28
drwxr-xr-x  3 root root  4096 Nov 30 19:16 .
drwxr-xr-x  3 root root  4096 Nov 30 19:15 ..
-rw-------  1 root root  6144 Nov 30 19:16 aquota.group
-rw-------  1 root root  6144 Nov 30 19:16 aquota.user
drwx------  2 root root 16384 Nov 30 19:15 lost+found

5단계: 테스트 사용자 생성 및 쿼터 설정

5-1. 테스트 사용자 생성

sudo useradd -m testuser1
sudo passwd testuser1

5-2. 테스트 디렉토리 권한 설정

sudo chmod 777 /mnt/quota_test

5-3. 사용자 쿼터 설정

sudo edquota -u testuser1

CleanShot 2025-05-31 at 20.56.39@2x.png

  • blocks: 현재 사용 중인 디스크 용량 (KB 단위)
  • soft: 소프트 제한 (20MB = 20000KB)
  • hard: 하드 제한 (25MB = 25000KB)
  • inodes: 현재 사용 중인 파일 개수
  • soft/hard: 파일 개수 제한

5-4. 유예기간 설정

sudo edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
  Filesystem      Block grace period     Inode grace period
  /dev/loop0               7days                  7days

6단계: 쿼터 활성화

6-1. 쿼터 활성화

sudo quotaon /mnt/quota_test

6-2. 쿼터 상태 확인

sudo quotaon -p /mnt/quota_test

예상 결과:

group quota on /mnt/quota_test (/dev/loop0) is on
user quota on /mnt/quota_test (/dev/loop0) is on

7단계: 쿼터 테스트

7-1. 테스트 사용자로 전환

sudo su - testuser1

7-2. 테스트 파일 생성

dd if=/dev/zero of=/mnt/quota_test/test1.txt bs=1M count=10
dd if=/dev/zero of=/mnt/quota_test/test2.txt bs=1M count=10

(soft limit 초과 시):

CleanShot 2025-05-31 at 21.06.13@2x.png

7-3. 원래 사용자로 복귀

exit

실습 완료 후 확인 방법

1. 쿼터 사용량 리포트 확인

sudo repquota -a

CleanShot 2025-05-31 at 21.06.37@2x.png

2. 특정 사용자 쿼터 확인

sudo quota -u testuser1

CleanShot 2025-05-31 at 21.06.46@2x.png

실습 요약 및 주의사항

실습 요약

  1. 파일시스템 설정: /etc/fstab에 usrquota, grpquota 옵션 추가
  2. 쿼터 데이터베이스 생성: quotacheck 명령으로 aquota.user, aquota.group 파일 생성
  3. 쿼터 설정: edquota 명령으로 사용자별 제한 설정
  4. 쿼터 활성화: quotaon 명령으로 쿼터 시스템 가동
  5. 모니터링: repquota, quota 명령으로 사용량 확인

주요 개념 정리

  • Soft Limit: 초과 시 경고와 함께 유예기간 적용
  • Hard Limit: 절대 초과 불가능한 제한
  • Grace Period: Soft Limit 초과 후 Hard Limit까지 사용 가능한 기간
  • Block Quota: 디스크 용량 제한 (KB 단위)
  • Inode Quota: 파일 개수 제한