mdadm und Firmware-RAID

23/03/2016 - 09:50 von Christoph Pleger | Report spam
Hallo,

ich habe einen Rechner mit einem "LSI MegaRAID Software RAID"-Controller.
Unter Debian wurde das RAID bis einschließlich wheezy mit dmraid
verwaltet. Nun möchte ich Debian jessie installieren, bekomme es aber
nicht hin.

Mein normales Vorgehen bei einer Installation ist, den Rechner per PXE zu
booten und von einem NFSROOT ein Archiv mit einem Grundsystem auf der
Platte zu entpacken und die Platte bootfàhig zu machen. Dabei habe ich
festgestellt, dass nun für die Verwaltung des RAIDs nicht mehr dmraid,
sondern mdadm zustàndig ist. Anscheinend wird auch empfohlen, mdadm statt
dmraid zu verwenden. Allerdings erkennt mdadm zwar ein im BIOS-RAID-Tool
erstelltes RAID-Array, aber dieses wird auch zerstört - sprich, nach einem
Reboot und Aufrufen des BIOS-RAID-Tools erkennt dieses das Array nicht
mehr und der Rechner kann nicht booten.

(Das RAID wird auch dann zerstört, wenn ich selbst keine Aktionen auf den
Platten veranlasse).

Ich habe dann im normalen BIOS-Setup das Software-RAID deaktiviert, so
dass die beiden Platten durchgereicht werden. Nach dem Booten per PXE kann
ich nun mit mdadm --create selbst ein RAID-ARRAY mit DDF-Metadatenformat
erzeugen, das Grundsystem entpacken und das ARRAY bootfàhig machen. Aber
obwohl im Grundsystem auch mdadm installiert ist, heißen die Devices nach
Booten vom RAID anders als beim Booten per PXE, so dass die Dateisysteme
nicht gemountet werden können. Mit PXE und NFSROOT hieß der RAID-Container
/dev/md127 und das RAID /dev/md126, bei Boot vom RAID existieren diese
Devices nicht, dafür dann /dev/dm-1 usw., so wie es bei dmraid der Fall
war.

Kann mir da jemand weiterhelden, wie man so ein ARRAY mit mdadm einrichtet?

Viele Grüße
Christoph Pleger
 

Lesen sie die antworten

#1 Danny Edel
23/03/2016 - 10:50 | Warnen spam
On 03/23/2016 09:47 AM, Christoph Pleger wrote:
ein im BIOS-RAID-Tool erstelltes RAID-Array

(Das RAID wird auch dann zerstört, wenn ich selbst keine Aktionen auf den
Platten veranlasse).



Hallo Christoph,

das ist erwartetes Verhalten -- die meisten BIOS-RAID-Tools sind keine
echten Hardware-RAIDs, die dem Betriebssystem genau eine logische Platte
darstellen, sondern lediglich "Hinweise" für den Treiber des
Betriebssystems, doch bitte die zwei Harddisks nach "Schema was im BIOS
definiert ist" als eine anzuzeigen. Wenn das OS diese Hinweise
ignoriert und die zwei Platten direkt anspricht - was bei Linux bei
allen mir bekannten BIOS-"RAIDs" der Fall ist - gibt's Probleme.

Fazit: Eine Lösung, die einerseits davon abhàngt dass die Festplatten
nie einzeln angesprochen werden, aber andererseits dies nicht in
Hardware verhindert, kann eigentlich nur als fragil und nicht
Produktivtauglich eingestuft werden. Außerdem wird das Metadatenformat
i.d.R. nicht genormt sein, sodass bei einem Mainboard-Defekt die Frage
"Welches Tausch-Mainboard kann die Daten wieder verwenden" Probleme
auftreten werden.

Linux-Software-RAIDs schreiben alle Metadaten auf die Platten und
erfordern, dass die Platten einzeln ansprechbar sind, abgesehen davon
ist das Metadatenformat Controllerunabhàngig, was im Notfall sehr
praktisch ist (einfach beide Platten an USB-SATA-Konverter anschließen
und man kann sie sogar mit dem Laptop auslesen).

Daher ist Deine folgende Lösung genau richtig:

Ich habe dann im normalen BIOS-Setup das Software-RAID deaktiviert, so
dass die beiden Platten durchgereicht werden. Nach dem Booten per PXE kann
ich nun mit mdadm --create selbst ein RAID-ARRAY mit DDF-Metadatenformat
erzeugen, das Grundsystem entpacken und das ARRAY bootfàhig machen. Aber
obwohl im Grundsystem auch mdadm installiert ist, heißen die Devices nach
Booten vom RAID anders als beim Booten per PXE, so dass die Dateisysteme
nicht gemountet werden können. Mit PXE und NFSROOT hieß der RAID-Container
/dev/md127 und das RAID /dev/md126, bei Boot vom RAID existieren diese
Devices nicht, dafür dann /dev/dm-1 usw., so wie es bei dmraid der Fall
war.

Kann mir da jemand weiterhelden, wie man so ein ARRAY mit mdadm einrichtet?



Eingerichtet hast Du es absolut korrekt. Die Frage, welche "md-Nummer"
ein Raid beim Wieder-Hochfahren (mdadm --assemble) bekommt, wird
entweder durch Metadaten beantwortet (nicht sicher ob das bereits
Standard oder noch experimental ist), oder durch die Datei
/etc/mdadm/mdadm.conf.

Falls nötig, kann die Datei bei bereits laufendem Array generiert werden mit
mdadm --examine --scan >> /etc/mdadm.conf
update-initramfs -u

Wenn die Auto-Assembly bei Dir schon funktioniert (cat /proc/mdstat nach
dem Reboot) und nur der Name instabil ist, dann würde ich empfehlen, das
Root-Device nicht über die md/dm-Nummer, sondern über seine UUID
anzugeben. Das Programm "blkid" listet diese auf; weitere Eintràge in
der /etc/fstab gehen dann etwa so:

UUID=aaaa-bbb-cc-dd / ext4 ro 0 1

Durch diese Methode ist es egal, in welcher Reihenfolge die Arrays
gescannt werden, die UUIDs der Dateisysteme sind auf jeden Fall stabil.

/dev/disk/by-uuid/ enthàlt auch direkt die Symlinks auf die zur Zeit
geltenden Kernel-Namen.


Ich hoffe das bringt Dich ein Stück weiter.

Viele Grüße,

- Danny

Ähnliche fragen