hann-blume
Linux - Quota 본문
Quota란 사용자 그룹 별 용량 할당이다.
일반적으로 우리가 쓰는 Web Hard와 비슷한 개념이며,
Server의 특정 File System 및 User와 Group에게 사용할 수 있는 용량을 정의하는 것을 말한다.
또한, Quota를 이용하여 생성 할 수 있는 File의 개수를 정의할 수도 있다.
(사용자 제한을 위한 Quota는 대부분 /home Directory에 정의 한다.)
쉽게말해 내 서버를 이용하는 사람이 a,b,c 이렇게 3명이라고 가정하면
이 a,b,c에 대하여 각각 데이터를 저장할 수 있는 용량과,
저장할 수 있는 파일의 개수를 정해주는 것이다.
우선 Quota를 사용하기 위해 Quota를 설치해주자.
# yum -y install quota-*
설치확인
# rpm -qa | grep quota
이제 Quota를 적용해줄 파티션을 골라야한다.
#lsblk
여기서는 sdb2 파티션을 이용하도록 하겠다.
우리가 오토마운트를 적용해주었던
/etc/fstab로 들어가자
# vi /etc/fstab
그리고 우리가 선택한 /dev/sdb2를
아래 처럼 수정하자
그리고 저장하고 나가자
: wq
여기서 uquota와 gquota는 각각
user quota / group quota를 의미한다.
이는 적용 대상을 의미하는데
user quota는 각각의 개인 이용자에게,
group quota는 특정 그룹에 속해있는 이용자에게
내가 설정한 Quota를 적용시키는 것이다.
우리가 sdb2의 M.P를 /home으로 변경해주었으니
이를 실제 적용시키기위해 마운트를 해주자.
/home으로 변경해준 이유는 아까 위에서
사용자 제한을 위한 Quota는 대부분 /home 디렉터리에 정의 한다고 했다.
# mount /dev/sdb1 /home
변경사항 저장
# mount -o remount,usrquota,grpquota /dev/sdb1 /home
확인
# mount | grep /home
그리고 재부팅
# reboot
재부팅이 되었으면
Quota가 제대로 적용되었는지 확인해보자
# edquota -t
출력되는 항목 중 Filesystem에 /dev/sdb2 가 나오면 정상적으로 Quota가 적용된 것이다.
Block grace period 항목은
용량에 대한 기한
Inode grace period 항목은
파일 개수에 대한 기한 이라고 생각하면 된다.
두 grace는 원하는대로 수정 가능하다.
자세한건 아래에서 더 다룬다.
wq로 나가자.
:wq
이제 테스트를 위해 일반 사용자계정 2개를 생성하고, 각각에 암호까지 설정해주자.
# useradd user1
# useradd linux
# passwd user1
# passwd linux
우리가 방금 만들어준 user1과 linux의 홈디렉터리 /home에 대한 Quota설정을 진행한다.
# xfs_quota -x /home
그럼 위와 같이 xfs_quota> 로 프롬포트가 바뀌는 것을 확인할 수 있다.
state를 입력해보자.
그럼 User quota가 on, Group quota가 on 인 것을 확인 할 수 있고,
아래쪽에 우리가
edquota -t 로 설정해준 Grace가 출력된다.
(참고로 Quota 프롬프트 안에서는 'clear' 기능이 되지않는다.
clear 대신 'ctrl+L' 를 사용하면된다)
이번에는
용량 제한에 관련된 쿼타 설정값들을 확인하는
report -b 를 입력 해보자
위 사진에서 -b 옵션은 설명했듯 Blocks, 즉 용량 제한에 대한 쿼타설정을 볼 수있는 옵션이라고 했다.
붉은 박스를 보면 Soft, Hard, Grace가 있는 것을 알 수 있다.
각각의 항목은
(Used : 현재 사용 중인 용량)
Soft : 실제 Quota를 제한 할 용량
Hard : soft에서 명시한 값을 넘어서 사용할 수 있는 최대 용량
Grace : 유예기간
이와 같다.
원리는
만약 soft가 10, hard가 15, grace가 7Day라면
10까지 저장하고 추가로 5가 더 저장 가능하다는 것이다.
하지만 soft에서 명시한 10보다 5만큼이 더 높은데
이 5만큼은 hard에 해당되며, hard는 grace만큼(여기선 7DAY)만 저장되고
그 이후가 되면 자동으로 삭제된다.
이번에는
파일 수 제한에 관련된 쿼타 설정값들을 확인하는
report -i 를 입력 해보자
마찬가지로
Used : 현재 사용 중인 파일 수
Soft : 실제 Quota를 제한 할 파일 수
Hard : soft에서 명시한 값을 넘어서 사용할 수 있는 최대 파일 수
Grace : 유예기간
이다.
이제 만들어준 user1과 linux 유저에 대해 용량 제한을 걸어보자.
위에서 user1의 용량제한은 아직 soft, hard 모두 0, 0 이였다.
limit bsoft=5M bhard=10M user1
를 입력해보자. M은 메가를 의미한다.
다시말해
user1에 대한
bsoft(block soft)는 5메가
bhard(block hard)는 10메가 라고 명시해주는 것이다.
다시
report -b 로 확인
변경된 것을 확인 할 수 있다.
이번엔 user1의 파일 개수에 제한을 걸어보자
limit isoft=15 ihard=20 user1
를 입력.
isoft(inode soft)는 15개
ihard((inode hard)는 20개 라고 명시하는 것이다.
변경된 것을 확인 할 수 있다.
이번에는 그룹별 Quota 제한을 걸어보자
그룹에 대한 용량과, 파일 수 제한을 거는 것이다.
limit -g bsoft=50M bhard=60M linux
(soft용량과 hard용량 - 각 50메가, 60메가)
limit -g isoft=30 ihard=50 linux
(soft파일 수과 hard파일 수 - 각 30개, 50메가)
(-g 옵션은 그룹을 의미한다)
확인
report -gb
report -gi
이제 한번에 확인을 해보자
report -b
report -i
지금 user1의 hard는 20으로 설정되어있다.
현재는 12개의 파일들이 사용중인것으로 나오는데
이제 같은 연결로 user1으로 접속해보자
참고로 putty 창 윗 부분을 마우스 우클릭하면 메뉴가 나타난다.
'같은 연결 하나 더' = 새로운 창에 같은 연결
새 접속 = 새로운 창에 새 연결
그리고 만약 reboot등의 명령으로 접속이 이미 끊어진 상태에서
마우스 우클릭을 하면 '다시 접속' 이라는 메뉴가 생기는데
putty창을 닫은 후 새로 열지않고, 연결이 끊어진 putty창에
바로 연결이 다시 된다.
어쨋거나 같은 연결로 user1으로 접속하고
파일을 8개를 만들어주자
이 때 기존의 putty창(root계정으로 접속한)은 끄지않고 냅둔다.
#touch 1 2 3 4 5 6 7 8
그리고 다시 root계정이 접속된 putty창으로 돌아와서
report -i 를 해본다.
Used가 20으로 Hard만큼 사용중인 것으로 바뀌었고
Soft보다 Used가 초과됨에 따라 Grace가 돌기 시작한다.
초과된 5만큼의 파일은 7일 후 자동 삭제된다.
여기서 user1의 Inodes 중 Used가 원래 7개였고,
여기서 touch 1 2 3 4 5 6 7 8 로 8개의 파일을 생성해주었으므로
15가 나와야한다. 하지만
확인해보면 위 사진처럼 20으로 나타난다.
그 이유는 처음 7개는 유저를 처음 생성했을 때 생기는 기본 파일의 개수인데
우리가 touch로 8개의 파일을 생성해주기 위해 user1으로 로그인을 했었다.
이 때 로그인은 user1라는 계정이 만들어진 후에 '최초' 로그인 이다.
최초 로그인시 로그인으로 인한 로그파일 등 새로운 파일들이 자동으로 생성된다.
이 자동으로 생성된 파일들이 5개여서
로그인과 동시에 처음 7개에서 12개로 변했고,
touch 1 2 3 4 5 6 7 8 로 8개가 추가되어
20으로 나타나는 것이다.
이번에는 Hard 만큼 이미 꽉 사용중인 상태에서
다시한번 touch 명령으로 파일을 또 생성해보자.
다시 user1이 접속된 putty창으로 와서
#touch 9
'디스크 할당량이 초과됨' 이라는 메세지와 함께 만들어지지 않는다.
여기까지 Quota에 대한 설명이 끝났다.
'Linux' 카테고리의 다른 글
Linux - RAID(Redundant Array of Inexpensive Disks) (0) | 2020.03.03 |
---|---|
Linux - LVM(Logical Volume Manager) (0) | 2020.02.27 |
Linux - YUM (0) | 2020.02.27 |
Linux - 부팅오류 복구 / root계정 암호 재설정 (0) | 2020.02.25 |
Linux - Partition (0) | 2020.02.25 |