Linux 22 .quota

2024. 2. 22. 20:32Linux/CentOS7

Quota란
Storage를 사용자 및 그룹별로 사용량을 제한하는 기술이다.

 

 

설치전 반드시

getenforce 값이 disabled로 돼있어야 한다!

 

yum으로 quota를 설치해주자

 

 

사용자가 사용하는 개인파티션을 만들자

파티션을 나눠주자,

각 디스크별 단일 파티션으로 진행해보겠다.

 

각 파일마다 파일시스템을 지정 할 것인데

ext 와 xfs의 quota 설정 방식이 다르다 각각 살펴보겠다.

 

sdb1 ,sdc1을 ext4로 지정했다.

만든 후 확인하자

 

 

각 파티션 마운트 포인트가 될 파일도 만들어주자

 

 

그런 다음 마운트 진행

진행 후 확인

 

 

이제 /etc/fstab

즉 파일시스템 테이블에 해당 마운트 포인트에

quota 정보를 등록해주자

 

양식

ext4 와 xfs의 양식이 다름을 주의해서 작성해주자

 

저장후

원래는 재부팅이 확실하지만

우리는 먼저 마운트를 해놨기 때문에 리마운트가 가능하다.

이번엔 리마운트 해주자

 

리마운트, 재부팅이 완료 됐다면

각 마운트 포인트에 quota database를 만들어줘야 한다.

 

여기서부터 ext4, xfs의 차이점이 드러난다

 

ext4

quotacheck -F vfsv0 -vug (파티션) 명령어로 생성해주자

 

그런 다음 데이터베이스가 생성됐는지 확인해보자

 

aquota.user 파일이 있는 것을 볼 수 있다.

 

이제 계정을 만들어주자

 

그럼 edquota -u (계정명) 명령어로

사용자 quota를 생성하자

aa의 quota 생성 및 원하는 마운트에 용량 지정(KB)

 

soft : 이 용량을 넘으면 경고 출력 후 유예기간이 활성화 된다.

후에 유예기간이 지나도 soft 용량보다 위라면 파일을 생성해도 0MB로 생성된다.

 

hard : 이 용량은 넘으면 파일을 생성해도 0MB로 생성된다.

 

 

 

 

|blocks 설정|                |inodes 설정|  

setquota -u (유저)  (soft용량)  (hard 용량) (soft용량) (hard용량) (마운트포인트 경로)

위 명령어로 한번에 마운트지점 및 용량을 지정할 수도 있다.

끝났다면 유예기간도 설정하자

 

edquota -t 명령어로 지정하자

 

 

유예기간도 setquota -t 로 설정 가능하다

setquota -t  259200 259200  (마운트포인트 경로)

블록의 유예기간은 259200초 (3일)로 지정하고 i-node는 259200초 (3일)으로 설정한다는 뜻이다.

 

 

이제 생성이 끝났다.

quotaon (마운트 포인트) 명령어로 실행해주자

 

 

 

 

repquota -a 명령어로 생성된 quota 설정을 확인할 수 있다.

 

 

각 마운트 포인트에 3MB의 파일을 생성해주자

이제 이 파일을 복사해 용량 한계 도달시를 확인하면 되는데

 

복사를 진행할 수 없을 것이다.

aa~dd 각 계정이 각 디렉토리에 수정 권한이 없기 때문이다.

각 디렉토리의 권한을 모두 여는 것보단

setfacl 명령어로 각 계정에 디렉토리 권한을 부여해주자

 

이제 각 사용자로 로그인후 디렉토리로 이동해

이제 생성한 파일을 한계까지 복사해주자

3MB의 파일을 계속 복사하다 보면

각 한계지점마다 다른 명령어가 출력된다.

각각 20,30MB가 넘어가는 시점이다.

 

 

ls -al로 확인해보면

soft한계 점은 초과해도 생성은 가능하다.

그러나 hard 한계점은 넘어가는 순간 0MB로만 생성되는 것을 확인할 수 있다

 

repquota -a 명령어로  확인도 해보자

확인해보면 아까와는 다르게 grace 밑에 유예기간이 생긴 것을 볼 수도 있다!

 

날짜를 넉넉하게 6일 뒤로 바꿔보자

이젠 유예기간이 none으로 바뀌었다.

 

다시 soft 한계치 아래로 파일을 지워주면

유예기간이 없어진 것을 볼 수 있다.

 

 

 

xfs quota

xfs 파일에도 quota를 적용해보자

그전에

위의 fstab 에서 quoxfs의 quota 값을 잘못 줬었다. 위 사진처럼 수정후 

umount. mount  작업을 다시 해주자! (pquota 값을 추가해주자)

 

mount 목록에서 

위처럼 나온다면 성공한 것이다.

 

 

 

 

xfs도 ext4 와 비슷하게

xfs_quota -x -c 'limit bsoft=20m bhard=30m (사용자)' (마운트 포인트)

명령어로 blocks 에

soft 20MB

hard 30MB를

일괄적으로 설정하거나

-x 는 전문가 모드활성화 옵션

-c 는 쿼터관련 명령어 지정 옵션

edquota -u (사용자) 명령어로 직접 설정을 변경할 수 있다.

 

 

 

 

repquota 명령어와 같은 기능으로

xfs_quota -x -c 'report -bih' (마운트 포인트)  명령어가 있다.

사용자(cc)  quota가 잘 적용 되어있다. 

 

이제 유예기간도 설정해주자 

xfs_quota -x -c 'timer -b (유예기간)'  (마운트포인트)  명령어를 이용하자

 

유예 기간 설정 후

xfs_quota -x -c 'state -p' (마운트 포인트) 명령어로

마운트 포인트에 설정된 project quota 정보를 확인할 수 있다.

 

xfs_quota -x -c 'state -p' (마운트 포인트)  명령어로는 

project quota를 실행시킬 수 있다.

xfs는 quotacheck가 필요없다.

 

 

xfs_quota -x -c 'limit bsoft=20m bhard=30m cc' /quoxfs

xfs_quota -x -c 'state -u' /quoxfs

 위의 두개 명령어를 다시 입력해서

이번엔 userquota를 실행시켜주자

 

 

disable -u 

enable -u 명령어를 사용해서

Enforcement를 껏다 켤수도 있다.

 

 

report -uh 명령어를 사용해도

user quota에 제대로 적용된 것을 볼 수 있다.

 

 

 

이제 /quoxfs에도 권한을 부여하고

복사할 3MB 파일도 생성하자

이제 CC로 로그인해서 /quoxfs 디렉토리로 이동하자

 

xfs 타입은 디렉토리 내부에

quota 파일도 존재하지 않는다!

 

이제 cc.txt 를 복사해보자

확인 해보면 soft 한계의 경고는 없는 것을 볼 수 있다.

각각 다른 명령어를 사용해 확인 한 것이지만

전과 후를 비교해보면 유예기간이 활성화 된 것을 볼 수 있다.

 

 

이상 quota 에 대해서 알아보았다

'Linux > CentOS7' 카테고리의 다른 글

Linux 24 . MySql  (0) 2024.02.26
Linus 23 . HAProxy  (1) 2024.02.25
Linux 21 . at, cron  (0) 2024.02.20
Linux 20 . NFS 서비스  (0) 2024.02.19
Linux 19 . Mail 서비스  (0) 2024.02.19