I file system Google Cloud Managed Lustre supportano le quote per utenti, gruppi e progetti, consentendo agli amministratori di gestire il consumo di spazio di archiviazione e garantire un'allocazione equa delle risorse. Questo documento spiega come configurare, visualizzare e gestire queste quote.
Che cosa sono le quote del file system?
Le quote in Managed Lustre consentono di impostare limiti alla quantità di spazio su disco e al numero di file che utenti, gruppi o progetti possono consumare all'interno del file system.
Le quote vengono applicate a entità diverse:
- Le quote utente limitano lo spazio di archiviazione consumato da un singolo utente non root.
- Le quote di gruppo limitano lo spazio di archiviazione consumato da tutti i membri non root di un gruppo specifico.
- Le quote di progetto limitano lo spazio di archiviazione consumato da file e directory associati a un ID progetto specifico. Questo ID progetto è un identificatore del file system Lustre, definito utilizzando
lfs project, e non è il tuo Google Cloud ID progetto. Per saperne di più, consulta Impostare una quota di progetto.
Le quote vengono configurate per due tipi di risorse:
- I limiti di blocco sono un limite alla quantità di spazio su disco che può essere utilizzata.
- I limiti di inode sono un limite al numero di file e directory che possono essere creati.
Ogni tipo di risorsa può avere due livelli di limiti:
Un limite soft è una soglia di quota che attiva un periodo di tolleranza configurabile quando viene superata. Durante questo periodo di tolleranza, utenti, gruppi o progetti possono superare temporaneamente il limite soft, fino al limite hard, se esistente, dando loro il tempo di ridurre l'utilizzo prima di essere bloccati. Una volta scaduto il periodo di tolleranza, se l'utilizzo è ancora superiore al limite soft, il limite soft viene applicato come limite hard, bloccando tutte le nuove scritture finché lo spazio su disco o il conteggio degli inode non scende al di sotto del limite soft.
Per impostazione predefinita, il periodo di tolleranza è di una settimana.
Un limite hard definisce il massimo assoluto. Se questo limite viene raggiunto, tutte le operazioni di scrittura successive non vanno a buon fine e viene restituito un errore "Quota disco superata".
Amministrazione di utenti e gruppi
Lustre si basa sugli attributi POSIX del client per i nomi e gli ID di utenti e gruppi.
Quando un client effettua una richiesta al file system, invia l'UID e il GID locali ai server Lustre. I server utilizzano questi attributi POSIX per applicare le autorizzazioni standard dei file e monitorare l'utilizzo delle quote.
Per un comportamento coerente in un ambiente multiutente, tutti i client che eseguono il mount del file system Lustre devono avere mappature UID e GID sincronizzate, in genere gestite tramite un servizio centralizzato come LDAP o NIS.
Gli utenti root non sono soggetti a quote. Anche i comandi eseguiti con sudo ignorano i controlli delle quote.
Prima di iniziare
Per gestire le quote di Lustre, devi disporre di:
- Accesso client a un file system Google Cloud Managed Lustre attivo.
- Privilegi
sudoo root sul sistema client per eseguire i comandilfs.
Impostare le quote
Utilizza il comando lfs setquota per configurare i limiti di blocchi e inode. Puoi specificare solo i limiti di blocco, solo i limiti di inode o entrambi; allo stesso modo, puoi specificare limiti hard, limiti soft o entrambi.
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
Dove:
-uspecifica un utente per nome utente o UID. Lustre risolve i nomi utente utilizzando gli attributi POSIX del client.-gspecifica un gruppo per nome gruppo o GID. Lustre risolve i nomi dei gruppi utilizzando gli attributi POSIX del client.-pspecifica un progetto per nome progetto o ID progetto. Se specifichi un nome progetto, questo deve essere mappato a un ID progetto utilizzando un file di mappatura come/etc/projidsul client.U,GePimpostano la quota predefinita per tutti gli utenti, i gruppi o i progetti per cui non è stata impostata una quota specifica.- UGP_VALUE è il nome utente, il nome del gruppo, il nome del progetto, l'UID, il GID o l'ID
progetto. Gli ID devono essere numeri interi compresi tra
0e4294967295. Ometti questo valore se stai specificando le quote predefinite per utenti, gruppi o progetti. -be-Bsono rispettivamente i limiti soft e hard per l'utilizzo dei blocchi. I limiti soft devono essere inferiori ai limiti hard. I valori possono essere specificati in byte (B), kilobyte (K), megabyte (M), gigabyte (G) o terabyte (T). L'unità predefinita è il kilobyte.-ie-Isono i limiti soft e hard per l'utilizzo degli inode. I limiti soft devono essere inferiori ai limiti hard.- MOUNT_DIR è il punto di mount del file system Managed Lustre.
Tieni presente che non puoi configurare il periodo di tolleranza contemporaneamente alla creazione di una quota. Il periodo di tolleranza predefinito per i limiti soft è di una settimana. Per aggiornare il periodo di tolleranza, consulta Configurare i periodi di tolleranza.
Esempi
Impostare una quota utente
Imposta un limite soft di blocchi di 100 GB, un limite hard di blocchi di 120 GB, un limite soft di inode di 10.000 e un limite hard di inode di 12.000 per user1 su /mnt/lustre:
sudo lfs setquota -u user1 -b 100G -B 120G -i 10000 -I 12000 /mnt/lustre
Impostare una quota di gruppo
Imposta un limite hard di blocchi di 50 TB per groupA su /mnt/lustre:
sudo lfs setquota -g groupA -B 50T /mnt/lustre
Impostare una quota di progetto
Le quote di progetto richiedono un passaggio aggiuntivo per associare directory e file a un ID progetto:
Utilizza il comando
lfs projectper assegnare un ID progetto. Questo ID è un numero intero arbitrario che identifica il progetto.sudo lfs project -spr LFS_PROJECT_ID PATH/TO/DIR/OR/FILEDove:
-simposta l'ereditarietà, in modo che i nuovi file e le nuove directory creati nella directory specificata ereditino l'ID progetto.-pindica al comando di impostare l'ID progetto specificato sul file o sulla directory specificati.-rapplica l'ID progetto in modo ricorsivo a tutti i file e le directory secondarie.- PATH/TO/DIR/OR/FILE è il percorso di una directory o di un file su cui impostare l'ID progetto. È possibile specificare un solo percorso o file.
Per altri flag e informazioni, esegui
man lfs projectdal client.Ad esempio, per assegnare il progetto
101a/mnt/lustre/my-projecte a tutti i relativi elementi secondari nuovi ed esistenti:sudo lfs project -spr 101 /mnt/lustre/my-projectImposta la quota utilizzando
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
Impostare una quota predefinita
Imposta un limite hard di blocchi di 50 TB per tutti gli utenti senza un'impostazione di quota specifica:
sudo lfs setquota -U -B 50T /mnt/lustre
Modificare le quote
Per modificare una quota esistente, esegui di nuovo lfs setquota con i nuovi valori. Il comando sovrascrive le impostazioni precedenti per l'utente, il gruppo o il progetto specificati.
Configurare i periodi di tolleranza
I periodi di tolleranza definiscono per quanto tempo un utente, un gruppo o un progetto può superare un limite soft prima che il limite soft agisca come limite hard. Per impostazione predefinita, questo valore è di una settimana. I periodi di tolleranza vengono impostati per tutti gli utenti, i gruppi o i progetti; non possono essere impostati su ID specifici.
Per aggiornare un periodo di tolleranza, utilizza il comando lfs setquota -t:
sudo lfs setquota -t -u | g | p \
-b BLOCK_GRACE_PERIOD -i INODE_GRACE_PERIOD \
MOUNT_DIR
Dove:
-uapplica il periodo di tolleranza alle quote utente.-gapplica il periodo di tolleranza alle quote di gruppo.-papplica il periodo di tolleranza alle quote di progetto.-be-ispecificano rispettivamente i periodi di tolleranza per blocchi e inode. L'unità predefinita è il secondo. Puoi utilizzare altre unità con il formato:XwXdXhXmXs(settimane, giorni, ore, minuti, secondi). Puoi impostare limiti per uno o entrambi i tipi di quota.Specifica
'notify'anziché un valore di tempo per contrassegnare l'output dilfs quotacon un asterisco quando il limite soft è stato superato. Le nuove scritture non vengono bloccate quando'notify'viene specificato finché non viene raggiunto il limite hard.
Ad esempio, per impostare un periodo di tolleranza per i blocchi di 7 giorni per tutte le quote utente:
sudo lfs setquota -t -u -b 7d /mnt/lustre
Per impostare un periodo di tolleranza per gli inode di 24 ore per le quote di progetto:
sudo lfs setquota -t -p -i 24h /mnt/lustre
Per ricevere una notifica quando viene superato un limite soft di blocchi:
sudo lfs setquota -t -u -b 'notify' /mnt/lustre
Visualizzare le quote esistenti
Il comando lfs quota mostra l'utilizzo e i limiti per l'utente corrente:
lfs quota MOUNT_DIR
Per un elenco completo delle opzioni, esegui man lfs quota dal client.
Ad esempio, per visualizzare la quota di user1 su /mnt/lustre:
sudo lfs quota -u user1 /mnt/lustre
Tieni presente che per visualizzare la quota e l'utilizzo di un altro utente è necessario eseguire il comando con sudo.
L'output mostra:
Filesystem: il punto di mount di Lustre.kbytes: utilizzo attuale del disco in kilobyte.bquota: limite soft di blocchi in kilobyte.blimit: limite hard di blocchi in kilobyte.bgrace: periodo di tolleranza rimanente se viene superato il limite soft di blocchi. Un asterisco (*) indica che il limite soft è stato superato.files: numero di inode utilizzati.iquota: limite soft di inode.ilimit: limite hard di inode.igrace: periodo di tolleranza rimanente se viene superato il limite soft di inode. Un asterisco (*) indica che il limite soft è stato superato.
Per visualizzare i periodi di tolleranza configurati per tutte le quote utente:
lfs quota -t -u /mnt/lustre
Monitorare le quote in Cloud Monitoring
Oltre a utilizzare il comando lfs quota su un client, puoi visualizzare l'utilizzo e i limiti delle quote del file system tramite Cloud Monitoring. In questo modo, puoi
monitorare il consumo di spazio di archiviazione per utente, gruppo o progetto dalla
Google Cloud console.
Le metriche delle quote sono associate alla risorsa monitorata Entità quota Lustre. Le metriche disponibili includono:
- Byte: byte utilizzati, limite soft e limite hard.
- Inode: inode utilizzati, limite soft e limite hard.
Per visualizzare queste metriche:
Nella Google Cloud console, vai alla pagina Monitoring > Esplora metriche.
Nel campo Seleziona una metrica, cerca e seleziona la risorsa Entità quota Lustre.
Seleziona la metrica della quota specifica che vuoi visualizzare (ad esempio, Byte utilizzati per la quota o Limite hard di inode per la quota).
Facoltativamente, utilizza le opzioni Filtro per visualizzare entità specifiche filtrando l'etichetta
accounting_type(ad es.user,group,project) o l'etichettaid(ad es. l'UID, il GID o l'ID progetto specifici).
Rimuovere le quote
Per rimuovere una quota, imposta i limiti soft e hard su 0.
sudo lfs setquota -u | g | p | U | G | P UGP_VALUE -b 0 -B 0 -i 0 -I 0 MOUNT_DIR
Ad esempio, per rimuovere le quote di blocchi e inode di user1:
sudo lfs setquota -u user1 -b 0 -B 0 -i 0 -I 0 /mnt/lustre
Per rimuovere il limite di blocchi del progetto predefinito:
sudo lfs setquota -P -b 0 -B 0 /mnt/lustre
Problemi comuni
Quando lavori con le quote di Lustre, tieni presente i seguenti problemi comuni:
Cache concessa: la cache concessa è una funzionalità di Lustre che consente ai client di ricevere un blocco di spazio di archiviazione come "concessione" dalla destinazione di Object Storage (OST) per la scrittura dei dati. Quando un client dispone di questa cache concessa, può restituire immediatamente un messaggio di operazione riuscita all'utente per un'operazione di scrittura, anche se i dati si trovano ancora nella cache locale del client e prima che vengano scritti fisicamente sul disco. Si tratta di un'ottimizzazione delle prestazioni che riduce al minimo la latenza.
La cache concessa introduce la possibilità di superare le quote. Poiché la cache concessa consente ai client di continuare a scrivere dati nella cache anche se la quota lato server è stata nel frattempo esaurita, è possibile che un utente superi il limite hard.
Assegnazione errata dell'ID progetto: affinché le quote di progetto funzionino, è necessario assegnare correttamente un ID progetto a directory e file utilizzando
lfs project -spr. Se ometti-r, l'ID progetto non viene applicato ai file e alle sottodirectory esistenti. Se ometti-s, i nuovi file e le nuove directory creati in un secondo momento non erediteranno l'ID progetto.Più quote e "la più restrittiva vince": un utente può essere soggetto contemporaneamente a una quota utente, a una o più quote di gruppo e a una o più quote di progetto. Lustre applica il più restrittivo di questi limiti. Ciò significa che un utente potrebbe avere una quota personale elevata, ma essere limitato da una quota di progetto inferiore per i file all'interno della directory del progetto.
Ignorare la quota dell'utente root: le scritture di un utente
rootignorano l'applicazione delle quote. Ciò può comportare il riempimento del file system da parte delle attività amministrative, anche quando sono in vigore le quote per altri utenti.fallocatenon rispetta le quote: gli utenti possono utilizzarefallocateper riservare spazio sul file system che supera il limite hard.