È possibile modificare la versione dei metadati su un array esistente?


21

Quindi grub richiede metadati versione 0.90 Mi chiedo se posso cambiare i miei array esistenti per usarlo al posto del default che è 1.2. In questo modo non devo procedere con una reinstallazione. Se sì, come posso farlo?

Risposte:


5

Il wiki di GRUB conferma:

Inoltre, (a partire da 1,96 + 20080724) GRUB può eseguire l'avvio solo da RAID che utilizza un superblocco di metadati versione 0.90 (ovvero uno creato con l'opzione --metadata = 0.90 su mdadm).

Curiosamente, dice la pagina man di mdadm

-e, --metadata =

Dichiara lo stile di superblock (metadati del raid) da usare. L'impostazione predefinita è 0,90 per --create e da indovinare per altre operazioni.

Dobbiamo ricontrollare mdadm -Q -D <device>per esserne certo.

Dopodiché, quale livello RAID stai eseguendo? Lo scenario migliore che mi viene in mente per un mirror (RAID 1) sarebbe

  1. Prendi i backup
  2. Smonta array 0
  3. Rimuovere il dispositivo A dall'array 0 dei ndispositivi
  4. Zero superblock sul dispositivo A
  5. Crea array 1 usando il dispositivo A e i n-1ricambi, usando esplicitamente il vecchio formato superblocco
  6. Ripetere l'operazione per la restante B attraverso i n-1dispositivi
  7. (Opzionale) ri-numerare l'array

... ma verifica assolutamente che devi assolutamente farlo!


così l'ho confermato molto tempo fa. Sto eseguendo raid10, f2. ovviamente ricreare l'array era ciò che stavo cercando di evitare.
xenoterracide,

Hai provato la linux-raid at vger.kernel.orgmailing list?
Andrew,

strano che non ho ricevuto una notifica a riguardo. no non ci ho provato. L'ho appena cancellato e ricreato l'array. Accetterò questa risposta con la breve soluzione che è NO o forse (ridicolmente difficile)
xenoterracide

16

Questa informazione è probabilmente troppo tardi per aiutare l'OP, ma forse aiuterà qualcun altro.

Il primo comando cancella i super blocchi e il secondo comando crea un nuovo array ma presuppone che i dispositivi siano puliti. Ho appena eseguito questo e tutto sembra essere a posto. Consiglio vivamente un backup prima di farlo. Non avevo dati da perdere e quindi nessuna integrità da controllare. Volevo solo evitare un'altra risincronizzazione di 4 ore.

$ mdadm --zero-superblock /dev/sd[a-z]1
$ mdadm --create /dev/md0 --assume-clean \
    --level=10 --raid-devices=10 /dev/sd[a-z]1 --metadata=0.90

1
probabilmente è troppo tardi per l'OP ma mi hai salvato, grazie per la tua risposta
Neofutur

7

La creazione di un array con metadati presupposti e incoerenti come suggerito sopra ha sicuramente il potenziale per danneggiare i dati esistenti, poiché i blocchi di metadati 0.90 e 1.2 non solo differiscono per dimensioni ma anche posizione.

può funzionare per 0.90 <-> 1.0, che è un'eccezione.

https://raid.wiki.kernel.org/index.php/RAID_superblock_formats

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.