Warum sollte eine Server-Sperrung andere Server aus dem Netzwerk werfen?

9

Wir haben ein paar Dutzend Proxmox-Server (Proxmox läuft unter Debian), und ungefähr einmal im Monat wird einer von ihnen eine Kernel-Panik haben und abstürzen. Das Schlimmste an diesen Abstürzen ist, dass wenn sich ein Server auf einem anderen Switch als dem Cluster-Master befindet, alle anderen Proxmox-Server auf diesem Switch nicht mehr reagieren, bis wir den Server finden, der tatsächlich abgestürzt ist, und ihn neu starten.

Als wir dieses Problem im Proxmox-Forum gemeldet haben, wurde uns empfohlen, ein Upgrade auf Proxmox 3.1 durchzuführen, und wir sind seit einigen Monaten dabei, dies zu tun. Leider war einer der Server, die wir auf Proxmox 3.1 migriert haben, am Freitag mit einer Kernel-Panik blockiert, und wieder waren alle Proxmox-Server, die sich auf demselben Switch befanden, über das Netzwerk nicht erreichbar, bis wir den abgestürzten Server finden und neu starten konnten.

Nun, fast alle Proxmox-Server auf dem Switch ... Ich fand es interessant, dass die Proxmox-Server auf demselben Switch, die noch auf Proxmox Version 1.9 waren, nicht betroffen waren.

Hier ist ein Screenshot der Konsole des abgestürzten Servers:

Geben Sie hier die Bildbeschreibung ein

Als der Server abstürzte, waren die übrigen Server auf demselben Switch, auf denen auch Proxmox 3.1 ausgeführt wurde, nicht mehr erreichbar und spuckten Folgendes aus:

e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
...etc...

uname -a Ausgabe des gesperrten Servers:

Linux ------ 2.6.32-23-pve #1 SMP Tue Aug 6 07:04:06 CEST 2013 x86_64 GNU/Linux

pveversion -v Ausgabe (abgekürzt):

proxmox-ve-2.6.32: 3.1-109 (running kernel: 2.6.32-23-pve)
pve-manager: 3.1-3 (running version: 3.1-3/dc0e9b0e)
pve-kernel-2.6.32-23-pve: 2.6.32-109

Zwei Fragen:

  1. Irgendwelche Hinweise, was die Kernel-Panik verursachen würde (siehe Bild oben)?

  2. Warum sollten andere Server auf demselben Switch und derselben Version von Proxmox aus dem Netzwerk entfernt werden, bis der gesperrte Server neu gestartet wird? (Hinweis: Auf demselben Switch befanden sich andere Server, auf denen die ältere Version 1.9 von Proxmox ausgeführt wurde, die nicht betroffen waren. Außerdem waren keine anderen Proxmox-Server im selben 3.1-Cluster betroffen, die sich nicht auf demselben Switch befanden.)

Vielen Dank im Voraus für jeden Rat.

Curtis
quelle
Können Sie den vollen Crashdump geben? Das Bild oben schneidet die interessanten Teile ab. Hast du den Crashdump auch auf lkml gepostet ? Wenn Sie es sich noch einmal ansehen, ist dies ein ziemlich alter Kernel. Gibt es Pläne, Debian auf eine aktuelle stabile Version zu aktualisieren?
Ckujau
Leider haben wir keinen Crash Dump. Ich habe es meiner Liste hinzugefügt, um eine serielle Konsole und / oder kdump zu konfigurieren. Da der Kernel alt ist, verwendet Proxmox einen OpenVZ-Kernel, der eine Abzweigung zum Mainstream-Kernel darstellt. Sobald ich Crash-Dumps zum Laufen bringen kann, werde ich die OpenVZ-Entwickler um Hilfe bitten. Vielen Dank für Ihren Kommentar ... es hat mir geholfen, in die richtige Richtung zu weisen.
Curtis
Was für ein Schalter?
ETL
Das Problem ist bei 3 verschiedenen Switches aufgetreten (einem dlink und 2 cisco). Ich habe nicht die Modellnummern der beiden vorherigen Switches, aber die neueste ist eine Cisco SG102-24. Da es nur Server auf dem Switch betrifft, auf denen derselbe Kernel ausgeführt wird, und weil ich auf meinem dritten Switch bin, ist es unwahrscheinlich, dass der Switch schuld ist (obwohl dies auch mein ursprünglicher Gedanke war).
Curtis
Ich habe eine E-Mail-Benachrichtigung erhalten, dass jemand den folgenden Kommentar hier gepostet hat ... "Ich habe ein ähnliches Problem, außer dass ich meinen Absturz mit ein paar Containern verursachen kann, die Hardcore ausführen ..." Leider wurde es dort und als ich kam abgeschnitten hier hatte der Autor ihren Kommentar entfernt, so dass ich nicht weiß, was der Rest davon war. Ich möchte jedoch hinzufügen, dass ich festgestellt habe, dass das Problem am häufigsten auftritt, wenn starker Netzwerkverkehr besteht (z. B. wenn Sicherungen ausgeführt werden). Vielleicht war dieser Kommentar "Hardcore-Netzwerkübertragungen"?
Curtis

Antworten:

2

Ich bin mir fast sicher, dass Ihr Problem nicht nur durch einen einzigen Faktor verursacht wird, sondern durch eine Kombination von Faktoren. Was diese einzelnen Faktoren sind, ist nicht sicher, aber höchstwahrscheinlich ist ein Faktor entweder die Netzwerkschnittstelle oder der Treiber, und ein anderer Faktor befindet sich auf dem Switch selbst. Daher ist es sehr wahrscheinlich, dass das Problem nur mit dieser bestimmten Switch-Marke in Kombination mit dieser bestimmten Marke von Netzwerkschnittstellen reproduziert werden kann.

Sie scheinen der Auslöser für das Problem ist etwas, das auf einem einzelnen Server passiert, der dann eine Kernel-Panik hat, die Auswirkungen hat, die sich irgendwie über den Switch ausbreiten können. Das klingt wahrscheinlich, aber ich würde sagen, es ist ungefähr genauso wahrscheinlich, dass der Auslöser woanders ist.

Es kann sein, dass auf dem Switch oder der Netzwerkschnittstelle etwas passiert, was gleichzeitig zu Problemen mit der Kernel-Panik und der Verbindung auf dem Switch führt. Mit anderen Worten, selbst wenn der Kernel keine Kernel-Panik hatte, hat der Trigger möglicherweise die Konnektivität des Switches beeinträchtigt.

Man muss sich fragen, was möglicherweise auf dem einzelnen Server passieren könnte, was diesen Effekt auf den anderen Servern haben könnte. Es sollte nicht möglich sein, daher muss die Erklärung irgendwo im System einen Fehler enthalten.

Wenn nur die Verbindung zwischen dem abgestürzten Server und dem Switch ausfiel oder instabil wurde, sollte dies keine Auswirkungen auf den Verbindungsstatus zu den anderen Servern haben. Wenn dies der Fall ist, würde dies als Fehler im Schalter gelten. In Bezug auf den Datenverkehr sollten die anderen Server etwas weniger Datenverkehr sehen, sobald der abgestürzte Server die Konnektivität verloren hat. Dies kann nicht erklären, warum sie das Problem sehen, das sie verursachen.

Dies lässt mich glauben, dass ein Konstruktionsfehler am Schalter wahrscheinlich ist.

Ein Verbindungsproblem ist jedoch nicht die erste Erklärung, nach der man suchen würde, wenn versucht wird zu erklären, wie ein Problem auf einem Server anderen Servern auf dem Switch Probleme bereiten kann. Ein Rundfunksturm wäre eine offensichtlichere Erklärung. Aber könnte es eine Verbindung zwischen einem Server mit Kernel-Panik und einem Broadcast-Sturm geben?

Multicast und Pakete, die für unbekannte MAC-Adressen bestimmt sind, werden mehr oder weniger wie Broadcasts behandelt, sodass auch ein Sturm solcher Pakete zählen würde. Könnte der in Panik geratene Server versuchen, einen Crashdump über das Netzwerk an eine MAC-Adresse zu senden, die vom Switch nicht erkannt wird?

Wenn dies der Auslöser ist, läuft auf den anderen Servern etwas schief. Weil ein Paketsturm diese Art von Fehler auf der Netzwerkschnittstelle nicht verursachen sollte. Reset adapter unexpectedlyklingt nicht wie ein Paketsturm (der nur zu einem Leistungsabfall führen sollte, aber keine Fehler als solche), und es klingt nicht wie ein Verbindungsproblem (das dazu führen sollte, dass Meldungen über ausfallende Verbindungen angezeigt werden, aber nicht der Fehler, den Sie sind Sehen).

Es ist also wahrscheinlich, dass die Hardware oder der Treiber der Netzwerkschnittstelle einen Fehler aufweist, der vom Switch ausgelöst wird.

Einige Vorschläge, die zusätzliche Hinweise geben können:

  1. Können Sie andere Geräte an den Switch anschließen und sehen, welchen Verkehr Sie auf dem Switch sehen, wenn das Problem auftritt (ich gehe davon aus, dass es entweder leise wird oder Sie eine Flut sehen).
  2. Wäre es möglich, die Netzwerkschnittstelle auf einem der Server durch eine andere Marke mit einem anderen Treiber zu ersetzen, um zu sehen, wie sich das Ergebnis anders entwickelt?
  3. Ist es möglich, einen der Schalter durch eine andere Marke zu ersetzen? Ich gehe davon aus, dass durch das Ersetzen des Switches sichergestellt wird, dass das Problem nicht mehr mehrere Server betrifft. Interessanter zu wissen ist, ob dadurch auch die Kernel-Panik verhindert wird.
Kasperd
quelle
Vielen Dank für Ihre nachdenkliche Antwort. In Bezug auf Ihre 3 Vorschläge: 1) Welche Art von Ausrüstung / Software würde das tun? 2) Ich wünschte, ich könnte, aber es sind viele Server beteiligt und ich weiß nicht, wo das Problem als nächstes auftreten wird. 3) Ich habe bereits 3 verschiedene Schalter ausprobiert (3 verschiedene Modelle, 2 verschiedene Marken). Interessant ist auch, dass nur Server mit derselben Version von Proxmox betroffen sind. Proxmox hat einen Cluster-Synchronisierungsmechanismus, daher vermute ich, dass dies etwas damit zu tun hat. Glücklicherweise ist es ein paar Monate her, seit das Problem jetzt aufgetreten ist.
Curtis
Um den Verkehr auf dem Switch zu betrachten, dachte ich daran, einen normalen PC mit tcpdump und / oder Wireshark anzuschließen. Natürlich möchten Sie vermeiden, dass die betroffene Software auf diesem PC installiert wird. Aber es hört sich so an, als ob der Code, den Proxmox im Kernel installiert, tatsächlich einen Fehler enthalten muss. Wenn es so selten vorkommt, dass Sie es nur etwa einmal im Monat und jeweils nur an einem Schalter sehen, kann es lange dauern, bis Sie es gefunden haben. Ich werde ein bisschen darüber nachdenken und kommentieren, wenn weitere Ideen auftauchen.
Kasperd
1

Es klingt für mich wie ein Fehler im Ethernet-Treiber oder in der Hardware / Firmware, dies ist eine rote Fahne:

e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly

Ich habe diese schon einmal gesehen und es kann den Server offline schalten. Ich erinnere mich nicht genau, ob es auf Intel-Ethernet-Karten war, aber ich glaube schon. Es könnte sogar mit einem Fehler in den Ethernet-Karten selbst zusammenhängen. Ich erinnere mich, dass ich etwas über bestimmte Intel-Ethernet-Karten mit solchen Problemen gelesen habe. Aber ich habe den Link des Artikels verloren.

Ich würde mir vorstellen, dass der Auslöser dafür teilweise vom verwendeten Treiber (Version) abhängt. Die Tatsache, dass eine ältere Version der Software in Ordnung funktioniert, scheint dies zu bestätigen. Sie sagen, der Anbieter verwendet seinen eigenen benutzerdefinierten Kernel. Versuchen Sie, das Ethernet-Treibermodul zu aktualisieren, das für Ihre spezielle Ethernet-Hardware verwendet wird. Entweder eine von Ihrem Anbieter oder eine aus dem offiziellen Kernel-Quellbaum.

Sehen Sie sich auch die Verbindung Ihrer Ethernet-Hardware an. Normalerweise verfügt ein Server über zwei integrierte Ethernet-Ports und / oder Add-On-Karten. Auf diese Weise wird die andere Karte erkannt, wenn eine Ethernet-Karte dieses Problem aufweist. Ich benutze das Wort "Karte", aber es gilt natürlich für jede Ethernet-Hardware.

Auch das Ersetzen der Ethernet-Hardware kann das Problem beheben. Ersetzen oder fügen Sie eine neuere (Intel) Ethernet-Karte hinzu und verwenden Sie diese stattdessen. Wenn das Problem in der Hardware / Firmware liegt, hat eine neuere Karte wahrscheinlich einen Fix (oder älter?).

aseq
quelle
Die Computer verfügen alle über zwei Ethernet-Ports. Dieser Fehler tritt jedoch auf mehreren Servern gleichzeitig auf, die sich zum Zeitpunkt der Sperrung eines Computers auf demselben Switch befinden. Sobald der eine gesperrte Server aus- und wieder eingeschaltet wird, sind alle betroffenen Server sofort wieder verfügbar. Dies scheint darauf hinzudeuten, dass der gesperrte Server nicht vollständig gesperrt ist, aber das Zurücksetzen der Computer auf demselben Switch irgendwie überflutet. Es wäre interessant zu sehen, ob ein Treiber-Update helfen könnte, aber ich denke nicht, dass die Aktivierung der anderen Ethernet-Karte basierend auf den Beweisen helfen könnte.
Curtis
Alter Thread, aber auch mit Intel e1000e NIC Model 82574L und einer der neueren ProxMox-Versionen von 5.0-23 / af4267bf bleiben die Netzwerkprobleme bestehen. Ich kann meinen Windows-Laptop (aus dem Ruhezustand aufwachen oder einfach nur anmelden) aufrufen, der mit demselben Switch verbunden ist, und der ProxMox-Server wird grundsätzlich jedes Mal neu gestartet. Ich habe auch gesehen, dass es nur sporadisch neu gestartet wird, wenn es nicht mit dem Switch verbunden ist. Und es wird neu gestartet, wenn ich es zum ersten Mal an den Switch anschließe. Der aktuelle Treiber ist 3.3.5.3 und es gibt 3.3.5.10, 3.3.6 und 3.4.0.2, daher werde ich wahrscheinlich versuchen, diese zu erstellen und zu verwenden. Mein .02c.
JGlass