리눅스 용량 제한 관리시스템 Quota 개념과 사용법 총정리
목차
Quota의 개념
Quota란 파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량과 개수를 제한하는 것을 말한다.
리눅스 시스템은 기본적으로 사용자의 용량을 제한하지 않기 때문에 특정 사용자가 디스크에 남아 있는 디스크 용량을 모두 사용할 수 있는 문제가 있다. 사용자가 많은 서버의 경우 사용자의 디스크 사용량 제한이 필요한데, 이때 사용자의 디스크 용량을 제한하기 위기 위해 사용하며 그래서 붙여진 이름이 디스크 쿼터(Disk Quota)이다.
quota를 사용하면 사용자 및 그룹의 디스크 사용량과 생성할 수 있는 파일의 개수(I-node의 수)를 제한할 수 있게 된다.
제한 값 설정과 관련된 항목으로는 소프트(Soft)와 하드(Hard)로 구분하며, 소프트(Soft)는 사용자에게 기본적으로 제공되는 용량이라고 생각하면 되며, 하드(Had)의 경우 사용자가 사용할 수 있는 최대치라고 생각하면 된다.
사용자나 그룹이 소프트(Soft)로 설정된 값을 초과하였을 경우 초과한 데이터 대해서는 관리자가 설정한 정해진 기간(유예기간)동안 사용할 수 있다.
만약 사용자의 Quota 설정값을 소프트(Soft) 8GB, 하드(Had) 10GB로 설정하였다면 사용자는 하드(Had) 10GB 이상 데이터를 사용하지 못한다. 소프트(Soft) 8GB를 초과할 경우 관리자가 설정한 유예기간 동안만 사용가능하다.
edquota 사용법
edquota는 사용자나 그룹에 쿼터를 설정할 때 사용하는 명령어이며 실행 시 편집기가 실행되된다.
설정 시 기본 단위가 KB이므로 100MB를 제한하려면 100000이라고 입력해야 한다.
edquota [option]
edquota 주요옵션
옵션 | 설명 |
-u / --user | 사용자에 대한 쿼터를 설정할 때 사용하는 옵션이며 기본옵션이다. |
-g / --group | 그룹에 대한 쿼터를 설정할 때 사용하는 옵션이다. |
-t / --edit-period | soft limit를 초과한 경우부터 적용되는 시간 제한(grace period)을 설정하는 옵션이다. 쉽게 말해 soft를 초과한 파일들의 유예기간을 설정하는 옵션이다. |
-p / --prototype=name | 특정 사용자의 쿼터를 다른 사용자에게 동일한 설정으로 적용할 때 사용하는 옵션이다. |
-h / --gelp | 명령어의 사용법 및 주요 옵션 정보를 간략히 출력한다. |
edquota 사용예시
edquota user1
user1 사용자의 쿼터를 할당한다. 명령어를 입력하게 되면 기본편집기가 실행된다.
edquota user1 결과 항목별 설명
- Filesystem
- quota가 설정되어 있는 파티션을 나타낸다.
- Blocks
- 현재 사용중인 용량(KB)를 나타낸다.
- soft
- 사용할 수 있는 최대 용량을 나타내는데, 여기에 지정한 용량이 hard에 지정한 값보다 작게 설정되어 있다면 hard용량까지 도달하기 전까지 soft용량을 초과하여도 지정한 유예기간(grace period) 동안 초과 가능하다. 유예기간 내에 soft 설정값 만큼 용량이 정리되지 않는다면 더이상의 파일 생성 등의 작업은 할 수 없다.
- hard
- 사용할 수 있는 최대 용량을 의미하며, soft는 초과하여 사용할 수 있지만 hard는 초과하여 사용할 수 없다.
- inodes
- 현재 사용중인 i-node 수(파일 또는 폴더 개수)를 나타낸다.
- soft
- 지정한 inode 값으로 팔이나 폴더를 생성할 수 있는 개수를 나타내며, 유예기간 적용은 blocks 항목과 같게 적용된다.
- hard
- 절대 초과 불가능한 inode 값이며, 지정한 inode의 최대값이다.
edquota -t
edquota user1 결과 항목별 설명
- Filesystem
- quota가 설정되어 있는 파티션을 나타낸다.
- Block grace period
- Block의 soft를 제한하였을 경우의 유예기간이다
- Inode grace period
- Inode soft를 제한하였을 경우의 유예기간이다.
edquota -p user1 user2
user1의 quota 설정을 user2에게도 동일하게 적용한다.
repquota 사용법
repquota는 파일 시스템의 설정된 쿼터 정보를 출력해주는 명령어이다.
repquota [option] [디렉토리]
repquota 주요옵션
옵션 | 설명 |
-a | 쿼터가 설정되어 있는 모든 파티션의 정보를 출력한다. 이옵션을 사용하면 디렉터리명을 지정할 필요가 없다. |
-u | 사용자 쿼터 정보를 출력한다. 기본적으로 아무 옵션을 지정하지 않으면 이 옵션으로 동작한다. |
-g | 그룹 쿼터 정보를 출력한다. |
repquota 사용예시
repquota -g /home
/home 디렉토리에 설정된 그룹쿼터 정보를 출력한다.
repquota -a
설정된 쿼터 정보를 모두 출력한다.
quota 사용법
사용자나 그룹 단위로 쿼터 설정 정보를 출력해주는 명령어이다.
quota 주요옵션
옵션 | 설명 |
-u / --user | 사용자의 쿼터 정보를 출력한다 아무 옵션을 지정하지 않았을 경우 이 옵션으로 동작한다. |
-g / --group | 그룹 쿼터 정보를 출력한다. |
-h / help | 명령어의 사용법 및 주요 옵션 정보를 간략히 출력한다. |
quota 사용예시
quota user1
user1의 쿼터 설정값을 출력한다.
quota project1
project1의 그룹 쿼터 정보를 출력한다.
setquota 사용법
쿼터를 설정하는 명령으로 vi 편집기를 이용하는 대신에 직접 명령행에서 설정할 수 있다.
setquota [option] [username]
setquota 주요옵션
옵션 | 설명 |
-u | 사용자 쿼터를 설정할 때 사용된다. 아무 옵션을 선택하지 않을 시 기본적으로 이 옵션으로 동작한다. |
-g | 그룹 쿼터를 설정할 때 사용한다. |
-t | 유예기간(Grace Time)을 설정할 때 사용한다. 유옉기간(Grace Time)의 설정 단위는 초 단위이다. |
setquota 사용예시
setquota -u user1 9000 10000 0 0 /home
user1 사용자의 용량제한은 sotf 9MB, hard 11MB로 설정하고 i-node에 대한 설정은 지정하지 않는다.
setquota -t 86400 28800 /home
블록의 유예기간은 하루(1일)로 지정하고 i-node는 8시간으로 지정한다.