반응형
설명
- 파일 시스템마다 사용자 혹은 그룹이 생성할 수 있는 파일 용량과 개수를 제한하는 것을 의미
- 주로 블록 단위의 용량 제한과 inode의 개수 제한
- 쿼터는 사용자별로, 파일 시스템별로 동작
- 그룹 단위로도 용량 제한이 가능
- 디스크 자원의 과도한 사용을 방지하고 시스템 안정성을 유지하며, 효율적인 디스크 자원 관리를 위해 사용
디스크 쿼터 지정방법
1. 파일 /etc/fstab에 디스크 쿼터 설정
- 입력 : $ cat fstab
- 출력 : /dev/sdb1 /QUOTA ext4 defaults,usrjquota=aquota.user,jqfmt=vfsv0 1 2
- /dev/sdb1 : 마운트할 디스크 파티션(블록장치) 의미
- /QUOTA : 디스크 파티션이 마운트될 디렉터리(마운트 포인트) 의미
- ext4 : 마운트할 파일 시스템 형식
- defaults : 기본 마운트 옵션으로 읽기/쓰기, 자동 마운트, SUID 허용 등이 포함
- usrjquota=aquota.user : 사용자별 저널 할당량 활성화, 데이터를 aquota.user 파일에 기록
- jqfmt=vfsv0 : 할당량 데이터를 기록하는 데 사용된 저널 포맷이 vfsv0임을 의미
- 1 : 파일 시스템 백업 여부를 의미, 1은 백업 활성화
- 2 : 부팅 시 파일 시스템 검사 순서 의미, 루트 파일 시스템 다음으로 검사
옵션 | 적용 대상 | 설명 |
quota | fsfold, vfsv0 | 사용자 할당량 사용 |
gquota | xfs | 그룹 할당량 사용 |
usrquota | 모든 유형 | 사용자 할당량 사용 |
grpquota | 모든 유형 | 그룹 할당량 사용 |
usrjquota=파일명 | vfsv0 | 저널 사용자 할당량 사용 jqfmt 옵션의 스펙과 할당량 DB 파일명 요구 주로 aquota.user의 파일명 사용 |
grpjquota=파일명 | vfsv0 | 저널 사용자 할당량 사용 jqfmt 옵션의 스펙과 할당량 DB 파일명 요구 주로 aquota.group의 파일명 사용 |
jqfmt=fromat | vfsv0 | usrjquota 혹은 grpjquota가 지정될 때 사용된 할당량의 형식 현재는 vfsv0만 지원 |
- fsfold: 파일 시스템 계층에서 디스크 쿼터 정보를 저장하기 위한 디렉터리 또는 파일 형식
- vfsv0: Solaris 운영 체제에서 사용되는 디스크 쿼터 파일 형식의 초기 버전으로, VFS(Virtual File System) 계층에서 쿼터 데이터를 관리
- xfs: 고성능 64비트 저널링 파일 시스템으로, 대규모 데이터와 고속 입출력을 효율적으로 처리하기 위해 설계
- 비유) xfs는 도서관 사서에 비유할 수 있다. 도서관에서 책(데이터)을 빠르게 찾아주고, 대출 기록(저널링)을 꼼꼼히 남겨 문제가 생겨도 복구가능. 공간(디스크)을 체계적으로 나누어 많은 책(데이터)을 효율적으로 보관하는 기능
- 저널 할당량: 디스크 할당량 변경 사항을 파일 시스템 저널에 기록해 데이터 안정성과 복구를 지원하는 기능
- 비유) 저널 할당량을 가계부로 비유할 수 있다. 어떤 사람이 디스크에 파일을 저장하거나 삭제할 때마다 가계부에 기록해 두면, 갑자기 전기가 나가도 이전까지의 저장 기록을 복원할 수 있다. 이처럼 디스크 할당량도 파일 시스템에 변경 사항을 안전하게 기록해 두는 기능
- 저널 사용자 할당량: 사용자별 디스크 할당량을 파일 시스템 저널에 기록하여 안전하게 관리하고 복구 가능하도록 하는 기능
- 비유) 가계부에 기록하면서 사용자가 쓸 수 있는 디스크 용량을 제한하는 것
2. 재마운팅 실행 후 확인
- 입력
- $ monut -o remount /QUOTA
- $ mount
- /QUOTA 파일 시스템을 재마운트하며, 기존 마운트 옵션에 변경 사항을 적용
- 출력
- /dev/sdb1 on /QUOTA type ext4 (rw.usrjquota=aquota.user, jqfmt=vfsv0)
- /dev/sdb1 : 실제로 마운트된 물리적 디스크 파티션
- on /QUOTA : /dev/sdb1 파티션이 /QUOTA라는 디렉터리에 마운트됨을 의미
- type ext4 : 해당 파일 시스템의 형식이 ext4임을 의미
- rw : 읽기/쓰기가 가능
- usrjquota=aquota.user : 사용자별 저널 할당량이 활성화됨, 할당량 데이터는 aquota.user 파일에 기록
- jqfmt=vfsv0 : 할당량 데이터를 기록하는 데 사용된 저널 포맷이 vfsv0임을 의미
- /dev/sdb1 on /QUOTA type ext4 (rw.usrjquota=aquota.user, jqfmt=vfsv0)
3. 마운트된 쿼트 종료 후 생성된 쿼터 파일 제거
- $ quotaoff -augp
- -a : 시스템에 마운트된 모든 파일 시스템에 대해 적용
- -u : 사용자 할당량 비활성화
- -g : 그룹 할당량 비활성화
- -p : 현재 상태만 출력, 실행X
- group quota on /QUOTA (/dev/sdb1) is off
- user quota on /QUOTA (/dev/sdb1) is off
- 결과 : /QUOTA 파일 시스템에서 사용자와 그룹 할당량 비활성화됨을 출력
- $ quotacheck -augmn
- -a : 모든 파일 시스템에 대해 할당량 정보 검사
- -u : 사용자 할당량 검사
- -g : 그룹 할당량 검사
- -m : 이미 마운트된 파일 시스템에서도 강제 검사
- -n : 디스크 쓰지 않고 메모리에서만 할당량 검사
- 결과 : /QUOTA 파일 시스템의 사용자 및 그룹 할당량 정보 검사
- $ rm -rf quota.*
- 결과 : 사용자와 그룹 할당량 데이터를 포함한 파일 (quota.user, quota,group 등)이 삭제
4. 쿼터 데이터베이스 생성
- $ touch quota.user quota.group
- quota.user와 quota.group 파일 생성
- $ chmod 600 quota.*
- quota.* 파일에 소유자만 읽기/쓰기 권한 부여 (보안상 소유자 외에는 읽거나 수정 불가)
- $ quotacheck -augmn
- -aug : 모든 파일 시스템에서 사용자, 그룹 할당량 정보 검사.
- -m : 강제로 마운트된 시스템 확인.
- -n : 결과를 메모리에서만 처리
- 결과 : quota.user와 quota.group 파일에 할당량 데이터 초기화
- $ quotaon -aug
- 사용자, 그룹 할당량을 모든 파일 시스템에 대해 활성화
- /dev/sdb1 [/QUOTA]: user quotas turned on
- /dev/sdb1 장치가 /QUOTA 디렉터리에 마운트된 파일 시스템에서 사용자 디스크 할당량 관리가 활성화됨
5. 사용자별 쿼터 지정
- 입력 : $ edquota -u tester
- 출력 : Disk quotas for user tester (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 500 1000 2000 50 100 200
필드 | 설명 |
Filesystem | 사용자별 쿼터를 할당하는 파일 시스템 |
blocks | 사용자가 현재 사용 중인 디스크 블록 수 기본 단위는 KB |
soft | 소프트 사용한도(경고 없이 허용되는 최대 블록 수) 한 파티션에 사용자가 사용할 수 있는 최대 용량 |
hard | 절대 초과할 수 없는 최대 블록 수 (하드 사용한도) |
inodes | 사용자가 현재 사용중인 inode(파일과 디렉터리) 개수 |
soft | 소프트 한도 초과 시 경고 발생 유예 기간 동안 초과 사용 가능 (단, 하드 한도 초과 불가) |
hard | 절대 초과 불가 하드 한도 초과 시 즉시 차단 |
- 앞의 soft, hard는 디스크 (블록) 수 정의
- 뒤의 soft, hard는 inode 수 정의
6. 쿼터 현재 상황 점검
옵션 | 설명 |
used | 현재 사용량 |
soft | 현재 설정된 soft limit |
hard | 현재 설정된 hard limit |
grace | soft limit에 지정딘 용량 초과 시 남은 유예기간 표시 |
비유로 정리
- 디스크 쿼터 기능은 도서관에서 특정 한 사람이 책을 너무 많이 꽃아버려 다른 사람들이 공간을 사용하지 못하는 문제를 방지하기 위해, 각 사람마다 책 꽂는 수를 제한하는 기능으로 보면 됨
- 결국, 공정하게 디스크 자원을 분배하고 시스템 전체의 효율성 유지가능
반응형
'리눅스 > 디스크 쿼터' 카테고리의 다른 글
디스크 쿼터 관련 명령어 (2) | 2025.01.09 |
---|
댓글