Linux

[Linux] 디스크 쿼터 - xfs_quota / edquota / repquota / quota / setquota

thdwldud 2025. 8. 4. 10:02

디스크 쿼터(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