4.5. Administración de cuotas en GFS2

Las cuotas de los sistemas de archivos se utilizan para limitar la cantidad de espacio del sistema de archivos que puede utilizar un usuario o un grupo. Ningún usuario o grupo tiene una cuota límite hasta que no se establezca. Cuando el sistema de archivos GFS2 se monta con la opción quota=on o quota=account guarda el registro del espacio utilizado por cada usuario y grupo aunque no hay límites establecidos. GFS2 actualiza la información de la cuota mediante transacciones para que en caso de una falla del sistema, los usos de cuotas no se tengan que reconstruir.
Para evitar una reducción de rendimiento, un nodo GFS2 solo sincroniza periódicamente las actualizaciones al archivo de cuotas. La contabilidad de cuotas "difusas" permite que usuarios y grupos se excedan levemente del límite. Para minimizar este efecto, GFS2 reduce en forma dinámica el periodo de sincronización cuando se alcanza el límite de cuota "duro".

Nota

A partir del lanzamiento de Red Hat Enterprise Linux 6.1, GFS2 soporta los servicios estándar de cuota de Linux. Para hacer uso de ellos necesita instalar el RPM de quota. Esta es la forma preferida para administrar cuotas en GFS2 y se debe utilizar para todas las implementaciones de GFS2 que usan cuotas. Esta sección documenta la administración de cuotas GFS2 mediante dichos servicios.
Para lanzamientos anteriores de Red Hat Enterprise Linux, GFS2 requería el comando gfs2_quota para administrar cuotas. Si desea obtener más información sobre el uso del comando gfs2_quota, consulte la Apéndice A, Administración de cuotas GFS2 con el comando gfs2_quota.

4.5.1. Configuración de cuotas de disco

Para implementar cuotas de disco, siga los siguientes pasos:
  1. Establezca las cuotas en modo impositivo o de contabilidad.
  2. Inicie el archivo de base de datos de cuotas con información de uso de bloques actual.
  3. Asigne políticas de cuotas. (En modo de contabilidad, estas políticas no se aplican.)
Cada uno de estos pasos se describe en detalle en las siguientes secciones.

4.5.1.1. Cómo establecer cuotas en modo impositivo o de contabilidad

En los sistemas de archivos GFS2, las cuotas se inhabilitan automáticamente. Para habilitar las cuotas para un sistema de archivos, monte el sistema de archivos con la opción quota=on especificada.
Es posible mantener registro del uso de disco y mantener una contabilidad de cuotas para cada usuario sin tener que establecer los valores de advertencia y límite. Para ello, monte el sistema de archivos con la opción quota=account especificada.
Uso
Para montar un sistema de archivos con cuotas activadas, monte el sistema de archivos con la opción quota=on especificada.
mount -o quota=on BlockDevice MountPoint
Para montar un sistema de archivos con contabilidad de cuotas, a pesar de que los límites de cuotas no se han aplicado, monte el sistema de archivos con la opción quota=account especificada.
mount -o quota=account BlockDevice MountPoint
Para montar un sistema de archivos con cuotas desactivadas, monte el sistema de archivos con la opción quota=off especificada. Este es el valor predeterminado.
mount -o quota=off BlockDevice MountPoint
quota={on|off|account}
on - Especifica que las cuotas se activan o desactivan cuando se monta un sistema de archivos.
off - Especifica que las cuotas se desactivan cuando se monta el sistema de archivos.
account - Especifica que el uso de estadísticas de usuario y grupo es mantenido por el sistema de archivos, a pesar de que los límites de cuotas no están establecidos.
BlockDevice
Especifica los dispositivos de bloque en donde residen los sistemas de archivo GFS2.
MountPoint
Especifica el directorio en donde debe montarse el sistema de archivos GFS2.
Ejemplos
En este ejemplo, el sistema de archivos GFS2 en /dev/vg01/lvol0 está montado en el directorio /mygfs2 con cuotas activas.
mount -o quota=on /dev/vg01/lvol0 /mygfs2
En este ejemplo, el sistema de archivos GFS2 en /dev/vg01/lvol0 está montado en el directorio /mygfs2 con la contabilidad de cuotas activa mantenidas, pero no se imponen.
mount -o quota=account /dev/vg01/lvol0 /mygfs2

4.5.1.2. Cómo crear archivos de base de datos de cuotas

Después de montar cada sistema de archivos con cuotas habilitadas, el sistema puede funcionar con cuotas de disco. Sin embargo, el sistema de archivos por sí mismo, no está listo para soportar cuotas. El siguiente paso es ejecutar el comando quotacheck.
El comando quotacheck examina los sistemas de archivos con cuotas activadas y genera una tabla del uso actual de disco por sistema de archivos. La tabla se utiliza para actualizar la copia del sistema operativo de uso de disco. Además, los archivos de cuotas de discos del sistema de archivos son actualizados.
Para crear los archivos de cuotas en el sistema de archivos, use las opciones -u y -g del comando quotacheck; ambas opciones deben especificarse para que las cuotas de usuario y grupo se inicien. Por ejemplo, si las cuotas están habilitadas para el sistema de archivos /home, cree los archivos en el directorio /home:
quotacheck -ug /home

4.5.1.3. Cómo asignar cuotas por usuario

El último paso es asignar las cuotas de disco con el comando edquota. Observe que si ha montado el sistema de archivos en modo de contabilidad (con la opción quota=account especificada), las cuotas no se aplican.
Para configurar la cuota por usuario, como root en el indicador de shell prompt, ejecute el comando:
edquota nombre_de_usuario
Realice este paso para cada usuario que necesite una cuota. Por ejemplo, si habilita una cuota en /etc/fstab para la partición /home (/dev/VolGroup00/LogVol02 en el siguiente ejemplo) y ejecuta el comando edquota testuser, en el editor configurado como el predeterminado para el sistema, se muestra lo siguiente:
Disk quotas for user testuser (uid 501):   
Filesystem                blocks     soft     hard    inodes   soft   hard
/dev/VolGroup00/LogVol02  440436        0        0

Nota

El editor de texto definido por la variable de entorno EDITOR es utilizado por edquota. Para cambiar el editor, establezca la variable de entorno EDITOR en su archivo ~/.bash_profile para la ruta completa del editor de su escogencia.
La primera columna es el nombre del sistema de archivos con una cuota. La segunda columna muestra el número de bloques que el usuario está usando en el momento. Las siguientes dos columnas se utilizan para establecer los límites blandos y duros para el usuario en el sistema de archivos.
El límite de bloque blando define la cantidad máxima de espacion de disco que se puede utilizar.
El límite de bloque duro es la cantidad máxima absoluta de espacio de disco que puede usar un usuario o grupo. Cuando se alcanza este límite, no se puede usar más espacio de disco.
El sistema de archivos GFS2 no mantiene cuotas para inodos, por lo tanto estas columnas no se aplican al sistema de archivos GFS2 y quedarán en blanco.
Si alguno de los valores se establece a 0, ese límite no se establece. 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/VolGroup00/LogVol02  440436   500000   550000
Para verificar si la cuota para el usuario ha sido establecida, use el comando:
quota testuser

4.5.1.4. Cómo asignar cuotas por grupo

Las cuotas también se pueden asignar en función de cada grupo. Observe que si ha montado su sistema de archivos en modo de contabilidad (con la opción account=on especificada), las cuotas no se aplican.
Para establecer una cuota de grupos para el grupo devel (el grupo debe existir antes de establecer la cuota de grupos), use el siguiente comando:
edquota -g devel
Este comando despliega cuotas para el grupo en el editor de texto:
Disk quotas for group devel (gid 505):   
Filesystem                blocks    soft     hard    inodes   soft   hard
/dev/VolGroup00/LogVol02  440400       0        0
El sistema de archivos GFS2 no mantiene cuotas para inodos, por lo tanto estas columnas no se aplican a sistemas de archivos GFS2 y quedarán en blanco. Modifique los límites y guarde el archivo.
Para verificar si la cuota de grupo ha sido establecida, use el siguiente comando:
quota -g devel