17장. 디스크 할당량
사용자가 너무 많은 디스크 공간을 소비하기 전에 시스템 관리자에게 알리는 디스크 할당량을 구현하면 디스크 공간을 제한할 수 있습니다.
개별 사용자 및 사용자 그룹에 대해 디스크 할당량을 구성할 수 있습니다. 이렇게 하면 사용자가 작업하는 프로젝트와 별도로 사용자별 파일(예: 이메일)에 할당된 공간을 관리할 수 있습니다(프로젝트에 자체 그룹이 부여되는 가정).
또한 할당량은 소비된 디스크 블록 수를 제어하는 것이 아니라 inode 수( UNIX 파일 시스템의 파일에 대한 정보가 포함된 데이터 구조)를 제어하도록 설정할 수 있습니다. inode는 파일 관련 정보를 포함하는 데 사용되므로 생성할 수 있는 파일 수를 제어할 수 있습니다.
디스크 할당량을 구현하려면 할당량 RPM을 설치해야 합니다.
참고
이 장에서는 모든 파일 시스템에 적용되지만 일부 파일 시스템에는 고유한 할당량 관리 툴이 있습니다. 해당 파일 시스템에 대한 해당 설명을 참조하십시오.
XFS 파일 시스템의 경우 3.3절. “XFS 할당량 관리” 에서 참조하십시오.
vGPU에는 디스크 할당량이 없으므로 다루지 않습니다.
17.1. 디스크 할당량 구성
디스크 할당량을 구현하려면 다음 단계를 사용하십시오.
/etc/fstab
파일을 수정하여 파일 시스템당 할당량을 활성화합니다.- 파일 시스템을 다시 마운트합니다.
- 할당량 데이터베이스 파일을 생성하고 디스크 사용량 테이블을 생성합니다.
- 할당량 정책을 할당합니다.
이러한 각 단계는 다음 섹션에서 자세히 설명합니다.
17.1.1. 할당량 활성화
절차 17.1. 할당량 활성화
- root로 로그인합니다.
/etc/fstab
파일을 편집합니다.- quotas가 필요한 파일 시스템에 usrquota 또는 grpquota 또는 두 옵션을 모두 추가합니다.
예 17.1. /etc/fstab
편집
예를 들어 텍스트 편집기의
vim
유형을 사용하려면 다음을 수행합니다.
#
vim /etc/fstab
예 17.2. 할당량 추가
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 /dev/VolGroup00/LogVol02 /home ext3 defaults,usrquota,grpquota 1 2 /dev/VolGroup00/LogVol01 swap swap defaults 0 0 . . .
이 예에서
/home
파일 시스템에는 사용자 및 그룹 할당량이 모두 활성화되어 있습니다.
참고
다음 예제에서는 Red Hat Enterprise LinuxRHEL;을 설치하는 동안 별도의 /home 파티션이 생성된 것으로 가정합니다. 루트(/) 파티션을 사용하여
/etc/fstab
파일에서 할당량 정책을 설정할 수 있습니다.
17.1.2. 파일 시스템 다시 마운트
usrquota 또는 grpquota 또는 두 옵션을 모두 추가한 후
fstab
항목이 수정된 각 파일 시스템을 다시 마운트합니다. 어떤 프로세스에서 파일 시스템을 사용하지 않는 경우 다음 방법 중 하나를 사용합니다.
- unmount 명령 다음에 mount 명령을 실행하여 파일 시스템을 다시 마운트합니다. 다양한 파일 시스템 유형을 마운트 및 마운트 해제 하기 위한 특정 구문에 대해서는 NoExecute 및 mount 에 대한 도움말 페이지를 참조하십시오.
- mount -o remount file-system 명령(여기서 file-system 은 파일 시스템의 이름)을 실행하여 파일 시스템을 다시 마운트합니다. 예를 들어
/home
파일 시스템을 다시 마운트하려면 mount -o remount /home 명령을 실행합니다.
파일 시스템이 현재 사용 중인 경우 파일 시스템을 다시 마운트할 수 있는 가장 쉬운 방법은 시스템을 재부팅하는 것입니다.
17.1.3. 할당량 데이터베이스 파일 생성
할당량 사용 파일 시스템을 다시 마운트한 후 quotacheck 명령을 실행합니다.
quotacheck 명령은 할당량 사용 파일 시스템을 검사하고 파일 시스템당 현재 디스크 사용량 테이블을 빌드합니다. 그런 다음 테이블을 사용하여 운영 체제의 디스크 사용량 사본을 업데이트합니다. 또한 파일 시스템의 디스크 할당량 파일이 업데이트됩니다.
참고
디스크 사용량 테이블이 마운트 시 자동으로 완료되므로 quotacheck 명령은 XFS에 영향을 미치지 않습니다. 자세한 내용은 man 페이지 xfs_quota(8) 를 참조하십시오.
절차 17.2. 할당량 데이터베이스 파일 생성
- 다음 명령을 사용하여 파일 시스템에 할당량 파일을 생성합니다.
#
quotacheck -cug /file system - 다음 명령을 사용하여 파일 시스템당 현재 디스크 사용량의 테이블을 생성합니다.
#
quotacheck -avug
다음은 할당량 파일을 생성하는 데 사용되는 옵션입니다.
- c
- 할당량을 활성화한 각 파일 시스템에 대해 할당량 파일을 생성해야 함을 지정합니다.
- u
- 사용자 할당량을 확인합니다.
- g
- 그룹 할당량을 확인합니다.
g
만 지정하면 그룹 할당량 파일만 생성됩니다.
-u
또는 -g
옵션이 모두 지정되지 않은 경우 사용자 할당량 파일만 생성됩니다.
다음 옵션은 현재 디스크 사용량의 테이블을 생성하는 데 사용됩니다.
- a
- 로컬에서 마운트된 모든 할당량 활성화 파일 시스템을 확인합니다.
- v
- 할당량 검사가 진행되는 동안 상세 상태 정보를 표시합니다.
- u
- 사용자 디스크 할당량 정보 확인
- g
- 그룹 디스크 할당량 정보 확인
quotacheck 실행을 완료한 후 활성화된 할당량(사용자 또는 그룹 또는 둘 다)에 해당하는 할당량 파일은
/home
과 같은 로컬에서 활성화된 로컬에서 마운트된 파일 시스템에 대한 데이터로 채워집니다.
17.1.4. 사용자당 할당량 할당
마지막 단계는 edquota 명령을 사용하여 디스크 할당량을 할당하는 것입니다.
사전 요구 사항
- 사용자 할당량을 설정하기 전에 사용자가 있어야 합니다.
절차 17.3. 사용자당 할당량 할당
- 사용자 할당량을 할당하려면 다음 명령을 사용합니다.
#
edquota username사용자 이름을 할당량을 할당할 사용자로 교체합니다. - 사용자 할당량이 설정되었는지 확인하려면 다음 명령을 사용합니다.
#
quota username
예 17.3. 사용자에게 할당량 할당
예를 들어
/home
파티션에 대해 /etc/fstab
에서 할당량이 활성화되고(다음 예제의/dev/VolGroup00/LogVol02
) 명령이 실행되고 edquota testuser 명령이 실행되는 경우 시스템에 기본적으로 구성된 편집기에 다음이 표시됩니다.
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440436 0 0 37418 0 0
참고
EDITOR
환경 변수에서 정의한 텍스트 편집기는 edquota 에서 사용됩니다. 편집기를 변경하려면 ~/.bash_profile
파일의 EDITOR
환경 변수를 선택한 편집기의 전체 경로로 설정합니다.
첫 번째 열은 할당량이 활성화된 파일 시스템의 이름입니다. 두 번째 열은 사용자가 현재 사용 중인 블록 수를 보여줍니다. 다음 두 개의 열은 파일 시스템에서 사용자에 대해 소프트 및 하드 블록 제한을 설정하는 데 사용됩니다.
inodes
열에는 현재 사용자가 사용 중인 inode 수가 표시됩니다. 마지막 두 개의 열은 파일 시스템에서 사용자에 대한 소프트 및 하드 inode 제한을 설정하는 데 사용됩니다.
하드 블록 제한은 사용자 또는 그룹에서 사용할 수 있는 최대 디스크 공간입니다. 이 제한에 도달하면 추가 디스크 공간을 사용할 수 없습니다.
소프트 블록 제한은 사용할 수 있는 최대 디스크 공간을 정의합니다. 그러나 하드 제한과 달리 소프트 제한을 특정 시간 동안 초과할 수 있습니다. 이 시간을 grace period 라고 합니다. 유예 기간은 초, 분, 시간, 일, 주 또는 월 단위로 나타낼 수 있습니다.
값을 0으로 설정하면 해당 제한이 설정되지 않습니다. 텍스트 편집기에서 원하는 제한을 변경합니다.
예 17.4. Desired Limits
예를 들어 다음과 같습니다.
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440436 500000 550000 37418 0 0
사용자 할당량이 설정되었는지 확인하려면 명령을 사용합니다.
#
quota testuser
Disk quotas for user username (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb 1000* 1000 1000 0 0 0
17.1.5. 그룹당 할당량 할당
할당량은 그룹별로 할당할 수도 있습니다.
사전 요구 사항
- 그룹 할당량을 설정하기 전에 그룹이 존재해야 합니다.
절차 17.4. 그룹당 할당량 할당
- 그룹 할당량을 설정하려면 다음 명령을 사용합니다.
#
edquota -g groupname - 그룹 할당량이 설정되었는지 확인하려면 다음 명령을 사용합니다.
#
quota -g groupname
예 17.5. 그룹에 할당량 할당
예를 들어
devel
그룹에 대한 그룹 할당량을 설정하려면 명령을 사용합니다.
#
edquota -g devel
이 명령은 텍스트 편집기에서 그룹의 기존 할당량을 표시합니다.
Disk quotas for group devel (gid 505): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440400 0 0 37418 0 0
제한을 수정한 다음 파일을 저장합니다.
그룹 할당량이 설정되었는지 확인하려면 명령을 사용합니다.
#
quota -g devel
17.1.6. 소프트 제한에 대한 Grace Period 설정
지정된 할당량에 소프트 제한이 있는 경우 다음 명령을 사용하여 유예 기간(즉, 소프트 제한을 초과할 수 있는 시간)을 편집할 수 있습니다.
#
edquota -t
이 명령은 사용자 또는 그룹에 대해 inode 또는 블록의 할당량에서 작동합니다.
중요
기타 edquota 명령은 특정 사용자 또는 그룹의 할당량에서 작동하지만 -t 옵션은 할당량이 활성화된 모든 파일 시스템에서 작동합니다.