Skip to main content

Configurar Quotas XFS en Ubuntu 22.04 + Cpanel

Problema común

En Ubuntu 22.04 con sistemas de archivos XFS, las quotas pueden no funcionar correctamente debido a que el módulo quota_v2 no se carga automáticamente al arranque, incluso con la configuración correcta en /etc/fstab.

Síntomas

  • Quotas configuradas en /etc/fstab pero no funcionan
  • lsmod | grep quota no muestra ningún resultado
  • Errores en cPanel relacionados con quotas de usuarios

Diagnóstico

Verificar configuración actual

# Ver mount actual
mount | grep ' on / '

# Verificar fstab
grep usrquota /etc/fstab

# Comprobar módulos quota cargados
lsmod | grep quota

# Estado XFS quotas
xfs_quota -x -c 'state' /

Verificar disponibilidad del módulo

# Buscar módulos quota disponibles
find /lib/modules/$(uname -r) -name "*quota*"

# Información del módulo
modinfo quota_v2

# Dependencias
modprobe --show-depends quota_v2

Solución

1. Verificar que fstab esté correcto

El archivo /etc/fstab debe tener las opciones usrquota,grpquota:

# Ejemplo para XFS en LVM
/dev/mapper/ubuntu--vg-ubuntu--lv / xfs rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,usrquota,grpquota 0 1

2. Configurar carga automática del módulo

# Crear archivo de configuración para módulos
echo 'quota_tree' | sudo tee /etc/modules-load.d/quota.conf
echo 'quota_v2' | sudo tee -a /etc/modules-load.d/quota.conf

# Verificar contenido
cat /etc/modules-load.d/quota.conf

Contenido esperado:

quota_tree
quota_v2

3. Método alternativo - /etc/modules

Si el método anterior no funciona:

# Añadir módulos a /etc/modules
echo 'quota_tree' >> /etc/modules
echo 'quota_v2' >> /etc/modules

# Verificar
cat /etc/modules

4. Actualizar initramfs

# Actualizar initramfs para incluir cambios
update-initramfs -u

5. Configurar GRUB (opcional)

Para algunos casos específicos, añadir parámetros al kernel:

# Editar configuración GRUB
nano /etc/default/grub

# Modificar línea (añadir rootflags):
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash rootflags=usrquota,grpquota"

# Actualizar GRUB
update-grub

6. Reiniciar sistema

reboot

Verificación post-configuración

Script de verificación completa

#!/bin/bash
echo "=== VERIFICACIÓN QUOTAS XFS UBUNTU 22.04 ==="

echo "1. Módulo quota_v2 cargado:"
lsmod | grep quota && echo "✅ Módulo cargado" || echo "❌ Módulo NO cargado"

echo -e "\n2. Estado XFS quotas:"
xfs_quota -x -c 'state' / 2>/dev/null && echo "✅ XFS quotas activas" || echo "❌ XFS quotas inactivas"

echo -e "\n3. Mount con quotas:"
mount | grep ' on / ' | grep -q "usrquota\|grpquota" && echo "✅ Mount con quotas" || echo "❌ Mount sin quotas"

echo -e "\n4. Configuración modules-load.d:"
cat /etc/modules-load.d/quota.conf 2>/dev/null || echo "❌ Archivo no existe"

echo -e "\n5. Test quota usuario:"
quota -u root 2>/dev/null && echo "✅ Quotas funcionando" || echo "❌ Quotas no funcionan"

echo -e "\n6. Información detallada XFS:"
xfs_quota -x -c 'state' / 2>/dev/null

Comandos de verificación individuales

# Verificar módulo cargado
lsmod | grep quota

# Estado detallado XFS quotas
xfs_quota -x -c 'state' /

# Verificar quotas de usuario (ejemplo)
quota -u username

# Activar quotas si están deshabilitadas
quotaon -av

# Reporte de uso de quotas
xfs_quota -x -c 'report -u' / | head -20

Comandos útiles para gestión

Comandos XFS quota básicos

# Ver estado general
xfs_quota -x -c 'state' /

# Reporte de usuarios
xfs_quota -x -c 'report -u' /

# Reporte de grupos
xfs_quota -x -c 'report -g' /

# Establecer quota para usuario
xfs_quota -x -c 'limit bsoft=1G bhard=2G username' /

# Ver quota específica de usuario
xfs_quota -x -c 'quota -u username' /

Troubleshooting

# Si las quotas no funcionan después de la configuración
quotacheck -cug /
quotaon -av

# Remount con quotas (sin reinicio)
mount -o remount,usrquota,grpquota /

# Verificar que el filesystem soporta quotas
tune2fs -l /dev/device | grep -i quota  # Para ext4
xfs_info / | grep -i quota              # Para XFS

Notas importantes

  • XFS vs EXT4: Este procedimiento es específico para XFS. EXT4 tiene un comportamiento diferente.
  • cPanel: Después de configurar quotas, es recomendable reiniciar cPanel: systemctl restart cpanel
  • LVM: Si usas LVM, asegúrate de que las opciones están en el volumen lógico correcto.
  • Backup: Siempre realiza backup antes de modificar /etc/fstab o configuraciones de arranque.
  • Grub: Presta muchisima atención a grub y las acciones sobre el. Se puede dejar el sistema roto.

Referencias

Histórico de cambios

  • Inicial: Configuración básica para Ubuntu 22.04 + XFS
  • Verificado: Funcionando en Ubuntu 22.04 LTS con XFS sobre LVM
Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.