디스크 쿼터
리눅스 시스템은 기본적으로 사용자의 용량을 제한하지 않는다. 여러 사용자가 동시에 접속해서 사용할 수 있는 리눅스 서버에서 만약 특정사용자가 디스크의 모든 용량을 사용할 경우, 다른사용자는 용량을 사용하지 못하는 문제가 발생할 수 있다.
이런 문제를 해결하기 위해서는 여러명이 사용하는 서버에서 디스크의 용량을 사용자에 따라 제한할 필요가 있다. 이런 제한을 리눅스에서는 디스크 쿼터라고 부른다.
디스크쿼터는 특정 사용자나 그룹의 디스크사용량이나 파일의 개수(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 옵션을 통해 설정된 모든 쿼터를 확인할 수 있다.
'개인 > 리눅스' 카테고리의 다른 글
[리눅스] 프로세스 스케줄링 (at,crontab) (0) | 2020.02.10 |
---|---|
[리눅스] /proc 와 프로세스 우선순위 (nice,renice) (0) | 2020.02.09 |
[리눅스] swap 생성 및 관리 (mkswap / dd) (0) | 2020.02.07 |
[리눅스] 사용자 계정 관리 usermod 명령어 (0) | 2020.02.06 |
[리눅스] 하드디스크 추가 및 파일시스템 마운트 (0) | 2020.02.05 |