IT/COA(OpenStack)

Quota와 시스템 자동화

알콩달콩아빠 2022. 5. 19. 19:15
728x90
반응형

안녕하세요

 

뚱보 프로그램입니다.

 

디스크 공간 할당에 활용성입니다.

 

 

Quota와 시스템 자동화

디스크 quota 설정

사용자들이 디스크 공간을 제한된 이상으로 사용하거나 시스템상에서 무제한적으로 디스크 공간을 낭비하지 않도록 한다. 각 사용자에게 일정한 디스크 공간을 할당하여 시스템의 성능을 향상시키고 효율적으로 관리할 수 있다.

 

현재는 ext2 파일시스템에사만 quota를 지원

 

quota는 디스크를 두가지로 제한

1) 사용자가 가질 수 있는 inode 

2) 디스크 블록의 수

3) 소프트와 하드 limits로 설정

 

1. 기본 설정 - 사용자별 디스크 할당량 지정

[root @edu00 linux]#useradd linux

[root @edu00 linux]#passwd linux

[root @edu00 linux]# vi /etc/fstab

--------------------------------------

/dev/hda8           /home   ext2       defaults,usrquota(grpquota) 1 2

--------------------------------------

[root @edu00 linux]#mount -o remount /home

혹은 시스템을 재부팅한다.

[root @edu00 linux]#touch /home/quota.user

현재는 빈 파일이지만 quotacheck를 하여 업데이트하면 Database Binary File로 변한다.

 

[root @edu00 linux]#chmod 600 /home/quota.user

[root @edu00 linux]#ls -l /home/quota*

[root @edu00 linux]#quotacheck /home

반드시 quotaoff /home 한 후에 하거나  시스템 down시에 한다.

 

[root @edu00 linux]#quotaon /home or quotaon -a

/etc/rc.d/rc.sysinit에 설정이 포함되어 있다.

 

[root @edu00 linux]#edquota -t

grace period를 설정한다.

----------------------------------

Time units may be: days, hours, minutes, or seconds

Grace period before enforcing soft limits for users:

/dev/hda8:block grace period: 7 days, file grace period: 0 days

---------------------------------------

[root @edu00 linux]#edquota (-u) linux

---------------------------------------

Edit block and inode quota for user linux:

Device /dev/hda8 (/home):

Used 7070KB, limits: soft=10240 hard=15360 

: soft limit 10M(10240KB), hard limit 15M(15360KB)

Used 54 inodes, limits: soft=1000 hard=1500

: soft limit 1000, hard limit 1500)

 

[root @edu00 linux]#quota (-v) linux

[root @edu00 linux]#telnet 0

login:linux

Password:

[linux @edu00 linux]$cp -R /usr/share .

[linux @edu00 linux]$du -sh .

[linux @edu00 linux]$exit

[root @edu00 linux]#quota -v

[root @edu00 linux]#quota -q

 

[root @edu00 linux]#edquota -p linux (-u) test wind

: linux에 대한 설정을 test, wind에도 적용

[root @edu00 linux]#quota (-v) wind

[root @edu00 linux]#repquota -a

[root @edu00 linux]#repquota /home

[root @edu00 linux]#quotaoff -a

[root @edu00 linux]#quotacheck -a

 

2. 그룹별 디스크 할당량 지정

서버에 프로젝트를 위한 공간을 할당해 주거나, 각 부서별로 공간을 나누어 주고자 할 경우에 그룹별로 디스크 할당량을 정한다.

[root @edu00 linux]#mkdir /home/ICLUB

[root @edu00 linux]#chgrp ICLUB /home/ICLUB

[root @edu00 linux]#chmod 770 /home/ICLUB

[root @edu00 linux]#ls -ld /home/ICLUB

[root @edu00 linux]#vi /etc/fstab

------------------------------------

/dev/hda8           /home   ext2       defaults,usrquota,grpquota 1 2

------------------------------------

[root @edu00 linux]#touch /home/quota.group

[root @edu00 linux]#chmod 600 /home/quota.group

[root @edu00 linux]#ls -l /home/quota*

[root @edu00 linux]#reboot

[root @edu00 linux]#edquota -g -t

Time units may be: days, hours, minutes, or seconds

Grace period before enforcing soft limits for groups:

/dev/hda8:block grace period: 7 days, file grace period: 0 days

 

[root @edu00 linux]#edquota -g ICLUB

Quotas for group ICLUB:

/dev/hda8: blocks in use:0, limits (soft = 12000, hard = 13000)

inodes in use:0, limits ( soft = 0, hard = 0)

 

[root @edu00 linux]#quotaon /home

[root @edu00 linux]#edquota -v -g ICLUB

[root @edu00 linux]#telnet 0

login:open

Password:

[open @edu00 open]$groups

[open @edu00 open]$newgrp ICLUB

[open @edu00 open]$groups

[open @edu00 open]$cd /home/ICLUB

[open @edu00 open]$cp -R /usr/share .

[open @edu00 open]$du -sh

[open @edu00 open]$exit

[root @edu00 linux]#quota -v -g ICLUB

[root @edu00 linux]#quota -q -g ICLUB

[root @edu00 linux]#repquota -a

 

시스템 자동화

1. cron

반복적인 명령을 수행하게 함으로써 시스템을 자동화할 수 있는 유틸리티가 cron이다.

1] 사용형식

#crontab –l : crontable에 등록되어있는 내용을 출력한다.

#crontab –r : crontable의 내용을 삭제한다.

#crontab –e : crontable의 내용을 수정(vi 에디터를 이용하여 /tmp에 임시파일 생성)

#crontab cronfile : cronfile의 내용을 cron table에 등록

 

2] cron table 형식

cron table은 총 6가지 field로 이루어져 있다.

각 필드는 하나이상의 space로 구분되며 하나의 배치작업은 한 라인에 정의된다.

첫 필드에 #이 나타나면 그 라인은 주석처리된다.

 

매시마다 시스템의 부하량(load average) /tmp/load.log라는 파일에 저장하기 위해서 다음을 설정한다.

시스템의 부하량 점검은 uptime 명령으로 확인할 수 있다.

 

cron table의 형식은 다음을 따른다.

minute hour day month week command

 

0 * * * * uptime >> /tmp/load.log

 

다음을 보자

1 2 3 4 5 uptime >> /tmp/load.log

위의 cron table 4 3일 금(5)요일 02 01분에 uptime >> /tmp/load.log라는 명령을 실행하라는 의미이다.

 

다음은 uptime >> /tmp/load.log 명령을 linux00이라는 사용자가 실행시키기를 원한다면

0 13 13 * 5 su – linux00 –c “uptime >> /tmp/load.log”

 crontable command 필드에서 su 명령을 사용하여 linux00이라는 사용자가 사용하게 한다. –c 옵션은 su 명령어에 따르는 옵션인데, -c 옵션 뒤에는 command가 나온다.

 

 

3] cron table 관련 디렉토리

/var/spool/cron

사용자가 crontab cronfile 명령을 사용하든, crontab –e 명령을 사용하든 시스템은 실제 cron table의 내용을 /var/spool/cron 디렉토리에 사용자 이름으로 복사하여 관리한다.

즉 명령행에서 crontab –e 라는 명령을 사용하면 /var/spool/cron 디렉토리내의 파일을 /tmp 디렉토리에 복사하여 임시로 사용한 후, 내부적으로 crontab 명령을 실행하는 것이다. 따라서 /var/spool/cron 디렉토리내의 파일을 편집만 한다고 해서 cron table이 변경되는 것은 아니다. crontab이라는 명령어로 해당 파일을 실행해야 한다. , /var/spool/cron 디렉토리내의 파일을 직접 수정하는 것은 바람직하지 않다.

 

4] cron 작업 제어

cron.allow cron.deny

/etc 디렉토리에 cron.allow 파일과 cron.deny 파일을 만들어 cron 작업을 허용할 사용자와 허용하지 않을 사용자들을 등록시킬 수 있다.

 

 

2. at

원하는 시간에 한번만 명령을 수행하게 한다.

1] 사용 형식

#at hour:min –f 명령어

 

2] 예제

#at 13:10

>date > /dev/console

>ctrl+d

#

 

at 명령은 수행결과를 메일로 전송한다.

또한 midnight, noon, teatime 등의 시간 표현을 사용할 수 있다.

 

3] 관련 디렉토리

/var/spool/at 디렉토리에 at 명령을 통하여 설정한 작업이 저장이 되며 현재 spool에 있는 at 작업을 보고자 한다면

#atq

 

설정된 작업을 제거하고자 할 경우에는

#atrm

 

4] at 작업 제어

 

/etc/at.allow 파일과 /etc/at.deny 파일을 만들어 at 명령을 사용자별로 지정할 수 있다.

728x90
반응형

'IT > COA(OpenStack)' 카테고리의 다른 글

ansible for openstack Health Check(tower)  (0) 2022.04.21
Ansible Tower inventory import  (0) 2022.04.21
Ansible Tower License  (0) 2022.04.21
Tower Install  (0) 2022.04.21
ngix install  (0) 2022.04.21