mdadm RAID Fast Setup con unità vuote?


9

Sto ricreando alcuni dischi RAID5 come RAID6 con mdadm. Non ci sono dati sulle unità a cui tengo.

L'impostazione del RAID richiede un po 'di tempo per impostare la forma - accetto che quando ci sono dati che devono essere sottoposti a striping e calcolati in parità, tuttavia con queste unità, sono vuoti - o almeno voglio che vengano considerati vuoti.

Quindi c'è un modo per saltare il calcolo della parità e dire a mdadm di impostare semplicemente i superblocchi e fare, o altrimenti, che cosa esattamente sta spendendo tutto questo tempo quando non ci sono dati per spostarsi?

md3 : active raid6 sdf3[5] sde3[4] sdd3[3] sdc7[2] sdb3[1] sda3[0]
      1953114112 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU]
      [>....................]  resync =  1.3% (6790144/488278528) finish=409.3min speed=19604K/sec

Nota che non sto parlando di --assume-cleandove stai ricostruendo un array da un set di dischi preesistente che contiene un array RAID che sai essere corretto. Sto parlando di un array che dovrebbe essere considerato vuoto, non considerato correttamente a strisce.

Quindi diciamo per il bene di questa domanda che i dispositivi sono stati precompilati con zeri.

Risposte:


8

Puoi usarlo --assume-cleanma a meno che tu non stia usando raid5 (non raid6) e che i dischi siano effettivamente pieni di zeri, la prima volta che esegue un controllo di parità, verrà fuori con errori che dovranno essere corretti, quindi non dovresti farlo. Non è necessario attendere il completamento della risincronizzazione prima di poter iniziare a utilizzare l'array; si bloccherà sullo sfondo fino a quando non sarà terminato.


Grazie psusi - questo non risponde alla domanda.
Paul,

2
@Paul, umm .. sì, lo fa. Non esiste nulla di "vuoto", c'è solo nella sincronizzazione o non nella sincronizzazione.
psusi,

Non affronta la domanda che sto ponendo. Lo xor di un blocco di zeri è zero. Quindi, se potessi dire a mdadm che lo spazio può essere considerato vuoto, potrebbe creare parità molto rapidamente. La parità dovrebbe essere calcolata correttamente solo quando viene scritto un blocco specifico, a quel punto non importa che fosse "sbagliato" in precedenza. Potrei addirittura azzerare il disco.
Paul,

2
@Paul, ancora una volta, non esiste nulla come "vuoto". Generalmente sì, non importa che la parità su strisce che non siano mai state scritte sia sbagliata, motivo per cui puoi cavartela con --assume-clean, anche quando i dischi non sono pieni di zero, ma la parità sbagliata essere rilevato e corretto quando mdadm esegue un controllo di parità.
psusi

2
@Paul, il significato di "vuoto" non è ben definito. La maggior parte delle persone lo usa per indicare che non ha inserito alcun file o un file system sul dispositivo e non sa né si preoccupa di ciò che contiene attualmente. Se sai che i dischi sono tutti pieni di zeri, allora --assume-clean è quello che vuoi. Ci vorrà la tua parola per dire che i dischi sono tutti azzerati e non ricalcolano la parità, e come dici, una parità di zero sarà corretta per i dischi di dati di tutti gli zeri, almeno per il raid5 (non per il raid6).
psusi

2

Non puoi farlo con un RAID software o hardware. Tutti i checksum devono essere scritti sui dischi, il che richiede tempo. Puoi farlo in seguito, ma poi le parti del disco su cui non è stato scritto, dovranno farlo prima di poterle utilizzare.

Questo è fondamentalmente perché il sistema RAID e i file system non si conoscono a vicenda. ZFS ha una spunta per questo, ma lì le parti RAID sono profondamente integrate con il file system. Quindi il sottosistema RAID in realtà sa quali parti dei dischi vengono utilizzate per archiviare i dati e quali possono essere utilizzate in seguito e quindi scrivere loro le somme di controllo.

È possibile aggiungere velocità di throughput al RAID software o iniziare a utilizzare il RAID prima che vengano scritti tutti i checksum e lasciare che il RAID software lo gestisca in un secondo momento. Strega è ciò che ha scritto @psusi.


Capisco come funziona RAID, sto cercando di capire cosa succede con i checksum su un disco vuoto. I checksum devono essere calcolati ogni volta che qualcosa viene scritto sul disco, quindi calcolarli prima che siano presenti dati non ha molto senso - "farlo in un secondo momento" è sensato quando non c'è nulla lì. Non esiste un file system da considerare in questo scenario.
Paul,

6
Sono sempre presenti dati. Potrebbe non essere importante o significativo, ma ogni settore ha sempre un valore. (Anche lo zero è un valore!) L'implementazione RAID non sa quali settori contengano dati importanti, quindi deve trattarli tutti come importanti e calcolare la loro parità.
Wyzard,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.