Administrador de Linux: gestión de cuotas

Las cuotas de disco de CentOS se pueden habilitar tanto; alertar al administrador del sistema y negar más acceso al almacenamiento en disco a un usuario antes de que se exceda la capacidad del disco. Cuando un disco está lleno, dependiendo de lo que resida en el disco, un sistema completo puede detenerse hasta que se recupere.

Habilitar la administración de cuotas en CentOS Linux es básicamente un proceso de 4 pasos:

  • Step 1 - Habilite la administración de cuotas para grupos y usuarios en / etc / fstab.

  • Step 2 - Vuelva a montar el sistema de archivos.

  • Step 3 - Crear una base de datos de cuotas y generar una tabla de uso del disco.

  • Step 4 - Asignar políticas de cuotas.

Habilite la administración de cuotas en / etc / fstab

Primero, queremos hacer una copia de seguridad de nuestro archivo / etc / fstab -

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

Ahora tenemos una copia de nuestro conocido / etc / fstab en el directorio de trabajo actual.

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

Hicimos los siguientes cambios en la sección de opciones de / etc / fstab para el volumen o Etiqueta donde se aplicarán las cuotas para usuarios y grupos.

  • usrquota
  • grpquota

Como puede ver, estamos usando el xfssistema de archivos. Cuando se usa xfs, hay pasos manuales adicionales involucrados./homeestá en el mismo disco que /. La investigación adicional muestra / está configurado para noquota , que es una opción de montaje a nivel de kernel. Debemos reconfigurar nuestras opciones de arranque del kernel.

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

[root@localhost rdc]#

Reconfiguración de las opciones de arranque del kernel para sistemas de archivos XFS

Este paso solo es necesario bajo dos condiciones:

  • Cuando el disco / partición en el que estamos habilitando cuotas, está usando el sistema de archivos xfs
  • Cuando el kernel pasa el parámetro noquota a / etc / fstab en el momento del arranque

Step 1 - Haga una copia de seguridad de / etc / default / grub.

cp /etc/default/grub ~/

Step 2- Modificar / etc / default / grub .

Aquí está el archivo predeterminado.

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"

Queremos modificar la siguiente línea -

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

a

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

Note- Es importante que copiemos estos cambios textualmente. Después de reconfigurar grub.cfg, nuestro sistema no podrá arrancar si se cometieron errores en la configuración. Por favor, pruebe esta parte del tutorial en un sistema que no sea de producción.

Step 3 - Copia de seguridad de su grub.cfg de trabajo

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

Cree un nuevo 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]#

Reiniciar

[root@localhost rdc]#reboot

Si todas las modificaciones fueran precisas, no deberíamos tener la disponibilidad para agregar cuotas al sistema de archivos xfs .

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

Hemos pasado los parámetros usrquota y grpquota a través de grub.

Ahora, vuelva a editar / etc / fstab para incluir / since / home en el mismo disco físico.

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

Ahora habilitemos las bases de datos de cuotas.

[root@localhost rdc]# quotacheck -acfvugM

Asegúrate de que las cuotas estén habilitadas.

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

Vuelva a montar el sistema de archivos

Si la partición o el disco están separados de la partición iniciada activamente, podemos volver a montar sin reiniciar. Si la cuota se configuró en un disco / partición iniciada en el directorio raíz /, es posible que necesitemos reiniciar el sistema operativo. Forzando el remontaje y aplicando cambios, la necesidad de remontar el sistema de archivos puede variar.

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

Como podemos ver, los volúmenes LVM están en uso. Así que es muy sencillo reiniciar. Esto volverá a montar / home y cargará los cambios de configuración de / etc / fstab en la configuración activa.

Crear archivos de base de datos de cuotas

CentOS ahora es capaz de trabajar con cuotas de disco en / home. Para habilitar el suministro de cuota completo, debemos ejecutar elquotacheck mando.

quotacheck creará dos archivos -

  • aquota.user
  • aquota.group

Se utilizan para almacenar información de cuotas para los discos / particiones habilitados para cuotas.

A continuación se muestran los modificadores de control de cuotas más comunes.

Cambiar Acción
-u Verificaciones de cuotas de usuarios
-gramo Comprobaciones de cuotas de grupo
-C Las cuotas deben estar habilitadas para cada sistema de archivos con habilitaciones de cuotas
-v Muestra una salida detallada

Agregar límites de cuota por usuario

Para esto usaremos el comando edquota, seguido del nombre de usuario -

[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

Veamos cada columna.

  • Filesystem - Son las cuotas del sistema de archivos para el usuario aplicadas

  • blocks - Cuántos bloques está usando actualmente el usuario en cada sistema de archivos

  • soft- Establecer bloques para un límite suave. El límite flexible permite al usuario llevar una cuota durante un período de tiempo determinado

  • hard- Establecer bloques para un límite estricto. El límite estricto es la cuota total permitida

  • inodes - Cuántos inodos usa actualmente el usuario

  • soft - Límite de inodo suave

  • hard - Límite de inodo duro

Para comprobar nuestra cuota actual como usuario:

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

A continuación, se muestra un error que se le da a un usuario cuando se excede el límite de la cuota estricta.

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

Como podemos ver, estamos muy cerca de la cuota de disco de este usuario. Establezcamos una advertencia de límite suave. De esta forma, el usuario recibirá un aviso previo antes de que expiren los límites de cuota. Según la experiencia, recibirá quejas de los usuarios finales cuando entren en el trabajo y necesitará pasar 45 minutos borrando archivos para ponerse manos a la obra.

Como administrador, podemos verificar el uso de la cuota con el repquota mando.

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

Como podemos ver, el usuario centos ha excedido su cuota de bloque duro y ya no puede usar más espacio en disco en / home .

- + indica que se ha excedido una cuota estricta en el sistema de archivos.

Al planificar las cuotas, es necesario hacer un poco de matemáticas. Lo que un administrador necesita saber es: ¿Cuántos usuarios hay en el sistema? ¿Cuánto espacio libre asignar entre usuarios / grupos? ¿Cuántos bytes componen un bloque en el sistema de archivos?

Defina las cuotas en términos de bloques en relación con el espacio libre en disco. Se recomienda dejar un búfer "seguro" de espacio libre en el sistema de archivos que permanecerá en el peor de los casos: todas las cuotas se superan simultáneamente. Esto es especialmente en una partición que utiliza el sistema para escribir registros.