Los sistemas de archivos Google Cloud Managed Lustre admiten cuotas de usuario, grupo y proyecto, lo que permite a los administradores administrar el consumo de almacenamiento y garantizar una asignación justa de recursos. En este documento, se explica cómo configurar, ver y administrar estas cuotas.
¿Qué son las cuotas del sistema de archivos?
Las cuotas en Managed Lustre te permiten establecer límites en la cantidad de espacio en el disco y la cantidad de archivos que los usuarios, los grupos o los proyectos pueden consumir dentro de tu sistema de archivos.
Las cuotas se aplican a diferentes entidades:
- Las cuotas de usuario limitan el almacenamiento que consume un usuario individual que no es raíz.
- Las cuotas de grupo limitan el almacenamiento que consumen todos los miembros que no son raíz de un grupo específico.
- Las cuotas de proyecto limitan el almacenamiento que consumen los archivos y directorios asociados con un ID del proyecto en particular. Este ID del proyecto es un identificador del sistema de archivos Lustre, definido con
lfs project, y no es tu Google Cloud ID de proyecto. Consulta Establece una cuota de proyecto para obtener más información.
Las cuotas se configuran para dos tipos de recursos:
- Los límites de bloque son un límite en la cantidad de espacio en el disco que se puede usar.
- Los límites de inode son un límite en la cantidad de archivos y directorios que se pueden crear.
Cada tipo de recurso puede tener dos niveles de límites:
Un límite flexible es un umbral de cuota que activa un período de gracia configurable cuando se supera. Durante este período de gracia, los usuarios, los grupos o los proyectos pueden superar temporalmente el límite flexible, hasta el límite estricto si existe, lo que les da tiempo para reducir el uso antes de que se bloqueen. Una vez que vence el período de gracia, si el uso aún supera el límite flexible, este se aplica como un límite estricto, lo que bloquea todas las escrituras nuevas hasta que el espacio en el disco o el recuento de inodo caigan por debajo del límite flexible.
De forma predeterminada, el período de gracia es de una semana.
Un límite estricto define el máximo absoluto. Si se alcanza este límite, fallan todas las operaciones de escritura posteriores y se muestra el error "Se superó la cuota de disco".
Administra usuarios y grupos
Lustre se basa en los atributos POSIX del cliente para los nombres y los IDs de usuarios y grupos.
Cuando un cliente realiza una solicitud del sistema de archivos, envía el UID y el GID locales a los servidores de Lustre. Los servidores usan estos atributos POSIX para aplicar permisos de archivos estándar y hacer un seguimiento del uso de la cuota.
Para un comportamiento coherente en un entorno multiusuario, todos los clientes que activan el sistema de archivos Lustre deben tener asignaciones de UID y GID sincronizadas, que suelen administrarse a través de un servicio centralizado como LDAP o NIS.
Los usuarios raíz no están sujetos a cuotas. Los comandos que se ejecutan con sudo también omiten las verificaciones de cuota.
Antes de comenzar
Para administrar las cuotas de Lustre, necesitas lo siguiente:
- Acceso del cliente a un sistema de archivos Google Cloud Managed Lustre activo
- Privilegios
sudoo raíz en el sistema cliente para ejecutar comandoslfs
Establece cuotas
Usa el comando lfs setquota para configurar los límites de bloque y de inode. Puedes especificar solo límites de bloque, solo límites de inode o ambos. Del mismo modo, puedes especificar límites estrictos, límites flexibles o ambos.
sudo lfs setquota -u | g | p | U | G | P UGP_VALUE \
-b SOFT_BLOCK_LIMIT -B HARD_BLOCK_LIMIT \
-i SOFT_INODE_LIMIT -I HARD_INODE_LIMIT \
MOUNT_DIR
Aquí:
-uespecifica un usuario por nombre de usuario o UID. Lustre resuelve los nombres de usuario con los atributos POSIX del cliente.-gespecifica un grupo por nombre de grupo o GID. Lustre resuelve los nombres de grupo con los atributos POSIX del cliente.-pespecifica un proyecto por nombre de proyecto o ID del proyecto. Si especificas un nombre de proyecto, debe asignarse a un ID del proyecto con un archivo de asignación como/etc/projiden el cliente.U,GyPestablecen la cuota predeterminada para cualquier usuario, grupo o proyecto que no tenga una cuota específica establecida.- UGP_VALUE es el nombre de usuario, el nombre de grupo, el nombre de proyecto, el UID, el GID o ID del proyecto. Los IDs deben ser números enteros entre
0y4294967295. Omite este valor si especificas cuotas predeterminadas de usuario, grupo o proyecto. -by-Bson límites flexibles y estrictos para el uso de bloques, respectivamente. Los límites flexibles deben ser inferiores a los límites estrictos. Los valores se pueden especificar en bytes (B), kilobytes (K), megabytes (M), gigabytes (G) o terabytes (T). La unidad predeterminada es kilobytes.-iy-Ison límites flexibles y estrictos para el uso de inode. Los límites flexibles deben ser inferiores a los límites estrictos.- MOUNT_DIR es el punto de activación del sistema de archivos Managed Lustre.
Ten en cuenta que no puedes configurar el período de gracia al mismo tiempo que creas una cuota. El período de gracia predeterminado para los límites flexibles es de una semana. Para actualizar el período de gracia, consulta Configura períodos de gracia.
Ejemplos
Establece una cuota de usuario
Establece un límite flexible de bloque de 100 GB, un límite estricto de bloque de 120 GB, un límite flexible de inode de 10,000 y un límite estricto de inode de 12,000 para user1 en /mnt/lustre:
sudo lfs setquota -u user1 -b 100G -B 120G -i 10000 -I 12000 /mnt/lustre
Establece una cuota de grupo
Establece un límite estricto de bloque de 50 TB para groupA en /mnt/lustre:
sudo lfs setquota -g groupA -B 50T /mnt/lustre
Establece una cuota de proyecto
Las cuotas de proyecto requieren un paso adicional para asociar directorios y archivos con un ID del proyecto:
Usa el comando
lfs projectpara asignar un ID del proyecto. Este ID es un número entero arbitrario que identifica el proyecto.sudo lfs project -spr LFS_PROJECT_ID PATH/TO/DIR/OR/FILEAquí:
-sestablece la herencia, de modo que los archivos y directorios nuevos que se creen en el directorio especificado hereden el ID del proyecto.-ple indica al comando que establezca el ID del proyecto determinado en el archivo o directorio especificado.-raplica el ID del proyecto de forma recursiva a todos los archivos y directorios secundarios.- PATH/TO/DIR/OR/FILE es la ruta de acceso a un directorio o archivo en el que se establecerá el ID del proyecto. Solo se puede especificar una ruta de acceso o un archivo.
Para obtener marcas e información adicionales, ejecuta
man lfs projectdesde tu cliente.Por ejemplo, para asignar el proyecto
101a/mnt/lustre/my-projecty a todos los elementos secundarios nuevos y existentes, haz lo siguiente:sudo lfs project -spr 101 /mnt/lustre/my-projectEstablece la cuota con
lfs setquota:sudo lfs setquota -p LFS_PROJECT_ID \ -b SOFT_BLOCK_LIMIT -B HARD_BLOCK_LIMIT \ -i SOFT_INODE_LIMIT -I HARD_INODE_LIMIT \ MOUNT_DIR
Establece una cuota predeterminada
Establece un límite estricto de bloque de 50 TB para todos los usuarios sin un parámetro de configuración de cuota específico:
sudo lfs setquota -U -B 50T /mnt/lustre
Modifica cuotas
Para modificar una cuota existente, vuelve a ejecutar lfs setquota con los valores nuevos. El comando anula la configuración anterior para el usuario, el grupo o el proyecto especificados.
Configura períodos de gracia
Los períodos de gracia definen cuánto tiempo un usuario, un grupo o un proyecto puede superar un límite flexible antes de que este actúe como un límite estricto. De forma predeterminada, este valor es de una semana. Los períodos de gracia se establecen en todos los usuarios, grupos o proyectos. No se pueden establecer en IDs específicos.
Para actualizar un período de gracia, usa el comando lfs setquota -t:
sudo lfs setquota -t -u | g | p \
-b BLOCK_GRACE_PERIOD -i INODE_GRACE_PERIOD \
MOUNT_DIR
Aquí:
-uaplica el período de gracia a las cuotas de usuario.-gaplica el período de gracia a las cuotas de grupo.-paplica el período de gracia a las cuotas de proyecto.-by-iespecifican los períodos de gracia de bloque y de inode, respectivamente. La unidad predeterminada es segundos. Puedes usar otras unidades con el formato:XwXdXhXmXs(semanas, días, horas, minutos, segundos). Puedes establecer límites para uno o ambos tipos de cuota.Especifica
'notify'en lugar de un valor de tiempo para marcar el resultado delfs quotacon un asterisco cuando se haya superado el límite flexible. Las escrituras nuevas no se bloquean cuando'notify'se especifica hasta que se alcanza el límite estricto.
Por ejemplo, para establecer un período de gracia de bloque de 7 días para todas las cuotas de usuario, haz lo siguiente:
sudo lfs setquota -t -u -b 7d /mnt/lustre
Para establecer un período de gracia de inode de 24 horas para las cuotas de proyecto, haz lo siguiente:
sudo lfs setquota -t -p -i 24h /mnt/lustre
Para enviar una notificación cuando se supere un límite flexible de bloque, haz lo siguiente:
sudo lfs setquota -t -u -b 'notify' /mnt/lustre
Visualiza las cuotas existentes
El comando lfs quota muestra el uso y los límites del usuario actual:
lfs quota MOUNT_DIR
Para obtener una lista completa de las opciones, ejecuta man lfs quota desde tu cliente.
Por ejemplo, para ver la cuota de user1 en /mnt/lustre, haz lo siguiente:
sudo lfs quota -u user1 /mnt/lustre
Ten en cuenta que, para ver la cuota y el uso de otro usuario, debes ejecutar el comando con sudo.
El resultado muestra lo siguiente:
Filesystem: El punto de activación de Lustre.kbytes: El uso actual del disco en kilobytes.bquota: El límite flexible de bloque en kilobytes.blimit: El límite estricto de bloque en kilobytes.bgrace: El período de gracia restante si se supera el límite flexible de bloque. Un asterisco (*) indica que se superó el límite flexible.files: La cantidad de inodes usados.iquota: El límite flexible de inode.ilimit: El límite estricto de inode.igrace: El período de gracia restante si se supera el límite flexible de inode. Un asterisco (*) indica que se superó el límite flexible.
Para ver los períodos de gracia configurados para todas las cuotas de usuario, haz lo siguiente:
lfs quota -t -u /mnt/lustre
Supervisa las cuotas en Cloud Monitoring
Además de usar el comando lfs quota en un cliente, puedes ver el uso y los límites de la cuota del sistema de archivos a través de Cloud Monitoring. Esto te permite
supervisar el consumo de almacenamiento por usuario, grupo o proyecto desde la
Google Cloud consola.
Las métricas de cuota están asociadas con el recurso supervisado Entidad de cuota de Lustre. Entre las métricas disponibles, se incluyen las siguientes:
- Bytes: Bytes usados, límite flexible y límite estricto.
- Inodes: Inodes usados, límite flexible y límite estricto.
Para ver estas métricas, haz lo siguiente:
En la Google Cloud consola, ve a la página Monitoring > Explorador de métricas.
En el campo Seleccionar una métrica, busca y selecciona el recurso Entidad de cuota de Lustre.
Selecciona la métrica de cuota específica que deseas ver (por ejemplo, Bytes usados de cuota o Inodes de límite estricto de cuota).
De manera opcional, usa las opciones de Filtro para ver entidades específicas. Para ello, filtra por la etiqueta
accounting_type(p. ej.,user,group,project) o la etiquetaid(p. ej., el UID, el GID o el ID del proyecto específicos).
Quita cuotas
Para quitar una cuota, establece sus límites flexibles y estrictos en 0.
sudo lfs setquota -u | g | p | U | G | P UGP_VALUE -b 0 -B 0 -i 0 -I 0 MOUNT_DIR
Por ejemplo, para quitar las cuotas de bloque y de inode de user1, haz lo siguiente:
sudo lfs setquota -u user1 -b 0 -B 0 -i 0 -I 0 /mnt/lustre
Para quitar el límite de bloque de proyecto predeterminado, haz lo siguiente:
sudo lfs setquota -P -b 0 -B 0 /mnt/lustre
Problemas comunes
Cuando trabajes con cuotas de Lustre, ten en cuenta los siguientes problemas comunes:
Caché otorgada: La caché otorgada es una función de Lustre que permite a los clientes recibir un bloque de almacenamiento como una "otorgación" del destino de almacenamiento de objetos (OST) para escribir datos. Cuando un cliente tiene esta caché otorgada, puede mostrar de inmediato un mensaje de éxito al usuario para una operación de escritura, incluso mientras los datos aún están en la caché local del cliente y antes de que se escriban físicamente en el disco. Esta es una optimización del rendimiento que minimiza la latencia.
La caché otorgada introduce la posibilidad de que se produzcan excesos de cuota. Debido a que la caché otorgada permite que los clientes sigan escribiendo datos en su caché, incluso si su cuota del servidor se agotó mientras tanto, es posible que un usuario supere su límite estricto.
Asignación incorrecta del ID del proyecto proyecto: Para que funcionen las cuotas de proyecto, los directorios y los archivos deben tener asignado correctamente un ID del proyecto con
lfs project -spr. Si se omite-r, el ID del proyecto no se aplica a los archivos y subdirectorios existentes. Si se omite-s, los archivos y directorios nuevos que se creen más adelante no heredarán el ID del proyecto.Varias cuotas y "gana la más restrictiva": Un usuario puede estar sujeto a una cuota de usuario, una o más cuotas de grupo y una o más cuotas de proyecto de forma simultánea. Lustre aplica el más restrictivo de estos límites. Esto significa que un usuario podría tener una cuota personal grande, pero estar restringido por una cuota de proyecto más pequeña para los archivos dentro del directorio de ese proyecto.
Omisión de la cuota de usuario raíz: Las escrituras de un usuario
rootomiten la aplicación de la cuota. Esto puede hacer que el sistema de archivos se llene con tareas administrativas, incluso cuando hay cuotas establecidas para otros usuarios.fallocateno respeta las cuotas: Los usuarios pueden usarfallocatepara reservar espacio en el sistema de archivos que supere el límite estricto.