Capítulo 6. Implementación de cuotas de disco

Además de controlar el espacio en disco usado por el sistema (consulte la Sección 26.3.1), el almacenamiento en disco se puede restringir mediante la implementación de cuotas de disco y de esta manera el administrador es notificado antes de que un usuario consuma mucho espacio en disco o que una partición se llene.

Las cuotas se pueden configurar para usuarios individuales o para grupos. Este tipo de flexibilidad hace posible darle a cada usuario una pequeña porción del disco para que maneje sus archivos personales (tales como correo o informes), mientras que se le permite tener más espacio para manejar los proyectos en los que estén trabajando o cuotas más grandes (asumiendo que a los proyectos se les dá sus propios grupos).

Además, se puede configurar las cuotas no sólo para que controlen el número de bloques de disco pero también el número de inodes. Debido a que los inodes son usados para contener información relacionada a los archivos, esto permite controlar el número de archivos que pueden ser creados.

El RPM quota debe estar instalado para implementar las cuotas de disco. Para más información sobre la instalación de paquetes RPM, consulte Parte V.

6.1. Configuración de cuotas de disco

Para implementar cuotas de disco, siga los pasos siguientes:

  1. Active cuotas por sistema de archivo modificando /etc/fstab

  2. Vuelva a montar el sistema de archivos

  3. Cree los archivos cuota y genere la tabla de uso de espacio en disco

  4. Asigne las cuotas

A continuación se describen cada uno de estos pasos en detalle.

6.1.1. Activar cuotas

Como usuario root, use el editor de texto de su preferencia, añada las opciones usrquota y/o grpquota al sistema de archivos que requiere cuotas:

LABEL=/           /               ext3    defaults        1 1
LABEL=/boot       /boot           ext3    defaults        1 2
none              /dev/pts        devpts  gid=5,mode=620  0 0
LABEL=/home       /home           ext3    defaults,usrquota,grpquota 1 2
none              /proc           proc    defaults        0 0
none              /dev/shm        tmpfs   defaults        0 0
/dev/hda2         swap            swap    defaults        0 0
/dev/cdrom        /mnt/cdrom      udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0          /mnt/floppy     auto    noauto,owner,kudzu 0 0

En este ejemplo, el sistema de archivos /home tiene cuotas de usuario y grupo ambas activadas.

6.1.2. Volver a montar un sistema de archivos

Después de agregar las opciones userquota y grpquota, vuelva a montar cada sistema de archivos cuyas entradas fstab hayan sido modificadas. Si el sistema de archivo no está siendo usado por ningún proceso, use el comando umount seguido de mount para volver a montar el sistema de archivos. Si el sistema de archivos está siendo usado actualmente, el método más fácil para volver a montar el sistema de archivos es reiniciando el sistema.

6.1.3. Creación de archivos de cuotas

Después de volver a montar cada sistema de archivos con cuotas, el sistema puede funcionar con cuotas de disco. Sin embargo, el sistema de archivos mismo no está listo para soportar cuotas. El próximo paso es ejecutar el comando quotacheck.

El comando quotacheck examina los sistemas de archivos con cuotas activadas y construye una tabla del uso del disco por sistema de archivo. La tabla es luego usada para actualizar la copia del uso del disco del sistema operativo. Además, los archivos de cuotas de disco del sistema de archivos, son actualizados.

Para crear los archivos de cuotas (aquota.user y aquota.group) en el sistema de archivos, use la opción -c del comando quotacheck. Por ejemplo, si las cuotas del usuario y grupos están activadas para la partición /home, cree los archivos en el directorio /home:

quotacheck -acug /home

La opción -a significa que todos los sistemas de archivos no NFS montados en /etc/mtab son chequeados para ver si las cuotas están activadas. La opción -c especifica que los archivos de cuota deberían ser creados para cada sistema de archivos con cuotas activadas, la opción -u especifica que se debe verificar por cuotas de usuario, y la opción -g indica verificar por cuotas de grupo.

Si no se especifican ninguna de las opciones -u ni -g, sólo se creará el archivo de cuota de usuario. Si únicamente se especifica la opción -g, sólo se creará el archivo de cuota de grupo.

Después de creados los archivos, ejecute el comando siguiente para generar la tabla del uso actual del disco duro por el sistema de archivos con cuotas activadas:

quotacheck -avug

Las opciones usadas son como se muestra a continuación:

  • a — Verifica todos los sistemas de archivos montados localmente con cuotas activadas

  • v — Muestra detalles informativos a medida que la verificación de cuotas se ejecuta

  • u — Verifica la información de cuota de disco

  • g — Verifica la información de cuota de disco del grupo

Después que quotacheck ha finalizado, los archivos de cuotas correspondiente a las cuotas activas (usuario y/o grupos) son poblados con datos para cada sistema de archivos con cuotas activadas, tal como /home.

6.1.4. Asignación de cuotas por usuario

El último paso es asignar las cuotas de disco con el comando edquota.

Para configurar la cuota por usuario, como usuario root en el intérprete shell, ejecute el comando:

edquota username

Ejecute este paso para cada usuario para el cual desea implementar una cuota. Por ejemplo, si una cuota es activada en /etc/fstab para la partición /home (/dev/hda3) y se ejecuta el comando edquota testuser, se mostrará lo siguiente en el editor configurado como predeterminado en su sistema:

Disk quotas for user testuser (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440436          0          0      37418        0       0

NotaNota
 

El editor de texto definido por la variable de ambiente EDITOR es usado por edquota. Para cambiar el editor, configure la variable de ambiente EDITOR a la ruta completa del editor de su preferencia.

La primera columna es el nombre del sistema de archivos que tiene una cuota activada. La segunda columna muestra cuántos bloques está usando el usuario actualmente. Las próximas dos columnas son usadas para colocar límites de bloques duros y suaves para el usuario del sistema de archivos. La columna inodes muestra cuántos inodes está usando el usuario actualmente. Las últimas dos columnas son usadas para colocar los límites duros y suaves para los inodes del usuario en el sistema de archivos.

Un límite duro es la cantidad máxima absoluta de espacio en disco que un usuario o grupo puede usar. Una vez que se alcance el límite, no se puede usar más espacio.

El límite suave define la cantidad máxima de espacio en disco que puede ser usado. Sin embargo, a diferencia del límite duro, el límite suave puede ser excedido durante cierto tiempo. Este tiempo es conocido como período de gracia. El período de gracia puede ser expresado en segundos, minutos, horas, días, semanas o meses.

Si cualquiera de los valores está especificado a 0, ese límite no está configurado. En el editor de texto, cambie los límites deseados. Por ejemplo:

Disk quotas for user testuser (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440436     500000     550000     37418        0        0

Para verificar que la cuota para el usuario ha sido configurada, use el comando:

quota testuser

6.1.5. Asignación de cuotas por grupo

Las cuotas también pueden ser asignadas por grupos. Por ejemplo, para configurar una cuota de grupo para el grupo devel, use el comando (el grupo debe existir antes de configurar la cuota):

edquota -g devel

Este comando muestra la cuota existente para el grupo en el editor de texto:

Disk quotas for group devel (gid 505):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440400          0          0      37418        0       0

Modifique los límites y guarde el archivo, luego configure la cuota.

Para verificar que la cuota del grupo ha sido definida, use el comando:

quota -g devel

6.1.6. Asignación de cuotas por sistema de archivos

Para asignar cuotas basándose en cada sistema de archivos activado para cuotas, use el comando:

edquota -t

Como los otros comandos edquota, abre una de las cuotas actuales para el sistema de archivos en el editor de texto:

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
  Filesystem             Block grace period     Inode grace period
  /dev/hda3                     7days                  7days

Cambie el período de gracia del bloque o inode, guarde los cambios del archivo y salga del editor.