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.