È 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.