Oracle Solaris FC Multipath Fibre Channel Multipathing prüfen und wiederherstellen
Aus znilwiki
Changelog:
- 17.02.2022 erste Version
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.
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.
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.
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!