6장 . 디스크 사용량 할당하기

시스템 상에서 사용되는 디스크 사용량을 감시하는 것 뿐만 아니라 (26.3.1 절 참조), 사용자가 너무 많은 디스크 용량을 사용하거나 파티션이 차게되면 시스템 관리자에게 보고되도록 디스크 사용량을 제한 설정할 수 있습니다.

디스크 사용량 할당은 개별 사용자를 비롯한 사용자 그룹 별로 설정 가능합니다. 따라서 개별 사용자에게는 "개인용" 파일을 저장할 수 있는 적은 사용량을 할당하는 반면, 그룹 프로젝트와 같은 큰 용량이 필요한 프로젝트에는 보다 많은 디스크 사용량을 주는 것이 가능합니다.

추가로, 디스크 사용량 할당은 디스크 블록수를 제한할 뿐만 아니라 사용 가능한 inode의 수를 제한하는데도 사용됩니다. inode는 보통 파일 관련 정보를 담고 있기 때문에, inode의 수를 제한함으로서 생성 가능한 파일수를 제어할 수 있게 됩니다.

디스크 사용량 할당을 실행하기 위해서는 quota RPM이 설치되어 있어야 합니다. RPM 패키지를 설치하는 방법에 대한 보다 자세한 정보는 V 부을 참조하시기 바랍니다.

6.1. 디스크 사용량 제한 설정하기

디스크 사용량을 할당하시려면, 다음과 같은 과정을 따르시기 바랍니다:

  1. 파일 시스템 당 디스크 사용량 제한을 사용하도록 /etc/fstab 파일을 수정하십시오.

  2. 파일 시스템(들)을 다시 마운트합니다.

  3. 디스크 사용량 할당 파일 (quota file)을 만드신 후 디스크 사용량 표를 생성하시기 바랍니다.

  4. 디스크 사용량을 할당합니다.

다음 부분에서는 앞에서 언급된 과정을 보다 자세하게 설명해 보겠습니다.

6.1.1. 디스크 사용량 할당 활성화하기

루트 사용자로 로그인하신 후, 원하시는 텍스트 편집기를 사용하여 디스크 사용량 제한이 필요한 파일 시스템에 usrquota 와/또는 grpquota 옵션을 첨가하십시오:

LABEL=/           /               ext3    defaults        1 1
LABEL=/boot       /boot           ext3    defaults        1 2
none              /dev/pts        devpts  gid=5,mode=620  0 0
LABEL=/home       /home           ext3    defaults,usrquota,grpquota 1 2
none              /proc           proc    defaults        0 0
none              /dev/shm        tmpfs   defaults        0 0
/dev/hda2         swap            swap    defaults        0 0
/dev/cdrom        /mnt/cdrom      udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0          /mnt/floppy     auto    noauto,owner,kudzu 0 0

이 예시에서 /home 파일 시스템은 사용자와 그룹에 디스크 사용량을 할당하고 있습니다.

6.1.2. 파일 시스템 재마운트하기

userquota 옵션과 grpquota 옵션을 첨가하신 후, fstab 항목이 수정된 각 파일 시스템을 재마운트하시기 바랍니다. 만일 그 파일 시스템이 어떠한 프로세스에서도 사용되지 않고 있다면, umount 명령을 입력하신 후 mount 명령을 사용하여 파일 시스템을 재마운트하시면 됩니다. 만일 그 파일 시스템이 현재 사용 중인 경우, 파일 시스템을 재마운트할 수 있는 가장 쉬운 방법은 시스템을 재부팅하는 것입니다.

6.1.3. 디스크 사용량 할당 파일 만들기

디스크 사용량 할당이 활성화된 모든 파일 시스템이 재마운트 되었다면, 이 시스템은 이제 할당된 디스크 용량을 가지고 작업이 가능합니다. 그러나 파일 시스템 자체는 디스크 사용량 할당을 지원할 수 있는 준비가 되지 않았습니다. 다음 단계로 quotacheck 명령을 실행하셔야 합니다.

quotacheck 명령은 사용량이 할당된 파일 시스템을 검사한 후 파일 시스템 당 현재 디스크 사용량을 보여주는 표를 작성합니다. 이렇게 작성된 표는 운영 체제의 디스크 용량표를 업데이트하는데 사용됩니다. 추가로 파일 시스템의 디스크 사용량 할당 파일이 업데이트됩니다.

파일 시스템 상에서 디스크 사용량 할당 파일 (aquota.user 파일과 aquota.group 파일)을 생성하시려면, quotacheck 명령과 함께 -c 옵션을 사용하시기 바랍니다. 예를 들어, /home 파티션에 사용자 디스크 할당과 그룹 디스크 할당이 활성화 되었다면, /home 디렉토리에 할당 파일을 생성하셔야 합니다:

quotacheck -acug /home

-a 옵션은 /etc/mtab 파일에서 마운트된 비 NFS 파일 시스템에서 디스크 사용량 할당이 활성화되었는지 확인합니다. -c 옵션은 디스크 사용량 할당을 사용하는 각 파일 시스템에 할당 파일을 생성하도록 지정합니다. -g 옵션은 그룹 디스크 사용량 할당이 사용되는지 확인하는데 사용됩니다.

만일 -u 옵션과 -g 옵션이 지정되지 않았다면, 사용자 사용량 할당 파일만 생성됩니다. -g 옵션만 지정된 경우에는, 그룹 사용량 할당 파일만 만들어 집니다.

파일이 생성된 후, 다음과 같은 명령을 실행하여 사용량 할당이 활성화된 파일 시스템마다 현재 디스크 사용량을 보여주는 표를 생성하시기 바랍니다:

quotacheck -avug

이 명령에서 사용된 옵션들은 다음과 같습니다:

  • a — 디스크 사용량 할당이 활성화되고, 로컬에서 마운트된 모든 파일 시스템을 확인합니다.

  • v — 사용량 할당 확인 작업이 진행 과정을 상세한 상태 정보로 보여줍니다.

  • u — 사용자 디스크 사용량 할당 정보를 체크합니다.

  • g — 그룹 디스크 사용량 할당 정보를 체크합니다.

quotacheck이 실행되고 난 후, 디스크 사용량 할당을 사용하는 각 파일 시스템 (예, /home)에 대한 정보가 활성화된 (사용자와 그룹) 디스크 사용량 할당에 따른 할당 파일에 저장됩니다.

6.1.4. 사용자 당 디스크 사용량 할당하기

마지막 단계로서 edquota 명령을 사용하여 디스크 사용량을 할당해 주셔야 합니다.

개인 사용자 당 사용량 할당을 설정하시려면, 쉘 프롬프트에서 루트로 로그인 하신 후 다음과 같은 명령을 입력하십시오:

edquota username

디스크 사용량을 할당할 각 사용자마다 이 과정을 실행하시기 바랍니다. 예를 들어, 만일 /etc/fstab 파일에서 /home 파티션에 대한 사용량 할당이 활성화하신 후 edquota testuser 명령을 실행하신 경우, 시스템에 대한 디폴트로서 다음과 같은 정보가 편집기에 나타날 것입니다:

Disk quotas for user testuser (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440436          0          0      37418        0        0

참고알림
 

edquota 명령은 EDITOR 환경 변수에서 정의된 텍스트 편집기를 사용합니다. 편집기를 바꾸시려면, EDITOR 환경 변수를 사용할 편집기의 완전 경로로 설정하시기 바랍니다.

첫번째 칸은 디스크 사용량이 할당된 파일 시스템의 이름입니다. 두번째 칸은 해당 사용자가 현재 사용중인 블록 수를 보여줍니다. 다음 두 칸은 제한에 근접한 사용자에게 경고하는데 사용되는 soft 제한과 절대적인 제한값인 hard 제한을 설정하는데 사용됩니다. inodes 칸은 현재 사용자가 사용중인 inode의 수를 보여줍니다. 마지막 두 칸은 파일 시스템 상의 사용자에 대한 soft inode 제한과 hard inode 제한을 설정하는데 사용됩니다.

엄격한 제한인 hard 제한은 사용자나 그룹이 사용할 수 있는 절대적인 최대 디스크 사용량을 의미합니다. 일단 제한량에 이르면, 더 이상 디스크 공간을 사용할 수 없게 됩니다.

soft 제한은 사용 가능한 최대 디스크 공간을 설정합니다. 그러나 hard 제한과는 달리, soft 제한은 정해진 시간 내에서 어느 정도 제한을 초과해도 괜찮습니다. 이러한 용량 초과 허가 기간을 허가 기간 (grace period)이라고 합니다. 이 허가 기간은 초, 분, 시, 일, 주 또는 월 단위로 표시할 수 있습니다.

0라고 설정된 값이 있다면, 제한이 설정되지 않은 것입니다. 텍스트 편집기를 사용하여 원하시는 제한 값으로 변경하시기 바랍니다. 예로 들면:

Disk quotas for user testuser (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440436     500000     550000     37418        0        0

해당 사용자에 대한 디스크 사용량이 할당되었는지 확인해 보시려면, 다음 명령을 입력하십시오:

quota testuser

6.1.5. 그룹 당 디스크 사용량 할당하기

디스크 사용량은 또한 그룹 단위로 할당될 수 있습니다. 예를 들어, devel이라는 그룹에 그룹 디스크 사용량을 설정하시려면, 다음 명령을 사용하시면 됩니다 (그룹에 디스크 사용량을 할당하시기 전에 그 그룹이 이미 존재해야 합니다):

edquota -g devel

이 명령을 입력하시면 텍스트 편집기에서 해당 그룹에 대한 기존 디스크 사용량이 나타납니다:

Disk quotas for group devel (gid 505):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440400          0          0      37418        0        0

제한 사항을 수정하고 파일을 저장하신 후 디스크 사용량을 설정하십시오.

그룹 디스크 사용량이 설정되었는지 여부를 확인해 보시려면, 다음 명령을 사용하시기 바랍니다:

quota -g devel

6.1.6. 파일 시스템 당 디스크 사용량 할당하기

디스크 사용량 할당이 활성화된 각 파일 시스템 단위로 사용량을 할당하시려면, 다음 명령을 사용하시면 됩니다:

edquota -t

다른 edquota 명령처럼, 이 명령도 텍스트 편집기에서 파일 시스템에 대한 현재 디스크 사용량을 보여줍니다:

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
  Filesystem             Block grace period     Inode grace period
  /dev/hda3                     7days                  7days

블록과 inode 제한 초과 허용 기간 (block gracec period)을 변경하시고 파일을 저장하신 후 텍스트 편집기를 종료하십시오.