개인/리눅스

[리눅스] 디스크 쿼터 사용법 (quotacheck, repquota)

OmeGa2 2020. 2. 8. 18:53

디스크 쿼터

리눅스 시스템은 기본적으로 사용자의 용량을 제한하지 않는다. 여러 사용자가 동시에 접속해서 사용할 수 있는 리눅스 서버에서 만약 특정사용자가 디스크의 모든 용량을 사용할 경우, 다른사용자는 용량을 사용하지 못하는 문제가 발생할 수 있다.

 

이런 문제를 해결하기 위해서는 여러명이 사용하는 서버에서 디스크의 용량을 사용자에 따라 제한할 필요가 있다. 이런 제한을 리눅스에서는 디스크 쿼터라고 부른다.

 

디스크쿼터는 특정 사용자나 그룹의 디스크사용량이나 파일의 개수(i-node수)를 제한할 수 있다.

 

 

 

1. quota 설정하기

/etc/fstab 파일 설정

[장치명]  = /dev/sda2

[마운트위치] = /

[파일시스템] = ext4

[옵션] = 기본값,유저쿼터 (defaults,usrquota)

[백업덤프] = 1 (매일사용)

[점검여부] = 1 (가장 먼저 검사)

하드디스크 파티션을 설정할 때 사용자쿼터로 사용하기 위해 usrquota를 추가로 기입한다.

그룹쿼터의 경우에는 grpquota를 기입한다.

 

디스크를 새로 추가해서 쿼터를 설정하는 방법도 있지만, 이번엔 기존 루트디렉터리(/)에 설정된 파일시스템을 이용해 쿼터설정을 해보려고 한다.

 

/etc/fstab 파일은 vi편집기로 수정할 수 있다. 각각의 영역은 [tab]으로 구분할 수 있다. 디스크 장치의 설정값이 UUID로 나와있어서 장치이름을 확인하기위해 blkid 명령을 사용했다.

 

루트디렉터리 (/)에 설정된 장치는 /dev/sda2 인 것을 확인할 수 있다.

이 장치에 쿼터설정을 위해 deaults 설정에 usrquota를 추가했다.

 

 

 

2. 설정한 장치의 재마운트 및 재부팅

]# mount -o remount [마운트위치]

/etc/fstab 파일을 수정한 뒤 재부팅이나 재마운트를 해야 설정이 적용한다.

 

mount 명령으로 현재 마운트상태를 확인할 수 있다.

아직까진 usrquota 설정이 적용되지 않았다. 

 

새로 마운트하기 위해 mount -o remount / 명령을 사용했다.

 

remount 후 다시 확인해보니 무사히 /dev/sda2 장치에 사용자쿼터설정이 되었다.

 

 

 

3. 쿼터파일 생성 및 체크

]# quotacheck -mf [마운트위치]

-m : 마운트하지 못할 경우 강제로 체크

-f : 쿼터파일 초기생성시 강제로 인식시키기

-a : 사용자와 그룹의 쿼터 체크

위 명령은 파일시스템을 체크해서 quota 를 기록해주는 파일이다. 

처음 쿼터를 설정하거나, 변경된 설정을 인식시켜주기 위해 사용한다.

 

명령을 실행하자 성공적으로 쿼터를 체크하고 aquota.user 파일이 생성되었다.

 

이 명령은 파일의 손상을 방지하기 위해 되도록이면 quotaoff 상태에서 사용해야하며 만약 루트디렉터리 (/) 가 아닌 별도의 디렉토리를 생성해서 마운트한 경우에는 쿼터파일(aquota.user)이 미리 생성되어 있어야한다.

 

 

 

4. 사용자에 대한 쿼터 설정하기

]# edquota [사용자명]

-t = soft 유예기간 확인/변경

soft = 일정기간 초과할 수 있는 사용량

hard = 초과할수 없는 최대값

사용자나 그룹에 쿼터를 설정할 때 edquota 명령을 사용한다.

 

edquota 명령을 사용하면 해당 사용자에 대한 사용량을 지정할 수 있는 창이 나온다.

이 창은 vi편집기로 되어있어 별도로 수정할 수 있다.

 

Filesystem에서는 현재 파티션이 나타나며 사용량은 디스크의 용량(KB)과 파일개수(inodes)를 별도로 설정할 수 있다.

 

 

soft 에 설정된 값은 일정 기간 동안 초과할 수 있지만, 기간이 만료되면 더이상 파일을 생성할 수 없다.

edquota -t 명령으로 사용자가 soft에 설정된 용량을 초과했을 때 유예기간을 확인할 수 있다.

 

현재 7일로 설정되어있는데 soft 용량을 초과한 뒤 7일이 지날때 까지 줄어들지 않으면 해당 사용자는 더이상 파일을 생성할 수 없다. 

 

 

 

5. 쿼터 시작 / 종료

]# quotaon [마운트위치]

]# quotaoff [마운트위치]

-v = 메시지 출력

쿼터를 시작 / 중단 시킬수 있는 명령어다. 기준은 사용자가 아닌 파일시스템이 마운트 되어있는 디렉토리를 기준으로 이루어지며 해당 디렉토리를 이용하는 사용자들이 대상이된다.

 

명령어를 입력했을 땐 아무런 메시지가 나오지 않는 상태가 정상이다. 제대로 실행되었는지 확인하고싶다면 -v 옵션을 같이 사용한다. 

 

 

 

6. 사용중인 쿼터 확인

]# repquota [마운트위치]

-a = 쿼터를 사용중인 모든 파티션 출력

여러 사용자들이 각각 해당 디렉터리에서 사용중인 용량 및 inode 수를 확인할 수 있다.

 

현재는 쿼터로 사용중인 디렉토리가 루트 (/) 하나 뿐이지만, 여러 파일시스템을 사용할 경우 -a 옵션을 통해 설정된 모든 쿼터를 확인할 수 있다.