Come impostare quote e prenotazioni ZFS

Come impostare quote e prenotazioni ZFS
Zfs Quota E Prenotazione vengono utilizzati per limitare la quantità di spazio su disco, un filesystem ZFS specifico può utilizzare dal pool ZFS.

Quota ZFS: Diciamo che hai un pool di dimensioni ZFS 10 GB. Hai creato un filesystem ZFS su quel pool. Se imposti una quota di 2 GB Per quel filesystem ZFS, quindi il filesystem ZFS può utilizzare solo 2 GB di spazio su disco dal pool. Non può usare più di così anche se c'è spazio libero disponibile in piscina.

Riserva di ZFS: Se imposti una quota di 2 GB Per un filesystem ZFS, ZFS non allocherà immediatamente 2 GB di spazio su disco per quel filesystem. Lo spazio su disco verrà assegnato come richiesto fino al raggiungimento del limite di quota. Immagina di avere molti filesystem sul tuo pool ZFS e molti utenti li stanno scrivendo. Potrebbe arrivare un momento in cui non viene raggiunto il limite di quota di un filesystem, ma altri filesystem hanno riempito lo spazio su disco del pool. Quindi, anche se il filesystem ha usato meno di 2 GB di spazio su disco dal pool, non scriverà ancora nel pool poiché il pool non ha alcun spazio su disco gratuito.

Per risolvere questo problema, è possibile utilizzare la prenotazione ZFS. Puoi impostare 2 GB di prenotazione per il tuo filesystem ZFS molto speciale e nel momento in cui si imposta la prenotazione, verranno assegnati 2 GB di spazio su disco per il filesystem dal pool ZFS. In questo modo, indipendentemente da quanti dati altri filesystem archiviano su quel pool, avrai comunque spazi di disco dedicati disponibili per il tuo filesystem e sarai comunque in grado di creare file su quel filesystem anche se il pool è pieno (non ne ha alcun spazio su disco libero).

In questo articolo, ti mostrerò come configurare quote e prenotazioni per i filesystem ZFS. Quindi iniziamo.

Sommario

  1. Creazione di pool ZFS e filesystem
  2. Configurazione della quota del filesystem ZFS
  3. Configurazione della prenotazione del filesystem ZFS
  4. Configurazione della prenotazione del filesystem ZFS insieme alla quota
  5. Disabilitazione della prenotazione del filesystem ZFS
  6. Disabilitazione della quota del filesystem ZFS
  7. Conclusione
  8. Riferimenti

Creazione di pool ZFS e filesystem

Per sperimentare la quota e la prenotazione ZFS, creerò un pool ZFS Pool1 e 4 filesystem ZFS FS1, FS2, FS3, E FS4 sul pool ZFS Pool1. Se vuoi seguire, puoi fare lo stesso.

Questo articolo utilizzerà il VDB E VDC dispositivi di archiviazione per creare il pool ZFS Pool1.

$ sudo lsblk -e7 -d

Per creare il pool ZFS Pool1 usando il VDB E VDC dispositivi di archiviazione, eseguire il seguente comando:

$ sudo zpool crea -f pool1 vdb vdc

Una piscina ZFS Pool1 dovrebbe essere creato.

elenco $ sudo zfs

Crea i filesystem FS1, FS2, FS3, E FS4 sul pool ZFS Pool1 Con i seguenti comandi:

$ sudo zfs crea pool1/fs1
$ sudo zfs crea pool1/fs2
$ sudo zfs crea pool1/fs3
$ sudo zfs crea pool1/fs4

I filesystem ZFS FS1, FS2, FS3, E FS4 dovrebbe essere creato sul pool ZFS Pool1.

elenco $ sudo zfs

Configurazione della quota del filesystem ZFS

Per impostare una quota per un filesystem ZFS, dovrai configurare il quota E Refquota Proprietà di quel filesystem ZFS.

quota: La quota verrà impostata per i dati, le snapshot del filesystem e i cloni del filesystem. Quindi, la dimensione totale dei dati del filesystem, delle snapshot del filesystem e dei cloni del filesystem non può superare il limite delle quote.

In breve,

filesystem dati dimensione + filesystem istantanee dimensione + filesystem cloni misurare < quota limite

refquota: Il limite di quota è impostato solo per i dati del filesystem, non per le snapshot del filesystem e i cloni del filesystem.

In breve,

filesystem dati misurare < Refquota limite

Per impostazione predefinita, il quota E Refquota Le proprietà non sono impostate su nessun filesystem ZFS. Pertanto, i dati del filesystem, le snapshot del filesystem e i cloni del filesystem di qualsiasi filesystem ZFS possono coprire l'intera dimensione del pool ZFS.

Come potete vedere, quota E Refquota le proprietà sono impostate su nessuno Sul filesystem ZFS FS1 Per impostazione predefinita. È lo stesso per il FS2, FS3, E FS4 anche filesystems.

$ sudo zfs get refquota, quota pool1/fs1

Per impostare una quota di 2 GB per il filesystem ZFS FS1, Esegui il seguente comando:

$ sudo zfs set quota = 2g pool1/fs1

Come puoi vedere, una quota di 2 GB è impostato per il filesystem ZFS FS1.

$ sudo zfs get quota pool1/fs1

Dopo 2 GB Di quota è impostato per il filesystem ZFS FS1, Lo spazio disponibile su disco (Disponibile) del FS1 Il filesystem dovrebbe essere 2 GB Invece dello spazio disco disponibile della piscina Pool1 (8.72 GB In questo caso), come puoi vedere nello screenshot seguente.

elenco $ sudo zfs

Hai impostato una quota di 2 GB per il filesystem ZFS FS1. Quindi, non puoi mantenere più di 2 GB di dati sul filesystem FS1. Immagina di creare alcune snapshot e cloni del filesystem che usavano circa 1 GB di spazio su disco. In tal caso, avrai solo 1 GB di spazio su disco disponibile per i dati sul FS1 filesystem. Se le snapshot e i cloni del filesystem consumano circa 1.5 GB di spazio su disco, avrai solo 500 MB di spazio su disco disponibili per i dati sul FS1 filesystem. Questo é un problema.

A volte, potresti voler dedicare uno spazio su disco per la memorizzazione di solo dati sul filesystem ZFS, in modo che le snapshot e i cloni del filesystem non utilizzino tutto lo spazio disco disponibile dal filesystem ZFS. Puoi impostare il Refquota proprietà per questo.

Diciamo che vuoi impostare una quota di 2 GB per il filesystem ZFS FS2 e dedicare 1 GB dello spazio su disco solo per dati. In questo modo, puoi solo usare 1 GB di spazio su disco per la conservazione Inapshot del filesystem E cloni.

Impostare 2 GB di quota per il filesystem ZFS FS2 come segue:

$ sudo zfs set quota = 2g pool1/fs1

Come potete vedere, 2 GB della quota è impostata per il filesystem ZFS FS2.

elenco $ sudo zfs

Dedicare 1 GB di spazio su disco per archiviare solo i dati per il filesystem ZFS FS2, impostare il Refquota Proprietà del filesystem FS2 come segue:

$ sudo zfs set refquota = 1g pool1/fs2

Come puoi vedere, il Refquota La proprietà è impostata su 1 GB, e il quota La proprietà è impostata su 2 GB Sul filesystem ZFS FS2.

$ sudo zfs get refquota, quota pool1/fs2

Lo spazio disco disponibile del filesystem ZFS FS2 dovrebbe essere 1 GB (1024 mb) - la dimensione che hai visto usando il Refquota Proprietà, come puoi vedere nello screenshot qui sotto.

elenco $ sudo zfs

Dopo l'impostazione della quota, vediamo come vengono assegnati gli spazi del disco quando si creano file sui filesystem ZFS FS1 e FS2.

Creare un 200 mb file test.img nel filesystem ZFS FS1 come segue:

$ sudo dd if =/dev/casuale di =/pool1/fs1/test.IMG BS = 1M COUNT = 200 STATO = Progressi

Creare un 100 MB file test.img nel filesystem ZFS FS2 come segue:

$ sudo dd if =/dev/casuale di =/pool1/fs2/test.IMG BS = 1M COUNT = 100 STATO = Progressi

Come potete vedere, FS1 usi 200 mb di spazio su disco e FS2 usi 100 MB di spazio su disco dalla piscina Pool1. In totale, 300 MB dello spazio su disco viene utilizzato dalla piscina Pool1. Anche se hai impostato quote per il FS1 E FS2 filesystems, solo lo spazio del disco richiesto è allocato per i filesystem FS1 E FS2 dalla piscina Pool1.

elenco $ sudo zfs

Se si desidera impostare una quota solo per i dati di un filesystem ZFS, non per le istantanei e i cloni del filesystem, impostare solo il Refquota Proprietà sul filesystem ZFS desiderato. Non devi impostare il quota proprietà. In questo modo, le snapshot e i cloni del filesystem possono occupare tutto lo spazio su disco richiesto dal pool ZFS. Ma il limite della quota verrà inserita solo sui dati che memorizzi sul tuo filesystem ZFS.

Se non stai prendendo istantanee del filesystem o fai cloni del filesystem, allora quota E Refquota lavorare allo stesso modo. Non importa quale usi.

Configurazione della prenotazione del filesystem ZFS

In precedenza, hai visto che quando si imposta una quota su un filesystem ZFS, non viene automaticamente assegnato uno spazio su disco per quel filesystem dal pool ZFS. Lo spazio su disco viene assegnato quando i file vengono creati su quel filesystem. Non ci sono problemi con questo. Ma ci sono momenti in cui non lo vuoi.

In alcuni casi, potresti voler dedicare un po 'di spazio su disco per un filesystem ZFS specifico dal pool. In questo modo, anche se altri filesystem riempiono il pool, avrai comunque spazi gratuiti sul tuo filesystem ZFS. Questo è ciò per cui viene utilizzata la prenotazione ZFS.

Per impostare una prenotazione per un filesystem ZFS, dovrai configurare il prenotazione E Refreservation Proprietà di quel filesystem ZFS.

Prenotazione: Lo spazio su disco sarà riservato per i dati, le istantanee del filesystem e i cloni del filesystem di un filesystem ZFS dal pool ZFS.

Refreservation: Lo spazio su disco sarà riservato solo per i dati di un filesystem ZFS dal pool ZFS. Nessuno spazio su disco sarà riservato per le snapshot del filesystem e i cloni del filesystem.

Per impostazione predefinita, il prenotazione E Refreservation Le proprietà non sono impostate su nessun filesystem ZFS. Pertanto, ZFS non alloca alcuna spazio su disco per dati, snapshot del filesystem e cloni del filesystem di qualsiasi filesystem ZFS dal pool ZFS.

Come potete vedere, prenotazione E Refreservation le proprietà sono impostate su nessuno Sul filesystem ZFS FS3 Per impostazione predefinita. È lo stesso per il FS1, FS2, E FS4 anche filesystems.

$ sudo zfs Ottieni una prenotazione, pool di riferimento1/fs3

Per impostazione predefinita, i filesystem ZFS FS3 E FS4 avere lo stesso spazio libero su disco (8.43 GB) come piscina Pool1.

elenco $ sudo zfs

Riservare 2 GB di spazio su disco per il filesystem ZFS FS3 (per i dati del filesystem, le istantanee e i cloni) dal pool, imposta il prenotazione Proprietà del filesystem ZFS FS3 come segue:

$ sudo zfs set prenotazione = 2g pool1/fs3

Come puoi vedere, il prenotazione La proprietà è impostata su 2 GB per il filesystem ZFS FS3.

$ sudo zfs ottieni prenotazione pool1/fs3

Notate che, immediatamente dopo aver impostato il prenotazione proprietà a 2 GB per il filesystem ZFS FS3, 2 GB viene utilizzato dal pool ZFS Pool11. Inoltre, lo spazio disco disponibile per il filesystem ZFS FS3 È 2 GB più del pool di ZFS Pool12.

elenco $ sudo zfs

Riservare 1 GB dello spazio su disco solo per i dati (non per istantanee e cloni) del filesystem ZFS FS4 dalla piscina, imposta il Refreservation Proprietà del filesystem ZFS FS4 come segue:

$ sudo zfs set refreservation = 1g pool1/fs4

IL Refreservation La proprietà dovrebbe essere impostata su 1 GB per il filesystem ZFS FS4, Come puoi vedere nello screenshot qui sotto.

$ sudo zfs ottieni la riferimento pool1/fs4

Notate che, immediatamente dopo aver impostato il Refreservation proprietà a 1 GB per il filesystem ZFS FS4, 1 GB viene utilizzato dal filesstem ZFS FS41. 1 GB viene anche utilizzato dal pool ZFS Pool12, e lo spazio disco disponibile del filesystem ZFS FS4 È 1 GB Di più3 che il pool di ZFS Pool14.

elenco $ sudo zfs

Configurazione della prenotazione del filesystem ZFS insieme alla quota

È possibile utilizzare la prenotazione insieme alla quota anche sui filesystem ZFS. Vediamo alcuni esempi.

Diciamo che vuoi impostare una quota di 2 GB per il filesystem ZFS FS3 e riserva 2 GB di spazio su disco per il filesystem ZFS FS3 (per la memorizzazione di dati del filesystem, istantanee e cloni) dal pool ZFS.

Per fare ciò, imposta il quota E prenotazione Proprietà del filesystem ZFS FS3 come segue:

$ sudo zfs set quota = 2g prenotazione = 2g pool1/fs3

IL quota E prenotazione Proprietà del filesystem ZFS FS3 dovrebbe essere impostato su 2 GB, Come puoi vedere nello screenshot qui sotto.

$ sudo zfs get quota, prenotazione pool1/fs3

Lo spazio disco disponibile del filesystem ZFS FS3 dovrebbe essere impostato su 2 GB. 2 GB dello spazio su disco dovrebbe anche essere riservato al filesystem ZFS FS3 Dal pool di ZFS Pool1.

elenco $ sudo zfs

Diciamo che vuoi impostare una quota di 2 GB per il filesystem ZFS FS4. Ma vuoi consentire solo 1 GB di spazio su disco per la memorizzazione dei dati del filesystem e l'altro 1 GB Per archiviare snapshot e cloni del filesystem. Inoltre, vuoi prenotare 1 GB di spazio su disco per archiviare il filesystem ZFS FS4 Dal pool di ZFS.

Per fare ciò, imposta il quota, Refquota, E Refreservation Proprietà del filesystem ZFS FS4 come segue:

$ sudo zfs set quota = 2g refquota = 1g di riferimento = 1g pool1/fs4

IL quota Proprietà del filesystem ZFS FS4 dovrebbe essere impostato su 2 GB, e il Refquota E Refreservation le proprietà dovrebbero essere impostate su 1 GB, Come puoi vedere nello screenshot qui sotto.

$ sudo zfs set quota, refquota, pool di refreservation1/fs4

Lo spazio disco disponibile del filesystem ZFS FS4 dovrebbe essere impostato su 1 GB. 1 GB dello spazio su disco dovrebbe anche essere riservato al filesystem ZFS FS4 Dal pool di ZFS Pool1.

elenco $ sudo zfs

Diciamo che vuoi impostare una quota di 2 GB per il filesystem ZFS FS4. Ma vuoi consentire solo 1 GB di spazio su disco per la memorizzazione dei dati del filesystem e l'altro 1 GB Per archiviare snapshot e cloni del filesystem. Inoltre, vuoi prenotare 2 GB di spazio su disco per la memorizzazione dei dati del filesystem, delle istantanee e dei cloni e 1 GB dello spazio su disco da quella prenotazione per archiviare solo il filesystem ZFS FS4.

Per fare ciò, imposta il quota, Refquota, prenotazione, E Refreservation Proprietà del filesystem ZFS FS4 come segue:

$ sudo zfs set quota = 2g refquota = 1g prenotazione = 2g di riferimento = 1g pool1/fs4

Come puoi vedere, il quota E prenotazione Proprietà del filesystem ZFS FS4 sono impostati su 2 GB, e il Refquota E Refreservation le proprietà sono impostate su 1 GB.

$ sudo zfs get quota, refquota, prenotazione, pool di rifornimento1/fs4

In precedenza, il filesystem ZFS riservato 1 GB di spazio su disco dalla piscina Pool1. Ora, riservato 1 GB Di più. In totale, 2 GB dello spazio su disco è riservato per il filesystem ZFS FS4 Dal pool di ZFS Pool1. Inoltre, il limite di quota è impostato per il filesystem ZFS FS4.

elenco $ sudo zfs

Disabilitazione della prenotazione del filesystem ZFS

Puoi impostare il prenotazione E Refreservation Proprietà di un filesystem ZFS a nessuno O 0 Per disabilitare la prenotazione per quel filesystem ZFS.

Per disabilitare la prenotazione per il filesystem ZFS FS4, impostare il prenotazione E Refreservation Proprietà del filesystem ZFS FS4 A nessuno come segue:

$ sudo zfs set prenotazioni = nessuna refreservation = nessuno pool1/fs4

La prenotazione dovrebbe essere disabilitata per il filesystem ZFS FS4.

$ sudo zfs Ottieni una prenotazione, pool di riferimento1/fs4

Come potete vedere, 2 GB di spazio su disco (4.49 GB a 2.29 GB ora) è traffico dal pool ZFS Pool1 Poiché una prenotazione è disabilitata per il filesystem ZFS FS4.

elenco $ sudo zfs

Disabilitazione della quota del filesystem ZFS

Puoi impostare il quota E Refquota Proprietà di un filesystem ZFS a nessuno O 0 Per disabilitare la quota per quel filesystem ZFS.

Per disabilitare la quota per il filesystem ZFS FS4, impostare il quota E Refquota Proprietà del filesystem ZFS FS4 A nessuno come segue:

$ sudo zfs set quota = nessuno refquota = nessuno pool1/fs4

La quota dovrebbe essere disabilitata per il filesystem ZFS FS4.

$ sudo zfs get quota, refquota pool1/fs4

Come puoi vedere, non sono impostati limiti di quota per il filesystem ZFS FS4 più.

elenco $ sudo zfs

Conclusione

In questo articolo, ho discusso delle caratteristiche di quota e prenotazione del filesystem ZFS. Ti ho mostrato come configurare quote e prenotazioni per i filesystem ZFS. Ti ho anche mostrato come disabilitare le quote e le prenotazioni dai filesystem ZFS.

Riferimenti

[1] Impostazione delle quote e delle prenotazioni ZFS (Guida all'amministrazione ZFS Solaris)