Recupero dati ZFS: guida a RAIDZ1, RAIDZ2, RAIDZ3 e Stripe

In questo articolo esaminiamo le procedure per il recupero dati da array RAIDZ1, RAIDZ2, RAIDZ3 e ZFS Stripe creati nel sistema operativo TrueNAS SCALE. Dimostriamo la sequenza di azioni in caso di guasto hardware del server e la metodologia per ripristinare l’accesso al pool di dati quando uno o più dischi guastano o i dati vengono eliminati accidentalmente dall’array.

Recupero dati ZFS: guida a RAIDZ1, RAIDZ2, RAIDZ3 e Stripe

Oltre ai guasti hardware, trattiamo il recupero dopo l’eliminazione di un intero dataset, la corruzione del pool, un guasto critico del sistema operativo, danni al filesystem ZFS, errori durante l’aggiunta di nuovi dischi, comportamento errato del controller e l’inizializzazione accidentale dei dischi in un altro sistema.

Il recupero dei dati viene eseguito su Linux Ubuntu, ma è possibile anche in ambienti Windows e macOS.

Vai a vedere
Recupero dati da array RAID SHR-2 e SHR-1 creati su NAS Synology DS418play

Recupero dati da array RAID SHR-2 e SHR-1 creati su NAS Synology DS418play

Capacità di TrueNAS SCALE

TrueNAS è un sistema operativo open per la costruzione di storage di rete, basato su Linux e che utilizza il filesystem ZFS. Fornisce protezione dei dati, verifica di integrità, gestione efficiente dei dischi e supporta l’esecuzione di macchine virtuali.

La piattaforma supporta vari tipi di RAID, incluso RAIDZ, che combina prestazioni e tolleranza ai guasti. TrueNAS SCALE consente la scalabilità orizzontale combinando più nodi in un cluster preservando le principali funzionalità di ZFS: self-healing, snapshot, compressione, deduplica e crittografia.

TrueNAS SCALE

Il sistema è compatibile con i protocolli SMB, NFS, iSCSI e S3 e permette inoltre l’esecuzione di container e Kubernetes, rendendolo una soluzione versatile per l’archiviazione e l’elaborazione dei dati in vari ambienti.

RAIDZ è un array ridondante in ZFS con parità distribuita. L’uso di blocchi a lunghezza variabile ottimizza le scritture e consente la correzione automatica degli errori durante le letture.

Durante il recupero di un array degradato (resilvering), il carico sui dischi rimanenti aumenta significativamente. Pertanto, RAIDZ è più adatto ad ambienti con requisiti moderati di tolleranza ai guasti o per dischi di capacità inferiore dove i tempi di ricostruzione dell’array sono minimi.

Categoria Capacità
Tipo di sistema NAS open-source / server basato su Linux
File system Supporto ZFS
RAID RAIDZ1, RAIDZ2, RAIDZ3, Stripe, Mirror
Scalabilità Orizzontale (Scale-out)
Virtualizzazione Supporto KVM (macchine virtuali)
Container Kubernetes, Docker (tramite Apps)
Protocolli di rete SMB, NFS, FTP, iSCSI
Gestione Interfaccia web (GUI)
Sicurezza Crittografia dei dati, controllo accessi, ACL
Backup Snapshot, Replicazione, Rsync
Servizi cloud Integrazione con AWS, Google Cloud, Azure
Monitoraggio Alerting, log, statistiche
Plugin / App Estendibilità tramite catalogo applicazioni
Alta disponibilità Supporto cluster (HA)
Supporto GPU Sì (per container e VM)

Metodo 1. Recupero automatico di array ZFS

In caso di guasto di componenti hardware del server (alimentatore, scheda madre o controller dei dischi), l’accesso diretto ai dati dal sistema operativo diventa impossibile.

Situazioni analoghe si verificano anche quando il server non si avvia a causa di un errore critico durante un aggiornamento di TrueNAS SCALE o quando la partizione di sistema è danneggiata.

Anche se i file e i dischi non sono danneggiati fisicamente, l’accesso a un array RAIDZ può andare perso e gli strumenti standard di ZFS potrebbero non rilevare i dischi o permettere l’import del pool. In questi casi, software specializzati, come Hetman RAID Recovery, consentono un accesso sicuro ai dati e il recupero delle informazioni.

Recupero dei dati da array RAID danneggiati e inaccessibili al computer.

In questo esempio dimostriamo il processo di recupero automatizzato su un computer che esegue Ubuntu.

Per prima cosa spegnere il server e rimuovere con attenzione tutti i dischi che facevano parte dell’array.

Spegni il server e rimuovi con attenzione tutte le unità

Collegarli a una workstation: l’opzione ottimale è direttamente alla scheda madre tramite cavi SATA per massima velocità e stabilità del trasferimento dati. Se la scheda madre non dispone di porte libere, è possibile utilizzare docking station USB esterne o adattatori USB-per-disco.

Collega i dischi del server a una workstation

Si noti che se collegati tramite docking station la velocità di scansione può essere inferiore, quindi per grandi volumi di dati è preferibile utilizzare porte interne.

Dopo il collegamento, verificare che i dischi siano visibili in Ubuntu nell’utilità Dischi, ma non inizializzarli se il sistema richiede tale operazione.

I dischi appaiono nell'utilità Dischi di Ubuntu

Immediatamente dopo la verifica, avviare Hetman RAID Recovery per eseguire l’assemblaggio automatico dell’array.

La caratteristica chiave di Hetman RAID Recovery è l’analisi profonda dei metadati ZFS. Il software non richiede un sistema operativo o un controller funzionante: legge le informazioni di servizio direttamente dai dischi e ricostruisce automaticamente la struttura del pool.

Poiché ZFS memorizza tutte le informazioni critiche di configurazione dell’array all’interno del pool stesso, l’integrità logica dei file è preservata anche se l’ambiente server è completamente non disponibile. Di conseguenza, l’utente ottiene accesso ai dati in una forma nota senza dipendenza dal sistema originale.

Questo articolo dimostra diverse configurazioni di array:

  • RAIDZ1 su tre dischi,
  • RAIDZ2 su quattro,
  • RAIDZ3 su cinque,
  • e Stripe su due dischi.
Tabella: varie configurazioni RAIDZ

Esamineremo l’algoritmo di recupero in dettaglio per un array RAIDZ1 a tre dischi in una situazione di guasto hardware completo del server o di errore critico dopo l’aggiornamento di TrueNAS SCALE.

È importante notare che questo approccio è universale e può essere applicato anche alle configurazioni RAIDZ2, RAIDZ3 e Stripe.

Dopo l’avvio di Hetman RAID Recovery, il programma esegue automaticamente la scansione di tutti i dispositivi collegati. Il software legge i metadati di servizio di ZFS, analizza la configurazione dei gruppi vdev virtuali e, in base ai dati ottenuti, ricostruisce il modello corretto di RAIDZ1.

La finestra di lavoro mostra i dischi rilevati e le strutture logiche assemblate — è possibile continuare immediatamente il lavoro: eseguire un’analisi dettagliata, visualizzare la struttura dei dati o recuperare i file necessari.

Hetman RAID Recovery: dischi rilevati e strutture logiche assemblate

Selezionare il RAIDZ1 desiderato dall’elenco degli array ricostruiti ed avviare la modalità Scansione rapida per determinare rapidamente la struttura dei dati.

Hetman RAID Recovery: seleziona il RAIDZ1 ricostruito dall'elenco

Al termine della scansione, il filesystem recuperato con la gerarchia completa di directory e file verrà visualizzato nella finestra principale. Selezionare gli oggetti necessari e fare clic su Recupero.

Hetman RAID Recovery: filesystem recuperato con gerarchia completa

Nel passaggio successivo, specificare una cartella per salvare i dati — preferibilmente su un supporto separato con spazio libero sufficiente.

Hetman RAID Recovery: opzioni disponibili per salvare i dati recuperati

Confermare l’avvio del processo, specificare il percorso di destinazione finale e fare clic nuovamente su Recupero per avviare la copia. Dopo il completamento dell’operazione, fare clic su Fine.

Di conseguenza, i dati dal pool ZFS RAIDZ1 saranno recuperati e disponibili per l’uso normale.

Hetman RAID Recovery: dati recuperati dal pool ZFS RAIDZ1

Metodo 2. Recupero RAIDZ con dischi mancanti

Ora consideriamo il caso di uno o più guasti di unità in un array RAIDZ.

L’architettura RAIDZ fornisce tolleranza ai guasti in base al tipo di array:

  • RAIDZ1 tollera la perdita di un disco.
  • RAIDZ2 tollera la perdita di due dischi.
  • RAIDZ3 tollera la perdita di tre dischi.

Nel caso di Stripe non esiste ridondanza, quindi il guasto di qualsiasi disco comporta la perdita completa dei dati.

Tabella: architettura RAIDZ

Se non è possibile collegare tutti i dischi, è possibile creare un’immagine del disco mancante e utilizzarla insieme agli altri dischi per il recupero successivo.

Grazie ai meccanismi di parità distribuita e ai controlli di integrità dei dati, software specializzati come Hetman RAID Recovery possono ricostruire blocchi persi e ripristinare l’accesso alle informazioni se il numero di dischi guasti non supera il livello consentito per il tipo specifico di RAIDZ.

Recupero dei dati da array RAID danneggiati e inaccessibili al computer.

Se questa soglia viene superata, la struttura logica dell’array risulta compromessa e i metodi software standard diventano inefficaci. In tali situazioni, il recupero è possibile solo con apparecchiature professionali in laboratori specializzati.

Assicurarsi che il supporto di destinazione disponga di spazio libero sufficiente per memorizzare i dati recuperati e rimuovere con cura i dischi dal server collegandoli a un computer tramite porte SATA o una docking station esterna. È importante evitare qualsiasi scrittura su questi dischi, poiché ciò potrebbe causare una perdita di dati irreversibile.

Collegamento dei dischi del server a un computer tramite docking station esterna

Prima di iniziare, chiudere tutte le applicazioni che potrebbero utilizzare questi dischi e disabilitare temporaneamente backup automatici o sincronizzazioni. Se il sistema non monta l’array, non inizializzare i dischi, creare partizioni o formattarli.

Lasciarli nello stato corrente e procedere direttamente alla procedura di recupero. Seguire queste raccomandazioni aumenta significativamente le possibilità di un recupero dati sicuro e riuscito indipendentemente dal tipo di RAIDZ o dalla configurazione Stripe.

Se l’architettura della workstation non consente di collegare tutti i dischi contemporaneamente, la soluzione ottimale è utilizzare immagini di disco virtuali. Questo metodo prevede la creazione di copie bit-a-bit esatte di ciascun disco per l’analisi successiva.

Dopo il montaggio dell’immagine del disco mancante, Hetman RAID Recovery la tratterà come un dispositivo fisico completo e, combinata con i dischi disponibili, ricostruirà automaticamente la struttura dell’array. Questo approccio consente di avviare il recupero dei dati anche quando le porte di connessione sono insufficienti — preservando la sicurezza e l’integrità dei dati in ogni fase.

Illustreremo il processo di recupero usando come esempio un RAIDZ3 in cui tre dischi sono guasti contemporaneamente.

Questa configurazione di array consente la possibilità di recuperare i dati anche in un guasto così grave — eseguiremo l’operazione con Hetman RAID Recovery.

Immediatamente all’apertura, il software esegue la scansione automatica di tutti i dischi collegati, legge le informazioni di servizio e su tale base ricostruisce la struttura originale dell’array. La finestra di lavoro mostra tutti i dischi fisici rilevati e le configurazioni virtuali formate, che possono essere utilizzate subito. Selezionare il RAIDZ3 trovato e abilitare la Scansione rapida.

Hetman RAID Recovery: pool ZFS

Non appena il controllo termina, la finestra di lavoro mostrerà la struttura completa dell’array ricostruito con tutte le directory e i file.

Hetman RAID Recovery: pool ZFS dopo la scansione

Selezionare gli elementi necessari e fare clic su Recupero. Quindi specificare la cartella di salvataggio e confermare l’operazione facendo nuovamente clic su Recupero.

Hetman RAID Recovery: analisi pool ZFS

Al completamento della copia — fare clic su Fine.

Dopo aver completato tutti i passaggi, i file recuperati dall’array RAIDZ3 saranno completamente utilizzabili in operazione normale.

Dati recuperati dal pool ZFS

Metodo 3. Recupero di file cancellati

Infine, consideriamo uno degli scenari più comuni — la cancellazione accidentale di file da un array RAID.

In questo esempio recuperiamo dati da uno Stripe creato su due dischi con filesystem ZFS.

La caratteristica dello Stripe è che i dati sono distribuiti su tutti i dischi senza alcuna ridondanza. Ciò significa che nessun singolo disco contiene file completi. Per un recupero riuscito tutti i dischi devono essere collegati simultaneamente e trattati come una singola struttura logica. Se uno dei dischi è mancante o non collegato, il software non sarà in grado di leggere i dati.

Struttura del pool ZFS

Prima di iniziare, assicurarsi che tutti i dischi siano collegati fisicamente al computer — direttamente via SATA alla scheda madre o utilizzando una docking station esterna.

È importante non scrivere nuovi dati su questi dischi né inizializzarli nel sistema per evitare la sovrascrittura dei file persi.

Ubuntu: utilità Dischi

In Ubuntu avviare Hetman RAID Recovery.

Recupero dei dati da array RAID danneggiati e inaccessibili al computer.

Il software eseguirà automaticamente la scansione di tutti i dischi collegati, leggerà i metadati ZFS e ricostruirà la struttura logica dello Stripe di conseguenza. Nella finestra principale vedrete i dischi fisici e l’array assemblato pronto per l’elaborazione.

Hetman RAID Recovery: pool ZFS

Successivamente, selezionare lo Stripe dall’elenco degli array rilevati e avviare una Scansione completa. È necessaria una scansione completa perché dopo la cancellazione dei file in ZFS solo un’analisi profonda consente di assemblare i dati frammentati e ripristinare la corretta struttura delle cartelle.

Hetman RAID Recovery: analisi completa del pool ZFS

In genere non sono richieste impostazioni aggiuntive; basta fare clic su Avanti e attendere il termine del processo. Al termine della scansione, la finestra principale mostrerà la struttura dell’array recuperato con tutte le cartelle e i file. Se necessario, utilizzare l’anteprima per verificare il contenuto di documenti, immagini o altri file.

Selezionare i file e le cartelle necessari e fare clic su Recupero.

Hetman RAID Recovery: recupero dati dal pool ZFS

Specificare la destinazione per i dati recuperati su un supporto separato con spazio libero sufficiente e confermare l’avvio del processo facendo nuovamente clic su Recupero.

Al termine della copia fare clic su Fine.

Hetman RAID Recovery: recupero dati completato dal pool ZFS

Di conseguenza, tutti i file saranno recuperati e disponibili per l’uso normale.

Questo processo garantisce la sicurezza dei dati, consente il ripristino dei file anche dopo l’eliminazione accidentale e preserva la struttura del filesystem ZFS senza rischiare danni ad altri dati sui dischi.

Conclusione

Il recupero dei dati dal filesystem ZFS e dagli array RAIDZ1, RAIDZ2, RAIDZ3 e Stripe è complesso ma completamente fattibile con l’approccio corretto e la comprensione dell’architettura di queste soluzioni. Grazie ai meccanismi integrati di integrità dei dati e controllo degli errori, ZFS fornisce un elevato livello di protezione, specialmente nelle configurazioni RAIDZ2 e RAIDZ3.

Tuttavia, anche tali sistemi affidabili non sono immuni dalla perdita di dati a causa di guasti hardware, errori dell’utente o corruzione critica del pool. La configurazione meno protetta rimane lo Stripe, dove l’assenza di ridondanza comporta la perdita completa dei dati se un disco guasta.

Il successo del recupero dipende da molti fattori: tipo di RAID, numero di dischi guasti, condizione del filesystem e tempestività delle azioni. Le raccomandazioni chiave sono interrompere immediatamente le scritture sull’array interessato, eseguire una diagnostica corretta e utilizzare software specializzati o servizi professionali.

Pertanto, per minimizzare il rischio di perdita dei dati è importante non solo sapere come recuperare i dati, ma anche implementare strategie di backup in anticipo e scegliere il livello RAID appropriato in funzione della criticità delle informazioni.

Anton Kryvoruchko

Autore: , Scrittore tecnico

Anton Kryvoruchko è traduttore dall'italiano, dall'inglese, dal francese e dal polacco. Ha molti anni di esperienza e lavora con testi di vario argomento: dalla narrativa e testi tecnici alle riviste scientifiche popolari. Lavora costantemente per migliorare le sue conoscenze e competenze, perciò nel tempo libero impara anche il tedesco e lo spagnolo.

Mykhailo Miroshnichenko

Editore: , Scrittore tecnico

Mykhaylo Miroshnychenko è uno dei programmatori principali di Hetman Software. Avendo già quindici anni di esperienza nello sviluppo di software condivide le sue conoscenze con i lettori del nostro blog. Oltre alla programmazione, Mykhaylo è anche un esperto di recupero di dati, di file system, di dispositivi di archiviazione e di array RAID.