본문 바로가기

Linux

Quota

[quota]
  - 사용자 및 그룹별로 디스크 사용량 및 inode(파일 갯수) 제한 설정

  - 패키지 파일명 :  quota

 

사전준비
        반드시 selinux 를 disable 또는 Permissive로 설정해야함

      1. /etc/sysconfig/selinux 파일을 수정

       2.임시적인 방법 

            -명령어
                  setenforce 0

                      - selinux=permissive로 설정
                  getenforce

                      - selinux 상태 확인

           * 단 리눅스 재부팅, 서비스 재시작 시 초기화 됨

 

 

quotacheck

  - 디스크를 사용하고 있는 파일 시스템을 체크햐여 quota 기록파일을 생성 및 업데이트

 

  - 형식

      quotacheck [옵션] 디렉토리

 

    * 옵션

          -a : 사용자와 그룹에 대한 quota 체크

          -v : quotacheck 프로세스 출력

          -g : 그룹 quota 파일 체크 옵션

          -u : 사용자 quota 파일 체크 옵션

         -m : 읽기 전용 모드 등의 이유로 mount 하지 못할 때 강제로 quota를 check한다

 

 

edquota

  - quota 설정 명령어

 

  - 형식

      edquota <옵션> <값>

 

    * 옵션

          -u  : 사용자별 할당량 설정

 

                 Filesystem                   blocks       soft       hard     inodes     soft     hard

                 장치명

                  -> blocks는 용량, inodes는 갯수를 제한

                  -> soft link는 유예기간 동안 설정치를 넘을 수 있지만 hard link는 설정 제한을 절대 넘길 수 없다는 차이가 있음

 

         -t  : 사용자별 유예기간 설정

 

 

quotaon / quotaoff

  - quota 활성화 / 비활성화 명령어

 

  - 형식

        quotaon 디렉토리

        quotaoff 디렉토리

 

 

repquota

  - quota 모니터링 명령어

  

  * 옵션

        -a : /etc/mtab에 따라 quota 상태 표시

        -g : 그룹에 대한 quota 상태 표시

        -u : 사용자에 대한 quota 상태 표시

 


 

테스트용 계정 rwj 및 마운트 포인트로 사용할 디렉토리 /quo, /quo2 생성, 10G 크기의 하드 디스크 추가 후 진행한다

 

파티셔닝 후 확인

sdb를 5G씩 두개의 주파티션으로 생성한 후 파일 시스템 지정까지 완료한다

사용자 계정에 대한 quota 설정에 sdb1을 그룹에 대한 quota 설정에 sdb2를 사용할 것이다

 

 

 

[사용자 계정에 대한 quota 설정]

 

mount /dev/sdb1 /quo 명령어로 파티셔닝한 sdb1을 /quo 디렉토리에 마운트 시킨다

/etc/fstab

기본적으로 mount 되어있던 장치들은 시스템 재부팅 시 전부 umount 된다

이 때 부팅시 설정한 장치가 자동으로 mount 하도록 오토마운트 설정을 하는 파일이 /etc/fstab (file system table)이다

형식은 장치명, 마운트 포인트, 파일 시스템 타입, 마운트 옵션(defaults), dump 운용 여부(0), 디스크 검사(0) 여부 순서이다

/dev/sdb1에 대한 오토 마운트 설정을 입력해준다

 

usrjquota=파일이름

     - 저널 사용자 할달량 사용(일반적으로 aquota.user가 필요)

 

jqfmt=할당량형식

     - quota가 지정될 때 상용된 할량량의 형식

 

재부팅 없이 마운트
mount 명령어로 확인

 

mount -o remount 명령어를 통해 재부팅 없이 /etc/fstab에 설정한 값을 적용시켜서 다시 mount 시킨다

이 때 mount 명령어를 통해 설정값을 제대로 입력했는지 mount 된 장치를 꼭 확인 해본다

 

quota 기록 파일 생성

마운트 포인트 디렉토리로 이동하여 quota 기록 파일을 생성해준다

 

edquota -u rwj
edquota -t

용량 제한은 soft 20M, hard 30M로 설정하고 유예기간은 4일로 설정했다

 

 

[테스트]

 

일반 사용자가 접근할 수 있도록 acl 설정

quotaon 명령어로 마운트 포인트에 quota를 활성화 시키고 새로운 세션을 생성하여 테스트 계정 rwj로 로그인한다

 

테스트의 편의성을 위해 3M 크기의 test.txt 파일을 생성한 후 /quo 디렉토리에 복사한다

 

6개까지 복사했을 때 할당량 제한에 도달했다는 경고 메시지가 출력됐다

(test.txt + 1 +2 ...6 = 3M x 7 = 21M)

 

원래 세션에서 모니터링 해보면

repquota -a

soft link 제한을 넘었고 그에 따라 유예기간 카운트 다운이 시작된 것을 확인할 수 있다

 

 

계속해서 복사했을 때 hard 할당향 제한을 넘기자 디스크 할당량을 초과했다며 오류 메시지가 출력되고

용량 제한을 넘어서 생성된 파일 '10'은 크기가 0으로 정상적으로 복사된 파일이 아님을 확인할 수 있다

 

모니터리을 해보면 사용자 rwj가 hard link 제한에 도달한 것을 확인할 수 있으며

유예기간 내에 soft link이상을 사용할 수는 있어도 hard link 이상은 사용할 수 없는 것을 알 수 있다

 

추가적인 테스트를 위해 10부터 경고 메시지가 출력되었던 6까지 파일을 삭제 한다

이번에는 시스템의 날짜를 변경하여 유예기간이 지난 후는 어떤지 테스트 해본다

 

 

시스템의 날짜를 유예기간 이후인 2022/10/01로 변경 후 똑같이 파일을 복사하자

아직 hard link 제한에 도달하지 않았음에도 디스크 할당량 초과 오류 메시지가 뜨는 것을 확인할 수 있다

이로써 유예기간이 지나면 soft link 이내로 밖에 사용할 수 없다는 것을 알 수 있다

 


[그룹에 대한 quota 설정]

 


그룹 Quo를 생성 후 Quo를 기본그룹으로 가지고 있는 테스트 계정 one, two를 생성한다 

이번에는 그룹에 대한 할당량 제한을 설정 해볼 것이다

 

/etc/fstab

 

grpjquota=파일이름

     - 저널 사용자 할달량 사용(일반적으로 aquota.group가 필요)

 

사용자 할당량 제한을 설정할 때와 다르게 설정해줘야함을 주의하자 (usr -> grp, user -> group) 

 

설정한 대로 mount 된것을 확인한다

 

경고 메시지

quota 기록 파일을 생성하려는데 마운트 포인트 /quo 디렉토리에 사용자 계정 quota가 적용중이라 

파일이 깨질 수 있다는 경고 메시지가 출력됐다 -f 옵션으로 무시할 수 있지만 quota 적용을 끈 후에 작업하도록 하자

 

문제 없이 생성되는 것을 확인할 수 있다

 

그룹 quota 설정

설정값은 아까 그대로 soft 20M, hard 30M, 유예기간 4일로 설정 해준다

사용자 설정 때와 다르게 edquota -g 옵션과 -T -g 옵션으로  Quo 그룹에 대한 용량 설정과 유예기간을 설정해준다

 

그룹 acl 설정

테스트는 동일하게 진행된다

먼저 그룹에 속한 일반 사용자가 마운트 포인트에 접근하여 사용할 수 있도록 acl 설정 후

할당량 제한을 초과하도록 파일을 복사 후 모니터링 한다

 

계정 one 접속 후 진행

사용자 one으로 접속 후 테스트 해 보니 그룹 할당량 설정이 잘 된것을 확인할 수 있다

계속해서 two로도 접속해서 할당량을 초과시켜 본다

 

계정 two 접속 후 진행

soft link는 이미 넘었음에도 경고 메시지가 출력되지 않는다는 차이점이 있다

 

 

하지만 역시 hard link 제한을 넘길 수는 없다는 것을 확인할 수 있다

'Linux' 카테고리의 다른 글

Local Repository  (0) 2022.09.21
패키지 관리(RPM&YUM)  (0) 2022.09.21
NTFS 디스크 마운트  (0) 2022.09.20
LVM  (0) 2022.09.19
Disk & Partition  (1) 2022.09.19