Amministratore Linux - Gestione quote

Le quote disco di CentOS possono essere abilitate entrambe; avvisando l'amministratore di sistema e negando a un utente un ulteriore accesso alla memoria del disco prima che la capacità del disco venga superata. Quando un disco è pieno, a seconda di ciò che risiede sul disco, un intero sistema può arrestarsi bruscamente fino al ripristino.

Abilitare la gestione delle quote in CentOS Linux è fondamentalmente un processo in 4 passaggi:

  • Step 1 - Abilita la gestione delle quote per gruppi e utenti in / etc / fstab.

  • Step 2 - Rimonta il filesystem.

  • Step 3 - Crea database Quota e genera una tabella di utilizzo del disco.

  • Step 4 - Assegna criteri di quota.

Abilita la gestione delle quote in / etc / fstab

Innanzitutto, vogliamo eseguire il backup del nostro file / etc / fstab -

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

Ora abbiamo una copia del nostro lavoro noto / etc / fstab nella directory di lavoro corrente.

# 
# /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

Sono state apportate le seguenti modifiche nella sezione delle opzioni di / etc / fstab per il volume o l'etichetta in cui devono essere applicate le quote per utenti e gruppi.

  • usrquota
  • grpquota

Come puoi vedere, stiamo usando il xfsfilesystem. Quando si usa xfs ci sono passaggi manuali aggiuntivi coinvolti./homesi trova sullo stesso disco di /. Ulteriori indagini mostrano / è impostato su noquota , che è un'opzione di montaggio a livello di kernel. Dobbiamo riconfigurare le nostre opzioni di avvio del kernel.

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

[root@localhost rdc]#

Riconfigurazione delle opzioni di avvio del kernel per i file system XFS

Questo passaggio è necessario solo in due condizioni:

  • Quando il disco / partizione su cui stiamo abilitando le quote, utilizza il file system xfs
  • Quando il kernel passa il parametro noquota a / etc / fstab al momento dell'avvio

Step 1 - Fai un backup di / etc / default / grub.

cp /etc/default/grub ~/

Step 2- Modifica / etc / default / grub .

Ecco il file predefinito.

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"

Vogliamo modificare la seguente riga -

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

per

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

Note- È importante che copiamo queste modifiche alla lettera. Dopo aver riconfigurato grub.cfg, il nostro sistema non si avvierà se sono stati commessi errori nella configurazione. Per favore, prova questa parte del tutorial su un sistema non di produzione.

Step 3 - Esegui il backup del tuo grub.cfg funzionante

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

Crea un nuovo 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]#

Riavvia

[root@localhost rdc]#reboot

Se tutte le modifiche fossero precise, non dovremmo avere la disponibilità per aggiungere quote al file system xfs .

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

Abbiamo passato i parametri usrquota e grpquota tramite grub.

Ora, modifica di nuovo / etc / fstab per includere / since / home sullo stesso disco fisico.

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

Ora abilitiamo i database delle quote.

[root@localhost rdc]# quotacheck -acfvugM

Assicurati che le quote siano abilitate.

[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]#

Rimontare il file system

Se la partizione o il disco è separato dalla partizione avviata attivamente, è possibile rimontarlo senza riavviare. Se la quota è stata configurata su un disco / partizione avviata nella directory principale /, potrebbe essere necessario riavviare il sistema operativo. Forzando il rimontaggio e applicando le modifiche, la necessità di rimontare il filesystem può variare.

[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 ~]$

Come possiamo vedere, i volumi LVM sono in uso. Quindi è semplice riavviare. Questo rimonterà / home e caricherà le modifiche alla configurazione / etc / fstab nella configurazione attiva.

Create Quota Database Files

CentOS is now capable of working with disk quotas on /home. To enable full quota supprt, we must run the quotacheck command.

quotacheck will create two files −

  • aquota.user
  • aquota.group

These are used to store quota information for the quota enabled disks/partitions.

Following are the common quotacheck switches.

Switch Action
-u Checks for user quotas
-g Checks for group quotas
-c Quotas should be enabled for each file system with enables quotas
-v Displays verbose output

Add Quota Limits Per User

For this, we will use the edquota command, followed by the username −

[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

Let's look at each column.

  • Filesystem − It is the filesystem quotas for the user applied to

  • blocks − How many blocks the user is currently using on each filesystem

  • soft − Set blocks for a soft limit. Soft limit allows the user to carry quota for a given time period

  • hard − Set blocks for a hard limit. Hard limit is total allowable quota

  • inodes − How many inodes the user is currently using

  • soft − Soft inode limit

  • hard − Hard inode limit

To check our current quota as a user −

[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 ~]$

Following is an error given to a user when the hard quota limit has exceeded.

[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]$

As we can see, we are closely within this user's disk quota. Let's set a soft limit warning. This way, the user will have advance notice before quota limits expire. From experience, you will get end-user complaints when they come into work and need to spend 45 minutes clearing files to actually get to work.

As an Administrator, we can check quota usage with the repquota command.

[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]#

As we can see, the user centos has exceeded their hard block quota and can no longer use any more disk space on /home.

-+denotes a hard quota has been exceeded on the filesystem.

When planning quotas, it is necessary to do a little math. What an Administrator needs to know is:How many users are on the system? How much free space to allocate amongst users/groups? How many bytes make up a block on the file system?

Define quotas in terms of blocks as related to free disk-space.It is recommended to leave a "safe" buffer of free-space on the file system that will remain in worst case scenario: all quotas are simultaneously exceeded. This is especially on a partition that is used by the system for writing logs.