Cuotas de disco

Rafa Morales 12 Septiembre 2013
5min
0
Linux

El almacenamiento en disco se puede restringir mediante la implementación de cuotas de disco en particiones, nunca en directorios individuales. Las cuotas se pueden configurar para usuarios individuales o para grupos de usuarios. Las cuotas se pueden establecer mediante tamaño (número de bloques) o mediante número de archivos que pueden ser creados (inodos).

 

Configuración

Para activarlo debemos instalar el paquete quota.

apt-get install quota

Activaremos las cuotas en el sistema de archivos que las necesitemos modificando el fichero /etc/fstab y añadiendo las opciones usrquota y/o grpquota.

/dev/sdb1 /mnt/unidad_datos auto defaults,usrquota,grpquota 0 0

Reiniciaremos el sistema o desmontaremos y montaremos las particiones afectadas como se comentó en puntos anteriores.

Cada sistema de archivos necesitará tener en su carpeta raíz dos archivos con la configuración de las cuotas aquota.user y aquota.group. Con el siguiente comando se crearán automáticamente dichos ficheros además de importar en ellos los datos de usuario y grupo que ya existan en el sistema de archivos. Utilizaremos los parámetros:

–v para que muestre los mensajes por pantalla.

–u para verificar los datos de los usuarios.

-g para verificar los datos de los grupos.

–m si el sistema de archivos está montado.

–a para realizarlo en todos los sistemas de archivos habilitados para cuotas.

–f para forzarlo.

 

quotacheck –vguamf
quotacheck –vgumf /dev/sdb2

 

A continuación reiniciaremos las cuotas en el sistema, pudiendo utilizar algunos de los siguientes comandos.

quotaoff –aug
quotaon –aug
service quota restart

 

Journaling

Las quotas también pueden utilizar los mecanismos de journaling o registro diario para funcionar y evitar pérdidas de datos en los apagados bruscos del sistema.

Para habilitar las quotas con journaling sólo tenemos que configurar las opciones de la partición en el fichero /etc/fstab de la siguiente manera:

/dev/sdb1 /mnt/unidad_datos auto defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 0

 

Límites

El siguiente paso será configurar las quotas para el usuario –u o el grupo –t. Limitaremos la quota por número de bloques (sabiendo que 1000 bloques son 1 MB) o por número de inodos (número de ficheros).

edquota –u usuario

Cuotas de disco para user usuario (uid 1000):
Sist. arch. bloques blando duro inodos blando duro
/dev/sdb    101760  0      3000 9      0      0

 

Se nos abrirá el fichero de configuración con el editor de texto que tengamos configurado en el sistema.

Los valores bloques e inodos nos muestra el espacio que está utilizando actualmente el usuario (este valor NO se tiene que modificar).

El valor duro es el límite máximo y absoluto que se puede utilizar. El valor blando es un valor temporal que se puede sobrepasar durante el tiempo especificado en el período de gracia. Si los límites están configurados a 0 será que no existe dicho límite. Por ejemplo, se puede configurar el valor duro=50000 y el valor blando=40000, y así el usuario tendrá un máximo de 40MBs para almacenar datos, pero que podrá superar en 10MBs más durante el período de gracia.

 

Períodos de gracia

Para editar los períodos de gracia en general para cualquier usuario utilizamos:

edquota –t

Período de gracia antes de imponer límites blandos para users:
La unidad de tiempo puede ser: días, horas, minutos, o segundos
Sist. arch. Período gracia bloque Período gracia inodo
/dev/sdb1   60minutos             60minutos

 

Para editar los períodos de gracia de un usuario en concreto utilizamos:

edquota –T usuario

Aunque las unidades de tiempo se nos muestren en español, tendremos que escribir los límites en inglés para que sean aceptados al guardar nuestros cambios.

 

Informes

Con el siguiente comando obtendremos un breve informe sobre la utilización total de disco de sus usuarios, así como sus límites blandos y duros configurados. Hay que tener en cuenta que a cada usuario sólo se le registran los archivos de los que él sea propietario.

repquota -a

*** Informe para user quotas en dispositivo /dev/sdb1
Periodo de gracia de bloque: 60minutos; periodo de gracia de inodo: 60minutos
Límites de Bloque Límites de archivo
Usuario     usado blando duro gracia usado blando duro gracia
----------------------------------------------------------------------
root    --     13      0    0            4     0     0
usuario +- 101760      0 3000            9     0     0 10176

 

Podemos configurar una tarea programada que nos envíe por correo electrónico dicho informe.

 

Avisos

El siguiente comando sirve para enviar un email avisando si se sobrepasa el límite. Se podría realizar una tarea programa en cron para que periódicamente el sistema haga la comprobación.

warnquota

En el siguiente fichero configuraremos las opciones referentes a los correos de avisos:

/etc/warnquota.conf