Subject : Disk Quota System 관련 Tip

Description :

. Section

  1. 개요
  2. Setting Quotas
  3. Checking Quotas

. Content

  1. 개요

     불특정 다수의 User를 대상으로 File Server를 운영할때
     어느 User가 Disk를 독점하는것을 방지하고 제한된 System의 file(indoe)수를
     효율적으로 관리하기위해 Quota를 관리한다.
     아래는 포항공대 물리학과에서 TEST 및 운영했던 사례를 기술한 것이다.
     참고로 포항공대 물리학과는 YP로 묶여있다.


  2. Setting Quotas ( Super User에서 )

   - Kernel안에 Quota를 지원하도록 설정( SunOS 4.1.x )

     options QUOTAS       #disk quotas
     options UFS          #filesystem code

   - mount시 Option으로 Quota를 지정

     SunOS 4.1.x)
     #vi /etc/fstab
          ..
     /dev/sd3h /home 4.2 rw,quota 1 3
          ..
     Solaris 2.x)
     #vi /etc/vfstab
          ..
     /dev/dsk/c0t3d0s7 /dev/rdsk/c0t3d0s7 /home ufs 2 yes rw,quota
          ..

    - 각 filesystem의 mount point 에 quotas 화일을 생성

      ex)
      #touch /home/quotas

    - 각사용자의 사용량을 할당

      * /usr/etc/edquota(Solaris 2.x는 /usr/sbin/edquota)를 사용하여 편집

      * #edquota user1
        ..
        fs /home blocks (soft = 0, hard = 0) inodes (soft = 0, hard = 0)
        ..

      * edquota [ -p proto_user ] username1 username2 ...

       위의 예제는 p option을 이용하여 proto_user를 source로 하여
       나머지 user를 target으로 일률적으로 setting하고자 할때 사용한다.

      * edquota -t username1 username2 ...

       fs /home blocks time limit = 3.50 days,
       files time limit = 3.50 days

       위의 예제는 t option을 이용하여 time limit를 setting을 한다.
       time limit setting이란 생성된 file이 setting된 기간이 경과되면
       단 수정된 file인 경우 soft limit까지 자동으로 소멸된다는 것이다. 그러므로
       주의를 요한다.
       Default값은 7.0 day,
       time limit를 주는 경우,
       sec[onds],min[utes],hour[s],day[s],week[s],and month[s].

    - example)
      #edquota user1

       자동으로 편집기가 올라온다. (환경변수 EDITOR, default vi)
      
       fs /home blocks (soft = 2500, hard = 4500)
       inodes (soft = 800, hard = 1250)

       위의 예제에서 1 block은 1024byte.
       unlimit로 setting하는 경우는 0으로 setting하면 된다.
       time limit를 안줄때는 soft limit를 0으로 set.

       soft limit를 초과하면

       quota_ufs: Warning: over disk limit (pid 489, uid 154, inum 445456, fs /home) # block soft limit 초과시
       quota_ufs: Warning: too many files (pid 607, uid 154, fs /home) #file수 soft limit 초과시
       
       이상의 Message를 뿌리면서 경고를 한다.
       또한 login하는 경우

       Over file quota on /home, remove 10 files within 7.0 days
       Over disk quota on /home, remove 297K within 7.0 days
       Block limit reaced on /home 
       File count limit reaced on /home

      이상과 같은 경고message를 뿌려준다.

       hard limit를 초과하면

       quota_ufs: over hard disk limit (pid 489, uid 154, inum 445456, fs /home)#block hard limit 초과시
       quota_ufs: over file hard limit (pid 607, uid 154, fs /home) #file수 soft limit 초과시

       이상의 Message를 뿌리고 Disc quota exceeded 라는 Message를 뿌리면서
       더이상의 file writting이 안된다.


    - reboot

       booting 할때 해당 quota를 지정한 filesystem check시
       "Checking UFS quotas: done"이라는 message가 나온다.

       booing이 되고나면 quota가 구동된다.
       mount된상태에서 quota를 안쓸 경우 
       #quotaoff -v -a
       #quotaoff -v /home
       다시 quota를 시작할 경우
       #quotaon -v -a (모든 filesystem quota 구동)
       #quotaon -v /home

       quotaon 또는 quotaoff 는 system booting시 마다 해주지않아도 된다.
       해당 시스템의 filesystem quota정보는 home filesystem의 quotas에
       정보가 있기때문이다.


  3. Checking Quotas

   - 각 partion의 사용자별 사용량을 KB단위로 보여준다.
    #quot /dev/dsk/c0t2d0s7
    /dev/dsk/c0t2d0s7 (/home):
    711024	root    
      498	user1    
      302	user2    
        1	user3    
        1	user4    


    #quot -a (모든 partion의 사용자별 사용량을 KB단위로 보여준다.)

    #quot -f /dev/dsk/c0t2d0s7 (block size 뿐만 아니라 file count도 보여줌.) 
    /dev/dsk/c0t2d0s7 (/home):
    711024	 7518	root    
      498	    3	user1    
      302	   11	user2    
        1	    1	user3    
        1	    1	user4    


   - 각 사용자의 disk quota와 사용량을 check

    #quota user1
    Over disk quota on /home, remove 297K within 7.0 days

    #quota -v user2
    Disk quotas for user2 (uid 155):
    Filesystem     usage  quota  limit    timeleft  files  quota  limit    timeleft
    /home           300      0      0                  9      4      6    7.0 days


   - Filesystem에 대한 quotas의 요약

    # repquota -v -a
    /dev/dsk/c0t2d0s7 (/home):
                          Block limits                      File limits
    User           used   soft   hard    timeleft    used   soft   hard    timeleft
    user1      +-    497    200    500    7.0 days       0      0      0            
    user2      -+    300      0      0                   9      4      6    7.0 days
 

Revision History

작성일자 : 96.06.13
작성자 : 이민호

수정일자 : 
수정자