Come recuperare i dati da ZFS: ZVOLs, dataset, snapshot e dischi virtuali
Leggi su recupero dei dati dal filesystem ZFS in TrueNAS 25.04.2.6. Esamineremo come analizzare la struttura del pool e recuperare i dati da ZVOL, Dataset, Snapshot, nonché da dischi virtuali e macchine virtuali. Tratteremo scenari comuni di perdita dati, inclusi guasti dell’array, aggiornamenti di sistema falliti, errori hardware ed eliminazione accidentale. Tutte le operazioni saranno eseguite usando Hetman RAID Recovery su Windows, pur essendo disponibili funzionalità analoghe anche su Linux e macOS.

- Struttura ZFS
- Recupero dati ZFS
- Recupero di dischi virtuali
- Accesso agli Snapshot in ZFS
- Recupero dei dati eliminati
- Conclusione
- Domande e risposte
- Commenti
Il filesystem ZFS è da tempo considerato una delle soluzioni di storage più affidabili grazie all’elevata tolleranza ai guasti, ai controlli di integrità integrati e alle estese funzionalità di gestione dello storage. Oltre all’archiviazione ordinaria di file, ZFS supporta funzionalità importanti come ZVOL, Dataset, Snapshot e la gestione di dischi virtuali, cosa che lo rende popolare su server, sistemi NAS e in ambienti di virtualizzazione.
Tuttavia, anche un sistema così robusto non è immune ai guasti. La corruzione del pool, l’eliminazione accidentale di un Dataset, la perdita di uno Snapshot, errori durante l’uso di un ZVOL o il guasto di un disco virtuale possono causare la perdita dell’accesso a informazioni importanti. In queste situazioni è fondamentale sapere come agire correttamente per evitare di peggiorare lo stato dello storage e massimizzare le probabilità di un recupero riuscito.
In questo articolo esamineremo come recuperare dati da ZFS, inclusi ZVOL, Dataset, Snapshot e dischi virtuali, quali metodi è possibile utilizzare per recuperare le informazioni e quali strumenti aiutano a ripristinare in sicurezza l’accesso ai file dopo un guasto.
Recupero dati da array ZFS RAIDZ1, RAIDZ2, RAIDZ3 e Stripe
Struttura ZFS
Nel filesystem ZFS esistono tre principali tipi di oggetti di primo livello: Dataset, ZVOL e Snapshot. Ciascuno ha un proprio ruolo e opzioni di configurazione.
Dataset è il contenitore principale di file in un pool ZFS che funziona come un filesystem separato per l’archiviazione di file e directory. Può essere montato direttamente nel sistema operativo e reso accessibile tramite i protocolli FTP, NFS, iSCSI, SSH o SMB. Il vantaggio principale di un Dataset è che è possibile configurarne i parametri in modo indipendente senza influire sulle altre parti del pool. Durante la creazione di un dataset si impostano proprietà di base come l’algoritmo di compressione (LZ4, GZIP, ZSTD, LZJB, ZLE), la modalità di accesso, la sensibilità alle maiuscole/minuscole e i parametri di scrittura sincrona. Dopo la creazione la maggior parte delle impostazioni può essere modificata in qualsiasi momento senza perdita di dati, permettendo di adattare ogni Dataset a compiti specifici.
ZVOL rappresenta un dispositivo a blocchi, cioè un disco virtuale che, a differenza di un Dataset, non contiene direttamente file. Fornisce storage a blocchi per creare filesystem o essere collegato come disco alle macchine virtuali. ZVOL opera a livello di blocco e offre prestazioni più coerenti rispetto a immagini basate su file.
Quando si crea un ZVOL si specificano la dimensione logica volsize e la dimensione del blocco volblocksize, che influenzano significativamente le prestazioni. Per ottimizzare lo storage, abilita la compressione per ridurre il volume e la deduplication per eliminare duplicati. È inoltre importante abilitare la modalità sparse, che assegna lo spazio nel pool solo quando i dati vengono effettivamente scritti invece di riservare l’intera capacità al momento della creazione.
TrueNAS consente inoltre di creare dischi virtuali come file anziché ZVOL. Queste immagini di file possono essere utilizzate tramite iSCSI, tuttavia non supportano la modalità sparse e occupano immediatamente l’intera quantità di spazio su disco al momento della creazione.
Snapshot è una copia puntuale di un Dataset o di un ZVOL creata mediante il meccanismo copy-on-write, in cui le modifiche successive vengono scritte su blocchi differenti mentre i blocchi precedenti rimangono invariati. Grazie a questo, uno Snapshot consuma quasi nessuno spazio aggiuntivo e permette di ripristinare uno stato precedente o singoli file senza influire sui dati correnti. Dopo la creazione uno Snapshot è di sola lettura; può essere eliminato o utilizzato per il cloning. La gestione avviene tramite le proprietà visible e hide per la visibilità, nonché tramite i snapshot tasks per automatizzare la replica e la retention relativamente al trasferimento e al periodo di conservazione.
| Tipo di oggetto | Scopo | Caratteristiche principali | Ambito d’uso |
|---|---|---|---|
| Dataset | Filesystem logico all’interno del pool ZFS | Supporta compressione, quote, deduplication, permessi di accesso separati | Archiviazione di file e directory |
| ZVOL | Dispositivo a blocchi virtuale | Funziona come un disco tradizionale, può essere formattato con un altro filesystem | Macchine virtuali, iSCSI, database |
| Snapshot | Snapshot dello stato dei dati in un determinato istante | Creato istantaneamente, occupa spazio minimo finché i dati non cambiano | Backup, rollback, recupero |
Recupero dati ZFS
Esamineremo il processo di analisi e recupero dei dati utilizzando l’applicazione Hetman RAID Recovery.
Hetman RAID Recovery può essere d’aiuto in situazioni critiche quando l’hardware del server è guasto, il sistema operativo TrueNAS non funziona correttamente a causa di aggiornamenti o errori di sistema, o i dischi del server sono guasti. Indipendentemente dalla causa dell’inaccessibilità dei dati, il software consente l’estrazione delle informazioni e il recupero su un dispositivo di archiviazione separato.
Collegamento dei dischi
Per avviare il processo di recupero è necessario rimuovere i dischi che facevano parte del pool e collegarli a un computer con Hetman RAID Recovery installato. Questo può essere fatto direttamente tramite porte SATA sulla scheda madre o utilizzando docking station esterne. Se l’architettura hardware della workstation non consente di collegare tutti i dischi contemporaneamente, l’applicazione supporta un approccio combinato.
In situazioni con porte libere limitate, una soluzione ottimale è creare immagini virtuali di alcuni dischi. È possibile collegare direttamente alcuni drive fisici e utilizzare copie bit-a-bit esatte montate nell’interfaccia dell’utility per gli altri.

L’applicazione tratta tali immagini come dispositivi fisici completi e le utilizza automaticamente per ricostruire la struttura dell’array. Questo approccio garantisce la sicurezza dei dati poiché l’ulteriore analisi viene eseguita su copie virtuali.
Dopo che tutti i componenti del pool sono stati collegati fisicamente o montati come immagini, Hetman RAID Recovery leggerà automaticamente i metadati ZFS e visualizzerà l’array assemblato nella finestra principale, consentendo la scansione successiva e il salvataggio dei file.

Durante il rilevamento dei dischi il programma analizza i metadati e determina la configurazione del tuo array RAID. Il numero di dischi richiesti per un recupero completo dei dati dipende dal tipo di configurazione utilizzata:
- In una configurazione ZFS Stripe non esiste ridondanza, quindi sono richiesti tutti i dischi. L’assenza o il danneggiamento anche di un solo drive rende impossibile il recupero completo della struttura; in tali casi è possibile solo l’estrazione parziale dei dati dai dischi disponibili.
- RAIDZ1 tollera il guasto di un singolo disco. Pertanto, il recupero è possibile se sono collegati tutti i drive eccetto uno guasto. Se mancano due o più drive, il recupero completo della struttura diventa impossibile.
- RAIDZ2 consente la perdita di fino a due dischi. Per una corretta ricostruzione del pool i drive sani rimanenti sono sufficienti, permettendo il recupero dei dati anche in scenari a doppio guasto.
- RAIDZ3 ha la più alta tolleranza ai guasti e consente la perdita di fino a tre dischi. Con i drive sani rimanenti presenti, il recupero completo dei dati è possibile anche in scenari multipli complessi.
| Tipo ZFS | Numero minimo di dischi | Perdita dischi consentita | Prestazioni | Livello di protezione dei dati | Equivalente RAID |
|---|---|---|---|---|---|
| Stripe | 2 | 0 | Molto alte | Nessuna | RAID 0 |
| RAIDZ1 | 3 | 1 | Alte | Medio | RAID 5 |
| RAIDZ2 | 4 | 2 | Medie | Alto | RAID 6 |
| RAIDZ3 | 5 | 3 | Inferiori | Molto alto | – |
Ricostruzione automatica del pool
Avvia Hetman RAID Recovery e il programma inizierà automaticamente la scansione di tutti i dispositivi collegati. L’utility legge i metadati di servizio ZFS, analizza la configurazione dei gruppi virtuali (vdev) e, in base ai dati ottenuti, ricostruisce un modello corretto del tuo pool.

Nella finestra di lavoro vedrai tutti i drive rilevati e i loro parametri. Seleziona il pool desiderato dall’elenco degli array ricostruiti e avvia la modalità Fast Scan per determinare rapidamente la struttura dei dati.

Al termine della scansione il filesystem recuperato con l’intera gerarchia di directory e file verrà mostrato nella finestra principale. Potrai visualizzare tutti i Dataset, le cartelle, i file, i ZVOL, i file di disco virtuale (LUN) e gli Snapshots. Espandi le cartelle per ispezionarne il contenuto e identificare gli oggetti da recuperare.

Segna gli oggetti che desideri recuperare e clicca su Recovery.

Nel passaggio successivo specifica una cartella per il salvataggio dei dati scegliendo un dispositivo separato con spazio libero sufficiente. Questo è fondamentale per evitare di sovrascrivere i dati originali sul disco danneggiato. Il programma mostrerà lo spazio disponibile sul dispositivo di destinazione e la dimensione dei file selezionati per controllo.

Conferma l’avvio del processo di salvataggio e specifica il percorso finale all’interno della cartella selezionata. Premi nuovamente Recovery per avviare la copia dei dati scelti sullo storage selezionato.

L’applicazione esegue una copia byte-per-byte con verifica di integrità e mostra l’avanzamento delle operazioni in tempo reale. Al termine della copia premi Finish.
Tutti i dati recuperati saranno ora disponibili sul dispositivo scelto nella loro forma abituale e pronti per l’uso senza operazioni aggiuntive.

Recupero di dischi virtuali
Nei casi in cui il recupero sia necessario a seguito di eliminazione accidentale di file, formattazione della partizione o cancellazione della configurazione di una macchina virtuale mantenendo però il ZVOL, Hetman RAID Recovery fornisce strumenti per un’analisi profonda e il recupero dei dati.
Il programma tratta gli oggetti ZFS come dispositivi di storage completi indipendentemente dal fatto che siano file immagine del disco o un dispositivo a blocchi ZVOL. Grazie al supporto per un’ampia gamma di filesystem, inclusi NTFS, ReFS, VMFS, Ext, XFS, BTRFS, FAT, ExFAT, APFS, HFS e HikvisionFS, è possibile recuperare con successo dati da ambienti virtuali di qualsiasi complessità.
Il processo di recupero inizia eseguendo una scansione rapida del pool per individuare il ZVOL o il disco virtuale richiesto.

L’oggetto trovato può essere montato direttamente nell’interfaccia dell’applicazione o precedentemente salvato sul computer come file immagine per un’analisi successiva. Il montaggio diretto consente di risparmiare spazio su disco poiché non richiede la creazione di copie aggiuntive.

Dopo il montaggio, l’oggetto apparirà nell’elenco dispositivi come un disco regolare pronto per un’ispezione dettagliata del suo contenuto interno.

La scelta della modalità di scansione per il disco montato dipende dalla natura della perdita di dati. Se i file sono stati semplicemente eliminati, usa Fast Scan per visualizzare rapidamente la gerarchia delle directory. In casi più complessi, come formattazione o modifiche alla disposizione delle partizioni, è raccomandato usare Full Scan per una ricerca approfondita basata su firme.
Al termine dell’analisi potrai visualizzare file esistenti e cancellati, verificarne l’integrità tramite la finestra di anteprima e salvare i dati necessari su un dispositivo di storage sano e sicuro.

Accesso agli Snapshot in ZFS
Hetman RAID Recovery consente il recupero efficace di dati eliminati o modificati da oggetti ZVOL e dischi virtuali utilizzando Snapshots precedentemente creati. Questo approccio è critico quando un rollback completo del sistema è impraticabile a causa del rischio di perdere le modifiche correnti effettuate dopo la creazione dello snapshot, permettendo di preservare lo stato attuale del sistema mentre si ripristinano selettivamente i dati necessari.
Per iniziare, esegui la modalità Fast Scan, dopo la quale apparirà una cartella speciale Snapshot nella gerarchia del pool.

Gli snapshot al suo interno sono ordinati per nome e data di creazione, consentendo l’identificazione rapida del punto di recupero desiderato. Selezionando lo Snapshot appropriato si ottiene accesso a tutti gli oggetti catturati in quel momento, inclusi dataset e dischi virtuali. Ciò permette di copiare semplicemente gli elementi richiesti senza modificare la struttura operativa corrente del pool.


Se il salvataggio di grandi immagini ZVOL sul disco del computer locale non è possibile per mancanza di tempo o spazio libero, è consigliabile utilizzare la funzione di montaggio degli oggetti direttamente nell’interfaccia dell’applicazione. Questo permette di lavorare con dischi virtuali e immagini LUN come dispositivi di archiviazione regolari senza esportarli preventivamente su supporto fisico. Sebbene la velocità di elaborazione in questa modalità possa essere leggermente inferiore, si risparmiano notevolmente le risorse e si consente una ricerca profonda immediata all’interno dei filesystem guest come NTFS, ext4 o XFS.

Dopo che l’oggetto richiesto è stato montato o selezionato all’interno dello Snapshot, puoi eseguire le normali operazioni di ricerca e recupero. Il programma mostrerà il contenuto dell’ambiente virtuale, permettendoti di selezionare specifici file e cartelle da salvare.

Successivamente, clicca semplicemente su Recovery e specifica il percorso verso un dispositivo di archiviazione sicuro.

Questo approccio rende il processo di recupero trasparente e comodo, offrendo flessibilità quando si lavora con dati in ambienti di produzione dove la continuità del servizio è una priorità assoluta.
Recupero dei dati eliminati
Nei casi in cui i dati sono stati eliminati direttamente dal pool e gli Snapshots sono assenti o sovrascritti, l’analisi standard dei metadati diventa inefficace. La specificità del filesystem ZFS e il meccanismo copy-on-write implicano che dopo l’eliminazione l’albero delle directory spesso non viene preservato. Tuttavia, i dati stessi rimangono nei blocchi del pool, il che consente a Hetman RAID Recovery di localizzarli e ripristinarli con successo anche in assenza delle tabelle di posizionamento.
Le cause di tale perdita possono includere l’eliminazione accidentale di dataset, di ZVOL o di macchine virtuali insieme ai dischi collegati.
Uno scenario critico è l’inizializzazione dei dischi in sistemi operativi estranei come Windows o macOS, che può sovrascrivere le informazioni di servizio iniziali di ZFS. In tali scenari il programma esegue un’analisi a basso livello dell’intera superficie del disco, identificando file e strutture logiche tramite le loro firme.
Per recuperare, seleziona l’array ricostruito ed esegui la Full scan. Questo processo richiede più tempo perché il programma lavora direttamente con i blocchi di dati, assemblando frammenti sparsi in oggetti coerenti. Se l’eliminazione è avvenuta all’interno di una macchina virtuale, si applica un’analisi a due stadi: prima viene recuperato il ZVOL come dispositivo a blocchi, quindi viene eseguita la scansione del suo filesystem interno per trovare i dati del sistema operativo guest.

Al termine dell’analisi, gli oggetti scoperti di norma appaiono come un unico elenco alla radice del pool. Per trovare il ZVOL o il file richiesto tra migliaia di elementi trovati, utilizza la funzione di ricerca integrata. Puoi filtrare i risultati per nome, data o dimensione del file. Se il nome dell’oggetto non è stato preservato nei metadati, il suo volume è l’indicatore principale per identificare un disco virtuale.

I file trovati possono essere recuperati direttamente o montati come dischi virtuali per un’ulteriore esamina del loro contenuto. Prima del salvataggio definitivo è consigliato utilizzare la funzione di anteprima per verificare l’integrità dei dati.

Dopo aver selezionato gli elementi necessari clicca su Recovery e specifica il percorso verso un dispositivo di archiviazione sicuro separato con spazio libero sufficiente. Il programma ti notificherà al termine della copia, dopodiché tutti i dati saranno pronti per l’uso.
Conclusione
Il recupero dei dati dal filesystem ZFS, inclusi ZVOL, Dataset, Snapshot e dischi virtuali, è possibile anche dopo guasti gravi se le azioni vengono eseguite con cura e in modo sequenziale. Grazie ai meccanismi di integrità integrati, agli snapshot e alla struttura di storage flessibile, ZFS aumenta significativamente le probabilità di recuperare con successo le informazioni rispetto a molti altri filesystem.
Gli Snapshots svolgono un ruolo particolarmente importante nel recupero, permettendo di ripristinare uno stato precedente dei dati senza complesse ricostruzioni dell’intero pool. Per ZVOL e dischi virtuali un vantaggio aggiuntivo è la possibilità di lavorare con dispositivi a blocchi individuali, cosa che semplifica l’analisi e la copia delle informazioni. Allo stesso tempo, la corruzione dei metadati o errori nella struttura del pool possono complicare notevolmente il processo e richiedere strumenti specializzati.
Per aumentare le probabilità di un recupero riuscito è importante non scrivere sul pool problematico, non creare nuovi datasets e, se possibile, lavorare solo con copie dei dischi. Nei casi complessi la soluzione migliore può essere consultare specialisti nel recupero dei dati.
Quindi, anche la complessa architettura di ZFS non impedisce il recupero se le sue capacità vengono utilizzate correttamente e si adotta un approccio sicuro quando si lavora con uno storage danneggiato.

