Ich habe ein ernstes Problem mit einem SAN-Speicherarray, das über Fibre Channel mit einer Linux-Box verbunden ist. Hier ist die Konfiguration:
- Debian mit einfachem Vanille-Linux 2.6.27.25
- Fiber Controller QLogic 4 GB Dual Port (ISP2432-basiert)
Grundsätzlich ist das Problem: Wie bekomme ich diese #? @ !! FC-Controller / Treiber, um Konfigurationsänderungen (neue oder entfernte LUNs) des Speicherarrays richtig zu erkennen?
- Wenn ich eine neue LUN auf meinem Array erstelle (normalerweise eine Momentaufnahme einer vorhandenen LUN) und sie meinem HBA zuordne, kann ich sie nicht richtig erkennen:
rescan-scsi-bus -l -w -r
Erkennt tatsächlich etwas (ein generisches / dev / sgXX-Gerät), jedoch kein Blockgerät wird erstellt (/ dev / sdXX). Das Gleiche gilt für die Ausgabe eines LIP und den manuellen erneuten Scan:
Echo 1> / sys / class / fc_host / host6 / issue_lip
echo "- - -"> / sys / class / scsi_host / host6 / scan
Wenn ich eine vorhandene LUN entferne, hat weder die Ausgabe von LIPs und Rescans noch der Rescan-SCSI-Bus Auswirkungen. Die vorherigen Geräte bleiben dort und funktionieren natürlich nicht ("Datei -s / dev / sdXX -> E / A-Fehler").
- Das Neuladen des qla2xxx-Treibers funktioniert. In einer Produktionsumgebung ist dies jedoch völlig unbrauchbar.
Anscheinend ist dies ein sehr häufiges Problem bei QLogic . Es gibt eine Lösung, die nur funktioniert, wenn der von QLogic ausgegebene Treiber verwendet wird, der nur für RedHat- und Suse-Unternehmensdistributionen verfügbar ist: siehe diese Erklärung .
Zusätzliche Information :
Hier sind die SCSI-Geräte vor LIP und Rescan:
# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 6 0 0 0 0 /dev/sdc
/dev/sg4 6 0 0 1 0 /dev/sdd
/dev/sg5 6 0 0 2 3
Nach einem LIP und einem erneuten Scannen habe ich ein neues SG-Gerät, aber kein passendes Laufwerk. Wenn ich den Treiber neu lade, wird ein Laufwerk angezeigt:
# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 6 0 0 0 0 /dev/sdc
/dev/sg4 6 0 0 1 0 /dev/sdd
/dev/sg5 6 0 0 2 3
/dev/sg6 6 0 0 3 3
~# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 8 0 0 0 0 /dev/sdc
/dev/sg4 8 0 0 1 0 /dev/sdd
/dev/sg5 8 0 0 2 0 /dev/sde
/dev/sg6 8 0 0 3 3
Edit: OK, offensichtlich ist dies eine harte Nuss zu knacken. Ich werde das LKML fragen und hier berichten.