Come verificare se lo spazio NAS è utilizzato da snapshot o file attivi

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Sì, puoi distinguerli confrontando lo spazio utilizzato dal dataset, lo spazio referenziato o logico, lo spazio trattenuto dagli snapshot e lo spazio libero nel pool rilevati allo stesso momento.

La decisione è importante quando un NAS segnala molto meno spazio libero di quanto sembri contenere le cartelle visibili. I due stati in competizione sono l'allocazione attiva del dataset e i blocchi conservati esclusivamente dagli snapshot. Inizia con una configurazione salvata e dati eliminabili, osserva un ramo alla volta e interrompi il test se aumenta il rischio di perdita di dati, problemi di autorizzazioni o indisponibilità.

Definire le condizioni alla base della decisione tra spazio degli snapshot e spazio dei file attivi

Registra l'ambiente prima di modificare qualsiasi cosa: versioni del software e del firmware, identità dei dispositivi, percorso di montaggio o di rete, spazio libero, autorizzazioni e sintomo osservabile. La baseline deve conservare dettagli sufficienti per riprodurre il caso in cui un NAS segnala molto meno spazio libero di quanto sembri contenere le cartelle visibili.

Il primo candidato è l'allocazione attiva del dataset. Il secondo sono i blocchi conservati esclusivamente dagli snapshot. Le proprietà dello spazio di OpenZFS attuali definiscono il meccanismo o il limite del comando utilizzato nel test; non sostituiscono l'osservazione da questo specifico home server.

Definisci la condizione di accettazione e quella di arresto prima di eseguire il discriminatore. Un superamento deve modificare le evidenze previste da un ramo lasciando invariati i servizi non correlati; un fallimento deve riportare il sistema allo stato salvato invece di avviare una serie di correzioni speculative.

Verificare l'ipotesi senza ridurre il requisito originale

Usa questo discriminatore: registra i dati di utilizzo del pool e del dataset, elimina un file grande e non importante, quindi confronta la situazione prima e dopo senza distruggere gli snapshot. Mantieni costanti carico di lavoro, client, percorso, insieme di file e tempistiche, così il risultato sarà attribuibile alla variabile modificata.

Usa i dati di utilizzo dell'allocazione ZFS per selezionare il campo che può realmente separare i due rami, quindi acquisisci il relativo timestamp, il codice di uscita, il testo dell'errore, l'identità del dispositivo o dello snapshot, la latenza, i byte trasferiti, le autorizzazioni e lo stato di ripristino. Un'uscita corretta del comando non è sufficiente quando l'ipotesi in esame riguarda identità, durabilità o stato dell'applicazione.

Ripeti il test una volta dopo un riavvio, una riconnessione, un nuovo montaggio o una cache fredda quando tale evento fa parte della condizione originale. Se la prima esecuzione è distruttiva o l'ambiente non può essere ripristinato, interrompi il test e riproducilo su una copia eliminabile.

zfs list -o name,used,refer,usedbysnapshots,usedbydataset,usedbychildren

Interpretare i risultati superati, falliti e le eccezioni

SUPERATO: lo spazio referenziato attivo diminuisce mentre lo spazio utilizzato rimane invariato perché uno snapshot continua a fare riferimento ai blocchi. Registra la versione esatta, l'identità e il carico di lavoro che hanno prodotto il risultato, affinché la conclusione rimanga condizionata anziché diventare un'asserzione universale.

FALLITO: sia lo spazio referenziato sia quello utilizzato rimangono elevati, oppure lo spazio è occupato da un altro dataset, clone, riserva o allocazione di metadati. Un fallimento non dimostra automaticamente il ramo opposto quando rete, memoria, autorizzazioni o coerenza della sorgente possono influenzarli entrambi; isola tali dipendenze condivise prima di procedere.

ECCEZIONE O RISULTATO AMBIGUO: interrompi le eliminazioni e mappa ogni dataset, snapshot, clone e riserva prima della pulizia. Conserva i log e non eseguire comandi di riparazione, eliminazione, distruzione, ripartizionamento o modifica ricorsiva delle proprietà fino a quando non esiste una copia ripristinabile.

-15% OFF

Confermare la decisione con il carico di lavoro originale

Applica l'azione corrispondente al ramo osservato, quindi ripeti la condizione originale anziché una versione semplificata. La decisione è valida solo quando lo spazio referenziato attivo diminuisce mentre quello utilizzato rimane invariato perché uno snapshot continua a fare riferimento ai blocchi, in due cicli o durante il riavvio, la sospensione, l'interruzione o la transizione di carico pertinenti.

Usa le finestre di backup immutabili per verificare il flusso di lavoro dipendente più vicino, ma mantieni invariato il trigger originale. Dataset, condivisioni, container, utenti e punti di ripristino non correlati devono conservare l'accesso e le tempistiche precedenti.

Il limite di arresto è esplicito: se sia lo spazio referenziato sia quello utilizzato rimangono elevati, oppure lo spazio è occupato da un altro dataset, clone, riserva o allocazione di metadati, torna all'ultima configurazione verificata, conserva le evidenze e procedi con un test più approfondito della piattaforma o dell'hardware solo quando il ramo è riproducibile.

Dopo aver ottenuto il risultato previsto, confrontalo con la cadenza di verifica dei backup, così la correzione non trasferirà il rischio a un servizio vicino. Un test obiettivo riuscito ma accompagnato da un nuovo errore di backup, identità, timeout o disponibilità costituisce comunque una modifica fallita.

Domande frequenti

Per lo spazio degli snapshot rispetto a quello dei file attivi, le ricerche successive riguardano di solito perché l'eliminazione di un file non libera spazio nel pool, se logicalused corrisponde allo spazio fisico e se sia possibile prevedere lo spazio degli snapshot prima dell'eliminazione. Le risposte seguenti mantengono separati questi casi limite dalla decisione principale.

Il limite di accettazione non cambia: lo spazio referenziato attivo diminuisce mentre quello utilizzato rimane invariato perché uno snapshot continua a fare riferimento ai blocchi. Se una condizione successiva modifica il filesystem, l'identità, il percorso di rete o la versione dell'applicazione, ripeti solo il discriminatore interessato da tale modifica.

Interrompi l'ampliamento dell'esperimento quando sia lo spazio referenziato sia quello utilizzato rimangono elevati, oppure lo spazio è occupato da un altro dataset, clone, riserva o allocazione di metadati. A quel punto, interrompi le eliminazioni e mappa ogni dataset, snapshot, clone e riserva prima della pulizia; conserva le evidenze prima di procedere con il responsabile della piattaforma, dello storage o dell'hardware.

Perché l'eliminazione di un file non libera spazio nel pool?

Uno snapshot potrebbe fare ancora riferimento ai suoi blocchi, oppure l'allocazione potrebbe appartenere a un clone, una riserva o un altro dataset.

logicalused corrisponde allo spazio fisico?

No. Compressione, copie, metadati e condivisione fanno sì che i valori logici e allocati differiscano.

È possibile prevedere lo spazio degli snapshot prima dell'eliminazione?

Le proprietà relative allo spazio referenziato e univoco sono utili, ma i blocchi condivisi fanno dipendere lo spazio recuperato dall'intera catena di snapshot.

Per lo spazio degli snapshot rispetto a quello dei file attivi, la risposta pratica rimane condizionata: lo spazio referenziato attivo diminuisce mentre quello utilizzato rimane invariato perché uno snapshot continua a fare riferimento ai blocchi. Quando sia lo spazio referenziato sia quello utilizzato rimangono elevati, oppure lo spazio è occupato da un altro dataset, clone, riserva o allocazione di metadati, interrompi le eliminazioni e mappa ogni dataset, snapshot, clone e riserva prima della pulizia; un successo parziale che non resiste al carico di lavoro originale non è compatibilità.

Supporto e consigli

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.