Die drei häufigsten Windows Server-Abstürze (und wie man sie vermeidet)

Es gibt viele Arten von Windows Server-Abstürzen, aber die überwiegende Mehrheit fällt unter drei Hauptkategorien: alte Antivirensoftware, inkompatible Speichertreiber und zu viele Filtertreiber. Nachdem ich in den letzten zehn Jahren fast 1.000 Abstürze aus aller Welt analysiert habe, kann ich persönlich bestätigen, dass dies Fallstricke sind, die Sie vermeiden möchten.

Schauen wir uns diese drei gängigen Server-Crasher im Detail an und brechen die Best Practices auf, die Sie benötigen, um sie zu vermeiden.

Antiviren Software

Die mit Abstand häufigste Art von Windows Server-Absturz wird durch alte Antivirensoftware verursacht. Alle Antivirensoftware verwendet Gerätetreiber – oder genauer gesagt “Filtertreiber” -, die die E / A-Anforderungen (Lesen und Schreiben) abfangen und zusätzliche Überprüfungen durchführen. Antiviren-Treiber vergleichen auch bekannte Viren, die in Definitionsdateien enthalten sind, um sicherzustellen, dass ansteckende Dateien nicht weitergegeben werden.
Filtertreiber bestehen aus Kernelmoduscode, der über Kernelfunktionen und Datenstrukturen auf niedriger Ebene mit dem Betriebssystem interagiert. Diese Funktionen und Datenstrukturen enthalten einen vordefinierten Satz von Argumenten und Datentypen, von denen erwartet wird, dass sie vorhanden sind, wenn sie von den entsprechenden Gerätetreibern aufgerufen werden. Wenn der Funktion der falsche Datentyp oder eine falsche Anzahl von Argumenten übergeben wird, kann ein Fehler auftreten, der im Kernelmodus zu einem Systemabsturz führen kann.

Das Problem tritt auf, wenn diese Kernelfunktionen oder Datenstrukturen von Entwicklern zwischen Versionen des Betriebssystems geändert werden, z. B. Service Pack-Updates oder wichtige Betriebssystemversionen. Microsoft testet seine Gerätetreiber hervorragend auf Kompatibilität mit Betriebssystemänderungen, testet jedoch offensichtlich keine Gerätetreiber von Drittanbietern, um sicherzustellen, dass sie kompatibel sind. Wenn alte Antiviren-Treiber über diese Änderungen stolpern, führt dies letztendlich zu einem Systemabsturz. Andere Filtertreiber sind ebenfalls anfällig für diese Probleme, aber Antivirentreiber sind die Haupttäter.
Schauen wir uns ein Beispiel an.
Der folgende Absturz war ein Stop 0x8E-Bugcheck – KERNEL_MODE_EXCEPTION_NOT_HANDLED. Das ! analyse –v Befehl in der Windows-Debugger zeigt dieses Stapelmuster. Wenn wir den Stapel von unten nach oben lesen, sehen wir einen NtCreateFile-Aufruf, an dem letztendlich der Buggydrv-Filtertreiber beteiligt ist, der den Bugcheck verursacht hat (der Treibername wurde geändert, um den Täter nicht zu belasten). Verwendung der ! lmi buggydrv Der Befehl zeigt an, dass das Datum des Treibers aus dem Jahr 2006 stammt, während das Betriebssystem – Windows Server 2003 SP2 – erst 2007 veröffentlicht wurde. Jetzt wissen wir, dass der alte Antivirentreiber nie gegen die neue Version des Betriebssystems getestet wurde .

nt! KeBugCheckEx + 0x1b
nt! KiDispatchException + 0x3a2
nt! CommonDispatchException + 0x4a
nt! Kei386EoiHelper + 0x186
buggydrv + 0x13059 <- Filtertreiber, der den Absturz verursacht hat
buggydrv + 0x8390
buggydrv + 0x8809
buggydrv + 0x2940
nt! IofCallDriver + 0x45
nt! IopParseDevice + 0xa35
nt! ObpLookupObjectName + 0x5b0
nt! ObOpenObjectByName + 0xea
nt! IopCreateFile + 0x447
nt! IoCreateFile + 0xa3
nt! NtCreateFile + 0x30 <- Aufruf des Betriebssystems an CreateFile
nt! KiFastCallEntry + 0xfc

In diesem Fall wurde der Absturz bereits vom Hersteller als bekanntes Problem dokumentiert, und es war eine neue Version der Antivirensoftware verfügbar, um das Problem zu beheben. Tatsächlich wurde die überwiegende Mehrheit der Windows Server-Abstürze, auf die Sie stoßen, bereits von einer anderen Person erlebt, und ihre Auflösungen wurden normalerweise irgendwo im Internet dokumentiert. Daher ist es wichtig, sich daran zu erinnern, dass Sie jedes Mal, wenn Sie Ihr Betriebssystem aktualisieren – auch mit einem Service Pack-Update – Sie sollten sich zuerst bei Ihren Drittanbietern nach Updates für deren Software erkundigen.

Inkompatible Speichertreiber

Die nächsthäufigste Art von Serverabsturz, die auftreten kann, wird durch inkompatible Speichertreiber verursacht. Wie Sie vielleicht wissen, bieten Speicheranbieter von Drittanbietern Gerätetreiber zur Steuerung ihrer Speicher an Host-Bus-Adapter (HBAs) und werden verwendet, um auf Speichergeräte zuzugreifen. Anbieter wie Qlogic, Emulex und Hewlett-Packard (HP) haben unterschiedliche Gerätetreiber, aber alle hängen von einem Microsoft-Treiber namens Storport ab. Der Storport-Treiber bietet einen allgemeinen Satz von Routinen, die von diesen herstellerspezifischen Treibern bei der Ausführung von E / A-Vorgängen verwendet werden.
Das Problem tritt auf die gleiche Weise auf wie die Inkompatibilität von Antiviren-Treibern. Wenn herstellerspezifische Treiber geändert werden, müssen sie mit der aktuellen Version von Storport erneut getestet werden, um sicherzustellen, dass sie weiterhin kompatibel sind. Das Gleiche gilt, wenn Storport aktualisiert wird. Alle HBA-Treiber müssen erneut getestet werden, um sicherzustellen, dass sie weiterhin mit dem neuen Storport-Treiber funktionieren. Dies kann eine echte Herausforderung sein, wenn man bedenkt, dass Storport in Windows Server 2003 über 50 Hotfixes hatte.
Als Faustregel gilt, vor dem Aktualisieren von Storport bei Drittanbietern nach HBA-Treiberaktualisierungen zu suchen und umgekehrt. Woher wissen Sie, welche Speichertreiber von Storport abhängen? Glücklicherweise gibt es ein kostenloses Tool namens Abhängigkeits-Walker (abhängige.exe), die anzeigen soll, welche Treiber von anderen abhängig sind.
Nachdem Sie das Tool heruntergeladen und entpackt haben, führen Sie abhängige.exe aus und öffnen Sie den gewünschten Treiber über das Pulldown-Menü “Datei”. In diesem Beispiel habe ich den Treiber Hpcisss2.sys ausgewählt, der für das HP Smart Array verwendet wird. Wie Sie unten sehen können, zeigt das Tool, dass der Hpcisss2-Treiber sowohl von STORPORT.SYS als auch von NTOSKRNL.EXE abhängig ist.
Abbildung 1. Dependency Walker (zum Vergrößern anklicken)
Abhängigkeits-Walker

Zu viele Filtertreiber

Die dritthäufigste Art von Windows Server-Absturz hängt mit Stapelüberlaufbedingungen zusammen, wenn zu viele Filtertreiber installiert sind. Jeder Treiber, der E / A-Anforderungen abfängt und zusätzliche Funktionen ausführt, wird als Filtertreiber betrachtet. Wir wissen bereits, dass Antiviren-Treiber als Filtertreiber gelten. Andere umfassen Festplattenkontingentverwaltung, Festplattenspiegelung und Sicherungsagenten, um nur einige zu nennen.
Obwohl die Installation mehrerer Filtertreiber an und für sich kein Problem darstellt, kann es zu Problemen kommen, wenn diese Treiber rekursiv miteinander interagieren, wodurch der begrenzte Kernel-Stack-Speicherplatz erschöpft wird. Abhängig von der Computerarchitektur (x86 = 12 KB und x64 = 24 KB) wird von allen Gerätetreibern eine begrenzte Menge an Kernel-Stack-Speicherplatz verwendet. Wenn der Kernel-Stack-Speicherplatz erschöpft ist, tritt eine Stop 0x7F-Fehlerprüfung auf, die zum Absturz des Systems führt, wie in Hunderten von Microsoft-Artikeln dokumentiert.
Es gibt keine Möglichkeit, zusätzlichen Kernel-Stack-Speicherplatz für mehrere Filtertreiber bereitzustellen. Die einzige Möglichkeit besteht darin, diese Filtertreiber zu identifizieren und diejenigen zu deaktivieren oder zu deinstallieren, die nicht benötigt werden. Ein Tool namens FLTMC (Filter Manager Control-Programm) ist in das Windows Server-Betriebssystem integriert und ermöglicht es Ihnen, zu identifizieren, welche Filtertreiber installiert sind.
Abbildung 2. FLTMC-Tool (zum Vergrößern anklicken)
FLTMC-Tool
Wie Sie sehen, kann Windows Server aus verschiedenen Gründen abstürzen. Die überwiegende Mehrheit dieser Serverausfälle wird jedoch durch die oben aufgeführten Probleme verursacht. Jeder dieser Ausfälle kann vermieden werden, indem Sie die Treiber Ihres Drittanbieters jedes Mal aktualisieren, wenn Sie das Windows-Betriebssystem aktualisieren oder zugehörige Hotfixes anwenden und die Anzahl der nicht verwendeten Filtertreiber begrenzen.
Sie können SearchWindowsServer.com auf Twitter folgen @ WindowsTT.
ÜBER DEN AUTOR:
Bruce Mackenzie-Low, MCSE / MCSA ist ein Master-Berater und Systemsoftware-Ingenieur bei Hewlett Packard, der weltweiten Support für Microsoft Windows-basierte Produkte auf dritter Ebene bietet. Mit über 20 Jahren Computererfahrung ist Bruce eine bekannte Ressource zur Lösung hochkomplexer Probleme, die Cluster, SANs, Netzwerke und Interna betreffen. Er hat im Laufe seiner Karriere ausgiebig unterrichtet und sein Publikum von seiner Begeisterung für Technologie begeistert.

Similar Posts

Leave a Reply