본문 바로가기
Linux

storage 관리-3 (Quota)

by Nirah 2022. 11. 1.

저번 포스팅에 이어서 Linux Storage(디스크) 관리에 관한 내용을 이어 갑니다.

 

목차

 

    storage 관리-1

0. VMware 하드 추가

1. partition

2. file system (포멧)

3. mount

 

    storage 관리-2

4. LVM

5. VMware 머신 생성 시 파티션 설정

 

    storage 관리-3

6. Quota

 

 

 

 

 

quata

 

- 최상위 디렉터리에있는 홈디렉터리안에 사용자 계정을 생성하게되면
특정 사용자가 운영체제가 설치된 HDD의 모든 메모리를 사용할수 있게된다.

 

- 운영체제가 설치된 HDD의 메모리가 부족하게되면 System이 down되거나 특정 Process가 down될 수 있다.

 

- 그래서 사용자 계정은 OS가 설치된 Patition에 생성하지 않고

별도의 Patition을 분할하거나 다른 HDD에 생성하는 것을 권장한다.

 

- 또 다른 권장사항은 user나 group 별로 디스크 용량이나 inode 개수를 제한하는 기능인 quota 를 사용하는 것이다.

 

 

 

 

먼저 quota를 지원하는지 확인한다.

# rpm -qa | grep "quota"

 

없으면 설치한다.

# yum -y install quota

 

이 때, 주의사항이 있다.

반드시 selinux 를 disable 또는 Permissive 한 상태에서 설치할 것이다.

(이전 VMware 초기 세팅 포스트에서 이미 적용해 놓았다. 그래도 혹시 모르니 # getenforce 로 확인해보자.)

 

 

 

 

1. quota를 적용할 디렉토리를 만든다.

# mkdir /9rum

 

 

 

2. sdb 하드를 추가하고 system linux로 파티셔닝 한다.

원하는 파일 시스템으로 포멧도 해주고 /9rum 디렉토리로 마운트도 해준다.

# https://raid-1.tistory.com/23  하는 방법 링크로 대체

 

 

 

3. vi /etc/fstab 에서 오토마운트 할 때 quota로 동작하도록 설정한다.

참고로 캡쳐 윗쪽의 /p1 오토마운트는 지워야 한다;;

 

유저에 적용할 때

/dev/sdb1 /9rum ext4 defaults,usrjquota=aquota.user,jqfmt=vfsv0    0  0

 

그룹에 적용할 때

/dev/sdb1 /9rum ext4 defaults,grpjquota=aquota.group,jqfmt=vfsv0    0  0

 

 

 

4. mount 를 쳐보면 아직 quota 기능이 적용되지 않은 것을 확인 할  수 있다.

서버를 재부팅 하거나 다시 마운트를 해야 quota 기능이 적용된다.

# mount  -o  remoumt  /dev/sdb1

또는 mount  -o  remoumt  /9rum

 

위와 같이 리마운트를 하면 아래와 같이 quota 기능이 적용 된 것으로 바뀐것을 볼수 있다.

 

 

 

5. 이제 quotacheck를 생성해야 한다.
 .quota의 database table을 의미하며 사용자의 quota 정보가 등록되는 파일이다.

해당 디렉토리로 이동 # cd /9rum

 

(해당 파일이 존재하는 경우에는 우선 아래와 같이 제거 해준다)

(# rm -rf aquota.user)

(quotacheck -F vfsv0 -avugm)
(touch aquota.user)
(quotacheck -F vfsv0 -avugm)

 

# quotacheck -F vfsv0 -avugm    (CenTOS6 버젼)

 

결과값에 아래와 같이 check 3 directory  ~~~~~만 나오면 잘 된 것이다.

이후 마운트한 디렉토리를  ls로 보면 만들어진 aquota.user 그룹이 보인다.

 

 

 

6. 사용자별 제한설정

 

유저를 제한하려면

# edquota -u [사용자계정]

 

그룹을 제한하려면

# edquota -g [그룹명]

 

 

blocks  soft  hard는 용량(kbyte)을 제한하는 부분이고  

inode  soft  hard는 개수를 제한하는 부분이다.

 

soft와 hard의 뜻은 아래와 같다.

 

 

|---------------|soft|---------------|유예|---------------------|hard|

 

soft 제한을 넘어도 유예기간 동안 까지는 초과해서 쓸 수 있다.

하지만 유예기간에 도달하면 soft 제한이 넘는 부분은 정지된다. (데이터는 남아 있다)

hard 제한은 절대적인 마지노선이다. (넘는 부분은 파일이 생성은 되지만 용량이 0을 넘지 못한다)

 

 

 

7. soft 유예기간 설정

 

유저를 제한하려면

# edquota -t

 

그룹을 제한하려면

# edquota -T -g 9rum

위에서 설명한 바와 같이 Block 부분은 용량을, Inode 부분은 개수를 제한하는 soft 유예기간이다.

 

 

 

8. 디렉토리에 quota 기능을 활성화 시켜준다.

 

# quotaon /9rum

 

유저 quota 제한은

# repquota -a

 

그룹 quota 제한은

# repquota -avg 를 통해 확인해 준다.

 

 

 

 

 

============ <<설정 후 실작동 테스트 하는 법>> ==============================================

 

 

일단 그룹 block 제한 부터 테스트 해본다. (용량)

 

# groupadd 9rum

 

# useradd rky -g 9rum

(quota 제한을 걸 유저를 생성)

 

# setfacl -m u:rky:rwx /9rum

(quota를 걸 디렉토리에 a가 쓰기권한이 없기 때문에 권한을 준다.)

 

# dd if=/dev/zero of=/home/a/a.txt bs=3M count=1

(계정 rky의 홈 디렉토리에 3M짜리 덤프 파일 a.txt를 생성해서

rky가 quota가 걸린 디렉토리로 이를 복사 할수있게 함)

 

별도의 터미널 창에서 #su - rky로 로그인
$ cp a.txt /quo/a1.txt
$ cp a.txt /quo/a2.txt
$ cp a.txt /quo/a3.txt
...
$ cp a.txt /quo/a6.txt
$ cp a.txt /quo/a7.txt
...
$ cp a1.txt /quo/a10.txt
$ cp a1.txt /quo/a11.txt

 

다음과 같이 hard 제한에 걸려서 디스크 할당량이 초과됐다는 메시지와 함께 더 생성 불가.

 

soft와 유예기간도 테스트 하기 위해 일단 soft 용량 제한에 걸리기 전으로 돌려보자.

rm -f /quo/a11.txt /quo/a10.txt /quo/a9.txt /quo/a8.txt

 

root로 로그인 후
# repquota -avg로 날짜 바꾸기 전에 quota 정보 확인.

아래 Grace를 보면 4days라고 남은 유예기간을 볼 수 있다.

 

used = 사용중인 크기

block limits = 용량 제한

file limits = 개수 제한

 

user quota와는 다르게 유예기간이 지나기 전에는 soft할당량을 초과해도 경고 메세지는 출력되지 않는다.

하지만 유예기간의 시간은 시작된 상태로 된다.

 

날짜를 유예기간 후로 변경
# date -s 2022.11.01

아래와 같이 grace 값이 사라졌다. 

아직 소프트 제한을 초과하지 않은 상태이다.

 

이때 다시 #  su - rky로 로그인 해서 텍스트 파일을 복사해서 용량을 쓰면

아래와 같은 메세지가 나오며 더이상 생성 할 수 없다.

 

 

 

 

 

 

 

Inode 개수 제한을 걸면 다음과 같이 보인다.

 

 

이번엔 다른 계정으로 확인해 본다.

 

날자를 변경하면 다음과 같다. 유예기간이 지나면 grace는 none이라고 뜬다.

 

 

 

 

 

 

 

 

 

 

 

 

 

'Linux' 카테고리의 다른 글

Package 관리-2 (Source, 스크립트, Ncloud)  (0) 2022.11.07
Package 관리-1 (yum, RPM)  (0) 2022.11.02
Storage 관리-2 (LVM)  (0) 2022.11.01
Storage 관리-1 (partition - format - mount)  (0) 2022.10.31
파일 속성 분석 (권한)  (0) 2022.10.31