C'è questo tizio che continua a dirmi che non dovremmo usare mdadm --create
recuperare i nostri array RAID, che è peggio del male, è un errore. Perché? Voglio dire, dovrei far funzionare di nuovo il mio RAID, no? Cosa dovrei usare invece se --create
è un errore?
Risposta accettata:
Non c'è niente di sbagliato in --create
– se sai cosa stai facendo.
L'unico problema è:Non lo sai.
Quando crei un RAID, il comando è solitamente qualcosa di breve, come:
mdadm --create /dev/md42 --level=5 --raid-devices=3 /dev/sdx1 /dev/sdy1 /dev/sdz1
Semplice, vero?
Tranne che non lo è, davvero. RAID ha molte più variabili. C'è un offset dei dati, una dimensione del blocco, una versione dei metadati e non dimentichiamo l'ordine delle unità che è facile sbagliare durante una ricreazione, poiché le lettere di unità possono cambiare nel tempo.
Ecco cosa è un vero --create
il comando potrebbe invece assomigliare a:
mdadm --create /dev/md42 --assume-clean
--level=5 --chunk=512K --metadata=1.2 --data-offset=2048s
--raid-devices=3 /dev/sdz1 missing /dev/sdy1
E qualunque cosa ti dia, dovresti testarlo in sola lettura. E potrebbe non essere tutto. Sapevi che esistono anche diversi layout RAID? --create
è l'ultima goccia e le insidie non sono evidenti. Idealmente, dovresti eseguire il backup di tutti i dischi, o almeno delle aree dei metadati, o operare su una sovrapposizione di copia su scrittura.
Per tutto ciò che non fornisci, mdadm
utilizza le impostazioni predefinite. Sfortunatamente quelli non sono scolpiti nella pietra, praticamente tutti sono cambiati in passato ed è probabile che cambino di nuovo in futuro.
Quindi, quando usi --create
per il ripristino, devi capire davvero bene il RAID e devi sapere che aspetto aveva esattamente il tuo vecchio RAID. E poi devi aggiungere --assume-clean
oppure lascia uno dei dischi come missing
, nel caso in cui tu abbia comunque commesso un errore. Dovresti anche eseguire un backup, almeno all'inizio e alla fine del disco in modo da poter eseguire il ripristino dai metadati scritti nella posizione sbagliata.
Nella maggior parte dei casi hai altre opzioni. --assemble --force
è uno, ma ha le sue insidie. Dovresti --examine
prima e se una delle unità è più obsoleta delle altre, non dovresti includerla nell'assieme. C'è anche --build
così come dmsetup
per raid che non utilizza metadati e potrebbe consentirti di accedere ai tuoi dati. Ciò non significa che sia sicuro, tuttavia:ci scrivi sopra, perdi dati se le impostazioni che hai scelto sono sbagliate.
In generale, il recupero dei dati è un campo ampio. È necessaria esperienza per poter decidere la corretta linea di condotta. Evita il problema se possibile; esegui backup, documenta la tua configurazione e monitora i tuoi dischi in modo che il tuo RAID non muoia in primo luogo.