Linux 관리자-할당량 관리

CentOS 디스크 할당량은 둘 다 활성화 할 수 있습니다. 시스템 관리자에게 경고하고 디스크 용량이 초과되기 전에 사용자에 대한 추가 디스크 스토리지 액세스를 거부합니다. 디스크가 가득 차면 디스크에있는 항목에 따라 전체 시스템이 복구 될 때까지 갑자기 정지 될 수 있습니다.

CentOS Linux에서 할당량 관리를 활성화하는 것은 기본적으로 4 단계 프로세스입니다.

  • Step 1 − / etc / fstab에서 그룹 및 사용자에 대한 할당량 관리를 활성화합니다.

  • Step 2 − 파일 시스템을 다시 마운트합니다.

  • Step 3 − Quota 데이터베이스를 생성하고 디스크 사용량 테이블을 생성합니다.

  • Step 4 − 할당량 정책을 할당합니다.

/ etc / fstab에서 할당량 관리 활성화

먼저 / etc / fstab 파일을 백업하려고합니다.

[root@centosLocal centos]# cp -r /etc/fstab ./

이제 현재 작업 디렉토리에 알려진 작업 / etc / fstab 의 복사본이 있습니다.

# 
# /etc/fstab 
# Created by anaconda on Sat Dec 17 02:44:51 2016 
# 
# Accessible filesystems, by reference, are maintained under '/dev/disk' 
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
# 
/dev/mapper/cl-root        /         xfs     defaults                      0 0
UUID = 4b9a40bc-9480-4     /boot     xfs     defaults                      0 0

/dev/mapper/cl-home        /home     xfs     defaults,usrquota,grpquota    0 0

/dev/mapper/cl-swap        swap      swap    defaults                      0 0

볼륨 또는 레이블에 대한 / etc / fstab 의 옵션 섹션 에서 사용자 및 그룹에 할당량이 적용될 위치를 다음과 같이 변경했습니다 .

  • usrquota
  • grpquota

보시다시피, 우리는 xfs파일 시스템. xfs를 사용할 때 추가 수동 단계가 필요합니다./home/와 같은 디스크에 있습니다. 추가 조사에 따르면 커널 수준 마운트 옵션 인 noquota에 /가 설정되어 있습니다. 커널 부팅 옵션을 다시 구성해야합니다.

root@localhost rdc]# mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

[root@localhost rdc]#

XFS 파일 시스템에 대한 커널 부트 옵션 재구성

이 단계는 두 가지 조건에서만 필요합니다.

  • 디스크 / 파티션에서 할당량을 활성화 할 때 xfs 파일 시스템을 사용합니다.
  • 커널이 부팅시 noquota 매개 변수를 / etc / fstab에 전달하는 경우

Step 1 − / etc / default / grub을 백업합니다.

cp /etc/default/grub ~/

Step 2/ etc / default / grub 수정 .

다음은 기본 파일입니다.

GRUB_TIMEOUT=5 
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" 
GRUB_DEFAULT=saved 
GRUB_DISABLE_SUBMENU=true 
GRUB_TERMINAL_OUTPUT="console" 
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet" 
GRUB_DISABLE_RECOVERY="true"

우리는 다음 줄을 수정하고 싶습니다-

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"

...에

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv 
=cl/swap rhgb quiet rootflags=usrquota,grpquota"

Note− 이러한 변경 사항을 그대로 복사하는 것이 중요합니다. grub.cfg를 재구성 한 후 구성에 오류가 발생하면 시스템이 부팅되지 않습니다. 비 프로덕션 시스템에서 튜토리얼의이 부분을 시도하십시오.

Step 3 − 작업중인 grub.cfg 백업

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

grub.cfg 만들기

[root@localhost rdc]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ... 
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64 
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img 
Found linux image: /boot/vmlinuz-0-rescue-dbba7fa47f73457b96628ba8f3959bfd 
Found initrd image: /boot/initramfs-0-rescuedbba7fa47f73457b96628ba8f3959bfd.img 
done

[root@localhost rdc]#

재부팅

[root@localhost rdc]#reboot

모든 수정이 정확하다면 xfs 파일 시스템에 할당량을 추가 할 수있는 가용성이 없어야 합니다.

[rdc@localhost ~]$ mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
 
[rdc@localhost ~]$

grub을 통해 usrquotagrpquota 매개 변수를 전달했습니다 .

이제 다시 / etc / fstab 을 편집 하여 동일한 물리 디스크에 / home 을 포함 시키 십시오.

/dev/mapper/cl-root/xfs
defaults,usrquota,grpquota        0 0

이제 할당량 데이터베이스를 활성화 해 보겠습니다.

[root@localhost rdc]# quotacheck -acfvugM

할당량이 활성화되어 있는지 확인하십시오.

[root@localhost rdc]# quotaon -ap 
group quota on / (/dev/mapper/cl-root) is on 
user quota on / (/dev/mapper/cl-root) is on 
group quota on /home (/dev/mapper/cl-home) is on 
user quota on /home (/dev/mapper/cl-home) is on 
[root@localhost rdc]#

파일 시스템 다시 마운트

파티션 또는 디스크가 활성 부팅 된 파티션과 분리되어있는 경우 재부팅하지 않고 다시 마운트 할 수 있습니다. 루트 디렉토리 /에서 부팅 된 디스크 / 파티션에 할당량이 구성된 경우 운영 체제를 재부팅해야 할 수 있습니다. 강제로 다시 마운트하고 변경 사항을 적용하면 파일 시스템을 다시 마운트해야하는 필요성이 다를 수 있습니다.

[rdc@localhost ~]$ df 
Filesystem              1K-blocks     Used      Available      Use%     Mounted on
/dev/mapper/cl-root     22447404      4081860   18365544       19%         /
devtmpfs                903448        0         903448         0%          /dev
tmpfs                   919308        100       919208         1%          /dev/shm
tmpfs                   919308        9180      910128         1%          /run
tmpfs                   919308        0         919308         0%          /sys/fs/cgroup
/dev/sda2               1268736       176612    1092124        14%         /boot
/dev/mapper/cl-var      4872192       158024    4714168        4%          /var
/dev/mapper/cl-home     18475008      37284     18437724       1%          /home
tmpfs                   183864        8         183856         1%          /run/user/1000

[rdc@localhost ~]$

보시다시피 LVM 볼륨이 사용 중입니다. 따라서 재부팅하는 것은 간단합니다. 그러면 / home 을 다시 마운트 하고 / etc / fstab 구성 변경 사항을 활성 구성으로 로드합니다 .

할당량 데이터베이스 파일 생성

CentOS는 이제 / home에서 디스크 할당량으로 작업 할 수 있습니다. 전체 할당량 지원을 활성화하려면 다음을 실행해야합니다.quotacheck 명령.

quotacheck는 두 개의 파일을 생성합니다-

  • aquota.user
  • aquota.group

할당량이 활성화 된 디스크 / 파티션에 대한 할당량 정보를 저장하는 데 사용됩니다.

다음은 일반적인 할당량 검사 스위치입니다.

스위치 동작
-유 사용자 할당량 확인
-지 그룹 할당량 확인
-씨 enable 할당량을 사용하여 각 파일 시스템에 할당량을 활성화해야합니다.
-V 자세한 출력을 표시합니다.

사용자 당 할당량 제한 추가

이를 위해 edquota 명령과 사용자 이름을 사용합니다.

[root@localhost rdc]# edquota centos

Disk quotas for user centos (uid 1000):  
Filesystem                   blocks       soft       hard     inodes     soft     hard 
/dev/mapper/cl-root              12          0          0         13        0        0  
/dev/mapper/cl-home            4084          0          0        140        0        0

각 열을 살펴 보겠습니다.

  • Filesystem − 적용되는 사용자의 파일 시스템 할당량입니다.

  • blocks − 사용자가 현재 각 파일 시스템에서 사용중인 블록 수

  • soft− 소프트 제한에 대한 블록을 설정합니다. 소프트 한도를 사용하면 사용자가 주어진 기간 동안 할당량을 유지할 수 있습니다.

  • hard− 하드 제한에 대한 블록을 설정합니다. 하드 한도는 총 허용 할당량입니다.

  • inodes − 사용자가 현재 사용중인 inode 수

  • soft − 소프트 inode 제한

  • hard − 하드 inode 제한

사용자로서 현재 할당량을 확인하려면-

[centos@localhost ~]$ quota 
Disk quotas for user centos (uid 1000):  
Filesystem             blocks     quota      limit grace    files   quota   limit   grace 
/dev/mapper/cl-home    6052604    56123456   61234568       475     0       0       [centos@localhost ~]$

다음은 하드 할당량 제한을 초과했을 때 사용자에게 제공되는 오류입니다.

[centos@localhost Downloads]$ cp CentOS-7-x86_64-LiveKDE-1611.iso.part ../Desktop/

cp: cannot create regular file ‘../Desktop/CentOS-7-x86_64-LiveKDE-
1611.iso.part’: Disk quota exceeded

[centos@localhost Downloads]$

보시다시피이 사용자의 디스크 할당량 내에 거의 있습니다. 소프트 제한 경고를 설정해 보겠습니다. 이렇게하면 할당량 제한이 만료되기 전에 사용자에게 사전 알림이 제공됩니다. 경험을 통해 최종 사용자가 업무에 들어 오면 불만을 받게되며 실제로 업무에 들어가려면 45 분 동안 파일을 정리해야합니다.

관리자는 다음을 통해 할당량 사용량을 확인할 수 있습니다. repquota 명령.

[root@localhost Downloads]# repquota  /home  
                    Block limits                            File limits  
User            used     soft     hard     grace       used     soft     hard     grace 
----------------------------------------------------------------------------------------
root      --       0         0        0                   3        0        0        
centos    -+ 6189824  56123456 61234568                 541      520      540      6days 

[root@localhost Downloads]#

보시다시피 사용자 centos는 하드 블록 할당량을 초과했으며 더 이상 / home의 디스크 공간을 사용할 수 없습니다 .

-+ 파일 시스템에서 하드 할당량이 초과되었음을 나타냅니다.

할당량을 계획 할 때 약간의 계산이 필요합니다. 관리자가 알아야 할 사항은 시스템에 몇 명의 사용자가 있습니까? 사용자 / 그룹 사이에 할당 할 여유 공간은 얼마나됩니까? 파일 시스템에서 블록을 구성하는 바이트는 몇 개입니까?

사용 가능한 디스크 공간과 관련된 블록으로 할당량을 정의합니다. 최악의 경우에 남아있는 여유 공간의 "안전한"버퍼를 파일 시스템에 남겨 두는 것이 좋습니다. 모든 할당량이 동시에 초과됩니다. 특히 시스템에서 로그를 작성하는 데 사용하는 파티션에 있습니다.