• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

2 HBAs sda und sdb vertauscht

Moin Moin,

wir haben hier eine IBM x3650 M2 mit einem zusätzlichen SAS-Controller ausgerüstet um einen externen Storage anzuschließen. Leider ist es jetzt so das der Storage offensichtlich schneller im SCSI-Bus antwortet als die internen Platten und deshalb wohl /dev/sda wird. Damit fliegt das System natürlich auf die Schnauze weil es seine root-Partition nicht findet. grub wird noch richtig gestartet, sprich die Boot-Order wird richtig ausgeführt. Nur wenn das System dann seine Device-Zuweisung startet, kommt es ins Schleudern.

Das Problem über die Modulreihenfolge in der initrd zu lösen klappt nicht, da beide Controller mit dem gleichen Modul (mptsas) laufen. Die Lösung über by-label oder by-uuid kommt bei uns leider nicht in Frage.

Hat einer von euch eine Idee wie man dafür sorgen kann das der interne Raid vor dem externen erkannt wird und damit sda zugewiesen bekommt?
 
Geier0815 schrieb:
Die Lösung über by-label oder by-uuid kommt bei uns leider nicht in Frage.
Warum nicht? Wie ist es mit by-id?

by-path ist auch riskant, sollte aber gleich bleiben, solange sich die Anschlüsse nicht ändern. /dev/disk/by-id/edd-int13_dev80 ist immer die Boot-Platte laut BIOS (die übrigen Platten werden vom BIOS mit 81, 82 usw. bezeichnet).

Ansonsten fällt mir noch ein, eine eigene libata zu basteln und/oder udev bzw. dessen Regeln zu modifizieren. Empfehlen kann ich das aber nicht.
 
Ich denke nicht das es an der Geschwindigkeit der Platten bzw. dem Storage liegt welche Platte die erste ist, sondern welcher Controller zuerst gefunden wird. Wenn beide Controller Steckkarten sind, würde ich einfach mal die Einsteckplätze tauschen. Das eventuell dann das Bootdevice im Bios angepasst werden muss liegt ja auf der Hand.
 
@Tooltime,

ok, unsauber ausgedrückt. Da es Raids sind, geht es immer nur um den Controller. Plätze tauschen geht leider nicht da einer ein interner ist.

@josef-wien,

die Idee war nicht schlecht, leider werden die edd-int13-Einträge erst gesetzt wenn schon die Zuweisung auf sdX gemacht wurde, bringt mir also genau so wenig. Schade. Um mich jetzt noch in die udev-rules einzuarbeiten fehlt jetzt leider die Zeit, von daher muß ich eine andere Lösung finden.

@all,

by-uuid können wir nicht nehmen da wir teilweise Systeme durch Zurückspielen von Images oder auch direktes Clonen von Festplatten aufsetzen. Deswegen ist by-path auch keine dauerhafte Lösung, wird es aber jetzt für diesen einen Fall wohl werden. Sollte irgendwer noch eine gute Idee, ausser "nimm einen anderen externen Controller" haben, wäre ich für Vorschläge offen.
 
Geier0815 schrieb:
leider werden die edd-int13-Einträge erst gesetzt wenn ...
Man erlebt doch immer wieder Überraschungen. 61-persistent-storage-edd.rules wird in /lib/mkinitrd/scripts/setup-udev.sh nicht berücksichtigt und ist daher in initrd nicht enthalten.

Geier0815 schrieb:
"nimm einen anderen externen Controller"
Auch das wäre keine Lösung, aus Beiträgen hier im Forum schließe ich, daß die Vergabe der Gerätenamen von Version zu Version immer freizügiger erfolgt.
 
Oben