Quota로 디스크 사용량을 제어하는 방법
Quota란 무엇인가? 기본설정과 사용방법에 대한 설명
Quota는 사용자나 그룹이 가질 수 있는 파일의 수나 디스크의 용량을 제한하는 기능입니다.예를 들어, A라는 파일시스템에 B라는 사용자의 사용량을 100GB로 제한하고 싶다면 Quota를 사용할 수 있습니다.
Quota는 시스템의 디스크 공간을 효율적으로 관리하고, 사용자나 그룹의 디스크 낭비를 방지할 수 있습니다.
Quota의 종류
Quota에는 두 가지 종류가 있습니다.- User Quota: 사용자별로 디스크 사용량을 제한하는 Quota입니다. usrquota라고도 합니다.
- Group Quota: 그룹별로 디스크 사용량을 제한하는 Quota입니다. grpquota라고도 합니다.
Quota의 용어
Quota를 설정하거나 확인할 때, 다음과 같은 용어들을 알아야 합니다.- Block: 디스크의 블록 단위입니다. 보통 1KB로 계산됩니다.
- Inode: 파일의 메타데이터를 저장하는 구조체입니다. 파일의 수를 나타냅니다.
- Soft Limit: 경고를 주는 제한치입니다. 이 제한치를 넘으면 grace period라는 유예기간이 주어지며, 이 기간 안에 사용량을 줄여야 합니다.
- Hard Limit: 절대적인 제한치입니다. 이 제한치를 넘으면 더 이상 파일을 생성하거나 쓸 수 없습니다.
- Grace Period: Soft Limit을 넘었을 때 주어지는 유예기간입니다. 보통 7일로 설정됩니다.
Quota의 설정 방법
Quota를 설정하는 방법은 다음과 같습니다.1. fstab 파일에 해당 파일시스템의 Quota 옵션을 추가합니다.
예를 들어, /data001이라는 파일시스템에 User Quota와 Group Quota를 적용하려면, 다음과 같이 수정합니다.
1 | /dev/mapper/F3170_786_vg001-data001 /data001 ext3 defaults,usrquota,grpquota 0 0 | cs |
2. mount 명령어로 해당 파일시스템을 다시 마운트합니다.
1 | mount -o remount /dev/mapper/F3170_786_vg001-data001 | cs |
3. quotacheck 명령어로 해당 파일시스템의 Quota 정보를 생성합니다.
1 | quotacheck -cug /data001 | cs |
-c 옵션은 Quota 정보를 생성하는 옵션이며, -u와 -g 옵션은 User Quota와 Group Quota를 모두 생성하는 옵션입니다.
이 명령어를 실행하면, /data001 폴더 안에 aquota.user와 aquota.group이라는 파일이 생성됩니다.
4. setquota 또는 edquota 명령어로 해당 파일시스템의 Quota 제한치를 설정합니다.
setquota 명령어는 다음과 같은 형식으로 사용합니다.
1 | setquota user명 soft용량 hard용량 soft갯수 hard갯수 대상파일시스템 | cs |
예를 들어, /data001 파일시스템에서 user1이라는 사용자의 용량을 50GB로, 갯수를 1000개로 제한하려면, 다음과 같이 입력합니다.
1 | setquota user1 51200000 51200000 1000 1000 /data001 | cs |
edquota 명령어는 vi 편집기를 사용하여 Quota 제한치를 설정합니다.
1 | edquota user1 | cs |
이 명령어를 실행하면, 다음과 같은 화면이 나타납니다.
1 2 3 4 | Disk quotas for user user1 (uid 1001): Filesystem blocks soft hard inodes soft hard /dev/mapper/F3170_786_vg001-data001 1024 51200000 51200000 4 1000 1000 | cs |
여기서 soft와 hard의 값을 원하는대로 수정하고, 저장하면 됩니다.
edquota 명령어는 -p 옵션을 사용하여 다른 사용자의 Quota 설정을 복사할 수 있습니다. 예를 들어, user2라는 사용자에게 user1의 Quota 설정을 복사하려면, 다음과 같이 입력합니다.
1 | edquota -p user1 user2 | cs |
5. quotaon 명령어로 Quota 기능을 활성화합니다.
1 | quotaon -a | cs |
-a 옵션은 모든 파일시스템에 Quota 기능을 켜는 옵션입니다. 특정 파일시스템만 켜고 싶다면, 파일시스템의 이름을 입력하면 됩니다.
Quota의 확인 방법
Quota를 확인하는 방법은 다음과 같습니다.- repquota 명령어로 해당 파일시스템의 Quota 정보를 보여줍니다.
1 2 3 4 5 6 7 8 | *** Report for user quotas on device /dev/mapper/F3170_786_vg001-data001 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 1024 0 0 4 0 0 user1 -- 1024 51200000 51200000 4 1000 1000 user2 -- 1024 51200000 51200000 4 1000 1000 | cs |
여기서 used는 사용량, soft와 hard는 제한치, grace는 유예기간을 나타냅니다.
- quota 명령어로 현재 사용자의 Quota 정보를 보여줍니다.
1 | quota -s | cs |
1 2 3 4 | Disk quotas for user user1 (uid 1001): Filesystem blocks quota limit grace files quota limit grace /dev/mapper/F3170_786_vg001-data001 1024M* 50G 50G 4* 1000 1000 | cs |
여기서 * 표시는 Soft Limit을 넘었다는 의미입니다.
Quota의 결론
Quota는 디스크 사용량을 제한하는 유용한 기능입니다.Quota를 적절히 설정하고 관리하면, 시스템의 성능과 안정성을 높일 수 있습니다.
저는 Quota가 필요한 상황이 많다고 생각합니다.
저는 Quota가 필요한 상황이 많다고 생각합니다.
예를 들어, 공유 서버에서 여러 사용자가 파일을 생성하거나 수정할 때, Quota가 없다면 디스크 공간이 부족하거나 오버헤드가 발생할 수 있습니다.
이 때 Quota는 디스크 사용량을 제어하는데 도움이 되는 훌륭한 도구가 되지 않을까요?
이상으로 포스팅을 마칩니다.
이상으로 포스팅을 마칩니다.
감사합니다.
댓글
댓글 쓰기