6장. 디스크 관리와 사용자별 공간 할당 (11) - 사용자별 공간 할당 (쿼터)

728x90
반응형

출처 : https://www.youtube.com/watch?v=wmoZy1_x9Xo&list=PLVsNizTWUw7FqN2gq79Cb3R6qkS7mqOJk&index=44

 

쿼터의 개념

  • 쿼터란 파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량과 갯수를 제한하는 것이다.
  • 일반 사용자들이 사용하는 파일 시스템은 "/(root)"로 지정하는 것보다 별도의 파일 시스템을 지정해 지정한 부분만 사용하도록 하는 편이 좋다.
  • 일반 사용자가 "/" 파일 시스템을 사용할 수 없으므로 시스템과 관련된 문제가 발생할 소지가 줄어든다.
  • "/" 파일 시스템을 많은 사용자가 동시에 사용하면, 서버를 운영하면서 디스크를 읽고 쓰는 작업과 일반 사용자가 디스크를 읽고 쓰는 작업이 동시에 발생하므로 전반적으로 시스템의 성능이 저하될 수 있는데, 쿼터를 사용해 이러한 사태를 방지할 수 있다.

 

쿼터 실습

 

실습 목표

  • 사용자를 만들고, 해당 사용자에게 제한된 공간을 할당한다.
  • 쿼터의 설정 및 작동에 대해서 익힌다.

 

실습

 

  • /etc/fstab을 수정
  • 재부팅 또는 리마운팅
  • 쿼터 DB 생성
  • 개인별 쿼터 설정

 

server 가상 머신을 설치 상태로 초기화한다. 초기화 방법은 아래 링크 참고.

 

Snapshot을 활용한 가상머신 초기화

출처 : https://www.youtube.com/watch?v=m7yJ7xyfSsI 해당 실습을 진행하기에 앞서 VMware player는 완전히 종료되어있어야 한다. VMware workstation을 실행한다. File -> Open 메뉴를 클릭한 다음 우리가 초기화시킬 가

zangwoo.tistory.com

 

 

Edit virtual machine settings에서 10GB SCSI 하드 디스크를 하나 장착한다. 이 하드 디스크를 쿼터용으로 사용할 것이다.

 

가상머신을 부팅하고, root 사용자로 접속한다.

 

다음 명령어들을 입력해 /dev/sdb1의 파티션을 생성하고 포맷한 후, /userHome 디렉토리에 마운트한다.

fdisk /dev/sdb
Command : n
Select : p
Partition number : 1
First cylinder : Enter
Last cylinder : Enter
Command : p
Command : w

mkfs.ext4 /dev/sdb1
mkdir /userHome
mount /dev/sdb1 /userHome

 

 

재부팅해도 인식되도록 gedit /etc/fstab 파일을 열고 가장 아래쪽에 다음 내용을 추가한다.

/dev/sdb1	/userHome	ext4	defaults	0	0

 

 

 

다음 명령을 입력해 쿼터 실습을 할 사용자 zang와 woo를 만들고 암호를 지정한다.

useradd -d /userHome/zang zang
useradd -d /userHome/woo woo
passwd zang
passwd woo

 

 

/etc/fstab 파일을 편집해 재부팅이 되어도 /dev/sdb1 디렉토리를 쿼터용으로 자동 마운트되도록 설정한다. 우리가 위에서 설정한 /dev/sdb1의 defaults 부분을 defaults,usrjquota=aquota.user,jqfmt=vfsv0 로 변경한다.

/dev/sdb1	/userHome	ext4	defaults,usrjquota=aquota.user,jqfmt=vfsv0	0	0

 

다음 명령어를 입력하면 재부팅을 하지 않아도 마운트를 할 수 있다. (그냥 재부팅해도 괜찮다.)

mount --options remount /userHome

 

 

다시 mount를 입력하면 /dev/sdb1이 쿼터용으로 마운트 된 것을 확인할 수 있다.

 

 

다음 명령을 입력해 쿼터 DB를 생성한다.

cd /userHome
quotaoff -avug -> 쿼터를 종료
quotacheck -augmn -> 파일 시스템의 쿼터 관련 사항을 체크
rm -rf aquota.* -> 생성한 쿼터 관련 파일을 삭제
quotacheck -augmn -> 파일 시스템의 쿼터 관련 사항을 체크
touch aquota.user aquota.group -> 쿼터 관련 파일을 생성
chmod 600 aquota.* -> 보안을 위해 소유자(root) 외에는 접근 금지 설정
quotacheck -augmn -> 파일 시스템의 쿼터 관련 사항을 체크
quotaon -avug -> 설정한 쿼터 시작

 

 

쿼터 그룹과 사용자가 잘 생성되었다.

 

 

첫번째 사용자에게 30MB를 할당해보자. edquota -u 사용자이름 을 입력하면 vi 에디터로 사용자별 할당량을 편집할 수 있다.

 

blcoks 부분의 soft에는 30MB(KB 단위로 입력되므로 30720KB를 작성), hard에는 40MB(40960MB)를 입력한다.

 

입력하고 ESC를 누른 다음 :wq 를 입력해서 저장하고 vi 에디터를 나간다.

 

 

첫번째 사용자로 접속한 후 파일을 몇 개 복사해보자.

 

대략 10.6MB의 파일을 하나 복사해봤을 때, 3개부터는 할당된 용량인 30MB를 넘으므로 에러가 발생하지만, Hard는 40MB까지 허용하므로 일단 복사는 된다(Hard 용량 만큼은 일시적으로 저장이 되지만 시간이 지나면 사라진다. 즉, 일시적으로 soft를 넘어도 저장시켜주는 것).

4개부터는 하드 한도를 초과해 더 이상 저장할 수 없다. test4를 보면 하드 한도까지 사용할 수 있는 남은 용량만큼만 저장된다. 즉, test4는 정상적인 파일이 아니다.

 

 

한번 더 복사하면 복사된 파일의 크기는 0인 것을 볼 수 있다.

 

 

quota 명령을 통해 현재 자신에게 할당된 디스크 용량을 확인할 수 있다.

 

blocks가 현재 사용자가 사용 중인 디스크 공간이고, quota가 soft, limit가 hard를 의미한다. grace는 soft를 넘어선 용량이 어느 시간동안 유지되는가를 나타낸다. 즉 6일 뒤에는 초과한 용량 10MB는 사라지게 된다.

 

exit 명령을 입력해 다시 root 사용자로 돌아온다.

 

 

Home 디렉토리로 돌아와서 repquota /userHome 명령을 입력하면 모든 사용자의 디스크 공간을 확인할 수 있다.

 

 

다음 명령어를 입력하면 첫 번째 사용자에게 적용된 사항을 다른 사용자에게 동일하게 적용할 수 있다.

edquota -p 기준사용자 대상사용자

 

repquota /userHome 명령을 입력해서 다시 확인해보면 woo 사용자도 zang 사용자와 동일하게 soft 30MB, hard 40MB가 할당된 것을 확인할 수 있다.

 

 

728x90
반응형