Cómo configurar la cuota de disco en el sistema de archivos XFS en servidores Linux

Administrar la cuota de disco en los sistemas de archivos es una de las tareas operativas diarias más comunes para los administradores de Linux. En este artículo, demostraremos cómo configurar la cuota de disco en el sistema de archivos/partición XFS en servidores Linux como CentOS, RHEL, ubuntu y Debian. Aquí la cuota de disco significa implementar un límite en el uso del disco y el uso de archivos o inodos.

Configuración-Disk-Quota-XFS-Linux-Servers

La cuota de disco en el sistema de archivos XFS se implementa de la siguiente manera:

  • Cuota de usuario
  • Cuota de grupo
  • Cuota de proyecto (o Cuota de directorio)

Para configurar la cuota de disco en el sistema de archivos XFS, primero debemos habilitar la cuota usando las siguientes opciones de montaje:

  • uquota: habilite la cuota de usuario y también haga cumplir los límites de uso.
  • uqnoenforce: habilite la cuota de usuario y el uso de informes, pero no imponga límites de uso.
  • gcuota: habilite la cuota de grupo y también haga cumplir los límites de uso.
  • gqnoenforce: habilite la cuota de grupo y el uso de informes, pero no imponga límites de uso.
  • prjcuota / pcuota: habilite la cuota del proyecto y haga cumplir los límites de uso.
  • pqnohacer cumplir: habilite la cuota del proyecto y el uso de informes, pero no imponga límites de uso.

En el artículo, implementaremos la cuota de disco de usuario y grupo en la partición /home y, aparte de esto, también veremos cómo configurar la cuota de inodo en el sistema de archivos /home y la cuota del proyecto en el sistema de archivos /var.

[[email protected] ~]# df -Th /home /var
Filesystem           Type  Size  Used Avail Use% Mounted on
/dev/mapper/Vol-home xfs    16G   33M   16G   1% /home
/dev/mapper/Vol-var  xfs    18G   87M   18G   1% /var
[[email protected] ~]#

Habilitar cuota de usuario y grupo en /home

Desmonte la partición /home y luego edite el archivo /etc/fstab,

[[email protected] ~]# umount /home/

Agregue uquota y gquota después de la palabra clave predeterminada para la partición /home en el archivo /etc/fstab, el ejemplo se muestra a continuación

[[email protected] ~]# vi /etc/fstab
……………………………
/dev/mapper/Vol-home   /home    xfs    defaults,uquota,gquota   0 0 
……………………………

usuario-grupo-cuota-fstab-archivo

Ahora monte la partición /home usando a continuación “montar -a” comando,

[[email protected] ~]# mount -a
[[email protected] ~]#

Verifique si la cuota está habilitada en /home o no,

[[email protected] ~]# mount | grep  /home
/dev/mapper/Vol-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
[[email protected] ~]#

Nota : Mientras desmonta la partición /home si obtiene /home está ocupado, edite el archivo fstab, agregue las palabras clave uquota y gquota después de la palabra clave predeterminada para la partición /home y luego reinicie su sistema. Después de reiniciar, veremos que la cuota está habilitada en /home.

La cuota en el sistema de archivos XFS es administrada por la herramienta de línea de comando llamada “xfs_quota“. xfs_quota funciona en dos modos:

  • Modo básico – Para este modo, simplemente escriba xfs_quota, luego ingresará al modo básico donde puede imprimir el uso del disco de todo el sistema de archivos y la cuota del disco para los usuarios, el ejemplo se muestra a continuación

xfs-cuota-modo-básico

  • Modo experto – Este modo se invoca usando la opción “-x” en el comando “xfs_quota”, como sugiere el nombre, este modo se usa para configurar la cuota de disco y archivo para usuarios locales en el sistema de archivos xfs.

Para imprimir la cuota de disco en cualquier sistema de archivos, digamos /home, use el siguiente comando,

[[email protected] ~]# xfs_quota -x -c 'report -h' /home
User quota on /home (/dev/mapper/Vol-home)
                        Blocks
User ID      Used   Soft   Hard Warn/Grace
---------- ---------------------------------
root            0      0      0  00 [------]
pkumar        12K      0      0  00 [------]

Group quota on /home (/dev/mapper/Vol-home)
                        Blocks
Group ID     Used   Soft   Hard Warn/Grace
---------- ---------------------------------
root            0      0      0  00 [------]
pkumar        12K      0      0  00 [------]
[[email protected] ~]#

Configurar cuota de usuario

Supongamos que tenemos un usuario llamado «pkumar», configuremos la cuota de disco y archivo en su directorio de inicio usando el comando «xfs_quota»

[[email protected] ~]# xfs_quota -x -c 'limit bsoft=4250m bhard=4550m pkumar' /home

En el comando anterior, suave es el límite flexible de bloques en MB y bhard es un límite máximo de bloque en MB, limit es una palabra clave para implementar un límite de disco o archivo en un sistema de archivos para un usuario específico.

Establezcamos un límite de archivo o inodo para el usuario pkumar en su directorio de inicio,

[[email protected] ~]# xfs_quota -x -c 'limit isoft=400 ihard=500 pkumar' /home

En el comando anterior, isoft es inodo o límite flexible de archivo e ihard es inodo o límite rígido de archivo.

Tanto el límite de bloque (disco) como el límite de inodo (archivo) se pueden aplicar usando un solo comando, el ejemplo se muestra a continuación,

[email protected] ~]# xfs_quota -x -c 'limit bsoft=4250m bhard=4550m isoft=400 ihard=500 pkumar' /home
[[email protected] ~]#

Ahora verifique si los límites de disco e inodo están implementados en el usuario de pkumar usando el siguiente comando xfs_quota,

[[email protected] ~]# xfs_quota -x -c "report -bih" /home

Usuario-Cuota-Detalles-xfs-linux

En el comando xfs_quota anterior, informe es una palabra clave, b es para informe de bloque, i es para informe de inodo y h es para mostrar informe en formato legible por humanos,

Configurar cuota de grupo

Supongamos que tenemos un grupo llamado «Ingeniería” y dos usuarios locales (shashi y rakesh) cuyo grupo secundario es ingeniería

Ahora establezca las siguientes cuotas:

  • Límite de bloque suave: 6 GB (o 6144 MB),
  • Límite de bloque duro: 8 GB (o 8192 MB),
  • Límite de archivo suave: 1000
  • Límite de archivos duros: 1200

Entonces, para configurar la cuota de disco y archivo en el grupo de ingeniería, use el comando debajo de xfs_quota,

[[email protected] ~]# xfs_quota -x -c 'limit -g bsoft=6144m bhard=8192m isoft=1000 ihard=1200 engineering' /home
[[email protected] ~]#

Nota: En xfs_quota también podemos especificar el tamaño límite del bloque en GB como “bsoft=6g y bhard=8g”

Ahora verifique los detalles de la cuota para la ingeniería de grupo usando el siguiente comando,

[[email protected] ~]# xfs_quota -x -c "report -gbih" /home
Group quota on /home (/dev/mapper/Vol-home)
                        Blocks                            Inodes
Group ID     Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace
---------- --------------------------------- ---------------------------------
root            0      0      0  00 [------]      3      0      0  00 [------]
pkumar        12K      0      0  00 [------]      4      0      0  00 [------]
engineering      0     6G     8G  00 [------]      0   1000   1.2k  00 [------]
shashi        12K      0      0  00 [------]      4      0      0  00 [------]
rakesh        12K      0      0  00 [------]      4      0      0  00 [------]
[[email protected] ~]#

Como podemos ver arriba, la salida del comando, la cuota de disco y archivo se implementa en el grupo de ingeniería y en el grupo de ingeniería, tenemos dos usuarios.

Configurar cuota de proyecto (o directorio)

Supongamos que queremos establecer una cuota de proyecto o una cuota de directorio en «/var/registro“, Entonces primero habilite la cuota del proyecto (prjcuota) en el sistema de archivos /var, edite el archivo /etc/fstab, agregue “prjcuota” después de la palabra clave predeterminada para el sistema de archivos /var, el ejemplo se muestra a continuación,

[[email protected] ~]# vi /etc/fstab
……………………………….
/dev/mapper/Vol-var     /var     xfs     defaults,prjquota        0 0
…………………………………

Guardar y salir del archivo

Para que los cambios anteriores surtan efecto, debemos reiniciar nuestro sistema,

[[email protected] ~]# init 6

Después de reiniciar, podemos verificar si la cuota del proyecto está habilitada o no en el sistema de archivos /var usando el siguiente comando de montaje

[[email protected] ~]# mount | grep /var
/dev/mapper/Vol-var on /var type xfs (rw,relatime,seclabel,attr2,inode64,prjquota)
[[email protected] ~]#

Como podemos ver en el resultado anterior, la cuota del proyecto está habilitada ahora, por lo que para configurar el directorio de cuota /var/log, primero debemos definir la ruta del directorio y su identificación única en el archivo /etc/projects (en mi caso, estoy tomando 151 como identificación única para /var/log)

[[email protected] ~]# vi /etc/projects
51:/var/log

Guardar y salir del archivo

Ahora asocie la identificación anterior «151» a un proyecto llamado «Registros”, crea un archivo /etc/projid y añádele el siguiente contenido,

[[email protected] ~]# vi /etc/projid
Logs:151

Guardar y salir del archivo

Inicialice el directorio del proyecto «Registros» usando el comando xfs_quota,

Sintaxis: # xfs_quota -x -c ‘proyecto -s nombre_proyecto’ directorio_proyecto

[[email protected] ~]# xfs_quota -x -c 'project -s Logs' /var
Setting up project Logs (path /var/log)...
Processed 1 (/etc/projects and cmdline) paths for project Logs with recursion depth infinite (-1).
[[email protected] ~]#

Supongamos que queremos implementar un límite de disco duro de 10 GB y un límite flexible de 8 GB en el directorio /var/log, ejecute el siguiente comando xfs_quota,

[[email protected] ~]# xfs_quota -x -c 'limit -p bsoft=8g bhard=10g Logs' /var
[[email protected] ~]#

En el comando anterior, hemos usado «-p» después de la palabra clave límite, lo que muestra que queremos implementar la cuota del proyecto

Use el siguiente comando xfs_quota para establecer el límite de archivo o inodo en el directorio /var/log

[[email protected] ~]# xfs_quota -x -c 'limit -p isoft=1800 ihard=2000 Logs' /var
[[email protected] ~]#

Use el siguiente comando para imprimir los detalles de la cuota del proyecto

[[email protected] ~]# xfs_quota -xc 'report -pbih' /var
Project quota on /var (/dev/mapper/Vol-var)
                        Blocks                            Inodes
Project ID   Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace
---------- --------------------------------- ---------------------------------
#0         137.6M      0      0  00 [------]   1.5k      0      0  00 [------]
Logs         3.1M     8G    10G  00 [------]     33   1.8k     2k  00 [------]
[[email protected] ~]#

Pruebe la cuota del proyecto creando archivos grandes en la carpeta /var/log y vea si puede cruzar el límite de bloque de 10 GB,

[[email protected] ~]# cd /var/log/
[[email protected] log]# dd if=/dev/zero of=big_file bs=1G count=9
9+0 records in
9+0 records out
9663676416 bytes (9.7 GB) copied, 37.8915 s, 255 MB/s
[[email protected] log]# dd if=/dev/zero of=big_file2 bs=1G count=5
dd: error writing ‘big_file2’: No space left on device
1+0 records in
0+0 records out
1069219840 bytes (1.1 GB) copied, 3.90945 s, 273 MB/s
[[email protected] log]#

El comando de error dd anterior confirma que la cuota del proyecto configurado funciona bien, también podemos confirmar lo mismo desde el comando xfs_quota,

xfs-proyecto-cuota-detalles

Eso es todo de este tutorial, espero que estos pasos lo ayuden a comprender la cuota en el sistema de archivos XFS, comparta sus comentarios en la sección de comentarios a continuación.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *