본문 바로가기

Linux

[Linux/Unix]디스크 쿼타(Disk Quota)

출처 :  http://bestheroz.blog.me/67439872


1) Quota란?

쉘 사용자의 계정 용량을 제한하는 기능으로, 웹 호스팅 서비스 또는 계정 서비스에서 사용자에게 일정한 계정 공간을 할당하고자 할 때 많이 사용된다.

 

 

2) 쿼터 커널 지원 여부 확인

디스크 쿼터를 사용하기 위해서는 커널에서 지원해야 하므로, 다음과 같이 dmsg | grep quota 또는

cat /var/log/messages | grep quota 명령을 실행하여 디스크 쿼터에 관련된 메시지가 뜨는지 확인한다.

페도라 코어 리눅스의 커널에서는 기본적으로 쿼터를 지원하지만, 새로운 커널을 컴파일하여 사용하는 경우에는 커널설정 항목에서 [File Systems-Quota Support]를 체크하여 컴파일해야 한다.

 

 

3) 디스크 쿼터 설정

/etc/fstab 파일에서 쿼터를 설정하고자 하는 파티션의 마운트 옵션 필드에 usrquota 또는 grpquota를 추가하여 설정한다. usrquota 옵션은 사용자에게 쿼터를 부여하고자 할 때 사용하며, grpquota 옵션은 그룹에 대해서 쿼터를 부여하고자 할 때 사용한다.

 

옵션을 추가한 후 해당 파티션에서 쿼터가 적용되도록 하기 위해선 시스템을 재시작해야 한다. 그러나 시스템을 재시작 하지 않고 쿼터를 적용하려면 다음과 같이 마운트를 다시 시켜 주면 된다.

 

사용자의 쿼터 정보를 저장하는 데이터베이스 파일인 aquota.user 파일을 touch 명령으로 만든 후 다른 사용자들이 열어 볼 수 없도록 600의 퍼미션을 부여한다.

 

quotacheck 명령을 이용하여 쿼터 상태를 체크하여 /aquota.user 데이터베이스 파일에 저장되도록 한다.

 

이제 모든 쿼터 설치가 완료되었으므로, 쿼터가 작동되도록 활성화시켜야 한다.

 

 

4) 계정 용량 제한하기

edquota명령을 이용하여 시스템내에 존재하는 계정에 사용자에 대해서 쿼터를 설정한다.

 

* blocks(soft=0, hard=0)

사용자가 현재 사용중인 총 블록(용량) 수를 자동으로 표시해 주므로, 이 값은 수정 할 수 없음을 주의하도록 하자. blocks에서 soft는 사용자가 사용할 수 있는 실제 계정 용량으로, 여기서 할당한 용량에 도달하게 되면 경고 메시지를 전달해 주고, 유예 기간(grace period) 동안에는 hard으로 할당한 용량 범위 내까지 soft의 설정 용량을 초과하더라도 사용할 수 있게 된다. 반면에 hard는 사용자가 사용할 수 있는 절대 용량으로 이 용량을 초과하면 더 이상 계정 용량을 사용할 수 없게 된다.

 

*inodes(soft=0, hard=0)

사용자가 현재까지 사용하고 있는 파일의 총 개수르 의미하며, 이것도 자동으로 사용 중인 총 파일 개수를 표시해 준다. soft는 사용자가 사용할 수 있는 파일의 개수를 지정하고. hard는 사용할 수 있는 절대 파일 개수를 지정한다.

 

test1사용자의 계정 용량을 100메가(soft)로 제한하고, 이용량이 넘었을 때는 일정 기간 최대 150메가(hard)까지 사용할 수 있도록 하고, 사용할 수 있는 총 파일 개수를 500개로 제한하는 쿼터 설정은 다음과 같다

 

 

5) 유예 기간(grace period)

사용자의 계쩡 사용량이 soft limit로 지정한 용량에 도달하였을 때 부터 hard limit 범위 내에서 계정 용량을 초과하여 사용할 수 있도록 한시적으로 적용되는 기간입니다. 이 기간이 경과되면 계정 용량은 soft limit 이상의 용량의 초과하여 계정을 사용할 수 없게 된다. 유예 기간 정보는 edquota 명령에 -t 옵션을 지정하여 확인할 수 있다. 기본값은 1주일로 설정되어 있다.

 

유예 기간을 변경하고자 한다면 sec(초), min(분), hour(시), day(일), month(달) 단위로 상기 화면의 내용을 수정하면 된다. 12시간으로 수정해 보자.

 

 

6) 쿼터 설정 상태 확인(repquota -a)

지금까지 설정한 쿼터 상태를 확인하려면 repquota -a 명령을 사용하면 된다.

 

 

7) 사용자 쿼터 용량 확인

사용자 자신의 계정 쿼터 용량 상태를 알아보려면 quota 명령을 실행해 보면 된다.

 

용량을 큰 파일을 계속 복사하여 용량을 초과하게 만들었다.

용량을 초과하게 만든후 quota 명령을 실행하여 상태를 확인하였다. blocks 옵션에 용량이 quota(soft)보다 초과하였고 그 로 인해 grace period가 적용됨을 볼수 있다.

 

 

8) 쿼터 설정을 다른 사용자와 동일하게 설정하기

edquota -p test1 test2 test3 test4 test5

이 명령은 test1의 쿼터 설정을 test2, test3, test4, test5 사용자에게 동일하게 설정해 준다.

repquota -a 를 실행하여 test2, test3, test4, test5의 쿼터 설정 정보를 확인해 보면 쉽게 이해가 된다.

 

 

9) 다중 사용자의 쿼터 설정을 한번에

edquota -p test1 `awk -F: '$3>500 {print $1}' /etc/passwd`

이 명령을 실행하면 /etc/passwd 파일에 존재하는 UID 500이상을 갖는 계정에 대해서 test1과 같은 동일한 쿼터 설정을 갖도록 한다. 이 명령의 쓰임에서 주의할 점은 awk앞의 ` 키는 숫자1 키 옆에 있는 키이며, 그 다음에 나오는 ' 키는 엔터키 옆에 있는 키이며, 다음 ' 키도 엔터키 옆의 키이고, 마지막 ` 키는 숫자 1키의 옆 키 다.

 

'Linux' 카테고리의 다른 글

Macbook에서 Linux 커널패닉 날때 (IO APIC)  (2) 2012.08.09
Byobu 도움말  (0) 2012.07.24
Linux Performance Metrics  (0) 2012.07.05
시스템 성능향상을 위한 팁!!  (0) 2012.07.04
SAR in Ubuntu  (0) 2012.06.22