본문 바로가기
리눅스

쿼터(Quota) 설정 1번

by 웹디자인 2012. 7. 20.
아래의 내용은 리눅스 7.1 / 커널 2.4.9-34 에서 적용한 결과를 바탕으로 설명됩니다.


1. 쿼터(quota) 란 무엇인가 ?

  쿼터(quota)는 시스템내의 사용자나 그룹이 가질수있는 inode 수 ( 파일 & 디렉토리) 나 사용자나 그룹에
  할당된 디스크의 블럭 ( 용량) 의 수를 제한함으로써,사용자별로 디스크의 사용을 제한할수있다.
  이는 웹호스팅 서비스를하는 곳에서는 꼭 필요한 부분이다.


2. 쿼터 설정하기 - 1

  7.1 에서는 기본적으로 쿼터를 지원하게끔 되어있다.
  만약 패키지를 설치하고나서도 쿼터를 지원하지 않는다는 메시지가 나올경우 커널을 재 컴파일 하시길
  바랍니다.

  Quota support (CONFIG_QUOTA) [n] y  -> 이부분을 y 로 하시고 재 컴파일

   1) fstab 수정하기

     [root@soma]# vi /etc/fstab

      LABEL=/         /            ext2  defaults    1 1
      LABEL=/boot       /boot          ext2  defaults    1 2
      LABEL=/home       /home          ext2  defaults   1 2
      /dev/fd0        /mnt/floppy       auto  noauto,owner  0 0
      LABEL=/usr       /usr          ext2  defaults    1 2
      none          /proc          proc  defaults    0 0
      none          /dev/pts        devpts gid=5,mode=620 0 0
      /dev/sda7        swap          swap  defaults    0 0
      /dev/cdrom       /mnt/cdrom       iso9660 noauto,owner,kudzu,ro 0 0 
 

    위의 내용은 쿼터를 적용하지 않을 일반적인 fstab 파일이다.
    /home 디렉토리내의 일반사용자들에게 쿼터를 걸도록 설정하겠다.

      LABEL=/         /            ext2  defaults    1 1
      LABEL=/boot       /boot          ext2  defaults    1 2
      LABEL=/home       /home          ext2  defaults,usrquota   1 2   --> 이부분 추가( usrquota )
      /dev/fd0        /mnt/floppy       auto  noauto,owner  0 0
      LABEL=/usr       /usr          ext2  defaults    1 2
      none          /proc          proc  defaults    0 0
      none          /dev/pts        devpts gid=5,mode=620 0 0
      /dev/sda7        swap          swap  defaults    0 0
      /dev/cdrom       /mnt/cdrom       iso9660 noauto,owner,kudzu,ro 0 0   

   2) quota.user 파일 생성하기

      [root@soma]# touch /home/quota.user     --> 파일만들기
      [root@soma]# chmod 600 /home/quota.user --> 권한변경 ( root 만이 읽기,쓰기 가능 )

    
   3) convertquota 명령어로 quota.user 를 aquota.user 파일로 convert 시키기

      convertquota 명령어는 오래된 quotas 파일인 quota.user,quota.group 을 aquota.user,aquota.group 의 새로
      운 파일 포멧으로 변경시켜준다. convertquota 명령어는 커널 2.4.0-ac ? 이상 그리고 RedHat 리눅스 2.4
     이상의 파일 시스템에서 적용된다.

      새로운 파일 포맷은 32 bit uids/gids 를 지원하며, root 권한으로 quota를 설정해야하며, bytes 단위로
      사용공간을 체크한다.

      convertquota 사용 옵션  -u : user quota file 변경,이것이 기본이다.
                        -g : group quota file 변경
                        -V : 버전 정보를 출력한다.

   4) 시스템 리부팅 시키기

      위의 내용까지 설정했다면 시스템을 리부팅 시키시길 바랍니다.

   5) 리부팅후 확인 - 부팅중에 자동으로 quotaon 이 올바르게 실행되는지 확인해야합니다.

     [root@redsoma /root]# mount

     /dev/sda8 on / type ext2 (rw)
     none on /proc type proc (rw)
     /dev/sda1 on /boot type ext2 (rw)
     /dev/sda5 on /home type ext2 (rw,usrquota)  --> 이 부분확인
     /dev/sda6 on /usr type ext2 (rw)
     none on /dev/pts type devpts (rw,gid=5,mode=620)
     automount(pid529) on /misc type autofs (rw,fd=5,pgrp=529,minproto=2,maxproto=3)

         
     

3. 쿼터 설정하기 - 2

   1) 현재 시스템내의 쿼터 설정여부 확인하기 - quotacheck / repquota 명령어


     quotacheck : 쿼터설정을 reload 하는 기능
    
     repquota : 시스템내의 쿼터 설정을 보여준다.

     quotaon : 쿼터를 실행한다.

     quotaoff : 쿼터를 중지한다.


     [root@soma]# quotacheck -a  -> 쉽게말해서 업데이트 명령어입니다. 설정을 reload 한다고 생각하시면
                             됩니다.

     quotacheck: Quota for users is enabled on mountpoint /home so quotacheck might damage the file.
     Please turn quotas off or use -f to force checking.

     혹 위의 에러메시지가 뜬다면 quotaoff -a 명령어를 먼저 실행하고 quotacheck -a 를 실행하세요
     꼭 quotaoff 후에는 quotaon 을 꼭 해줘야합니다. 
   
     [root@soma]# quotaoff -a
 
     [root@soma]# quotacheck -a

     [root@soma /root]# repquota -a

     *** Report for user quotas on device /dev/sda5
     Block grace time: 7days; Inode grace time: 7days
    
                  Block limits            File limits
     User     used  soft  hard grace  used soft hard grace
     ----------------------------------------------------------------------
     root   --  6072   0    0         117   0      0   
     soma   --   60   0    0         13   0      0   
     mysql   --   20   0    0         5    0      0
    

     위의 내용을 보면 쿼터 설정이 되어있지 않음을 알수있다.
     soft,hard 부분에 모두 0 으로 설정되이있기 때문이다.

     
     * Block limits 은 쉽게말해 용량제한이다 내가 얼마만큼 용량을 사용할수 있는지에대한 설정이다.
     
     * File limits 는 최대한 만들수있는 파일/디렉토리의 총합을 나타낸다.

     * soft 는 가변적인 제한이다. grace 와 관계가있다

     * hard 는 절대적인 제한이다.

     * grace 는 유예기간이다, 쉽게말해서 봐주는 기간이다.이는 soft 한도를 넘어야지만 표시가된다.

       


     위의 내용중에서 soma 라는 사용자의 설정내용을 설명하자면 아래와같다.
     
     현재 60kbytes 를 사용중이며, 아무런 쿼터도 설정되어있지않고 파일과 디렉토리의 총합이 현재 13 개이다.
     

   2) 용량 제한하기 - edquota 명령어

     soma 라는 사용자에대해서 최대사용량(Block Limit) 2 M / 최대파일및 디렉토리갯수(File Limit) 20 개로 제한
     하는 설정을 하겠다.


     [root@soma]# edquota -u soma
    
     -------------------------------------------------------------------------------------------------------
     Disk quotas for user soma (uid 500):
    
     Filesystem          blocks    soft    hard   inodes   soft   hard

     /dev/sda5            60    2000    2500    13     20    25
     ------------------------------------------------------------------------------------------------------- 

     [root@soma]# quotaoff -a

     [root@soma]# quotacheck -a

     [root@soma]# repquota -a

     *** Report for user quotas on device /dev/sda5
     Block grace time: 7days; Inode grace time: 7days

                  Block limits           File limits
     User      used  soft  hard grace  used soft hard grace
     ----------------------------------------------------------------------
     root    --  6072    0    0         117   0   0   
     soma   --   60   2000  2500        13   20  25   
     mysql   --   20    0    0           5    0   0 
    

    [ 설명 ]

     현재 soma 라는 사용자는 60kbytes 를 사용하고있고 최대 2 M 의 공간을 사용할수있게 되었으며, 현재 13 의
    파일 & 디렉토리가 있고 최대 20 개 까지의 파일과 디렉토리를 만들수 있게 설정되었다.


  
   3) 테스트하기

     이제 여기서는 쿼터를 설정한 부분에대해서 어떻게 적용이되고 초과시 어떠한 현상이 나타나는지 확인하겠
     습니다. 쿼터의 설정내용은 위의 내용과 동일하게 설정된 상태입니다.


     TEST - 1 ] 용량 초과하기

     이제 soft 제한 용량인 2 M 이상을 soma 라는 디렉토리에 올려보겠습니다.
     ftp로 2 M 를 다운 받았다고 가정하겠습니다. 그럼 soma 라는 디렉토리에는 총 2060 kbytes 가 사용되게됩니
     다. 이는 soft 제한인 2 M (2000) 을 넘게 되겠죠

     [root@soma] # quotaoff -a
    
     [root@soma] # quotacheck -a
    
     [root@soma] # repquota -a

     *** Report for user quotas on device /dev/sda5

     Block grace time: 7days; Inode grace time: 7days
    
                  Block limits        File limits

     User      used  soft  hard  grace  used soft hard grace
     ----------------------------------------------------------------------
     root   --  6072    0    0           117   0   0   
     soma  +-  2148  2000  2500 7days     14  20  25    
     mysql  --   20    0    0             5   0   0

     [ 설명 ]

     Block limits 에 보면 soft 2000, hard 2500 이 설정되있다.
     하지만 used 에는 2148 이 사용중이다. 이는 soft 한도는 넘은것이다. soft 한도를 넘었기 때문에
     grace 에 7days 라는 날짜가 표기 되었으며 + 기호까지 생겼다. 7days 는 7일동안은 soft 한도를
     초가사용해도 용서해준다라는 의미이다.
     하지만 7일 이후에는 soft 한도내로 용량을 줄여야지만 새로운 데이타를 올릴수가 있게된다.

     중요) 절대로 hard 한도는 넘을수가없다. hard 한도를 넘게되면 더이상 데이타를 저장할수없다는 메시지가
         출력되게 된다.


     INODE 갯수 ( 파일 & 디렉토리 ) 의 한도 TEST 도 위와 유사한 방법으로 진행하면된다.
     Soft 에 재한된 파일 이상이 생기면 grace 에 날짜가 생기며 + 역시 생긴다. 만약 hard 한도를 초과할경우
     오류메시지가 생기면서 더이상 파일이나 디렉토리를 만들수없게된다.


이상으로 간략한 설명을 마칩니다.
한가지 혹 root 권한으로 test 하다보면 아무리 파일을 올려도 용량이 널어나지 않을경우가있는데...
이는 올린파일의 소유자가 root 이뭐로 쿼터에 적용되지 않기 때문이다.
그러므로 test 할때 신경쓰길 바랍니다.

 

'리눅스' 카테고리의 다른 글

메일계정 추가 세팅 방법  (0) 2012.07.20
쿼터(Quota) 설정 2  (0) 2012.07.20
도메인 셋팅후 데몬 재실행  (0) 2012.07.20
vi 사용법  (0) 2012.07.20
메일계정 추가 세팅 방법  (0) 2012.07.20

댓글