강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

디스크관리를 위한 Quota 사용하기

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.giftitle02.gif


신영진 / HITEL:rldls
E-mail :
wonshin@trut.chungbuk.ac.kr

 

디스크 관리를 위한 Quota 사용하기

만약에 한 사용자가 하드디스크의 공간을 무제한으로 사용하게 된다면,,,어떻게 하겠습니까? 그런 일들은 관리자들이 유념해야 하는 매우 중대한 문제 중의 하나입니다. 이런 문제점을 해결할 수 있는 방법은 사용자들의 디스크 사용을 제한할 수 있는 Quota라는 프로그램이 있습니다. 이 프로그램의 사용방법을 잘 숙지한다면 디스크 관리에 효율을 높일 수 있을 것입니다.

 

Quota는 기본적으로 디스크 저장에 대해서 두 가지 방법으로 제한을 두게 됩니다.

·사용자나 그룹에 허용되는 inode
·사용자나 그룹에 허용되는 disk block

Quota는 시스템에서 사용자들의 디스크사용을 제한된 용량 안에서 사용하도록 제한하는 것입니다. Quota는 기본적으로 시스템에서 사용자나 파일마다 사용의 제한을 둘 수가 있습니다.

<알아두어야 할 기초사항>

inode제한이란?
이것은 파일의 숫자를 제한하는 것입니다. 즉, 20개로 제한하면,,, 사용자는 20개 이상의 파일을 자신의 디렉토리에 저장하지 못합니다.

block제한이란?
이것은 우리가 흔히 쓰고 있는 용량의 제한입니다. 킬로바이트 단위로 제한하는 것이지요.

 

현재 지원사항

·BSD 명령어 입니다.
·커널 1.3x 이상이면 지원이 가능합니다.
·커널 컴파일에서 아래와 같은 사항에 대한 선택을 해야지만 사용할 수 있습니다.
  Quota support (CONFIG_QUOTA) [n]y
·소프트웨어는 FTP 사이트에서 쉽게 구할 수 있습니다.
  [배포판에는 기본적으로 포함되어 있습니다.]
·Quota는 EX2 File System을 지원합니다.

 

사용방법

·fstab에 추가하기

[root@haremoon root]#vi/etc/fstab
/dev/hda1   /   ex2  defaults  1 1
/dev/hda2   /home  ex2  defaults  1 1
=>보통 이렇게 되어 있습니다.

여기서 보통 레드헷 기준으로 /home 디렉토리에 사용자들의 흠디렉토리가 있으니까

·/dev/hda2를 usrquota를 사용하게 하려면

/dev/hda1   /   ex2   defaults  1 1
/dev/hda2   /home  ex2  defaults, usrquota  1 1

·/dev/hda2에 grpquota를 사용하게 하려면

/dev/hda1   /   es2  defaults  1 1
/dev/hda2   /home  ex2  defaults, grpquota  1 1

·/dev/hda2에 usrquota, grpquota를 동시에 사용하게 하려면

/dev/hda1   /ex2  defaults  1 1
/dev/hda2   /home  ex2  defaults, usrquota, grpquota  1 1

이렇게 설정을 하면 체크를 하게 됩니다. 이렇게 체크가 된 사항을 파일로 ㅂ고 싶으시다면 quota는 두 가지 파일을 지원합니다.

·quota.user
·quota.group

물론 root만이 사용가능 합니다. 사용권한은 읽기-쓰기 권한 입니다. 이것을 설치해야겠지요? 먼저 사용 하고자 하는 디스크의 루트로 가야 합니다. 그리고 나서

[root@haremoon root]#touch/home/quota.user
[root@haremoon root]#touch/home/quota.group
[root@haremoon root]#chmod 600/home/quota.user
[root@haremoon root]#chmod 600/home/quota.group

/etc/fstab에서 디스크를 ext2 file system으로 마운트 한 다음에 항상 quota로 체크를 할 수 있는 스크립터입니다. 이 스크립터는 반드시 싯스템의 초기화를 다 kaclsgn에 하는 것이 좋습니다. 특히, 디스크가 마운트가 된 후에 사용하여야 합니다. 시스템의 init 스크립터 /etc/rc.d/rc.local에 내용을 추가해 주세요

#quotaon을 하기전에 quotacheck로 체크를 합니다.
if [-x/usr/sbin/quotacheck]
then
   echo "Checking quotas. This may take some time."
   /usr/sbin/quotacheck-avug
   echo "Done."
fi
#quotacheck를 마치고나서 quotaon을 합니다.
if [-x/usr/sbin/quotaon]
then
   echo "Turning on quota."
   /usr/sbin/quotaon-avug
fi

이렇고 나서 재부팅을 하시면 됩니다.

[root@haremoon root]#vi

 

Qouta 설정하기

1. 여기서 usrquota, grpquota 두 가지를 쓰는지 이해 못하신 분을 위해서 잠깐 설명을 붙이고자 합니다. 우선 쉽게 surquota를 사용하는 이유는 알 것입니다. 사용자마다 디스크 사용 양을 제한하는 것이기 때문이다. 그럼 grpquota는 무엇인가?  grpquota는 grp안에서는 제한을 하지 않지만.. group의 총 사용량은 일정하게 제한 됩니다. 즉, 그룹의 각각 사용자들의 제한은 없지만... 그룹의 총합계는 제한을 받는 것이지요.

2.             quotaon : quota를 실행
                quotaoff : quota를 끄기
                edquota : quota를 편집
                quotacheck : 디스크상태 체크하여서 quota.user파일을 업그레이드 합니다.

옵션중에    -u :는 사용자
                -g :는 그룹
                -v :는 스토리지가 할당되지 않은 파일시스템
                -q :는 설정되어 있는 파일 시스템에 대한 정보만 보여준다.

이제 Linux box가 다시 부팅이 되면 자동으로 quotaon이 됩니다.
물론 수동으로 아래와 같이 quotacheck 후에 quotaon을 할 수 있습니다.

[root@haremoon root]#quotacheck -avug/dev/hda2
Scanning/dev/hda2 [/home] done
Checked 124 directories and 456files
Using quotafile/home/quota.user

[root@haremoon root]#quotaon-avug
[av는 기본 명령, u는 사용자, g는 그룹]

 

edquota[Edit Quota]

※ 아이디 대신에 UID도 사용가능

[root@haremoon root]#edquota -u haremoon <--[vi에디터로 haremoon사용자의 디스크 제한 결정]
/dev/hda2: blocks in use: 2594, limits (soft = 5000 hard = 6500)
     inodes in use: 356, limits (soft= 1000, hard= 1500)

[root@haremoon root]#edquota -u user1 <--[vi에디터로 그룹 user1의 디스크 제한 결정]
/dev/hda2:blocks in use: 2594, limits (soft = 5000 hared = 6500)
inodes in use: 356, limits (soft = 000, hard = 1500)

만약에 모든 사용자를 동일하게 용량을 지정하기 위해서는 하나의 기준 사용자 아이디나 UID를 적어둔다. 특히, UID가 500부터 이면, 패턴 처리 언어인 awk를 사용하여서 한번에 사용자들을 모두 다 지정해 줄 수도 있다.

[root!haremoon root]#edquota -p haremoon awk -F: '$3>499 {print $1}'
/etc/passwd

[해석] 보통 [root@haremoon root]#cat/etc/passwd라고 하면 사용자명:패스워드:UID:GID:사용자정보:홈디렉토리:사용하는 쉘 이런 순으로 나오게 됩니다.
-F는 구분하는 인자가 : 라고 정의를 해주고 있습니다.
$3는 3번째 것을 즉, UID이지요. 499부터 시작하라고 한 것입니다. print는 출력하는 말이니까 금방 아시겠죠?
/etc/passwd는 이렇게 정보를 빼내는 파일의 위치와 파일명이지요. 알고 보면 쉽지요?

[Soft Limit]
소프트제한은 사용자가 쓸 용량을 넘어서면 경고가 가해집니다.[결국 넘을 수는 있지요]

[Hard Limit]
하드제한은 grace period가 정해졌을 때 사용할 수 있습니다. 디스크를 완전하게 제한하는 것으로 하드제한에서 제한한 디스크양 외에는 사용자가 디스크를 사용할 수 없다.[결코 넘을 수 없지요]

[Grace Period]
디스크의 사용을 초,분,시간,날,주,달 등으로 사용시간을 제한 할 수 있는 것입니다.
변경은 아래와 같은 명령어로 사용할 수 있습니다.

[root@haremoon root]#edquota-t

Repquota[Report Quota]
repquota는 현재 파일시스템의 quota정보를 보여주는 명령어입니다.

[root@haremoon root]#repquota -a
Block limits                File limits
User    used    soft    hard       grace    used     soft        hard      grace
root       -        -      123344    0          0          12234     0          0
bin        -        -       23999     0          0          455         0          0
uucp     -        -       899         0          0          45          0          0
man      -        -       4556       0          0          56          0          0
haremoon -     -

[root@haremoon root]#repquota -u haremoon <--[사용자의 상태를 보여준다.]


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,196 개
  • 현재 접속자 :  425 명