별의 공부 블로그 🧑🏻‍💻
728x90
728x170

디스크 쿼터(Disk Quota)

디스크 쿼터(Quota)의 개요

  • 리눅스 시스템은 기본적으로 사용자의 용량을 제한하지 않아서, 특정 사용자가 디스크에 남아 있는 용량을 모두 사용할 수 있다.
    • 따라서 사용자가 많은 서버의 경우 사용자의 디스크 사용량 제한이 필요한데, 이러한 제한을 디스크 쿼터(Disk Quota)라고 한다.
  • 리눅스에서 디스크 쿼터를 이용하여 다음을 제한할 수 있다.
    • 사용자 및 그룹의 디스크 사용량
    • 생성할 수 있는 파일의 개수 (I-node의 개수)
  • CentOS 7 버전에는 XFS 파일 시스템을 사용하는데, 추가적으로 특정 디렉터리(프로젝트) 단위로도 제한이 가능하다.
  • 제한 값 설정과 관련된 항목의 구분
    • 소프트(Soft)
      • 보통 사용자에게 공지된 제한 용량이라고 보면 된다.
      • 만약 특정 사용자의 디스크 사용량을 100MB 로 제한할 경우, 소프트 항목 값으로 지정하면 된다.
    • 하드(Hard)
      • 실제 사용자가 최대로 사용할 수 있는 값이라고 보면 된다.
      • 보통 소프트 항목 값보다 좀 더 설정하는 것이 보편적이다.
        • 예) 소프트를 100MB 로 제한 시, 하드를 110MB 로 지정해서 일정 용량을 초과해도 사용할 수 있도록 한다.
      • 하드로 지정한 값은 절대 초과할 수 없다.

 

관련 명령어

① quotacheck 

  • 디스크를 사용하고 있는 파일 시스템을 체크하여 quota 기록 파일(aquota.user, aquota.group 또는 aquota.group)을 가장 최근의 상태로 업데이트 시키는 명령
  • 처음 설정할 때난 사용자의 변경된 용량, 변경된 쿼터 등의 정보를 인식하지 못하는 경우에 사용한다.
  • quotacheck  /home 이 단독 파티션으로 분할된 경우에는 /home 을 체크하고, 분할되지 않았다면 /를 체크하면 된다.

 

사용법

# quotacheck [option] 디렉터리명

 

주요 옵션

주요 옵션 설명
-a 사용자와 그룹에 대한 쿼터를 체크함.
-m 읽기 전용 모드 등의 이유로 마운트를 하지 못할 경우에 강제로 체크할 때 사용함.
-f 쿼터 파일 초기 생성 시 인식하지 못하는 경우에 강제로 인식할 때 사용함.
-u 사용자 쿼터 파일을 체크할 때 사용하는 옵션 (기본 옵션)
-g 그룹 쿼터 파일을 체크할 때 사용하는 옵션
-c 기존의 생성된 쿼터 관련 파일을 읽지 않고 새롭게 초기화할 때 사용함.

 

사용 예

  • /home에 생성한 쿼터 파일을 체크함.
  • 파일의 손상 위험이 있으므로 quotaoff 상태에서 해야 함.
# quotacheck /home

 

  • quotacheck는 원칙적으로 해당 파티션을 quotaoff 한 뒤에 해야 되는데, -mf 옵션을 사용하면 quotaoff 하지 않아도 무조건 체크함.
# quotacheck -mf /home

 

  •  사용자 쿼터 파일과 그룹 쿼터 파일을 동시에 체크함.
# quotacheck -mf -u -g /home2

 

  • 생성된 쿼터 파일을 찾아 체크함.
# quotacheck -a

 

  • 쿼터 파일을 초기화함.
# quotacheck -cf /home

 

 edquota

  • 사용자나 그룹에 쿼터를 설정할 때 사용하는 명령
  • 실행시키면 vi 편집기가 실행된다.
  • 기본 단위 : KB
    • 10MB를 제한하려면 10000이라고 입력해야 한다.

 

사용법

# edquota [option]

 

주요 옵션

주요 옵션 설명
-u - 사용자에 대한 쿼터를 설정할 때 사용하는 옵션 (기본 옵션)
- --user
-g - 그룹에 대한 쿼터를 설정할 때 사용하는 옵션
- --group
-t - Soft Limit 를 초과한 후부터 적용되는 시간 제한(Grace Period)을 설정하는 옵션
- --edit-period
-p - 특정 사용자의 쿼터를 다른 사용자에게 동일한 설정으로 적용할 때 사용하는 옵션
- --prototype=name
-h - 명령어의 사용법 및 주요 옵션 정보를 간략히 출력함.
- --help

 

사용 예

  • starrykss이라는 사용자의 쿼터를 할당함.
  • 명령을 내리면 기본 편집기인 vi가 실행됨.
# edquota starrykss
Disk quotas for user starrykss (uid 500):
   Filesystem         blocks         soft        hard        inodes      soft    hard
    /dev/sda1           1200            0           0           166         0       0
  • Filesystem : Quota 가 설정되어 있는 파티션
  • blocks : 현재 사용 중인 용량 (KB)
  • soft
    • 보통의 경우 사용자가 사용할 수 있는 최대 용량 (KB)
    • 여기에 지정한 용량이 hard에 지정한 값보다 작게 설정하였다면 hard 용량 까지는 지정한 유예 기간(Grace Period) 동안은 초과할 수 있음.
    • 유예 기간 내에 soft에 지정한 용량 이하로 줄이지 않으면 파일 생성이 불가능함.
  • hard
    • 실제 사용자가 최대로 사용할 수 있는 용량 (KB)
    • soft는 초과하여 사용 가능하나, hard에 설정한 용량은 절대 초과할 수 없음.
  • inodes : 현재 사용 중인 I-node 수(파일이나 디렉터리의 개수)를 나타냄.
  • soft
    • 일반적으로 사용자에게 지정하는 inode 
    • 파일이나 디렉터리를 생성할 수 있는 개수
    • 유예 기간 적용 등은 blocks 항목과 같음.
  • hard
    • 절대 초과할 수 없는 inode 
    • 사용자가 생성할 수 있는 파일이나 디렉터리의 최대값

 

  • 명령을 내리면 vi 편집기가 실행되면서 다음과 같이 나타나는데, 날짜를 변경하면 됨.
# edquota -t
Grace period before enforcing soft limits for users:
Time units may be : days, hours, minutes, or seconds
   Filesystem         Block grace period          Inode grace period
    /dev/sda1               7 days                      7 days
  • Filesystem : Quota 가 설정되어 있는 파일 시스템
  • Block grace period : Block  soft 제한을 초과했을 경우의 유예 기간
  • Inode grace period : Inode  soft 제한을 초과했을 경우의 유예 기간

 

  • yuloje라는 사용자의 Quota 설정을 starrykss의 설정과 동일하게 만듦.
# edquota -p starrykss yuloje

 

③ quotaon/quotaoff

  • 쿼터 설정을 활성화/비활성화하는 명령

 

사용법

# quotaon [option] 디렉터리명
# quotaoff [option] 디렉터리명

 

주요 옵션

주요 옵션 설명
-u 사용자 쿼터를 활성화할 때 사용하는 옵션 (기본 옵션)
-g 그룹 쿼터를 활성화할 때 사용하는 옵션
-v 메시지를 자세히 출력함.

 

사용 예

  • /home의 쿼터를 시작함.
# quotaon /home

 

  • /home의 그룹 쿼터를 시작하면서 관련 정보를 자세히 출력함.
# quotaon -gv /home

 

  •  /home의 쿼터를 중지시킴.
# quotaoff /home

 

 repquota

  • 파일 시스템 단위로 쿼터 설정 정보를 출력 해주는 명령

 

사용법

# repquota [option] 디렉터리명

 

주요 옵션

옵션 설명
-a - 쿼터가 설정되어 있는 모든 파티션의 정보 출력
- 이 옵션을 사용하면 디렉터리명 지정이 필요 없음.
-u 사용자 쿼터 정보 출력 (기본 옵션)
-g 그룹 쿼터 정보 출력

 

사용 예

  • /home2 에 설정된 사용자 쿼터 정보 출력
# repquota  /home2

 

  • /home에 설정된 그룹 쿼터 정보 출력
# repquota -g /home

 

  • 설정된 쿼터 정보를 전부 출력
# repquota -a

 

 quota

  • 사용자나 그룹 단위로 쿼터 설정 정보를 출력 해주는 명령

 

사용법

$ quota

 

주요 옵션

옵션 설명
-u - 사용자 쿼터 정보 출력 (기본 옵션)
- --user
-g - 그룹 쿼터 정보 출력
- --group
-h -명령어의 사용법 및 주요 옵션 정보를 간략히 출력함.
- --help

 

사용 예

  • starrykss 사용자 자신의 쿼터 정보 출력
[starykss@www ~] $ quota

 

  • yuloje 사용자의 쿼터 설정 정보 출력
# quota yuloje

 

⑥ setquota

  • 쿼터를 설정하는 명령
  • vi 편집기를 이용하는 대신에 직접 명령행에서 설정 가능하다.

 

사용법

# setquota [option] 사용자명 block_soft block_hard inode_soft inode_hard 파일 시스템
# setquota -t block_grace inode_grace 파일 시스템

 

주요 옵션

옵션 설명
-u 사용자 쿼터를 설정할 때 사용 (기본 옵션)
-g 그룹 쿼터를 설정할 때 사용
-t 유예 기간(Grace Time)을 설정할 때 사용 (단위 : 초)

 

사용 예

  • yuloje 사용자의 용량 제한은 Soft 10MB, Hard 11MB로 설정하고, I-node에 대한 제한은 설정하지 않음.
# setquota -u yuloje 10000 11000 0 0 /home

 

  • 블록의 유예 기간은 하루(24시간)으로 설정하고, I-node는 8시간으로 설정함.
# setquota -t 76400 28800 /home

 

사용자 쿼터(Quota) 설정하기

 /etc/fstab 설정

  • /etc/fstab  4번째 필드에 사용자 쿼터 설정 옵션인 usrquota를 추가로 기입한다.
  • 만약 /home 파티션으로 분할되어 있으면 해당 영역에 설정하고, 분할되어 있지 않다면 / 에 설정함.
# cat /etc/fstab

 

 /home 영역을 다시 마운팅

# umount /home; mount -a

 

③ 적용 확인

# mount | grep /home
/dev/sda3 on /home type xfs (rw,realtime,seclabel,attr2,inode64,usrquota)

 

④ 사용자에 대한 쿼터 설정

  • alin 사용자의 소프트 용량 제한 100MB, 하드 용량 제한 110MB로 설정
# xfs_quota -x -c 'limit bsoft=100m bhard=110m alin' /home

 

⑤ 쿼터 설정 확인

# repquota /home

 

그룹 쿼터(Quota) 설정하기

 /etc/fstab 설정

  • /etc/fstab  4번째 필드에 그룹 쿼터 설정 옵션인 grpquota 를 추가로 기입함.
  • 만약 /home 파티션으로 분할되어 있으면 해당 영역에 설정하고, 분할되어 있지 않다면 / 에 설정함.
# cat /etc/fstab
UUID=de2b8b5c-d1c5-4813-906a-d1802d3a4298   /home   ext4    defaults, grpquota 0  0

 

 /home 영역을 다시 마운팅

# umount /home; mount -a

 

③ 적용 확인

# mount | grep /home
/dev/sda3 on /home type xfs (rw,realtime,seclabel,attr2,inode64,grpquota)

 

④ 그룹에 대한 쿼터 설정

  • terran 그룹에 속한 전체 사용자들의 디스크 용량 및 파일 개수를 제한함.
# xfs_quota -x -c 'limit -g bsoft=10g bhard=11g isoft=10000 ihard=11000 terran' /home

 

⑤ 쿼터 설정 확인

# repquota -g /home

 

문제 해결 전략

  • 사용자 쿼터 설정 방법, 그룹 쿼터 설정 방법에 대한 절차를 암기한다.
  • 디스크 쿼터 관련 명령어를 암기하고, man edquota 와 같이 man 명령어를 사용하여 메뉴얼을 확인하면서 문제를 해결한다.

 

문제 유형

① 사용자의 디스크 쿼터를 설정하는 과정에 대한 문제

가. 사용자에게 설정된 유예 기간(grace period)를 변경한다.
# (  edquota  ) (  -t  )

나. ihduser에 설정된 쿼터 용량을 kaituser에 동일하게 적용시킨다.
# (  edquota  ) (  -p ihduser -u kaituser  )

다. kaituser에 적용된 디스크 쿼터 정보를 확인한다.
# (  quota  ) kaituser
728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖