저번 포스팅에 이어서 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 |