Frage Können Sie die Metadatenversion in einem vorhandenen Array ändern?


So benötigt grub Metadatenversion 0.90. Ich frage mich, ob ich meine vorhandenen Arrays ändern kann, um diese anstelle des Standards 1.2 zu verwenden. Auf diese Weise muss ich keine Neuinstallation durchführen. Wenn ja, wie kann ich es tun?


19
2018-05-16 09:07


Ursprung




Antworten:


Das GRUB Wiki bestätigt:

Außerdem (ab 1.96 + 20080724) kann GRUB nur von einem RAID booten, der einen Metadaten-Superblock der Version 0.90 verwendet (d. H. Einen, der mit der Option --metadata = 0.90 für mdadm erstellt wurde).

Seltsamerweise man page für mdadm sagt

-e, --metadata =

Deklarieren Sie den Stil des Superblocks (Raid-Metadaten), der verwendet werden soll. Der Standardwert ist 0,90 für --create und für andere Operationen.

Ich würde es mir nochmal ansehen mdadm -Q -D <device> um sicher zu gehen.

Danach, welche RAID-Stufe laufen Sie? Das beste Szenario, das ich mir für einen Spiegel (RAID 1) vorstellen kann, wäre

  1. Erstellen Sie Backups
  2. Unmount-Array 0
  3. Entfernen Sie Gerät A aus Array 0 von n Geräte
  4. Zero Superblock auf Gerät A
  5. Erstellen Sie Array 1 mit dem Gerät A und n-1 Ersatzteile, die explizit das alte Superblock-Format verwenden
  6. Wiederholen Sie dies für die verbleibenden B durch n-1 Geräte
  7. (Optional) nummerieren Sie das Array neu

... aber überprüfe auf jeden Fall, ob du das unbedingt durchmachen musst!


4
2018-06-15 07:18



also habe ich das vor langer Zeit bestätigt. Ich renne raid10, f2. offensichtlich wollte ich das Array neu erstellen, was ich vermeiden wollte. - xenoterracide
Hast du das versucht? linux-raid at vger.kernel.org Mailingliste? - Andrew
Seltsam, dass ich darüber keine Benachrichtigung erhalten habe. Nein, ich habe es nicht versucht. Ich habe es einfach abgewischt und das Array neu erstellt. Ich werde diese Antwort mit der kurzen Lösung akzeptieren, dass es NEIN oder vielleicht (lächerlich schwierig) ist. - xenoterracide


Diese Information ist wahrscheinlich zu spät, um der OP zu helfen, aber vielleicht hilft sie jemand anderem. Der erste Befehl löscht die Superblöcke und der zweite Befehl erstellt ein neues Array, geht aber davon aus, dass die Geräte sauber sind. Ich habe das gerade gemacht und alles scheint in Ordnung zu sein. Ich würde definitiv eine Sicherung empfehlen, bevor Sie dies tun. Ich hatte keine Daten zu verlieren und daher keine Integrität zu überprüfen. Ich wollte nur eine weitere 4 Stunden Resynchronisation vermeiden.

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


15
2018-03-31 21:22



wahrscheinlich zu spät für das OP, aber du hast mich gerettet, danke für deine Antwort - neofutur


Das Erstellen eines Arrays mit "Accurate-Clean" - und inkonsistenten Metadaten, wie oben vorgeschlagen, hat sicherlich das Potenzial, vorhandene Daten zu beschädigen, da sich die Metadatenblöcke von 0,90 und 1,2 nicht nur in der Größe, sondern auch in der Position unterscheiden.

Es kann für 0,90 <-> 1,0 funktionieren, was eine Ausnahme ist.

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


5
2017-09-10 10:50