I file system Lustre gestiti di Google Cloud supportano quote per utenti, gruppi e progetti, consentendo agli amministratori di gestire il consumo di spazio di archiviazione e garantire un'equa allocazione 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 ti consentono di impostare limiti alla quantità di spazio su disco e al numero di file che utenti, gruppi o progetti possono utilizzare all'interno del file system.
Le quote vengono applicate a entità diverse:
- Le quote utente limitano lo spazio di archiviazione utilizzato da un singolo utente non root.
- Le quote di gruppo limitano lo spazio di archiviazione utilizzato da tutti i membri non root di un gruppo specifico.
- Le quote di progetto limitano lo spazio di archiviazione utilizzato da file e directory
associati a un determinato ID progetto. Questo ID progetto è un identificatore del file system Lustre, definito utilizzando
lfs projecte non è il tuo ID progettoGoogle Cloud . Per saperne di più, consulta la sezione Impostare una quota di progetto.
Le quote sono 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 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 temporaneo è 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 temporaneo, quest'ultimo viene applicato come limite rigido, bloccando tutte le nuove scritture finché lo spazio su disco o il conteggio degli inode non scende al di sotto del limite temporaneo.
Per impostazione predefinita, il periodo di tolleranza è di una settimana.
Un limite rigido definisce il massimo assoluto. Se questo limite viene raggiunto, tutte le ulteriori operazioni di scrittura non vanno a buon fine e viene restituito l'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 della quota.
Per un comportamento coerente in un ambiente multiutente, tutti i client che montano il 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. I comandi eseguiti con sudo ignorano anche i controlli
della quota.
Prima di iniziare
Per gestire le quote di Lustre, devi:
- Accesso client a un file system Google Cloud Managed Lustre attivo.
sudoo privilegi root sul sistema client per eseguire i comandilfs.
Imposta quote
Utilizza il comando lfs setquota per configurare i limiti di blocchi e inode. Puoi specificare solo limiti di blocchi, solo limiti di inode o entrambi; allo stesso modo, puoi specificare limiti rigidi, limiti temporanei 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 in base al nome utente o all'UID.-gspecifica un gruppo per nome o GID.-pspecifica un progetto in base all'ID progetto.U,GePimpostano la quota predefinita per utenti, gruppi o progetti per i quali non è impostata una quota specifica.- UGP_VALUE è il nome utente, il nome del gruppo, l'UID, il GID o l'ID progetto. Ometti questo valore se stai specificando quote predefinite per utenti, gruppi o progetti.
-be-Bsono 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 limiti soft e hard per l'utilizzo degli inode. I limiti soft devono essere inferiori ai limiti hard.- MOUNT_DIR è il punto di montaggio 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 flessibili è di una settimana. Per aggiornare il periodo di tolleranza, vedi Configurare i periodi di tolleranza.
Esempi
Impostare una quota utente
Imposta un limite flessibile di 100 GB, un limite rigido di 120 GB, un limite flessibile di inode di 10.000 e un limite rigido 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 di blocco rigido 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.-rapplica l'ID progetto in modo ricorsivo a tutte le directory e i file secondari.-pindica al comando di impostare l'ID progetto specificato nel file o nella directory specificati.- PATH/TO/DIR/OR/FILE è il percorso di una directory o un file su cui impostare l'ID progetto. È possibile specificare un solo percorso o file.
Per ulteriori flag e informazioni, esegui
man lfs projectdal tuo client.Ad esempio, per assegnare il progetto
101a/mnt/lustre/my-projecte a tutti i relativi progetti 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 di blocco rigido 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 specificato.
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 questo agisca come limite hard. Per impostazione predefinita, questo valore è una settimana. I periodi di tolleranza vengono impostati per tutti gli utenti, i gruppi o i progetti e 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 del progetto.-be-ispecificano rispettivamente i periodi di tolleranza per blocchi e inode. L'unità predefinita è secondi. 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 viene specificato'notify'finché non viene raggiunto il limite rigido.
Ad esempio, per impostare un periodo di tolleranza di blocco di 7 giorni per tutte le quote utente:
sudo lfs setquota -t -u -b 7d /mnt/lustre
Per impostare un periodo di tolleranza di 24 ore per i nodi i 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 blocco:
sudo lfs setquota -t -u -b 'notify' /mnt/lustre
Visualizza 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 montaggio di Lustre.kbytes: Utilizzo attuale del disco in kilobyte.bquota: Limite di blocco temporaneo in kilobyte.blimit: Limite di blocco rigido in kilobyte.bgrace: periodo di tolleranza rimanente se viene superato il limite soft di blocchi. Un asterisco (*) indica che è stato superato il limite soft.files: Numero di inode utilizzati.iquota: Limite soft degli inode.ilimit: Limite rigido degli inode.igrace: periodo di tolleranza rimanente se il limite soft di inode viene superato. Un asterisco (*) indica che è stato superato il limite soft.
Per visualizzare i periodi di tolleranza configurati per tutte le quote utente:
lfs quota -t -u /mnt/lustre
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 predefinito dei blocchi di progetto:
sudo lfs setquota -P -b 0 -B 0 /mnt/lustre
Problemi comuni
Quando lavori con le quote 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" dall'Object Storage Target (OST) per la scrittura dei dati. Quando un client dispone di questa cache concessa, può restituire immediatamente un messaggio di esito positivo all'utente per un'operazione di scrittura, anche mentre i dati si trovano ancora nella cache locale del client e prima che vengano scritti fisicamente sul disco. Si tratta di un'ottimizzazione del rendimento 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 rigido.
Assegnazione errata dell'ID progetto: affinché le quote di progetto funzionino, alle directory e ai file deve essere assegnato correttamente un ID progetto utilizzando
lfs project -spr. L'omissione di-rsignifica che 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 "prevale la più restrittiva": 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 limite più restrittivo. Ciò significa che un utente potrebbe avere una quota personale elevata, ma essere limitato da una quota di progetto più piccola per i file all'interno della directory del progetto.
Quota di bypass dell'utente root: le scritture di un utente
rootignorano l'applicazione della quota. Ciò può comportare il riempimento del file system da parte delle attività amministrative, anche quando sono in vigore quote per altri utenti.fallocatenon rispetta le quote: gli utenti possono utilizzarefallocateper riservare spazio sul file system che supera il limite rigido.