Wie verschiebe ich ein Linux-Software-RAID auf einen neuen Computer?

20

Ich habe eine neu erstellte Maschine mit einer neuen Gentoo Linux-Installation und einem Software-RAID 5-Array von einer anderen Maschine (4 IDE-Festplatten, die an externe PCI-Controller angeschlossen sind). Ich habe die Controller erfolgreich auf die neue Maschine umgestellt. Die Laufwerke werden vom Kernel erkannt. und ich habe mdadm --examine verwendet und überprüft, ob die einzelne RAID-Partition erkannt, sauber und sogar in der "richtigen" Reihenfolge (hde1 == Laufwerk 0, hdg1 == Laufwerk 1 usw.) ist.

Worauf ich keinen Zugriff habe, sind die ursprünglichen Konfigurationsdateien vom älteren Computer. Wie soll ich vorgehen, um dieses Array zu reaktivieren, ohne die Daten zu verlieren?

Romandas
quelle

Antworten:

20

Sie brauchen wirklich irgendwie die ursprüngliche mdadm.conf-Datei. Aber da Sie es nicht haben, müssen Sie es neu erstellen. Bevor Sie etwas unternehmen, lesen Sie zuerst mdadm über die Manualpage . Warum kann es passieren, dass Sie Ihre Daten an eine Situation oder einen Befehl verlieren, die bzw. den Sie nicht verstanden haben?

That being said, ist dieser Rat auf eigene Gefahr. Sie können leicht alle Ihre Daten mit den falschen Befehlen verlieren. Bevor Sie etwas ausführen, überprüfen Sie noch einmal die Auswirkungen des Befehls . So - ich kann nicht verantwortlich für Datenverlust oder andere Probleme zu irgendwelchen Aktionen , die Sie im Zusammenhang statt überprüfen alles .

Sie können dies versuchen:

mdadm --assemble --scan --verbose /dev/md{number} /dev/{disk1} /dev/{disk2} /dev/{disk3} /dev/{disk4}

Dies sollte Ihnen einige Informationen geben, mit denen Sie zu arbeiten beginnen können, zusammen mit der ID. Es wird auch ein neues Array-Gerät / dev / md {number} erstellt, von dem aus Sie alle Mounts finden sollten. Verwenden Sie diese --autoOption nicht. Unter bestimmten Umständen kann dies dazu führen, dass die Array-Einstellungen auf den Laufwerken überschrieben werden. Dies ist wahrscheinlich nicht der Fall, und die Seite muss aus Gründen der Klarheit wahrscheinlich neu geschrieben werden, aber warum zufällig?

Wenn das Array korrekt zusammengebaut ist und alles "normal" ist , stellen Sie sicher, dass Ihre mdadm.conf geschrieben und gespeichert wird /etc, damit Sie sie beim Booten haben. Fügen Sie die neue ID aus dem Array in die Datei ein, um sie zu unterstützen.

Avery Payne
quelle
+1 - Genau richtig! Ich habe mehrere RAID-1- und RAID-5-Sätze zwischen Linux-Computern verschoben. Eine Sache, bei der ich mir nicht sicher bin, ist, wo Sie die Informationen zu "--auto" sehen. Auf der Manpage eines CentOS 5.1-Rechners sehe ich nur, dass "--auto" einen / dev / mdX-Eintrag (oder Einträge) für das Array erstellt. Ich sehe nichts, was darauf hindeuten könnte, dass es auf die Laufwerke schreiben würde. (Tatsächlich ist "--auto = yes" die Standardeinstellung in mdadm unter CentoS 5.1, wenn "--auto" nicht angegeben ist.) "--Update" kann Ihr Freund sein, wenn Sie ein Array auf ein anderes verschieben müssen mdX-Nummer aus dem im Superblock angegebenen Original.
Evan Anderson
Hervorragend, ich kann das Array erfolgreich mounten. Das einzige verbleibende Problem ist, dass das RAID nach einem Neustart nicht ausgeführt wird. Ich muss mdadm -Av / dev / md0 erneut ausführen. Irgendeine Idee warum?
Romandas
Haben Sie die Datei /etc/mdadm.conf neu erstellt? Das System sucht beim Booten in dieser Datei nach Arrays.
Avery Payne
Ich tat. Was den Unterschied ausmachte, war das Neukompilieren des Kernels mit CONFIG_MD_AUTO. Ich hatte es anfangs nicht getan, weil ich dachte, es gäbe eine Möglichkeit, wie mdadm es tun würde. Ich habe irgendwo gelesen, dass der Kernel-Code nicht so robust ist wie mdadm für die automatische Bereitstellung, aber ich kann nichts mehr finden, um das zu sichern.
Romandas
2

Ich wollte zumindest meine vollständige Antwort für Debian hinzufügen.

  • Installieren Sie den RAID-Manager über -> sudo apt-get install mdadm
  • Suchen Sie mit -> nach den alten RAID-Datenträgern sudo mdadm --assemble --scan

  • An dieser Stelle möchte ich BLKIDden Raid überprüfen und manuell einhängen, um ihn zu bestätigen.

    blkid mount /dev/md0 /mnt

  • Fügen Sie über -> Info zu mdadm.conf hinzu mdadm --detail --scan >> /etc/mdadm/mdadm.conf
  • Update initramfs über -> update-initramfs -u

  • Fehlerbehebung:

Stellen Sie sicher, dass die Ausgabe von mdadm --detail --scanmit Ihrer übereinstimmt/etc/mdadm/mdadm.conf

    nano /etc/mdadm/mdadm.conf

    ARRAY /dev/md/0 level=raid5 num-devices=3 metadata=00.90 UUID=a44a52e4:0211e47f:f15bce44:817d167c
  • Beispiel FSTAB

    /dev/md0    /mnt/mdadm   ext4    defaults,nobootwait,nofail     0    2
    

/unix/23879/using-mdadm-examine-to-write-mdadm-conf/52935#52935

/ubuntu/729370/can-i-transfer-my-mdadm-software-raid-to-a-new-system-in-case-of-hardware-failur

Wie verschiebe ich ein Linux-Software-RAID auf einen neuen Computer?

FreeSoftwareServers
quelle
1
mdadm -Ac partitions -m 0 /dev/md0

Scannen Sie alle Partitionen und Geräte, die in / proc / partitions aufgelistet sind, und stellen Sie / dev / md0 aus all diesen Geräten mit einem RAID-Superblock mit einer kleineren Zahl von 0 zusammen.

Wenn die Konferenz erfolgreich war, können Sie --detail --scan >> /etc/mdadm/mdadm.conf hinzufügen, damit sie beim Booten abgefangen wird

elprup
quelle