반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

hann-blume

Linux - Quota 본문

Linux

Linux - Quota

hann-blume 2020. 2. 27. 21:20

 

 

 

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