Fedora 41 환경에서 디스크 쿼터(Quota) 설정
실습 목적 및 개요
디스크 쿼터(Quota)란?
디스크 쿼터는 파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량과 개수를 제한하는 기능입니다. 리눅스 시스템은 기본적으로 사용자의 용량을 제한하지 않기 때문에, 특정 사용자가 디스크의 모든 용량을 사용할 수 있는 문제가 있습니다. 이를 방지하기 위해 쿼터 시스템을 사용합니다.
쿼터의 종류
- 사용자 쿼터(User Quota): 개별 사용자의 디스크 사용량 제한
- 그룹 쿼터(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
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
2-2. 파일시스템 생성
sudo mkfs.ext4 quota_test.img
2-3. 마운트 포인트 생성 및 마운트
sudo mkdir /mnt/quota_test
sudo mount -o loop quota_test.img /mnt/quota_test
2-4. 마운트 확인
df -h | grep quota_test
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
3-3. 쿼터 옵션으로 리마운트
sudo umount /mnt/quota_test
sudo mount -a
3-4. 마운트 옵션 확인
mount | grep quota_test
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
- 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 초과 시):
7-3. 원래 사용자로 복귀
exit
실습 완료 후 확인 방법
1. 쿼터 사용량 리포트 확인
sudo repquota -a
2. 특정 사용자 쿼터 확인
sudo quota -u testuser1
실습 요약 및 주의사항
실습 요약
- 파일시스템 설정: /etc/fstab에 usrquota, grpquota 옵션 추가
- 쿼터 데이터베이스 생성: quotacheck 명령으로 aquota.user, aquota.group 파일 생성
- 쿼터 설정: edquota 명령으로 사용자별 제한 설정
- 쿼터 활성화: quotaon 명령으로 쿼터 시스템 가동
- 모니터링: repquota, quota 명령으로 사용량 확인
주요 개념 정리
- Soft Limit: 초과 시 경고와 함께 유예기간 적용
- Hard Limit: 절대 초과 불가능한 제한
- Grace Period: Soft Limit 초과 후 Hard Limit까지 사용 가능한 기간
- Block Quota: 디스크 용량 제한 (KB 단위)
- Inode Quota: 파일 개수 제한