정리하는 공간
리눅스) 디스크 쿼터 설정 본문
디스크 쿼터 : 디스크 사용량을 제한 하는 것
- 하드디스크에서 사용자가 사용할 수 있는 파일의 전체 용량을 설정
- 사용자가 사용할 수 있는 총 파일 수를 설정
- hard limit는 사용자가 절대 넘을 수 없는 최대치를 명시한 값
- soft limit는 일정 시간 내에는 넘을 수 있는 한계 값
Ex) hard limit : 1G이고, soft limit : 700M 일 때, 700M를 넘어가면 시스템에서 경고를 준다. 또한, hard limit이 1G이기 때문에 디스크 용량이 900M가 사용될 때 200M 파일을 넣으려하면 실행 되지 않는다.
쿼터 설정을 하기 위해 알아두어야 할 문자열
- usrquota : 개별 사용자의 쿼터를 제한할 수 있는 속성
- grpquota : 개별 그룹의 쿼터를 제한할 수 있는 속성
이 문자열 들은 쿼터 설정을 할 때 /etc/fstab 파일에서 직접 입력해야 한다.
root(/) 디렉터리는 쿼터를 설정하지 않는다.
- 우선 루트 디렉터리는 운영체제가 동작중인데, 쿼터 설정을 하려면 리마운트를 해야하기 때문에 동작이 멈추거나 오류가 생길 수 있다. 응급복구 모드로 들어가서 설정을 해주면 root 디렉터리에 쿼터 설정이 가능하지만, 굳이 이런 번거로운 작업을 거쳐서까진 하지 않는다.
- 쿼터 설정은 일반 사용자들이 파일을 저장할 때 제한을 두기 위한 것이다. 여기서 일반 사용자들은 root 디렉터리에 파일을 저장하지 않기 때문에 굳이 root 디렉터리에 쿼터설정을 할 필요성이 없다.
쿼터 생성하기 (ext4)
[1단계]
하드디스크 를 부착하자
[2단계]
파티션을 생성하고, 파일 시스템은 ext4로 만든다. 디렉터리도 ext4를 만들어 마운트 까지 걸어주자
마운트까지 완료되었다면 df -hT 명령어로 하단에 마운트가 잘 걸려있는지 확인해본다.(나중 xfs를 위해 미리 만듬)
[3단계]
/etc/fstab 파일에서 재부팅 해도 마운트 값이 초기화 되지 않도록, 마운트 한 장치를 입력해준다. 입력시 디폴트 값 옆에 사용자, 그룹 중 원하는 값을 입력한다. (usrquota, grpquota)
[4단계]
/etc/fstab 파일에 설정값이 변경되었다면 리마운팅을 해야 그 값이 적용된다. 리마운팅을 하도록 하자
이때의 명령어는 mount -o remount /dev/sdb1
완료가 되었다면, mount | grep /ext4 로 마운트 된 장치 옆 괄호에 usrquota 가 생길 것이다.
[5단계]
/aquota.user (사용자 별로 쿼터 정보 값을 저장한 파일) 파일을 만들어줘야 한다. touch 명령어로 만들어 주는 것이 아니라 quotacheck 명령어로 만들 것이다.
quotachececk
쿼터 파일을 생성하고 확인 수정하기 위해 파일 시스템을 스캔한다.
옵션 (일반적으로 다 같이 사용한다. | |
-a | 전체 파일 시스템을 스캔 |
-u | 사용자 쿼터를 확인 |
-g | 그룹 쿼터 확인 |
-m | 파일 시스템 리마운트를 하지 않는다 |
-v | 명령 진행 상황을 상세 출력 |
이제 /ext4 디렉터리에 /aquota.user 파일을 만들어 줘야 한다.
여기서 lost + found 의 의미는 ext4 디스크가 마운트 걸려있어, 이 디스크 안의 파일이 오류가 생겼을 때, 덤프 복구 시스템에 복구되어 질 것이다. 이때 복구되어 질 임시 파일을 저장하는 곳이 저 곳이다.
quotacheck -ugvm /dev/sdb1 이후 aquota.user 파일이 생긴 것을 확인할 수 있다.
[6단계]
quotaon
쿼터 기능 활성화
옵션 (-uvg로 많이 사용한다) | |
-a | 전체 파일 시스템의 쿼터 기능 활성화 |
-u | 사용자 쿼터 활성화 |
-g | 그룹 쿼터 활성화 |
-v | 명령 진행 상황 상세 출력 |
명령어를 이용해 쿼터를 활성화 시켜준다. 현재 vi /etc/fstab 에서 userquota만 설정했기 때문에 user만 온.
Tip : 쿼터 활성화 끄는 명령어 quotaoff
[7단계]
edquota
쿼터를 설정한다.
옵션 | |
-u | 사용자 쿼터 설정 |
-g | 그룹 쿼터 설정 |
-p | 쿼터 설정 복사 |
그럼 edquota -u user1 으로 쿼터를 설정하면 vi 창이 뜬다.
여기서 user1의 쿼터라 1행에 뜨고 기본 설정값은 0으로 지정되어 있다. 각각 원하는 설정 값을 입력하고 저장 후 나와주자.
blacks : 현재 사용자가 디스크에 파일을 얼만큼 사용하고 있는지 보여준다.
soft : 넘을 수는 있지만 경고해주는 용량
hard : 사용자가 디스크에 파일 저장시 절 때 넘을 수 없는 용량 (KB 단위)
inodes : 사용자가 디스크에 생설할 파일 수를 제한하는 값
inodes(ihard) : 사용자가 생성할 파일 수를 제한 하는 값. 넘을 수 없다
isoft : 사용자가 생성할 파일 수를 제한하지만 경고하는 값. 넘을 수 있다.
grace period : hard limit 와 soft limit 갭 차.
quota user1
쿼터 정보 출력
-u : 사용자 쿼터 정보 / -g : 그룹 쿼터 정보 출력
아마 위의 명령어를 입력하면 위와 같이 나올텐데, ext4 디렉터리에 파일이 없기 때문이다. 파일을 하나 복사하자.
확인 되는 것을 볼 수 있다.
여기서 grac 는 위에서 말한 grace period 기간을 의미한다.
이 설정은 edquota -t 명령어를 입력하면 된다.
위 화면에서 설정하면 된다.
quota -p
쿼터 복사
quota -p user1 user2 : user2에 user1쿼터 정보를 복사한다.
복사 후 edquota user2 로들어가보면 user1 값들이 그대로 옮겨져 있다.
repquota
쿼터 정보를 요약해서 출력
repquota -a : 전체 파일 시스템의 쿼터 정보 출력
user2의 정보가 나오지 않는 것도 ext4파일에 정보가 없기 때문이다. 파일 넣으면 다시 보인다.
쿼터 생성하기 (xfs)
위에서 만들어 놓은 /dev/sdc1 에 쿼터를 설정할 것이다.
- uquota : 사용자 별로 쿼터 설정
- gquota : 그룹별로 쿼터 설정
- pquota : 프로젝트별로 쿼터 설정
Tip : ext4 는 userguota, grpquota 였지만 xfs는 다르다.
/etc/fstab 에서 장치를 입력해주자.
똑같이 리마운트를 걸어주자
똑같이 mount | grep /xfs 를 이용해서 입력이 되었는지 확인하지만 아무리 해도 되지 않는다. 재부팅한다.
확인 완료!
xfs_quota 명령어를 입력하면 쿼터를 설정할 수 있는 모드로 진입한다. 하지만 많은 기능이 없기 때문에
xfs_quota -x 를 사용해 전문가 모드로 들어간다. 더욱 많은 기능이 있다.
우선 path 를 입력해 위의 사진처럼 경로 값을 쿼터를 설정할 /xfs 파일 시스템으로 이동시킨다.
Tip : help를 누르면 다양한 정보들이 나오니까 보고 확인해보길.
모드 속에서 위에 처럼 입력을 해준다. -u는 사용자 쿼터를 의미한다. ext4와는 다르게 보다 편리하게 진행할 수 있다.
해당 쿼터의 정보값으 볼 때도, report -bi를 활용해서 자세히 볼 수 있다.
프로젝트 쿼터 설정 (xfs)
/xfs/proj1 /xfs/proj2 디렉터리를 생성한다.
프로젝트 이름 | soft | hard | isoft | ihard |
proj1 | 30m | 31m | 1000 | 1100 |
proj1 | 30m | 31m | 10000 | 1100 |
이 방법으로 프로젝트 쿼터를 설정할 것이다.
우선 프로젝트 쿼터를 성정하기 위해 /etx/fstab에서 디폴트값에 추가해준다.
똑같이 입력을 해주기 위해서 리마운팅을 해준다 (mount -o remount /dev/sdc1)
하지만 되지 않았기 때문에 재부팅을 한다.
입력된 것 확인.
프로젝트 쿼터를 설정하기 위해선
/etc/projects
/etc/projid
이 2개 파일이 필요하다. (파일은 따로 만들어서 vi로 편집하거나, vi로 처음부터 생성해도 괜찮다)
/etc/projid에는
프로젝트이름:아이디번호 를 입력해야한다.
프로젝트 이름은 위에서 정해 놓았듯이 proj1로 하고 아이디 번호는 1번으로 하겠다.
proj1:1 을 이 파일에 입력하면 된다.
/etc/projects에는
아이디번호:디렉터리 를 입력해야한다.
아이디번호는 1번으로하고, 디렉터리는 위에서 만들어놓은 /xfs/proj1로 입력 하겠다.
1:/xfs/proj1 을 이 파일에 입력하면 된다.
Tip : 위에서 서로 겹치는 아이디 번호가 보인다. 이는 프로젝트 이름과, 디렉터리를 아이디 번호 1번을 이용해 서로 매핑 시켜주기 위함이다. (아이디 번호가 다르면 x)
디렉터리 2개를 만들어 준다.
xfs_quota -x 로 들어가서 project -s proj1 /xfs 를 입력해주자 프로젝트 쿼터를 proj1이라는 이름으로 생성한 것이다.
Tip : 위 사진처럼 모드로 진입하기 싫다면 쉘에서 -c를 붙여 ' ' 안에 명령어를 입력하면 된다.
혹시나 계속해서 만들어지지 않는 경우 path 경로를 확인해본다.
프로젝트 쿼터에 제한을 거는 것도 위와 같이 입력해 주면 된다.
report -p /xfs report -p -i /xfs
설정된 쿼터의 정보를 확인할 수 있다.
path를 입력하면 지금까지 쿼터들이 어떻게 설정 되어 있는지 볼 수 있다.
df를 입력하면 용량을 확인할 수도 있다.
Tip : 그럼 프로젝트 설정은 언제할까?
루트 파일 시스템이 1G라고 가정해보자. 근데 사람들이 이 곳에 파일을 저장하면 하드 디스크 용량이 넘쳐나기 때문에 효율적이지 못하다. 이럴 때 공용폴더를 만들어 저장을 편리하게 해주기 위함이다.
즉, 프로젝트 설정은 공용폴더 같은 느낌
'리눅스 기초' 카테고리의 다른 글
리눅스) 파일 아카이브, 압축 (tar, gzip, bzip2) (0) | 2022.05.12 |
---|---|
리눅스) 패키지 (rpm, yum, dnf) (0) | 2022.05.12 |
리눅스) 파일 시스템 관리 (mount), 디스크 관리 (0) | 2022.05.12 |
리눅스 ) 파일 시스템 (0) | 2022.05.12 |
리눅스) 프로세스 관리-2(pgrep, kill, top, jobs, 포그라운드, 백그라운드) (0) | 2022.05.12 |