Quota mini-HOWTORalf van Dooren윤현호v0.2, January 2002 이 문서는 Ralf van Dooren
이 문서는 비상업적인 목적으로 모든 복사본과 지원 문서에 저자와 편집자의 이름, 그리고 이 주의 사항을 포함된, 즉 문서가 수정되지 않은 상태로 사용, 복사, 배포할 수 있다. 이 문서가 유용한 글이 되기를 바라면서 배포되었으나, 표현되거나 함축된 말에 대해서 어떠한 보증은 할 수 없다. 이 문서내에 포함된 정보의 정확성을 보증하는데 모든 노력에도 불구하고, 이 문서내에 포함된 내용으로 인해 발생한 어떠한 오류나 손실에 대해 저자와 편집자 그리고 유지보수하는 사람은 어떠한 책임도 가지지 않는다. 이 문서는 리눅스 호스트의 화일시스템에서 quota를 사용하는 방법 - 사용자와
그룹에게 디스크 사용량을 부여하고, quota의 여러 명령어의 사용 방법 등 - 에
대해서 기술한다. 이 문서는 커널 2.x를 사용하는 사용자를 위한 것이다. 커널
2.4.xx의 Red Hat 7.2에서 테스트되었다. 이전 버전의 커널을 사용하는 사용자는
quota를 제대로 활용하기 위해서 업그레이드를 해야할 것이다. 에러를 발견하거나
어떤 정보가 빠져있으면 1. Quota란 무엇인가?Quota는 사용자나 혹은 그룹이 가질 수 있는 inode의 수, 혹은 사용자나 그룹에게 할당된 디스크 블럭의 수를 제한함으로써, 디스크 저장 장치의 사용을 제한할 수 있게 해준다. 즉, Quota는 사용자나 그룹의 디스크 사용량을 제한할 수 있는 방법을 제공해준다. Quota의 기본 개념은 사용자가 그들에게 부여된 디스크의 제한 용량 이상으로 사용하지 못하게 하며, 시스템의 디스크 공간을 무제한적으로 사용하지 못하게 한다. Quota는 사용자 별, 파일 시스템 별로 동작된다. 한 사용자에 파일을 만들 수 있는 파일 시스템이 하나 이상이라면, 각각의 파일 시스템에 개별적으로 Quota를 설정해줘야 한다. 2. 리눅스에서 Quota 지원Quota 지원은 버젼 1.3.8x에서부터 커널에 포함되었다. 지금은 리눅스 커널 2.0 릴리즈의 한 부분이다. 여러분의 시스템이 Quota를 지원하지 않는다면, 업그레이드하기 바란다. 현재 Quota는 ext2 화일 시스템에서만 동작한다. 3. 리눅스에서 Quota를 사용하기 위한 요구 사항3.1. Kernel커널 2.x 소스는 http://www.kernel.org에서 구할 수 있다. 서버의 자원을 아끼기 위해 가능하면 여러분의 위치에서 가까운 곳의 미러 사이트를 이용하기 바란다. 한국의 미러 사이트는 http://www.kr.kernel.org이다. 3.2. Quota 소프트웨어여러분의 가지고 있는 리눅스 배포본에 따라, 시스템에 Quota 소프트웨어가 설치되어 있거나, 혹은 설치되어 있지 않을 수도 있다. 설치되어 있지 않다면, Quota 소프트웨어의 소스를 여기에서 다운로드할 수 있다. 4. 리눅스에서 Quota 설정 - 1 장: 환경 설정4.2. Quota 소프트웨어 컴파일 및 설치대부분의 리눅스 배포본에서는 Quota 소프트웨어가 설치되어 있거나, 쉽게 설치할 수 있다. 그렇지 않다거나, 어떻게 설치해야 하는지 모른다면, 여기에서 최신 버젼의 Quota 소프트웨어를 다운로드할 수 있다. Quota 소프트웨어를 컴파일하고 설치하라. 4.3. Quota를 검사하고 부트 시에 Quota를 작동시키기 위해 시스템 init 스크립트 수정다음 예를 살펴보자.
가장 좋은 방법은 /etc/fstab에 명시된 파일 시스템이 마운트된 후 항상 Quota를 켜놓는 것이다. 시스템 init 스크립트의 끝부분 또는 파일 시스템이 마운트되는 부분의 바로 뒷부분에 Quota를 켜놓는 것을 추천한다. 4.4. /etc/fstab 수정일반적으로 Quota가 작동되기 전의 파티션 정보는 다음과 같다.
파일 시스템에 사용자 Quota 지원을 가능하게 하려면, "defaults" 단어 뒤, 즉 네번째 항에 "usrquota"를 추가한다. 더 자세한 정보는 fstab 매뉴얼 페이지(`man fstab`)를 참고하라.
파일 시스템에 그룹 Quota 기능이 필요하면, "usrquota" 대신 "grpquota"를 추가하라.
파일 시스템에 사용자 Quota와 그룹 Quota 둘다 필요하다면 다음과 같이 하면 될 것이다.
4.5. Quota 기록 파일 "quota.user"와 "quota.group" 생성quota.user와 quota.group, 이 두 Quota 기록 파일은 root 소유이어야 하고, root 이외에는 어느 누구도 읽기/쓰기 권한을 줘서는 안된다. root로 로그인한 후, Quota를 활성화시킬 파티션의 루트 디렉토리로 이동하라. 그런 후 quota.user와 quota.group 파일을 다음과 같이 만든다.
4.6. Quota 시스템 활성화시키기Quota 소프트웨어를 활성화시키기 위해, 여러분이 수정한 것이 영향을 미칠 수 있도록 시스템을 리부트한다. 더 좋은 방법은 여러분이 만든 시스템 init 스크립트를 실행시키는 것이다. 이것은 Quota 데이타베이스를 초기화시킬 것이다. 만약 `ls -la /partition/quota.*` 명령을 실행해보면 파일 크기가 더 이상 0 이 아니라는 것을 알게 될 것이다. 이것은 Quota가 동작하고 있다는 것을 말한다. 나중에 다른 파티션에도 Quota를 가능하게 하려면 4, 5, 6번 과정을 되풀이하면 된다. 4.7. crontab에 quotacheck 추가Quotacheck는 주기적으로, 즉 일주일마다 실행되면 될 것이다. 다음 줄을 root의 crontab에 추가하라. (`crontab -e`)
5. 리눅스에서 Quota 설정 - 2 장: 사용자와 그룹에게 할당량 배정이것은 edquota 명령을 통해 행해진다. (자세한 것은 `man edquota`를 참고하기 바란다.) 5.1. 특정 사용자에게 디스크 할당량 배정여기 한가지 예가 있다. 만약 시스템에 로그인 아이디 bob이라는 사용자가 있고, 이 사용자의 디스크 할당량을 배정하기 위해 "edquota -u bob" 명령을 사용함으로써 vi 에디터(또는 $EDITOR 환경변수에 설정한 에디터)로 quota가 설치된 각 파티션의 bob이라는 사용자의 할당량을 수정할 수 있다.
"blocks in use"는 한 파티션에서 사용자가 사용 중인 총 블럭(kilobyte 단위)을 의미한다. "inodes in use"는 한 파티션에서 사용자가 사용 중인 파일의 총합이다. 5.2. 특정 그룹에 디스크 할당량 배정시스템에 games이라는 그룹이 있고, 이 그룹의 디스크 사용량을 제한하고 싶다면, "edquota -g games" 명령을 사용하면 된다. 그러면 vi 에디터를 이용해 games 그룹의 할당량을 수정할 수 있다.
5.3. 일련의 사용자들에게 같은 값으로 디스크 할당량 배정예를 들어 100명의 사용자의 할당량을 사용자 bob과 같은 값으로 빨리 설정하기 위해서는, 먼저 bob의 할당량 정보를 직접 수정한 후에 다음 명령을 수행하면 된다.
여기에서 csh을 사용하고 있다고 가정하며, 사용자의 UID가 500부터 시작한다고 가정하고 있다. 추가적으로 edquota에서는 Soft Limit, Hard Limit, 유예 기간(Grace Period)이라는 단어의 의미를 알아야 한다. 5.4. Soft LimitSoft limit는 한 파티션에서 사용자가 쓸 수 있는 최대 용량을 가리킨다. 그러나 유예 기간(grace period) 내에 있어서는 사용자는 사용 용량 초과에 대해서 경고를 받게 되는 경계선처럼 동작한다. 5.5. Hard LimitHard limit는 유예 기간(grace period)이 설정되어 있을 때에만 동작한다. 이것은 디스크 사용에 있어서 절대적인 제한을 의미한다. 즉, 사용자는 hard limit 이상의 디스크 공간을 사용할 수 없다. 5.6. Grace Period유예 기간은 사용자의 사용 용량이 soft limit 용량을 넘은 후부터 적용되는 시간 제한이다. 시간은 sec(onds), min(utes), hour(s), day(s), week(s), month(s) 단위로 사용할 수 있다. "edquota -t" 명령을 실행하면 유예 기간을 보거나 수정할 수 있다.
"0 days" 부분을 적당한 기간으로 바꿔준다. 개인적으로는 7일("7 days" 혹은 "1 week")로 설정해 주었다. 6. 기타 Quota 명령6.1. Quotacheckquotacheck는 파일 시스템의 디스크 사용 상태를 검색하거나 quota 기록 파일인 "quota.user" 파일을 최근의 상태로 갱신하기 위해 사용한다. quotacheck를 시스템을 부팅할 때나 정기적으로(예를 들어, 일주일에 한번) cronjob을 통해서 실행할 것을 권한다. 6.2. Repquotarepquota는 파일 시스템의 quota를 정리해서 보여준다. 다음은 repquota가 출력하는 예제이다.
6.3. Quotaon과 Quotaoffquotaon은 quota를 가동시킬 때 사용한다. 반대로 quotaoff는 중단시킬 때 사용한다. 실제로 이 두 화일은 비슷하다. 이것들은 시스템이 부팅되거나 중단될 때 수행된다. |
Recent investments will yield a slight profit. |