Fibre Channel LUN Rescan und QLogic

8

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?

  1. 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 -rErkennt tatsächlich etwas (ein generisches / dev / sgXX-Gerät), jedoch kein Blockgerät wird erstellt (/ dev / sdXX).
  2. 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

  3. 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").

  4. 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.

Wazoox
quelle
Der von QLogic ausgegebene Treiber, über den Sie sprechen, kann auch für andere Distributionen kompiliert werden - es ist kein binärer Blob.
Kapitän Segfault
Gut, wo finde ich es dann? Ich habe den ganzen Kernel kompiliert, ein weiterer Treiber ist überhaupt kein Problem.
Wazoox
Ich habe dieses Problem. Haben Sie etwas herausgefunden?
ThatGraemeGuy
Sorry, noch keine Infos.
Wazoox

Antworten:

2

Wenn die Möglichkeit besteht, dass das Blockgerät erkannt wird, aber kein / dev / Gerät erstellt wird, können Sie das Gerät manuell erstellen. Dies ist nicht optimal, kann Sie aber humpeln. Die Haupt- und Nebennummern werden in / proc / partitions angezeigt, und Sie können mit dem Befehl mknod Ihre eigenen Blockgeräte erstellen.

 # mknod /dev/sdg4 104 17

Ich fühle jedoch deinen Schmerz. QLogic bietet Treiber-Download für RHEL und SUSE an, aber es scheint keine anderen Distributionen zu geben. OpenSUSE hat möglicherweise die QLogic-Treiber, aber ich kann mir nicht sicher sein. Ich werde näher nachsehen, wenn ich zur Arbeit komme.

Bearbeiten : Ich bin auf der Arbeit und es scheint, dass die QLogic-Treiber auf meinen SLES-Boxen alle von QLogic geliefert werden. Ihr OS-Support-Grid:

http://filedownloads.qlogic.com/files/Driver/71098/readme_driver_80223.html#os_support

Wenn ich jedoch den bog-standard 2.6.27.25-Kernel herunterlade und in die Datei ./drivers/scsi/qla2xxx/qla_version.h schaue, sind es fast die gleichen Versionsnummern wie auf meinen Novell-Distributionen (sowohl SLES als auch die kostenlos openSUSE). Dies deutet darauf hin, dass die Lösung, die Sie für SLES / RHEL gefunden haben, möglicherweise tatsächlich mit einem Standardkernel 2.6.27.25 funktioniert.

sysadmin1138
quelle
Leider kann es nicht funktionieren, da die Verwendung einer nicht vorhandenen Datei (/ proc / scsi / qla2xxx / ...) und eines Befehls (scsi-qlascan) erwähnt wird, der nicht im Treiberquellcode enthalten ist.
Wazoox
1

Hey Wazoox Ich habe mit meiner SAN-Box den gleichen Profi konfrontiert. Ich habe Google und einige Tipps, die folgen, wenn ich versuchen kann, zu glauben, dass es funktioniert. 1 Es gibt ein Tool namens emcgrab tools. Sie können dieses Tool ausführen, um den Treiber Ihres qlogic-Treibers herauszufinden funktioniert oder nicht.

welche san box ru benutzt?

Es gibt einige Tipps wie folgt: http://forums.novell.com/novell-product-support-forums/suse-linux-enterprise-server-sles/sles-configure-administer/362473-lun-not-visible. html

http://forums13.itrc.hp.com/service/forums/bizsupport/questionanswer.do?admit=109447627+1250262043169+28353475&threadId=1154098

http://www.linuxquestions.org/questions/linux-enterprise-47/connect-debian-etch-to-ibm-san-meaning-of-sns-scan-failed-570598/

http://solutions.qlogic.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=9223615&sliceId=SAL_Public&dialogID=4725381&stateId=0%200%204711370

Rajat
quelle
Ja, viele Tipps bei Google, aber die meisten, wenn nicht alle, beziehen sich auf RedHat / SuSe und den proprietären Qlogic-Treiber ... Einer Ihrer Links hat mir jedoch eine Idee gegeben, ich komme wieder :)
wazoox
Nun, ich habe es mit der neuesten Firmware versucht, aber kein Glück ...
Wazoox