우클릭방지

글 목록

2015년 4월 30일 목요일

리눅스 Quota 설정하기

리눅스 시스템에 삼바(samba)를 구축할 필요가 생겼습니다.
구축하는 김에 사용자 계정별 개인 디렉토리를 부여하고.. 개인별로 사용량 제한을 걸어 운영을 하려고 합니다. 물론 팀별 공유 디렉토리가 별도로 존재하게 할것이고.. 마찬가지로 팀별로도 사용량을 제한할 계획입니다.

다음과 같이.....
  1. 계정별(사용자별) 50GB씩 할당.
  2. 그룹별(팀별) 200GB씩 할당.

이렇게 계정별, 그룹별 사용하는 용량을 제한하려면 리눅스 Quota 기능을 사용해야 합니다.
사용하기 위해서는 먼저 quota 를 설치해야 하겠지요...

yum install quota

로 크게 어렵지 않게 설치가 가능합니다.
설치가 끝나면, 용량 제한을 둘 파트션을 선택해야 하는데요...

일단, 저는 사용자별 디렉토리는 /home 으로 하고... 
팀별 디렉토리는 /Team 으로 하였습니다.
(* 리눅스 설치시 하드디스크의 대부분을 /home에 할당하였고, 디스크 하나를 추가하여 /team으로 마운트를 하였습니다..) 

삼바의 설정은 여기서는 논하지 않겠습니다.

Quota 설정을 다음과 같이 해보도록 합니다.

Quota 기능을 사용하기 위한 환경 설정


  1. vi /etc/fstab 을 열고.. 다음과 같이 usrquota, grpquota 를 추가해 줍니다.
    (* usrquota는 사용자별 용량제한, grpquota는 그룹별 용량제한을 의미합니다.)
  2. mount -o remount /home
    mount -o remount /team
    으로 수정해 놓은 파티션을 다시 마운트 합니다. 
  3. mount 명령어로 올바르게 해당 파티션에 quota 를 사용할 수 있게 되었는지 확인합니다.




Quota 정책 설정
  1. quotacheck -avug
    를 실행하여 해당 파티션에 aquota,user , aquota.group 을 생성합니다.
  2. quotaon -auvg
    를 실행하여 quota 기능을 활성화합니다.
  3. edquota -u [사용자 계정]
    을 실행하여 해당 사용자의 용량 제한 정책을 설정합니다.
    edquota 명령어를 수행하면, vi 편집기 형태로 위와 같은 화면이 나오는데..
    blocks, soft, hard 가 한세트이고,
    inodes,soft,hard 가 한세트입니다.
    blocks 쪽은 KB,MB,GB 와 같이 용량을 제한할 때 사용하는것이고,
    inodes 쪽은 파일의 개수를 제한할 때 사용하는 것입니다.
    (* 위 예제는 tony의 계정에게 50GB 를 제한하려는 정책을 설정한 것입니다.)
  4. edquota -g [그룹 명]
    을 실행하여 해당 그룹의 용량 제한 정책을 설정합니다.
    설정법은 같습니다.
  5. 사용자별 용량 제한 정책은 동일할 경우 다음과 같이 특정 사용자의 정책을 copy 하여 적용할 수 있습니다.
    edquota -p tony user1 user2 user3
Quota 기능 활성화
  1. quotaon -avug 로 quota 기능을 켭니다.
  2. repquota -au  -> 사용자별 사용현황
    repquota -ag  -> 그룹별 사용현황
    를 이용하여 현재의 quota 사용량을 확인합니다.
Quota 사용현황 주기적으로 업데이트 시키기
  1. 다음의 내용을 포함한 쉘스크립트를 하나 생성한 후 cron에 등록하여 주기별로 실행되도록 합니다.
    (* 주기적으로 사용현황을 업데이트 하기 위함)
    #!/bin/bash

    /sbin/quotaoff -auvg
    /sbin/quotacheck -auvg
    /sbin/quotaon -auvg
  2. cron 등록합니다.
    (* 2시간마다 quotacheck.sh 를 실행되도록 함)
    crontab -e
    00 */2 * * * /root/quotacheck.sh
=== 끝 ===

댓글 없음:

댓글 쓰기