Come ripristinare i dati da un array Unraid quando vengono superati i limiti di parità

Due dischi sono andati perduti in un array a parità singola, o tre in una configurazione a parità doppia. Unraid non può avviare l’array e, anche se potesse, i dati sui dischi guasti sono matematicamente irrecuperabili tramite la sola parità. Questo è lo scenario in cui la ridondanza di archiviazione termina e inizia il recupero dati.

Come ripristinare i dati da un array Unraid quando vengono superati i limiti di parità

Quello che segue dipende da una caratteristica di Unraid che diventa il suo principale vantaggio in caso di guasti catastrofici: i dati presenti sui dischi sopravvissuti sono ancora lì, intatti e completamente leggibili — ogni disco è un filesystem indipendente che non richiede altri dischi per essere accessibile. Questo articolo illustra come estrarre quanto rimane e quali strumenti rendono praticabile il recupero dati da una macchina Windows.

Perché Unraid fallisce in modo diverso rispetto a RAID 5 e RAID 6

In un array RAID 5, i dati dei file vengono suddivisi in blocchi di dimensione fissa e distribuiti a livello di stripe su tutti i dischi membri. Nessun singolo disco contiene un file completo. Uno stripe su N+1 dischi contiene frammenti di dati provenienti da N dischi e un blocco di parità. Se si perdono due dischi, ogni stripe che coinvolge uno dei due risulta incompleto — ciò rende l’intero array illeggibile, indipendentemente dal numero di dischi ancora funzionanti.

Unraid scrive i file per intero su dischi individuali. Un file scritto sul Disco 2 esiste interamente sul Disco 2; il Disco 3 non ne conserva alcuna informazione. Il disco di parità memorizza l’XOR di tutti i dischi dati a livello di settore, consentendo la ricostruzione di un singolo disco perso — tuttavia i dischi dati sono volumi indipendenti e autosufficienti.

Scenario di guasto RAID 5 (parità singola) Unraid (parità singola)
1 disco perso Array degradato, dati accessibili tramite parità Array degradato, dati accessibili tramite parità
2 dischi persi Array interamente illeggibile — perdita totale dei dati I dischi rimanenti sono completamente leggibili; si perdono solo i dati dei dischi guasti
3 dischi persi Array interamente illeggibile I dischi sopravvissuti sono leggibili; la perdita dati è limitata ai dischi guasti
Tutti tranne 1 disco persi Array interamente illeggibile L’ultimo disco rimasto è leggibile in modo indipendente
Tutti i dischi persi Perdita totale dei dati Perdita totale dei dati

La conseguenza è significativa. In un array RAID 5 con sei dischi, la perdita di due dispositivi comporta la perdita di tutto ciò che era distribuito su tutti e sei i dischi. In un array Unraid con sei dischi, la perdita di due dispositivi comporta la perdita soltanto dei dati che erano fisicamente allocati su quei due dischi specifici — gli altri quattro sono leggibili immediatamente, senza operazioni di rebuild.

La parità serve per la ricostruzione, non per leggere i dischi sopravvissuti.

Quando la capacità di parità è superata, la parità diventa irrilevante per il recupero dei dischi rimasti. Ogni disco dati è formattato come volume standard XFS o BTRFS: è possibile collegare qualsiasi disco integro a una macchina Linux e montarlo direttamente — i dati sono presenti senza necessità della parità. La difficoltà deriva dal fatto che Windows non supporta nativamente XFS o BTRFS, motivo per cui può rendersi necessario l’uso di software di recupero dati.

Cosa si perde effettivamente quando la parità in Unraid viene superata

Comprendere l’esatta portata della perdita di dati evita sia il pessimismo eccessivo sia la preparazione insufficiente. Il visualizzatore seguente mostra un array Unraid a sei dischi con parità singola, in cui due dischi dati sono guasti.

Unraid When Parity Is Exceeded

Il confine della perdita di dati corrisponde direttamente ai dischi fisici guasti. Nulla sui Disco 1, 3 o 5 è interessato. I file memorizzati su Disco 2 o Disco 4 sono persi — non perché la parità sia fallita in senso generale, ma perché quei settori non esistono più fisicamente.

Recuperabile senza software

Qualsiasi file che risiedeva interamente su un disco superstite. Montare il disco su una macchina Linux e copiare i dati per il recupero dati. Non è necessaria la ricostruzione dell’array (RAID) né l’utilizzo di un disco di parità.

🔧

Recuperabile tramite software

File presenti sui dischi sopravvissuti quando Unraid non si avvia, il dispositivo di avvio è assente o la configurazione dell’array è andata persa. RS RAID Retrieve legge i metadati dei dischi e ricostruisce la struttura dell’array per consentire il recupero dati RAID senza un server Unraid in esecuzione.

Non recuperabile

Qualsiasi file memorizzato su un disco con guasto fisico, nei casi in cui il numero di guasti superi la copertura fornita dalla parità (ad esempio in un array RAID). Il recupero dati tramite software non è possibile: non è infatti possibile ricostruire informazioni a partire da settori che non esistono più.

Prima di iniziare: passaggi che determinano il successo del ripristino

In caso di guasto catastrofico, le azioni intraprese nei primi minuti successivi alla scoperta influenzano l’esito finale più del software di ripristino impiegato in seguito. Alcune reazioni comuni possono addirittura compromettere il recupero dei dati e rallentare il ripristino di emergenza.

Non tentare di riavviare l’array di Unraid

Quando il numero di dischi guasti supera la copertura fornita dalla parità, Unraid può tentare di avviare l’array in stato degradato, eseguire controlli di parità o scrivere dati di emulazione basandosi su un set di dischi incompleto. Qualsiasi operazione di scrittura a questo punto — incluse le scritture di parità avviate all’accensione dell’array — rischia di sovrascrivere i dati sui dischi integri con valori errati derivanti da un calcolo XOR incompleto. Spegnere il server e non riaccenderlo fino a quando non siano state create immagini dei dischi integri (clonazione dei dischi) per permettere il recupero dei dati.

Non eseguire “New Config” né riassegnare i dischi

Riassegnare gli slot dei dischi in Unraid e avviare una nuova configurazione porta Unraid a trattare l’array come appena creato. Verrà ricalcolata la parità in base ai dischi attualmente presenti, sovrascrivendo il contenuto del disco di parità esistente. Se in seguito si scopre che un disco è stato identificato in modo errato, i dati di parità necessari per verificare o ricostruire i dati dell’array non saranno più disponibili.

Cosa fare invece — soluzioni e passaggi consigliati

1

Identificare quali dischi sono presenti fisicamente e leggibili

Utilizzare i dati SMART (controllo SMART) su un sistema in funzione oppure, se il server è già spento, collegare le unità una alla volta a una macchina di test per la diagnostica hardware. Suddividere i dischi in tre gruppi: pienamente funzionanti, parzialmente leggibili (errori SMART ma ancora in rotazione) e completamente guasti (non rilevati dal BIOS). Questo determina l’ambito del recupero dati e le opzioni di intervento prima di eseguire qualsiasi operazione software.

2

Creare l’immagine dei dischi degradati prima di qualsiasi operazione

Qualsiasi disco che riporti valori diversi da zero nei parametri Current_Pending_Sector (settori pendenti) o Reallocated_Sector_Ct (settori riallocati) è in fase di degrado. Eseguire l’imaging (creazione dell’immagine disco) prima di avviare il recupero dati, non dopo. Usare ddrescue con un file di mappa per gestire gli errori di lettura in modo robusto e per consentire di riprendere sessioni interrotte:

ddrescue -d -r3 /dev/sdX /path/to/image.img /path/to/map.log

Eseguire le operazioni di recupero dati sull’immagine, non sul disco degradato. Un disco che si guasta durante il recupero senza un’immagine disco è irrimediabilmente perso.

3

Etichettare i dischi con il loro numero di slot originale

Unraid memorizza la configurazione dell’array — cioè quale numero di serie corrisponde a quale slot — sul dispositivo flash di avvio. Se anche il dispositivo di avvio non è più disponibile, l’ordine degli slot va ricostruito a partire dai metadati dei dischi. Prima di rimuovere qualsiasi unità dal server, etichettare ogni disco con il relativo numero Disk N originale. RS RAID Retrieve (strumento di recupero RAID) può inferire l’assegnazione degli slot dai metadati, ma un’etichetta fisica elimina ambiguità durante la configurazione manuale.

4

Collegare tutti i dischi ancora funzionanti a un PC Windows

Usare connessioni SATA dirette quando possibile. Per più di quattro dischi è preferibile una scheda di espansione SATA PCIe rispetto ad adattatori USB‑SATA, che possono compromettere l’affidabilità delle operazioni di I/O durante letture sostenute di grandi volumi. Includere il disco di parità — RS RAID Retrieve sfrutta i suoi metadati per confermare la configurazione dell’array, anche se in questo scenario la parità non consente di ricostruire i dischi mancanti.

Recupero dei dati da un array Unraid distrutto con RS RAID Retrieve

Collegando i dischi sopravvissuti a una macchina Windows, RS RAID Retrieve gestisce il recupero dati di array Unraid e svolge le operazioni che altrimenti richiederebbero un ambiente Linux operativo: lettura dei filesystem XFS e BTRFS, ricostruzione della struttura dell’array a partire dai metadati dei dischi e messa a disposizione di un albero file navigabile dal quale è possibile copiare selettivamente i dati verso una destinazione integra.

Cosa fa RS RAID Retrieve in questo scenario

Il programma legge i metadati di Unraid da ciascun disco collegato, individua i dischi presenti e quelli mancanti e compone una rappresentazione virtuale dell’array con voci segnaposto per i dischi guasti. Fornisce quindi l’accesso ai file system dei dischi ancora integri — XFS e BTRFS — non leggibili nativamente da Windows, consentendo il recupero dei dati dai dischi sopravvissuti. Per i dischi guasti, contrassegna correttamente i relativi dati come irrecuperabili anziché visualizzare contenuti vuoti o corrotti.

RS Raid Retrieve

RS Raid Retrieve

Ripristino automatico di qualsiasi tipo di array RAID

Disponibile per: Windows, macOS, Linux
1

Avvia RS RAID Retrieve e lascia che esegua la scansione di tutti i dischi collegati

All’avvio, RS RAID Retrieve — strumento di recupero RAID — legge i metadati del superblocco di Unraid scritti su ciascun disco membro durante l’inizializzazione dell’array. Da questi metadati ricava la configurazione dell’array: numero totale di dischi, assegnazione degli slot, schema di parità e tipo di filesystem per ogni unità. Se tutti i dischi sopravvissuti sono collegati e i relativi metadati risultano integri, l’array viene visualizzato automaticamente nel Drive Manager, con i dischi guasti segnalati come mancanti.

2

Se il rilevamento automatico fallisce — usare la Modalità manuale

Aprire RAID Constructor e selezionare Modalità manuale per la ricostruzione dell’array (recupero dati). Impostare il tipo di array su Unraid. Aggiungere i dischi disponibili e inserire segnaposto vuoti per ciascun disco mancante tramite il pulsante “+”. Impostare l’offset dei settori — Unraid utilizza 64 o 2048; verificare aprendo un qualsiasi disco dati nel visualizzatore esadecimale e individuando l’inizio della firma del superblocco XFS o BTRFS (XFSB o _BHRfS_M). Fare clic su Anteprima — se l’albero delle directory è visibile, la configurazione è corretta.

RAID Constructor → Unraid → Modalità manuale → aggiungi dischi → segnaposto per ogni disco mancante → offset 64 o 2048 → Anteprima
3

Aprire ogni disco superstite e avviare una scansione

Fare clic con il tasto destro su un disco superstite nel Gestore unità e selezionare Apri. Selezionare Scansione rapida per i dischi il cui filesystem è integro, per un recupero dati veloce. Se la Scansione rapida restituisce un albero delle cartelle incompleto o nessun file, eseguire Analisi completa — questa esegue una scansione basata su firme a livello di settore e può ricostruire la struttura delle directory anche quando i metadati del filesystem sono parzialmente danneggiati. Eseguire la scansione di ciascun disco superstite in modo indipendente; i dischi guasti non mostreranno contenuti recuperabili.

4

Anteprima e selezione dei file da recuperare

L’albero dei file mostra la struttura delle directory di ciascun disco sopravvissuto così com’era al momento del guasto. Utilizzare il riquadro di anteprima per verificare l’integrità dei file prima di avviare il recupero dati — documenti, immagini e file multimediali possono essere aperti direttamente in anteprima. Dare priorità ai file non sostituibili: documenti, database e foto. Le grandi librerie multimediali in cui i singoli file sono accessibili indipendentemente hanno priorità inferiore e possono essere recuperate in un secondo passaggio.

5

Copiare i file recuperati su un disco sano separato

Selezionare i file e le cartelle da recuperare, fare clic su Recovery e specificare un percorso di destinazione su un disco non appartenente all’array Unraid. Non scrivere i file recuperati su nessuno dei dischi sorgente. Al termine della copia, verificare a campione ogni tipo di file — aprire gli archivi, riprodurre un segmento video, controllare che un file di database non sia a zero byte — prima di considerare il recupero dati completato.

✓ Cosa aspettarsi da un recupero riuscito

RS RAID Retrieve mostrerà l’intera struttura delle directory di ciascun disco sopravvissuto. I file presenti su quei dischi saranno integri e recuperabili con nomi e percorsi originali. I dischi guasti appariranno nella visualizzazione dell’array senza contenuti accessibili — questo comportamento è corretto e non indica un errore del programma. I dati recuperabili corrispondono esattamente a quanto era memorizzato sui dischi sopravvissuti al momento del guasto.

Lavorare con dischi parzialmente leggibili

I guasti catastrofici spesso coinvolgono almeno un disco che non è completamente inattivo — ruota, viene rilevato dal BIOS, ma restituisce errori di lettura su alcuni settori. Questi dischi parzialmente leggibili sono l’elemento più sensibile al fattore tempo nel processo di recupero dati: continuano a fornire informazioni, ma ogni ciclo di accensione e ogni tentativo di lettura fallito accelerano l’usura meccanica.

Un disco in degrado che è leggibile oggi potrebbe non esserlo domani.

Un aumento del conteggio dei settori riallocati tra due letture SMART effettuate a poche ore di distanza indica un degrado in atto. Non lasciare un disco in degrado collegato e inattivo mentre pianifichi il recupero. Crea subito un’immagine del disco (immagine disco), quindi lavora sull’immagine per il resto delle operazioni di recupero dati.

Creazione immagine di un disco degradato con ddrescue

ddrescue è lo strumento di riferimento per questo tipo di operazione perché gestisce gli errori di lettura in modo robusto: salta i settori illeggibili nella prima passata, acquisisce quanto più possibile dell’immagine e poi ritenta i settori non letti nelle passate successive. Questo comportamento si distingue da dd, che per impostazione predefinita si interrompe al primo errore di lettura.

	# First pass: read everything readable, skip errors, save map file
	ddrescue
	-d -r0
	/dev/sdX /mnt/recovery/disk_image.img /mnt/recovery/disk_image.map
	# Second pass: retry failed sectors up to 3 times
	ddrescue
	-d -r3
	/dev/sdX /mnt/recovery/disk_image.img /mnt/recovery/disk_image.map

Il file mappa — fondamentale nelle operazioni di recupero dati e nel clonaggio di dischi degradati — registra quali settori sono stati letti con successo e quali hanno fallito. Se il disco si guasta durante la sessione o è necessario interrompere l’operazione per riprenderla in seguito, rieseguendo il comando con lo stesso file mappa si riprende da dove si era interrotti senza rileggere i settori già acquisiti.

Alimentare l’immagine in RS RAID Retrieve

Una volta completata, l’immagine può essere impiegata al posto del disco fisico. In RS RAID Retrieve, utilizzare Collega immagine per montare il file .img come disco virtuale. Il programma lo tratta esattamente come un dispositivo fisico. Questo approccio offre due vantaggi: l’hardware degradato non è più sottoposto a stress di lettura durante il recupero dati, e se il processo di recupero RAID va ripetuto con impostazioni diverse l’immagine rimane sempre disponibile nel suo stato originale.

Output di ddrescue — cosa indicano i valori:

  • rescued: byte letti con successo e scritti nell’immagine. Questo corrisponde al volume di dati recuperabili dall’immagine del disco.
  • errsize: byte che non è stato possibile leggere. Questi settori risulteranno azzerati nell’immagine; qualsiasi file i cui dati ricadono su questi settori sarà incompleto.
  • errors: numero di settori distinti non leggibili. Un valore nell’ordine di qualche centinaio su un disco multi-terabyte indica in genere che la maggior parte dei file è intatta; un valore nell’ordine dei milioni segnala una perdita di dati significativa all’interno dell’immagine stessa.
  • run time vs. remaining: se il tempo rimanente è stimato in giorni, il disco è troppo degradato per ottenere un’immagine completa — interrompere dopo il primo passaggio e lavorare con quanto acquisito.

Cosa è recuperabile e cosa non lo è in questo scenario

L’esito di un guasto oltre la capacità di parità in Unraid è più prevedibile rispetto ai sistemi RAID tradizionali, poiché il perimetro del danno è delimitato dalle singole unità fisiche anziché dalla distribuzione degli stripe. La tabella seguente riepiloga il percorso di recupero per ciascun componente dell’array.

Stato del disco Dati presenti su quel disco Procedura di recupero Strumento
Sopravvissuto — SMART sano Interamente recuperabile Lettura diretta tramite RS RAID Retrieve o montaggio Linux RS RAID Retrieve / mount
Sopravvissuto — SMART degradato Recuperabile nella maggior parte dei casi; alcuni settori potrebbero essere persi Creare prima un’immagine con ddrescue, quindi recuperare dall’immagine ddrescue + RS RAID Retrieve
Guasto — non rilevato Non recuperabile tramite parità Recupero a livello hardware in laboratorio professionale se i dati sono critici; altrimenti accettare la perdita Laboratorio di recupero dati
Disco di parità — sano Non contiene dati utente Collegabile per permettere a RS RAID Retrieve di confermare la configurazione dell’array; non usato per l’estrazione dei dati RS RAID Retrieve (solo metadati)
Flash di avvio — guasto Solo configurazione dell’array; nessun dato utente RS RAID Retrieve ricostruisce la configurazione dai metadati sui dischi; successivamente è possibile creare una nuova flash di avvio RS RAID Retrieve

Dopo il recupero: ricostruire l’array da zero; non tentare di riparare l’array esistente.

Una volta che i dati sono stati salvati in una posizione sicura, il passo successivo raccomandato è una nuova installazione di Unraid con dischi nuovi o previamente verificati, seguita da una completa ricostruzione della parità prima di ripristinare i dati. Continuare a utilizzare un array parzialmente guasto — sostituendo soltanto i dischi morti e avviando una ricostruzione — mantiene i dischi rimanenti nello stato in cui si trovavano al momento dell’evento di guasto. Per array che hanno subito due guasti simultanei, tale condizione richiede un controllo accurato dell’hardware residuo prima di rimetterlo in produzione con dati sensibili.

Domande frequenti

Sì, in parte. Unraid scrive metadati per disco che RS RAID Retrieve e strumenti simili possono leggere, ma la fonte più utile è il syslog di Unraid e i file di configurazione delle share memorizzati sull'unità flash di avvio. La cartella shares sul dispositivo flash contiene file .cfg per ogni share, compresi i parametri includeDisks e excludeDisks — questi indicano su quali dischi ciascuna share era autorizzata a scrivere. Insieme ai file diskX.ini che registrano le statistiche di utilizzo per singolo disco, spesso è possibile ricostruire un quadro abbastanza accurato delle categorie di dati presenti sui dischi guasti, anche se i nomi dei singoli file non sono più disponibili. Se anche l'unità flash è guasta, la fonte successiva migliore sono eventuali strumenti di monitoraggio che abbiano registrato l'andamento delle dimensioni delle share nel tempo — lo storico della dashboard integrata di Unraid, dashboard Grafana alimentate da Telegraf, o perfino output periodici di du salvati in una posizione remota.
Unraid disabilita un disco quando rileva errori di lettura, non di scrittura. L’evento di disabilitazione è una misura protettiva: l’array smette di scrivere su quel disco e lo marca come offline invece di continuare a scrivere dati potenzialmente incoerenti. Questo significa che il contenuto del disco al momento della disabilitazione riflette l’ultimo stato scritto con successo, non un eventuale stato intermedio corrotto. I dati presenti sono affidabili nella misura in cui lo è l’hardware. Ciò che non puoi considerare certo è quanto aggiornato sia quell’ultimo stato scritto: se il disco è stato disabilitato a metà di una scrittura (ad esempio durante il trasferimento di un file di grandi dimensioni), quel file specifico potrebbe essere incompleto. Crea un’immagine del disco con ddrescue prima di fare qualsiasi altra cosa, poi usa RS RAID Retrieve per valutare il filesystem. I file che erano stati scritti completamente prima dell’evento di disabilitazione saranno intatti.
I file a zero byte in un recupero altrimenti riuscito indicano tipicamente due casi. Il primo è una scrittura incompleta al momento del guasto: i file che stavano venendo scritti quando l’array è andato giù possono aver avuto le voci della directory create prima che i loro blocchi dati fossero completamente commessi, lasciando metadati validi che puntano a settori non allocati o azzerati. Il secondo, più comune in caso di guasti su più dischi, è che i blocchi dati del file fossero allocati proprio su uno dei dischi guasti. In Unraid i file risiedono interamente su un singolo disco, ma i metadati del filesystem che li descrivono (voci di directory, record inode) possono trovarsi su un altro disco sopravvissuto. RS RAID Retrieve mostra correttamente nome e percorso del file ricavati dai metadati sopravvissuti, ma segnala il contenuto come irrimediabile perché i settori dati sono sul disco guasto. Eseguire Full Analysis invece di Fast Scan confermerà quale dei due casi si è verificato: se anche Full Analysis restituisce zero byte, i blocchi dati sono persi.
Puoi ricominciare completamente da capo — le assegnazioni degli slot in Unraid sono uno strato di configurazione, non uno strato di dati. I dati su ogni disco sono indipendenti dal numero di slot a cui Unraid li ha assegnati. Quando ricostruisci, crea una nuova configurazione dell’array, formatta i nuovi dischi e copia i dati recuperati dalla destinazione di recupero. Non esiste alcun vincolo tecnico che richieda di mantenere la numerazione degli slot originale. L’unico scenario in cui l’ordine degli slot originali conta è se stai eseguendo una ricostruzione parziale — mantenendo nell’array alcuni dischi sopravvissuti e aggiungendo soltanto i dischi di ricambio per quelli guasti. In tal caso, i dischi ancora integri devono essere riassegnati esattamente ai loro numeri di slot originali, altrimenti Unraid li tratterà come dischi nuovi e ne sovrascriverà il contenuto durante la ricostruzione della parità. Dal momento che questo articolo riguarda scenari in cui la parità è già stata superata, una ricostruzione completa da zero è la soluzione più sicura e pulita.
lascia un commento

Articoli correlati

Recupero dati da SSD — guida al recupero file su unità a stato solido
Recupero dati da SSD — guida al recupero file su unità a stato solido
Nel primo articolo intitolato “How SSD Drives Permanently Erase Deleted Data” abbiamo spiegato i motivi per cui le unità SSD possono cancellare definitivamente i dati non appena si elimina un file, si esegue una formattazione rapida del disco o si … Continue reading
Recupero dati da un array SHR che fallisce durante il processo di ricostruzione (Synology Hybrid RAID)
Recupero dati da un array SHR che fallisce durante il processo di ricostruzione (Synology Hybrid RAID)
Hai sostituito un disco da 4 TB nell’array Synology SHR con un disco da 8 TB. La ricostruzione è iniziata, ha proceduto per un po’ — e poi si è interrotta. DSM mostra lo stato Degradato o Arresto anomalo, oppure … Continue reading
Come recuperare i dati persi da un array RAID 5?
Come recuperare i dati persi da un array RAID 5?
L’array RAID 5 è piuttosto diffuso poiché è semplice, veloce e affidabile. Tuttavia, nonostante tutti i vantaggi di questa configurazione, la perdita di dati può ancora verificarsi. In questo articolo, esamineremo le principali cause dei guasti RAID 5 e analizzeremo … Continue reading
Guasto di un singolo disco in Unraid: recupero dati, emulazione e ricostruzione dell’array
Guasto di un singolo disco in Unraid: recupero dati, emulazione e ricostruzione dell’array
Un singolo guasto di un disco in un array Unraid è un evento prevedibile e gestibile — a patto di intervenire correttamente. Il sistema continua a funzionare, i dati restano accessibili e esiste una procedura definita per il ripristino completo. … Continue reading
Online Chat with Recovery Software