Aktionen

Oracle Solaris FC Multipath Fibre Channel Multipathing prüfen und wiederherstellen

Aus znilwiki

Changelog:

  • 17.02.2022 erste Version

1 Ausgangslage

Ich habe einen Kunden mit 2 Oracle Solaris 11.4 SPARC Servern.
Diese teilen sich 10 Fibre Channel LUNs an einem zentralen Storage für die Datenbanken.
Dazu hat jeder Server hat 2 FC-Controller die über SAN Switche auf ein Storage mit 2 Controllern zugreifen.
Dadurch ergeben sich - in Friedenzeiten - 4 Pfade für jede LUN:

FC-Controller 1 über Storage-Controller 1
FC-Controller 1 über Storage-Controller 2
FC-Controller 2 über Storage-Controller 1
FC-Controller 2 über Storage-Controller 2

Warum auch immer, das System ist so konfiguriert das es Pfadverluste ausgleichen kann. Jedoch werden verlorene Pfade nicht wieder automatisch aktiviert.
Deshalb dieser Artikel hier.


2 Anzahl der Pfade überprüfen

mpathadm list lu

Listet und alle Datenträger mit Pfaden auf:

        /dev/rdsk/c0t5000CCA07D07C100d0s2
                Total Path Count: 1
                Operational Path Count: 1
        /dev/rdsk/c0t5000CCA07D4645A8d0s2
                Total Path Count: 1
                Operational Path Count: 1
        /dev/rdsk/c0t60030D9067FD60059EE50AEC54CAA0ECd0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90F6FA6005AD777694D6459907d0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90BB796005F46DDA81D8113A9Cd0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90B78DAB061D6A1A037797E33Fd0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90A63F1F05BAC423B3B78428D4d0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D904E3E1F054EBC0DA107A0FDB0d0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90B83C1F05256AA085067573E3d0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D904EE21A05E88BB775FB282C01d0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D9012DF1A055C53649AA994F27Dd0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90D9DD1A059655804D4A5EAD2Ed0s2
                Total Path Count: 4
                Operational Path Count: 4

Die ersten beiden mit nur einem Pfad sind lokale Datenträger (Boot-Festplatten / lokaler Datenträger an internem RAID-Controller),
die anderen mit Total Path Count: 4 und Operational Path Count: 4 sind die FC-Channel LUNs.

Jetzt habe am Storage einen Controller angehalten und dann neu gestartet:

        /dev/rdsk/c0t5000CCA07D07C100d0s2
                Total Path Count: 1
                Operational Path Count: 1
        /dev/rdsk/c0t5000CCA07D4645A8d0s2
                Total Path Count: 1
                Operational Path Count: 1
        /dev/rdsk/c0t60030D9067FD60059EE50AEC54CAA0ECd0s2
                Total Path Count: 4
                Operational Path Count: 2
        /dev/rdsk/c0t60030D90F6FA6005AD777694D6459907d0s2
                Total Path Count: 4
                Operational Path Count: 2
        /dev/rdsk/c0t60030D90BB796005F46DDA81D8113A9Cd0s2
                Total Path Count: 4
                Operational Path Count: 2
        /dev/rdsk/c0t60030D90B78DAB061D6A1A037797E33Fd0s2
                Total Path Count: 4
                Operational Path Count: 2
        /dev/rdsk/c0t60030D90A63F1F05BAC423B3B78428D4d0s2
                Total Path Count: 4
                Operational Path Count: 2
        /dev/rdsk/c0t60030D904E3E1F054EBC0DA107A0FDB0d0s2
                Total Path Count: 4
                Operational Path Count: 2
        /dev/rdsk/c0t60030D90B83C1F05256AA085067573E3d0s2
                Total Path Count: 4
                Operational Path Count: 2
        /dev/rdsk/c0t60030D904EE21A05E88BB775FB282C01d0s2
                Total Path Count: 4
                Operational Path Count: 2
        /dev/rdsk/c0t60030D9012DF1A055C53649AA994F27Dd0s2
                Total Path Count: 4
                Operational Path Count: 2
        /dev/rdsk/c0t60030D90D9DD1A059655804D4A5EAD2Ed0s2
                Total Path Count: 4
                Operational Path Count: 2

Er weis noch das es 4 Pfade waren, hat aber nur 2 davon aktiv. Obwohl zu diesem Zeitpunkt alle Pfade schon wieder zur Verfügung stehen.


3 Pfade manuell aktualisieren

Darauf bin ich nicht selbst gekommen sondern ein Solaris-Profi hat mir das rausgesucht. Wenn ich es richtig verstehe werden die FC-Controller (die PCIe-Karten) schlichtweg neu gestartet/initialisiert.

Warning.png
Warnung: Vorweg - das ganze also immer nur mit einem Controller zu zeit machen und warten das sich die Anzahl der Pfade erhöht hat. NICHT hektisch werden!

Zuerst müssen wir die vorhandenen FC-Controller ermitteln:

luxadm -e port

Ausgabe:

/devices/pci@300/pci@1/pci@0/pci@11/SUNW,qlc@0/fp@0,0:devctl       CONNECTED
/devices/pci@300/pci@1/pci@0/pci@11/SUNW,qlc@0,1/fp@0,0:devctl     CONNECTED

In diesem Fall ist das einen Dual-Port Fibre Channel Karte. Wenn es 2 getrennte Adapter sind kann es bei euch also anderes aussehen. Aber das sind dann die im System vorhandenen FC-Adapter.

Diese starten wir nun nacheinander neu. Zuerst den einen:

luxadm -e forcelip /devices/pci@300/pci@1/pci@0/pci@11/SUNW,qlc@0/fp@0,0:devctl

einen Moment warten und die Anzahl der Pfade kontrollieren:

mpathadm list lu
        /dev/rdsk/c0t5000CCA07D07C100d0s2
                Total Path Count: 1
                Operational Path Count: 1
        /dev/rdsk/c0t5000CCA07D4645A8d0s2
                Total Path Count: 1
                Operational Path Count: 1
        /dev/rdsk/c0t60030D9067FD60059EE50AEC54CAA0ECd0s2
                Total Path Count: 4
                Operational Path Count: 3
        /dev/rdsk/c0t60030D90F6FA6005AD777694D6459907d0s2
                Total Path Count: 4
                Operational Path Count: 3
        /dev/rdsk/c0t60030D90BB796005F46DDA81D8113A9Cd0s2
                Total Path Count: 4
                Operational Path Count: 3
        /dev/rdsk/c0t60030D90B78DAB061D6A1A037797E33Fd0s2
                Total Path Count: 4
                Operational Path Count: 3
        /dev/rdsk/c0t60030D90A63F1F05BAC423B3B78428D4d0s2
                Total Path Count: 4
                Operational Path Count: 3
        /dev/rdsk/c0t60030D904E3E1F054EBC0DA107A0FDB0d0s2
                Total Path Count: 4
                Operational Path Count: 3
        /dev/rdsk/c0t60030D90B83C1F05256AA085067573E3d0s2
                Total Path Count: 4
                Operational Path Count: 3
        /dev/rdsk/c0t60030D904EE21A05E88BB775FB282C01d0s2
                Total Path Count: 4
                Operational Path Count: 3
        /dev/rdsk/c0t60030D9012DF1A055C53649AA994F27Dd0s2
                Total Path Count: 4
                Operational Path Count: 3
        /dev/rdsk/c0t60030D90D9DD1A059655804D4A5EAD2Ed0s2
                Total Path Count: 4
                Operational Path Count: 3

Super, nun sind es schon 3 Pfade, also den anderen Adapter auch neu starten:

luxadm -e forcelip /devices/pci@300/pci@1/pci@0/pci@11/SUNW,qlc@0,1/fp@0,0:devctl

Wieder die Kontrolle:

mpathadm list lu
        /dev/rdsk/c0t5000CCA07D07C100d0s2
                Total Path Count: 1
                Operational Path Count: 1
        /dev/rdsk/c0t5000CCA07D4645A8d0s2
                Total Path Count: 1
                Operational Path Count: 1
        /dev/rdsk/c0t60030D9067FD60059EE50AEC54CAA0ECd0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90F6FA6005AD777694D6459907d0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90BB796005F46DDA81D8113A9Cd0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90B78DAB061D6A1A037797E33Fd0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90A63F1F05BAC423B3B78428D4d0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D904E3E1F054EBC0DA107A0FDB0d0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90B83C1F05256AA085067573E3d0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D904EE21A05E88BB775FB282C01d0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D9012DF1A055C53649AA994F27Dd0s2
                Total Path Count: 4
                Operational Path Count: 4
        /dev/rdsk/c0t60030D90D9DD1A059655804D4A5EAD2Ed0s2
                Total Path Count: 4
                Operational Path Count: 4

Prima, alle Pfade sind wieder da. Nun das ganze auf allen anderen Servern wiederholen!


4 Kommentare

Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen. Bei einem Kommentar wird deine IP-Adresse zusammen mit dem Text, den angegebenen Namen bzw. der Email-Adresse in der Datenbank für die Kommentare dauerhaft gespeichert. Genaueres kannst du hier nachlesen: Datenschutzerklärung

______________________________________________________

Bitte beachte das der eingetragene Name oder die Email-Adresse für jeden sichtbar ist!