Raid 1, essendo un mirror, dipende dal fatto che tutti i dischi in un mirror siano copie esatte l'uno dell'altro. Prendi il tuo disco rigido casuale e un altro disco rigido casuale, e probabilmente hai dati diversi lì, violando così questa presunzione. Ecco perché è necessaria l'inizializzazione. Copia semplicemente i contenuti del primo disco ad altri. Nota che in alcune condizioni puoi evitare di inizializzare le unità: di solito i dispositivi nuovi di fabbrica hanno già degli zeri ovunque, quindi puoi semplicemente ignorarlo. L' mdadm
opzione --assume-clean
fa questo, ma ti avverte:
--assume-clean
Dì a mdadm che l'array preesisteva ed è noto per essere pulito. Può essere utile quando si tenta di ripristinare da un errore grave in quanto si può essere certi che nessun dato sarà interessato a meno che non si scriva effettivamente sull'array. Può essere utilizzato anche durante la creazione di un RAID1 o RAID10 se si desidera evitare la risincronizzazione iniziale, tuttavia questa pratica, sebbene normalmente sicura, non è consigliata. Usa questo solo se sai davvero cosa stai facendo.
Se non lo fai, c'è una discrepanza tra le unità e viene letta, non si sa cosa leggerà l'unità. Dovresti essere abbastanza al sicuro con un filesystem (ma nota sotto), perché molto probabilmente scriverai prima di leggere qualsiasi cosa da quel dispositivo, e poi sei chiaro.
Si noti che almeno Linux mdadm
inizializzerà l'array in background. Puoi creare felicemente FS sopra di esso il primo secondo. Le prestazioni soffriranno fino al termine dell'inizializzazione, ma è tutto.
Ma:
a) Quando si eseguono mkfs
alcune utility verificare se c'è già qualcosa su quell'unità. Mentre questo tocca solo alcune regioni ben note di guida, legge prima di scrivere qualsiasi cosa, mettendoti in pericolo.
b) Se si esegue una risincronizzazione periodica dell'array, il dispositivo RAID non è a conoscenza del proprio FS. Legge semplicemente ogni blocco da ogni dispositivo e li confronta. E se non stai usando un FS copia-su-scrittura (es. ZFS o BTRFS) e non riempi mai il tuo FS, è perfettamente plausibile che un blocco rimanga non inizializzato dalla prospettiva FS per anni.
Perché risincronizzare con i dispositivi RAID1?
Per lo stesso motivo, esegui la risincronizzazione con i dispositivi RAID5 o qualsiasi altro livello (tranne RAID0). Legge tutti i dati e confronta / verifica i checksum RAID (in RAID 5 o 6). Se un po 'è stato capovolto in qualche modo (perché la memoria HD ha avuto un capovolgimento spontaneo, perché i cellulari di te e dei tuoi 5 vicini hanno appena interferito accidentalmente su questa particolare regione del piatto, qualunque cosa) rileverà l'incoerenza, ma non sarà in grado di Aiutarti. Se, OTOH, uno dei dischi rigidi riporta semplicemente "Non riesco a leggere quel blocco", che è più probabile con un'unità guasta, hai appena rilevato un guasto in anticipo e ridotto il tempo di esecuzione in modalità degradata (contando da il guasto dell'unità, non da quando lo noti). Il raid non ti aiuterà se un'unità si guasta e un mese dopo l'altra non funziona se non
RAID10
Ora, per RAID10 vale tutto quanto sopra. Dopotutto RAID10 è solo un modo intelligente di dire "Sto mettendo i miei due dispositivi RAID1 in una coppia RAID0".
Avvertimento:
Questo è tutto un comportamento indefinito. Perché ho controllato su Linux, usando mdadm
, altre implementazioni RAID del software potrebbero comportarsi diversamente. Anche altre versioni del kernel e / o mdadm
strumenti di Linux che sto usando potrebbero comportarsi diversamente.