
디스크 쿼터(Quota)의 개요
- 리눅스 시스템은 기본적으로 사용자의 용량을 제한하지 않아서 특정 사용자가 디스크에 남아있는 용량을 모두 사용할 수 있음. 따라서 사용자가 많은 서버의 경우 사용자의 디스크 사용량 제한이 필요한데, 이러한 제한을 디스크 쿼터라고 부름. 리눅스에서 디스크 쿼터는 사용자 및 그룹의 디스크 사용량과 생성할 수 있는 파일의 개수(I-node의 수)를 제한할 수 있음. RHEL7버전부터는 XFS 파일 시스템을 사용하는데, 추가적인 기능으로 특정 디렉터리(프로젝트) 단위로도 제한할 수 있음
- 제한값 설정과 관련된 항목으로는 소프트(Soft), 하드(Hard)로 구분함
- 소프트는 보통 사용자에게 공지되는 제한 용량이라고 보면 됨. 만약 특정 사용자의 디스크 사용량은 100MB로 제한한다면 소프트 항목 값으로 지정하면 됨
- 하드는 사용자가 실제 최대로 사용할 수 있는 값이라고 보면 됨. 보통 소프트 항목 값보다 약간 더 설정하는 것이 보편적
- 예를 들면 소프트를 100MB로 제한시에 하드를 110MB로 지정해서 일정 용량을 초과해도 사용할 수 있도록함. 하드로 설정한 값은 절대로 초과할 수 없으며, 일정 기간 내 소프트로 지정된 용량 이하로 줄이지 않으면 파일 생성을 할 수 없게 됨
관련 명령어 (xfs_quota / edquota / repquota / quota / setquota)
xfs_quota
- XFS 파일 시스템의 쿼터(quota)를 관리해주는 명령
xfs_quota [option]
옵션
| 옵션 | 설명 |
| -x | 전문가(expert) 모드를 활성화시키는 옵션으로 관리자 명령을 실행할 때 기본적으로 사용해야 하는 옵션 |
| -c 명령 | 쿼터 관련 명령을 지정할 때 사용하는 옵션 |
사용 예
- joon 사용자의 소프트 용량 제한 100MB, 하드 용량 제한은 110MB로 설정
xfs_quota -x -c 'limit bsoft=100m bhard=110m joon' /home
- joon 사용자의 파일 개수 제한을 소프트 제한은 1000개, 하드 제한은 1100로 설정
xfs_quota -x -c 'limit isoft=1000 ihard=1100 joon' /home
- terran 그룹에 속한 전체 사용자들의 디스크 용량 및 파일 개수를 제한
xfs_quota -x -c 'limit -g. bsoft=10g bhard=11g isoft=10000 ihard=11000 terran' /home
- /home 영역의 사용량 및 할당 용량 정보에 단위를 붙여서 출력
xfs_quota -x -c 'report -bi -h' /home
edquota
- 사용자나 그룹에 쿼터를 설정할 때 사용하는 명령으로 실행시키면 vi 편집기가 실행되고, 기본 단위가 KB이므로 10MB를 제한하려면 10000이라고 입력해야 함
edquota [option]
옵션
| 옵션 | 설명 |
| -u --user |
사용자에 대한 쿼터를 설정할 때 사용하는 옵션 |
| -g --group |
그룹에 대한 쿼터를 설정할 때 사용하는 옵션 |
| -t --edit-period |
Soft limit를 초과한 후부터 적용되는 시간 제한(grace period)을 설정하는 옵션 |
| -p --prototype=name |
특정 사용자의 쿼터를 다른 사용자에게 동일한 설정으로 적용할 때 사용하는 옵션 |
| -h --help |
명령어의 사용법 및 주요 옵션 정보를 간략히 출력 |
사용 예
- posein 사용자의 쿼터를 할당. 명령을 실행하면 기본적으로 vi 편집기가 실행되면서 다음과 같이 나옴
$ edquota posein
>> Filesystem blocks soft hard inodes soft hard
| 항목 | 설명 |
| Filesystem | Quota가 설정된 파티션을 나타냄 |
| blocks | 현재 사용중인 용량(KB)을 나타냄 |
| soft | 일반적으로 사용자가 사용할 수 있는 최대 용량(KB)을 나타내는데, 이 항목에 지정한 용량이 hard에 지정한 값보다 작게 설정했다면 hard 용량까지는 지정한 유예 기간(grace period) 동안은 초과할 수 있음. 유예 기간 내에 soft 항목에 지정한 용량 이하로 줄이지 않으면 파일의 생성이 불가능해짐 |
| hard | 실제 사용자가 최대로 사용할 수 있는 용량(KB)을 의미. soft는 초과하여 사용할 수 있으나 hard에 설정한 용량은 절대 초과할 수 없음 |
| inodes | 현재 사용 중인 I-node 수(파일이나 디렉터리의 개수)를 나타냄 |
| soft | 일반적으로 사용자에게 지정하는 inode 값으로 파일이나 디렉터리를 생성할 수 있는 갯수를 나타냄. 유예 기간의 적용 등은 blocks 항목과 같음 |
| hard | 절대 초과할 수 없는 inode 값으로 사용자가 생성할 수 있는 파일이나 디렉터리의 최대값 |
- 명령을 내리면 vi 편집기가 실행되면서 다음과 같이 나타는데, 날짜를 변경하면 됨
edquota -t
| 항목 | 설명 |
| Filesystem | Quota가 설정된 파티션을 나타냄 |
| Block grace period | Block의 soft 제한을 초과했을 경우의 유예기간 |
| Inode grace period | Inode의 soft 제한을 초과했을 경우의 유예기간 |
- yuloje 사용자의 Quota 설정을 posein 사용자의 설정과 동일하게 만듦
edquota -p posein yuloje
repquota
- 파일 시스템에 설정된 쿼터 정보를 출력하는 명령
repquota [option] [디렉터리명]
옵션
| 옵션 | 설명 |
| -a --all |
쿼터가 설정된 모든 파티션의 정보를 출력 이 옵션을 사용하면 디렉터리명을 지정할 필요가 없음 |
| -u --user |
사용자 쿼터 정보를 출력하는데 기본 적용됨 |
| -g --group |
그룹 쿼터 정보를 출력 |
사용 예
- /home2 영역에 설정된 사용자 쿼터 정보를 출력
repquota /home2
- /home에 설정된 그룹 쿼터 정보를 출력
repquota -g /home
- 설정된 쿼터 정보를 전부 출력
repquota -a
quota
- 사용자나 그룹 단위로 쿼터 설정 정보를 출력하는 명령
quota [option] [user|group]
옵션
| 옵션 | 설명 |
| -u --user |
사용자 쿼터 정보를 출력하는데 기본 적용됨 |
| -g --group |
그룹 쿼터 정보를 출력 |
| -h --help |
명령어의 사용법 및 주요 옵션 정보를 간략히 출력 |
사용 예
- posein 사용자 자신의 쿼터 설정 정보를 확인
quota
- joon 사용자의 쿼터 설정 정보를 확인
quota joon
setquota
- 쿼터를 설정하는 명령으로 vi 편집기를 이용하는 대신에 직접 명령행에서 설정할 수 있음
setquota [option] 사용자명 block_soft block_hard inode-soft inode_hard 파일시스템
setquota -t block_grace inode_grace 파일시스템
옵션
| 옵션 | 설명 |
| -u --user |
사용자 쿼터를 설정할 때 사용. 기본 적용됨 |
| -g --group |
그룹 쿼터를 설정할 때 사용 |
| -t --edit-period |
유예 기간(Grace Time)을 설정할 때 사용 기본 단위는 초(second) |
사용 예
- yuloje 사용자의 용량 제한은 Soft 10MB, Hard 11MB로 설정하고 I-node에 대한 제한은 설정하지 않음
setquota -u yuloje 10000 11000 0 0 /home
- 블록의 유예 기간은 하루(24시간)으로 설정하고, I-node는 8시간으로 설정
setquota -t 86400 28800 /home
'Linux' 카테고리의 다른 글
| [Linux] 프로세스 관리 명령어 - nice / renice (1) | 2025.08.12 |
|---|---|
| [Linux] 디렉터리 생성 - mkdir (1) | 2025.08.07 |
| [Linux] 스왑(Swap) (0) | 2025.08.01 |
| [Linux] 파일시스템 점검 및 관리 - dd (1) | 2025.07.28 |
| [Linux] 파일시스템 점검 및 관리 - fsck / e2fsck / xfs_repair (2) | 2025.07.25 |