재미로하는 공부

리눅스 디스크 사용량 할당 (disk quota)

lowcodingpython 2022. 3. 21. 06:40
반응형

디스크 쿼터에 대한 이론과 할당 방식을 공부하여 포스팅하였습니다.

리눅스 마스터 시험에서도 자주 나오는 부분이라 실습 및 이론은 시험 보시는 분들은 알고 계시는 것을 추천드립니다!


  • 디스크 쿼터 (quota)
  1. 리눅스를 사용하는 사용자들이 하드디스크의 사용을 제한 없이 무한으로 사용하게 되면 문제가 됩니다.
  2. 1번의 문제를 해결하기 위해 디스크 쿼터 설정을 하게 되며 각각의 사용자 별로 디스크 사용량을 제한
  3. 사용자 혹은 그룹이 가질 수 있는 I-Node의 수 혹은 디스크 블록 수를 제한함으로써 디스크 사용량을 제한 

 

위에 말이 너무 어렵게 느껴지시면 쉽게 사용자들에게 지정된 디스크의 크기를 부여하고 제한하는 작업입니다.

 

  • 디스크 쿼터 설정 
  1. HDD 마운트 , /etc/fstab 설정
  2.  remount 및 reboot
  3.  Quota DataBase 생성
  4.  사용자 개인별 Quota 설정
  5.  시스템 적용(Quota 활성화)

 

Quota를 사용할 사용자를 추가

먼저 디스크 쿼터에서 사용할 사용자가 필요합니다.

useradd 명령어를 통해서 3개의 사용자를 생성하겠습니다.

cat 명령어를 통해 생성된 유저들을 확인

 

quota1 ~ 3번까지의 유저를 생성을 하였습니다. 

이론을 보신 분들은 이제 감이 잡히실 겁니다. 

각각의 사용자 별로 디스크를 제한한다. 

이번 작업에서는 3명의 사용자의 디스크 사용량을 제한하게 됩니다.

디스크쿼터-유저생성
quota 1 ~ 3번 유저까지 생성해주세요.

디스크 쿼터 패키지 확인 

디스크 쿼터를 진행하기 앞서 quota 패키지가 설치되어 있는지 먼저 확인을 해야 합니다. 

rpm -qa quota를 통해 패키지를 확인해주세요.

disk-quota-package
패키지 설치 여부 확인

1. 디스크 쿼터 설정 : HDD 마운트, /etc/fstab 설정

  • disk quota를 설정하기 위하여 quota를 설정할 파티션에 옵션을 부여해야 합니다.
  • 사용자 계정에 대한 용량 제한을 할 경우 userquota
  • 그룹에 대한 용량을 제한할 경우 grpquota

 

** 설정이 복잡할 수 있어 천천히 보시면 됩니다.**

 

가상 머신의 하드를 추가 후 fdisk로 기본적인 작업을 하겠습니다.

fdisk-sdb
fdisk 설정

파일 시스템은 ext4 형식으로 지정을 하고 설정하겠습니다.

파일-시스템-설정
파일시스템은 ext4로 설정

마운트를 해줄 파일 quo 디렉터리를 생성

mount /dev/sdb1 /quo 명령어를 통해 앞에 생성해둔 quo 디렉터리에 마운트 작업을 합니다.

디렉터리-마운트
마운트 디렉터리 생성 및 마운트

/etc/fstab에 등록을 해주어야 합니다. 

아래와 같이 설정하시면 됩니다. (주의 : 오타)

etc/fstab-설정
오타에 주의하세요.

 

2.  remount 및 reboot 

리 마운트 작업 진행 후 마운트가 되어 있는지 확인을 하겠습니다.

우선 remount 설정을 해주세요.

remount-quota
리마운트 작업

재부팅 후 마운트가 되어 있는 것을 확인하셔야 합니다. 

재부팅후-마운트
부팅 시 마운트가 자동으로 되어 있는지 확인 필수!!

  • 사용자 계정에 대한 용량 제한을 할 경우 userquota

직업 진행

userquota-설저
오타가 없이 작성 필수!

usrjquota=파일명 : 저널링 사용자 할당량 사용 

                           == 일반적으로 파일명은 위의 사진과 같이 aquota.user로 사용

jqfmt=format : usrjquota OR grpjquota가 지정될 때에 사용한 할달량 형식 

 

위에는 개인 사용자에게 설정을 하는 방법이었습니다. 

그럼 그룹에는 어떻게 해야 할까요??

== grpjquota=aquota.grp,jqfmt=vfsv0 가 되겠습니다.

 

위의 작업 후에 다시 한번 리마운트를 해주세요!!!!

아래와 같이 변경이 되어야 합니다.!!

리마운트-작업후-변경점

 

3. Quota DataBase 생성

  • quota DB 파일 생성 
  1. quota 기능을 적용시켜준 후에는 /dev/sdb1 파티션에 대한 사용량 할당 파일을 생성해주어야 합니다.
  • quotacheck 명령어

- 파일 시스템의 디스크 사용 상태를 검색하고, 현재 디스크 사용 테이블을 작성하여 테이블의 정보를 파일 시스템의 디스크 사용량 할당 파일에 기록된 테이블의 정보와 비교하여 불일치 시 사용량 할당 파일인 aquota.user 파일이 최근 상태로 갱신 

#quotacheck [options]

옵션 설명
-a 디스크 사용량 할당이 활성화되고, /etc/fstab에 마운트 된 모든 파일 시스템 확인
-u 사용자 계정 디스크 사용량 할당 정보 체크
-g 그룹 디스크 사용량 할당 정보 체크
-v 사용량 할당 확인 작업의 진행을 상세한 상태 정보로 보여줌
-c 디스크 사용량 할당 파일 생성
-m file system이 동작중인 상태에서 강제로 quotacheck를 시도
-f 디스크 사용량 할당이 비활성화시에 강제로 quotacheck를 시도

-F : 특정 형식의 쿼터 파일 확인

#quotacheck -F vfsv0 -avugm 

quota-data-base-생성

quo 디렉터리 내부에 생성된 것을 확인하시면 됩니다!

데이터베이스-생성확인

 

4. 사용자 계정 디스크 사용량 할당

 

  • edquota 명령어 
  • 사용자 계정별로 사용량을 할당하기 위한 명령어 

#edquota [options] [계정 이름 또는 그룹 이름]

옵션 설명
-u 사용자 디스크 할당량 설정
-g 그룹 디스크 할당량 설정
-t 디스크 할당량 유예기간 설정
-p 디스크 할당량 설정을 다른 사용자와 동일하게 설정

초반에 만들어둔 사용자 quota1에 적용하겠습니다~

사용자-쿼터설정

quota1 계정 용량(soft)은 4MB로 제한

용량 초과 시 일정 기간 6MB(hard)까지 사용 가능하도록 설정

계정-용량-제한

>> Blocks
- 현재 사용하고 있는 디스크 용량(1 block = 1024 Byte = 1 Kilo Byte)
- 현재 사용하고 있는 디스크 용량이므로 수정할 수 없음

 

>>soft 

- 사용자가 사용할 수 있는 실제 계정 용량으로, 유예 기간(Grace Period) 동안에 는 hard로 할당한 용량 범위 내까지 soft의 설정 용량을 초과하더라도 사용할 수 있음

 

>>hard

- 사용자가 사용할 수 있는 절대 용량으로 이 용량을 초과하면 더 이상 계정 용 량을 사용할 수 없게 됨

 

>>inodes
- 현재 사용하고 있는 전체 파일의 개수이며, 수정할 수 없음(주의)
- soft와 hard는 blocks와 같은 역할을 하며, inode의 개수를 제한

 


유예기간(Grace Period)
- 유예 기간은 사용자의 계정 사용량이 soft limit으로 지정한 용량에 도달하였을 때부터 hard limit 범위 내에서 계정 용량을 초과하여 사용할 수 있도록 한시적으로 적용되는 기간
- 기간이 경과되면 계정 용량은 soft limit 이상의 용량을 초과하여 사용할 수 없게 됨
- 유예 기간 정보 확인이나 변경은 quota 명령의 –t 옵션을 사용

#edquota -t

유예-기간-설정

 

5. 시스템 적용(Quota 활성화)

quotaon : 활성화

quotaoff : 비활성화 

쿼터-활성화


 

긴 글 읽어주셔서 감사합니다. 

간단하게 디스크 쿼터 설정 순서부터 방식까지 알아봤습니다.

개인적으로 공부한 부분이라 부족한 부분이 많습니다. 

반응형

 

반응형