728x90
728x170
디스크 쿼터(Disk Quota)
디스크 쿼터(Quota)의 개요
- 리눅스 시스템은 기본적으로 사용자의 용량을 제한하지 않아서, 특정 사용자가 디스크에 남아 있는 용량을 모두 사용할 수 있다.
- 따라서 사용자가 많은 서버의 경우 사용자의 디스크 사용량 제한이 필요한데, 이러한 제한을 디스크 쿼터(Disk Quota)라고 한다.
- 리눅스에서 디스크 쿼터를 이용하여 다음을 제한할 수 있다.
- 사용자 및 그룹의 디스크 사용량
- 생성할 수 있는 파일의 개수 (I-node의 개수)
- CentOS 7 버전에는 XFS 파일 시스템을 사용하는데, 추가적으로 특정 디렉터리(프로젝트) 단위로도 제한이 가능하다.
- 제한 값 설정과 관련된 항목의 구분
- 소프트(Soft)
- 보통 사용자에게 공지된 제한 용량이라고 보면 된다.
- 만약 특정 사용자의 디스크 사용량을 100MB 로 제한할 경우, 소프트 항목 값으로 지정하면 된다.
- 하드(Hard)
- 실제 사용자가 최대로 사용할 수 있는 값이라고 보면 된다.
- 보통 소프트 항목 값보다 좀 더 설정하는 것이 보편적이다.
- 예) 소프트를 100MB 로 제한 시, 하드를 110MB 로 지정해서 일정 용량을 초과해도 사용할 수 있도록 한다.
- 하드로 지정한 값은 절대 초과할 수 없다.
- 소프트(Soft)
관련 명령어
① 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
그리드형(광고전용)
'Certificate > Linux Master' 카테고리의 다른 글
[리눅스마스터 1급 실기] rpm (0) | 2022.05.11 |
---|---|
[리눅스마스터 실기] 압축 유틸리티 정리 (tar, compress, gzip, bzip2, xz, zip, gcc) (0) | 2022.05.11 |
[리눅스마스터 1급 실기] 스왑(Swap) (0) | 2022.05.10 |
[리눅스마스터 1급 실기] 모듈 (modules.dep, depmod) (0) | 2022.05.10 |
[리눅스마스터 1급 실기] 디스크 관련 정보 (UUID, blkid) (0) | 2022.05.10 |
[리눅스마스터 1급 실기] 텔넷(telnet) (0) | 2022.05.10 |
[리눅스마스터 1급 실기] 프록시(Proxy) 서버 관리 (squid) (0) | 2022.05.10 |
[리눅스마스터 1급 실기] 커널 컴파일 (0) | 2022.05.10 |