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.