[linux] 쿼터로 디스크 제한
로빈아빠
본문
쿼터로 디스크 제한
디스크 쿼터를 사용하기위한 설정
디스크 쿼터를 사용하기전에, 현재의 커널에 쿼터가 설정되어 있는지 확인할 필요가 있읍니다. 쿼터를 사용할려면, 커널 설정파일에 아래의 행을 추가하면 됩니다.
options QUOTA
표준 GENERIC 커널 기본값은 이부분이 무효로 돼 있읍니다, 그러므로 윗행을 추가하고 나서 맞춤 커널을 빌드해야 합니다. 커널 빌드는 FreeBSD 커널 설정 장을 참조하세요.
그 다음 /etc/sysconfig에 있는 디스크 quotas를 활성 상태로 해야합니다. 아래와 같 이 바꾸어 주세요:
quotas=NO
를:
quotas=YES
단 FreeBSD 2.2.2 이상 버전에서는, 이 설정을 /etc/rc.conf 에서 합니다. 아래행을 변경하세요.
check_quotas=YES
마지막으로, 각 파일 시스템마다 디스크 쿼터를 설정하기 위해서는/etc/fstab 파일을 성정해야 합니다. 모든 파일시스템에 대해 사용자 또는 그룹 둘중에 하나를 설정하는 것도, 둘다 쿼터를 설정할 수도 있읍니다.
파일 시스템에 사용자 마다 쿼터를 설정하려면, userquota 옵션을 /etc/fstab 파일안 에 설정하고 싶은 파일 시스템의 엔트리의 옵션 필드를 추가합니다. 예를 들면:
/dev/sd1s2g /home ufs rw,userquota 1 2
마찬가지로, 그룹의 쿼터 설정을 할려면 groupquota 옵션을 userquota 대신에 샤용하면 됩니다. 사용자와 그룹 둘다 설정을 할려면 아래와 같이 변경 합니다:
/dev/sd1s2g /home ufs rw,userquota,groupquota 1 2
기본값은로, 쿼터 파일은 파일 시스템의 root 디렉토리상에, 사용자와 그룹의 쿼터에 대해서 각각 quota.user 와 quota.group 란 이름으로 놓여져 있읍니다. 자세한것은 man fstab 를 참조하세요. man 페이에는 쿼터 파일을 특별한 장소에 놓아 두어도 된다고 나오지만 다양한 쿼터 유틸리티중에 이 기능을 적절이 처리할수 없는 것도 있으므로, 쿼터 파일의 위치를 옮기는것은 추천하지 않읍니다.
여기까지 준비가 됐으면, 새로운 커널을 사용해 시스템을 재기동 시키세요. /etc/rc 파일이 자동적으로 적절한 명령어를 기동해서 /etc/fstab 파일에 사용가능하게 해 놓은 모든 quotas에 대해 초기화를 합니다. 그러므로, 수동으로 크기가 0인 쿼터 파일을 작성할 필요가 없읍니다.
통상적인 작업시에, 수동으로 quotacheck, quotaon,또는 quotaoff 명령어를 실행하지 마십시요. 하지만, 이런 작업에 관해 자세히 알고싶으면 man 페이지를 참조하세요.
쿼터 제한의 설정
일단 시스템의 쿼터를 유효하게 한다음, 정말로 쿼터가 사용가능한지 확인할 필요가 있읍니다. 간단히 확인 할려면 quota -v 명령어를 실행해 보세요. 디스크 사용량과 쿼터가 설정이된 각 파일 시스템마다 현재의 쿼터 제한이 표시됩니다.
이제 edquota 명령어를 실행하여 쿼터를 설정할 준비가 됐읍니다.
사용자나 그룹에 만들고 할당할 디스크 공간을 강제로 제한할수 있는 옵션이 몇가지 있읍니다. 디스크 공간의 용량제한(block quotas) 또는 파일수제한(inode quotas)등 이 두가지를 동시에 할수도 있읍니다. 이런 각각의 제한은 두개의 카테고리, 즉 하드 제한과 소프트 제한으로 분류됩니다.
하드 제한은 초과할수가 없읍니다. 일단 사용자가 하드제한에 도달하면 해당하는 파일 시스템상에서 디스크 공간을 확보할수가 없읍니다. 예를 들면, 만일 사용자가 파일 시스템상에 500 블럭의 하드적제한을 받고있고 현쟤 490 블럭을 사용하고 있다고 가정하면, 사용자는 나머지 10 블럭밖에 확보할수 없읍니다. 11 블럭째를 확보할려고 하면 실패하게 됩니다.
소프트 제한은 정한진 일정의 기간이내라면 제한한도를 넘어을 수도 있읍니다. 이 일정기간은 *grace period*이라 불리고 기본값은 일주일입니다. 만일 사용자가 *grace period*을 넘어도 소프트 제한을 지나서 계속 사용하면, 소프트 제한은 하드 제한으로 변경되어 더 이상 디스크 공간을 확보할수 없게 합니다. 사용자 디스크 사용량이 소프트 제한 이하로 다시 떨어지면, *grace period*는 리셋 됩니다.
아래는, edquota 명령어를 실행한 예입니다 edquota 명령어가 실행되면 EDITOR 환경변수에서 정의한 에디터, 또는 EDITOR 환경변수가 설정되어있지않은 경우는 vi 가 뜨고 쿼터 제한을 편집할수 있읍니다.
# edquota -u test
Quotas for user test:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)
보통 쿼터가 설정되있는 파일 시스템마다 2행의 표시가 나타납니다. 1행은 블럭 제한에 관한 정보이고, 다른 1행은 i-노드 제한에 관한 정보입니다. 쿼터 제한값을 변경하고 싶은 값으로 바꾸어주세요. 예를 들면, 사용자 블럭의 정보를 50 블럭까지의 소프트 제한, 75블럭까지의 하드 제한에서, 500블럭 까지는 소프트 제한과 600블럭까지는 하드 제한을 가하고 싶다면, 아래와 같이 값을 고칩니다:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
을:
/usr: blocks in use: 65, limits (soft = 500, hard = 600)
새로운 쿼터 제한은 에디터를 종료할때 바뀝니다.
때로는 쿼터 제한을 uids 범위로 설정하는게 바람직합니다. 그럴려면 edquota 명령어에 -p 옵션을 사용합니다. 먼저 제한하고 싶은 쿼터를 한명의 사용자에 대해 설정합니다. 그리고 edquota -p protouser startuid-enduid 명령어를 실행합니다. 예를 들면, 만일 사용자 test 에게 쿼터 제한을 가했다고 가정하면 다음의 명령어는 같은 제한을 uid 1,000에서 uid 19,999 까지의 사용자에게 가할수 있읍니다.
edquota -p test 10000-19999
uid 범위에 따라 제한을 가하는 것이 가능한것은 , 2.1 이 릴리즈 된 이후에 추가 됐읍니다. 만일 2.1 시스템상에서 이 기능을 사용하려면, 새로운 edquota를 입수해야 합니다.
쿼터 제한과 디스크 사용상태 확인
쿼터 제한과 디스크 사용상태 확인을 하려면, quota 또는 repquota 명령어를 사용할 수 있읍니다. quota 명령어는 각 사용자, 각 그룹마다 쿼터 제한과 디스크 사용상태를 확인할수 있읍니다. 관리자만이 다른 사용자 또는 자신이 속해있는 그룹에 관한 쿼터 제한과 디스크 사용상태를 확인할수 있읍니다.repquota 명령어는 쿼터가 설정된 파일 시스템에 대해 모든 쿼터 제한과 디스크 사용상태의 통계를 표시합니다.
아래는 2개의 파일 시스템상에 쿼터 제한이 가해진 사용자에 대해 quota -v 명령어를 실행한 출력결과 입니다.
Disk quotas for user test (uid 1002):
Filesystem blocks quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60
/usr 파일 시스템상에 이 사용자는 현재 50 블럭까지의 소프트 제한을, 15 블럭 초과해 사용하고 있고 나머지 5일간 *grace period*이 남아있읍니다. 아스트리크스 (*) 표기는 사용자가 현재 쿼터 제한을 넘었다는걸 나타냅니다.
일반적으로 사용자가 디스크 공간을 전혀 사용하지 않는 파일 시스템은, 그 파일 시스템에 쿼터 제한이 가해져 있다고 해도 quota 명령어에 의한 출력은 표시되지 않습니다. -v 옵션을 주면, 위의 예에서 /usr/var 파일 시스템과 같이 출력이 됩니다.
디스크 쿼터를 사용하기위한 설정
디스크 쿼터를 사용하기전에, 현재의 커널에 쿼터가 설정되어 있는지 확인할 필요가 있읍니다. 쿼터를 사용할려면, 커널 설정파일에 아래의 행을 추가하면 됩니다.
options QUOTA
표준 GENERIC 커널 기본값은 이부분이 무효로 돼 있읍니다, 그러므로 윗행을 추가하고 나서 맞춤 커널을 빌드해야 합니다. 커널 빌드는 FreeBSD 커널 설정 장을 참조하세요.
그 다음 /etc/sysconfig에 있는 디스크 quotas를 활성 상태로 해야합니다. 아래와 같 이 바꾸어 주세요:
quotas=NO
를:
quotas=YES
단 FreeBSD 2.2.2 이상 버전에서는, 이 설정을 /etc/rc.conf 에서 합니다. 아래행을 변경하세요.
check_quotas=YES
마지막으로, 각 파일 시스템마다 디스크 쿼터를 설정하기 위해서는/etc/fstab 파일을 성정해야 합니다. 모든 파일시스템에 대해 사용자 또는 그룹 둘중에 하나를 설정하는 것도, 둘다 쿼터를 설정할 수도 있읍니다.
파일 시스템에 사용자 마다 쿼터를 설정하려면, userquota 옵션을 /etc/fstab 파일안 에 설정하고 싶은 파일 시스템의 엔트리의 옵션 필드를 추가합니다. 예를 들면:
/dev/sd1s2g /home ufs rw,userquota 1 2
마찬가지로, 그룹의 쿼터 설정을 할려면 groupquota 옵션을 userquota 대신에 샤용하면 됩니다. 사용자와 그룹 둘다 설정을 할려면 아래와 같이 변경 합니다:
/dev/sd1s2g /home ufs rw,userquota,groupquota 1 2
기본값은로, 쿼터 파일은 파일 시스템의 root 디렉토리상에, 사용자와 그룹의 쿼터에 대해서 각각 quota.user 와 quota.group 란 이름으로 놓여져 있읍니다. 자세한것은 man fstab 를 참조하세요. man 페이에는 쿼터 파일을 특별한 장소에 놓아 두어도 된다고 나오지만 다양한 쿼터 유틸리티중에 이 기능을 적절이 처리할수 없는 것도 있으므로, 쿼터 파일의 위치를 옮기는것은 추천하지 않읍니다.
여기까지 준비가 됐으면, 새로운 커널을 사용해 시스템을 재기동 시키세요. /etc/rc 파일이 자동적으로 적절한 명령어를 기동해서 /etc/fstab 파일에 사용가능하게 해 놓은 모든 quotas에 대해 초기화를 합니다. 그러므로, 수동으로 크기가 0인 쿼터 파일을 작성할 필요가 없읍니다.
통상적인 작업시에, 수동으로 quotacheck, quotaon,또는 quotaoff 명령어를 실행하지 마십시요. 하지만, 이런 작업에 관해 자세히 알고싶으면 man 페이지를 참조하세요.
쿼터 제한의 설정
일단 시스템의 쿼터를 유효하게 한다음, 정말로 쿼터가 사용가능한지 확인할 필요가 있읍니다. 간단히 확인 할려면 quota -v 명령어를 실행해 보세요. 디스크 사용량과 쿼터가 설정이된 각 파일 시스템마다 현재의 쿼터 제한이 표시됩니다.
이제 edquota 명령어를 실행하여 쿼터를 설정할 준비가 됐읍니다.
사용자나 그룹에 만들고 할당할 디스크 공간을 강제로 제한할수 있는 옵션이 몇가지 있읍니다. 디스크 공간의 용량제한(block quotas) 또는 파일수제한(inode quotas)등 이 두가지를 동시에 할수도 있읍니다. 이런 각각의 제한은 두개의 카테고리, 즉 하드 제한과 소프트 제한으로 분류됩니다.
하드 제한은 초과할수가 없읍니다. 일단 사용자가 하드제한에 도달하면 해당하는 파일 시스템상에서 디스크 공간을 확보할수가 없읍니다. 예를 들면, 만일 사용자가 파일 시스템상에 500 블럭의 하드적제한을 받고있고 현쟤 490 블럭을 사용하고 있다고 가정하면, 사용자는 나머지 10 블럭밖에 확보할수 없읍니다. 11 블럭째를 확보할려고 하면 실패하게 됩니다.
소프트 제한은 정한진 일정의 기간이내라면 제한한도를 넘어을 수도 있읍니다. 이 일정기간은 *grace period*이라 불리고 기본값은 일주일입니다. 만일 사용자가 *grace period*을 넘어도 소프트 제한을 지나서 계속 사용하면, 소프트 제한은 하드 제한으로 변경되어 더 이상 디스크 공간을 확보할수 없게 합니다. 사용자 디스크 사용량이 소프트 제한 이하로 다시 떨어지면, *grace period*는 리셋 됩니다.
아래는, edquota 명령어를 실행한 예입니다 edquota 명령어가 실행되면 EDITOR 환경변수에서 정의한 에디터, 또는 EDITOR 환경변수가 설정되어있지않은 경우는 vi 가 뜨고 쿼터 제한을 편집할수 있읍니다.
# edquota -u test
Quotas for user test:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)
보통 쿼터가 설정되있는 파일 시스템마다 2행의 표시가 나타납니다. 1행은 블럭 제한에 관한 정보이고, 다른 1행은 i-노드 제한에 관한 정보입니다. 쿼터 제한값을 변경하고 싶은 값으로 바꾸어주세요. 예를 들면, 사용자 블럭의 정보를 50 블럭까지의 소프트 제한, 75블럭까지의 하드 제한에서, 500블럭 까지는 소프트 제한과 600블럭까지는 하드 제한을 가하고 싶다면, 아래와 같이 값을 고칩니다:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
을:
/usr: blocks in use: 65, limits (soft = 500, hard = 600)
새로운 쿼터 제한은 에디터를 종료할때 바뀝니다.
때로는 쿼터 제한을 uids 범위로 설정하는게 바람직합니다. 그럴려면 edquota 명령어에 -p 옵션을 사용합니다. 먼저 제한하고 싶은 쿼터를 한명의 사용자에 대해 설정합니다. 그리고 edquota -p protouser startuid-enduid 명령어를 실행합니다. 예를 들면, 만일 사용자 test 에게 쿼터 제한을 가했다고 가정하면 다음의 명령어는 같은 제한을 uid 1,000에서 uid 19,999 까지의 사용자에게 가할수 있읍니다.
edquota -p test 10000-19999
uid 범위에 따라 제한을 가하는 것이 가능한것은 , 2.1 이 릴리즈 된 이후에 추가 됐읍니다. 만일 2.1 시스템상에서 이 기능을 사용하려면, 새로운 edquota를 입수해야 합니다.
쿼터 제한과 디스크 사용상태 확인
쿼터 제한과 디스크 사용상태 확인을 하려면, quota 또는 repquota 명령어를 사용할 수 있읍니다. quota 명령어는 각 사용자, 각 그룹마다 쿼터 제한과 디스크 사용상태를 확인할수 있읍니다. 관리자만이 다른 사용자 또는 자신이 속해있는 그룹에 관한 쿼터 제한과 디스크 사용상태를 확인할수 있읍니다.repquota 명령어는 쿼터가 설정된 파일 시스템에 대해 모든 쿼터 제한과 디스크 사용상태의 통계를 표시합니다.
아래는 2개의 파일 시스템상에 쿼터 제한이 가해진 사용자에 대해 quota -v 명령어를 실행한 출력결과 입니다.
Disk quotas for user test (uid 1002):
Filesystem blocks quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60
/usr 파일 시스템상에 이 사용자는 현재 50 블럭까지의 소프트 제한을, 15 블럭 초과해 사용하고 있고 나머지 5일간 *grace period*이 남아있읍니다. 아스트리크스 (*) 표기는 사용자가 현재 쿼터 제한을 넘었다는걸 나타냅니다.
일반적으로 사용자가 디스크 공간을 전혀 사용하지 않는 파일 시스템은, 그 파일 시스템에 쿼터 제한이 가해져 있다고 해도 quota 명령어에 의한 출력은 표시되지 않습니다. -v 옵션을 주면, 위의 예에서 /usr/var 파일 시스템과 같이 출력이 됩니다.
관련링크
댓글목록
등록된 댓글이 없습니다.