Bieten Dual-CPUs Fehlertoleranz?

16

Nehmen wir an, ich habe zwei Intel Xeons gekauft und sie in Hardware der Serverklasse installiert ... Wenn eine CPU ausfällt, funktioniert die andere weiterhin und übernimmt den Spielraum, wodurch Fehlertoleranz gewährleistet wird?

Dies scheint nicht sehr wahrscheinlich zu sein, aber ich dachte, ich würde fragen, anstatt irgendwelche Annahmen zu treffen.

Soviero
quelle

Antworten:

29

Nein, in einem normalen Dual-Socket-System, obwohl es Server gibt, die einen Hot-Swap von Prozessoren und RAM ermöglichen. Diese Dinge gibt es also, aber sie befinden sich am sehr, sehr hohen Ende des Marktes.

Es ist nicht wirklich eine große Sache - von allem in Ihrem Server, was ausfallen kann, steht der Prozessor ganz unten auf der Liste, neben den kleinen Messing-Risern, die das Motherboard vom Gehäuse fernhalten.

Mark Henderson
quelle
1
Eine schlecht installierte Wärmeleitpaste kann zu einer Überhitzung der CPU bei Spitzenlast führen. Ich bin sicher, es gibt viel mehr Fälle, in denen dies passiert, als spontane Riser-Fehler.
Seltsame
8
@Oddthinking Ich denke, du hast es zu ernst genommen.
Peter
5
Selbst bei Hot-Swap-fähigen CPUs wird das System einen plötzlichen Ausfall einer dieser CPUs nicht tolerieren. Angenommen, der OS-Kernel wird gerade auf der CPU ausgeführt, die abgestürzt ist, und die Ausführung auf der anderen CPU kann nicht fortgesetzt werden. Bei Hot-Swap-fähigen CPUs muss der Kernel diese CPU zuerst ordnungsgemäß herunterfahren.
Patrick
4
@Patrik: Ja, richtig. Wissen Sie - FALSCH;) Dies ist das Standardverhalten für High-End-CPUs. Zugegeben, dies ist ein Mainframe, bei dem die CPU mehr als 5000 USD kostet. Trotzdem verwenden sie Transaktionsspeicher und die Transaktion würde auf einer anderen CPU neu gestartet.
TomTom
5
@TomTom: Dann sprechen wir natürlich von Dingen wie dem ehrwürdigen TANDEM (und seinen modernen Nachfolgern), nicht von einer Vanilla x86-64-Architektur.
Piskvor
9

Apropos x86-Standardhardware: Wenn ein System ausgeführt wird und eine CPU ausfällt, kommt es normalerweise zum Stillstand. Nach einem Neustart funktioniert das System jedoch einwandfrei, wenn auch etwas langsamer.

Meist sind mehrere CPUs für die parallele Verarbeitung vorgesehen, nicht wirklich für die Fehlertoleranz. Aber es ist schön, ein System zu haben, das immer noch bootet, wenn eine CPU (oder mehr) ausfällt.

Ich würde sagen, es ist etwas wahrscheinlicher, dass Ihre CPU ausfällt, als Mark Henderson vorschlägt, aber es ist immer noch sehr unwahrscheinlich. Nach meiner Erfahrung passiert es meistens, wenn sich das System häufig überhitzt und herunterfährt (das ist in einem schlecht klimatisierten Büro-Serverraum recht einfach). Die CPUs mögen das eher nicht.

Wenn Sie einen netten IBM-Mainframe oder ähnliches hatten, ist das Austauschen einer CPU (Platine) im laufenden Betrieb natürlich "einfach" genug.

aseq
quelle
Hmmm, aber auch im Falle eines harten Neustarts: Wenn die CPU # 0 ausfällt, sind Sie immer noch angeschraubt - kein POST, was bedeutet, dass kein weiterer Neustart erforderlich ist, da nur die erste CPU für den frühen Startvorgang verwendet wird.
Piskvor
Ich weiß nicht, ob das der Fall wäre. Ich sollte es auf einem Server testen. Ich dachte, es würde nichts ausmachen und solange 1 CPU vorhanden ist, wird das System gut booten.
aseq
5

Wenn eine CPU ausfällt - was nach den anderen Antworten äußerst unwahrscheinlich ist -, kann das System im Grunde genommen nichts tun, um sie wiederherzustellen. Je nachdem, wie es fehlschlägt, kann es dazu kommen, dass der Speicher auf seltsame Weise beschädigt oder die Prozesstabelle zerstört wird, oder wer weiß was noch. Wenn Sie eine Art aktives Überwachungssystem haben, das die CPU überwacht, um sicherzustellen, dass sie einwandfrei funktioniert (und beispielsweise alle Änderungen, die die CPU während ihrer Todesfälle vorgenommen hat, rückgängig machen kann), wäre dies auch ein anderes System Das kann scheitern, und das programmgesteuerte Ermitteln von Softwarefehlern ist ziemlich schwierig (im Grunde ist es praktisch nur möglich, wenn eine andere CPU genau das Gleiche zur selben Zeit ausführt und die Ergebnisse vergleicht, was dann zu einer Verlangsamung führt unten so, dass es '

Das heißt, so selten ein CPU-Ausfall ist, wenn Sie die CPU-Anzahl in einem System erhöhen, steigt Ihre Ausfallrate tatsächlich, da Sie jetzt doppelt so viele Dinge haben, die ausfallen können. Sie haben auch andere Subsysteme, die ebenfalls ausfallen können, z. B. diejenigen, die die Caches der CPUs synchron halten, und die Zunahme des Stromverbrauchs und der Wärmeleistung tragen ebenfalls zu den Faktoren bei, die zu einem Ausfall des Gesamtsystems führen (und natürlich sind auch aktive Kühlungslüfter von Bedeutung Ausfallstelle).

flauschige
quelle
1
+1 für den Hinweis, dass das Verdoppeln von CPUs das Fehlerpotential der Maschine erhöht. Mehr "bewegliche Teile" bedeuten mehr Möglichkeiten für das Auftreten von Fehlern.
Evan Anderson
4

Sie müssen genau definieren, welche Art von Fehlern Sie behandeln möchten. Wenn wir eine Ansammlung von Kernen / CPUs / Computern betrachten, die als Netzwerk zusammenarbeiten, besteht eine Art von Fehler darin, dass ein Knoten einfach nicht mehr antwortet. Ein weitaus schwerwiegenderer Fehler tritt auf, wenn ein Knoten beginnt, Daten zu beschädigen und fehlerhafte Informationen an die anderen zu senden. Dies wird als byzantinisches Versagen bezeichnet , und im schlimmsten Fall wird der Netzwerkbetrieb durch strategische "Lügen" aktiv gestört. Es ist relativ einfach zu zeigen, dass kein System mit einem Drittel oder mehr seiner Knoten umgehen kann , die byzantinisch werden.

Was Sie tun müssen, ist, genau zu entscheiden, welche Art von Fehlern Sie erwarten, und Ihr System unter diesem Gesichtspunkt zu entwerfen und die Tatsache zu akzeptieren, dass das Problem des Umgangs mit einer willkürlichen Anzahl von böswilligen Knoten nicht lösbar ist. In Ihrem Fall benötigen Sie mindestens vier CPUs, wenn eine von ihnen fehlerhaft ist.

Eine Randnotiz: In der Quantenphysik gibt es keine Unmöglichkeiten, aber wenn man länger als das Alter des Universums warten muss, um statistisch eine Chance zu haben, ein bestimmtes Verhalten zu beobachten, muss man nicht sagen, dass es möglich ist. Denken Sie daran, wenn Sie Ihr System entwerfen. ;)

Anders Sjöqvist
quelle
2

CPU-Fehler sind möglicherweise selten. Ein Fehler würde wahrscheinlich zu anderen Problemen auf Betriebssystemebene führen. Ich würde das nicht als Fehlertoleranz ansehen.

ewwhite
quelle
1

Wie die anderen Antworten zeigen, fällt eine CPU nur sehr selten aus, und auf den durchschnittlichen Servern können Sie keinen Hot-Swap durchführen. Sie können den Server wahrscheinlich mit einer CPU belassen, bis die ausgefallene ersetzt wird Die Prozedur ist vollständig offline und Sie müssen den Server stoppen

Ader
quelle
1
Naja ich würde es nicht super selten nennen. Ist gerade auf einem meiner Server aufgetreten. Derzeit wird eine Fehlerbehebung durchgeführt. Der Dual-CPU-Server hat gerade eine CPU aufgrund eines Lüfterausfalls verloren.