Le CPU doppie offrono tolleranza d'errore?


16

Diciamo che ho comprato due Intel Xeon e li ho installati in un hardware di classe server ... Se una CPU fallisse, l'altra funzionerebbe comunque e colmerebbe il gioco, fornendo quindi tolleranza agli errori?

Ciò non sembra molto probabile, ma ho pensato che avrei chiesto invece di fare ipotesi.

Risposte:


29

In un normale sistema a doppio socket, no, anche se ci sono server che consentono lo scambio a caldo di processori e RAM. Quindi, queste cose fanno esistono, ma sono al molto, molto high-end del mercato.

Non è davvero un grosso problema - di tutto ciò che può fallire nel tuo server, il processore si trova in fondo all'elenco, accanto a quei piccoli riser in ottone che tengono la scheda madre fuori dallo chassis.


1
Una pasta termica installata in modo errato può causare il surriscaldamento di una CPU durante il carico di picco. Sono sicuro che ci sono molti più casi che accadono rispetto al fallimento spontaneo del riser in ottone.
Pensando in modo strano il

8
@Spensandoci, penso che tu l'abbia preso troppo sul serio.
Peter,

5
Anche con CPU sostituibili a caldo, il sistema non tollererà comunque un improvviso guasto di una di esse. Supponiamo che il kernel del sistema operativo sia attualmente in esecuzione sulla CPU che muore, non può semplicemente riprendere l'esecuzione sull'altra CPU. Per le CPU hot-swap, il kernel deve prima spegnere quella CPU.
Patrick,

4
@Patrik: sì, giusto. Sai - SBAGLIATO;) questo è un comportamento standard per CPU di fascia alta - concesso, questo è mainframe dove la CPU costa 5000+ USD. Tuttavia, usano la memoria transazionale e la transazione verrà riavviata su un'altra CPU.
TomTom,

5
@TomTom: Certo, allora stiamo parlando di cose come il venerabile TANDEM (e i suoi successori moderni), non un'architettura vaniglia x86-64.
Piskvor,

9

Parlando di hardware delle merci x86, se un sistema è in esecuzione e una CPU fallisce, le cose si fermano normalmente. Tuttavia, il sistema funzionerà correttamente dopo un riavvio, anche se un po 'più lento.

Più CPU sono lì per avere l'elaborazione parallela, non proprio per la tolleranza agli errori. Ma è bello avere un sistema che si avvia ancora se una CPU (o più) fallisce.

Direi che è un po 'più probabile che la CPU non funzioni rispetto a quanto suggerisce Mark Henderson, ma è ancora molto improbabile. Nella mia esperienza accade soprattutto quando il sistema si surriscalda e si spegne frequentemente (è abbastanza facile in una sala server per ufficio malamente climatizzata). Alle CPU non piace molto.

Ovviamente se si disponeva di un buon mainframe IBM o simile, lo scambio a caldo di una CPU (scheda) è abbastanza "facile".


Hmmm, ma anche in caso di riavvio forzato: IIRC se la CPU n. 0 fallisce, sei ancora fregato - nessun POST, il che significa che non viene più avviato, poiché solo la prima CPU viene utilizzata per il processo di avvio anticipato.
Piskvor,

Non so se sarebbe così. Dovrei provarlo su un server. Ho pensato che non avrebbe avuto importanza e fino a quando è presente 1 CPU il sistema si avvierà correttamente.
aseq,

5

Se una CPU dovesse fallire - il che è estremamente improbabile, per le altre risposte - non c'è praticamente nulla che il sistema possa fare per ripristinare. A seconda del modo in cui fallisce, potrebbe finire per corrompere la memoria in modi strani o distruggere la tabella dei processi o chissà cos'altro. Se dovessi avere una sorta di sistema di monitoraggio attivo che tiene sotto controllo la CPU per assicurarti che funzioni bene (e in grado, per esempio, di ripristinare tutte le modifiche apportate dalla CPU durante i suoi attacchi mortali), sarebbe anche un altro sistema ciò può fallire e determinare programmaticamente un errore del software è abbastanza pericoloso (praticamente l'unico modo in cui puoi praticamente farlo è avere un'altra CPU che fa esattamente le stesse cose nello stesso momento e confrontare i risultati - che finiranno per rallentare le cose giù in modo tale che

Detto questo, raro come un errore della CPU, aumentare il conteggio della CPU in un sistema farà aumentare il tasso di errore, poiché ora hai il doppio delle cose che possono fallire. Esistono anche altri sottosistemi che possono fallire, come quelli che mantengono sincronizzate le cache delle CPU e l'aumento del consumo energetico e dell'uscita termica contribuiscono anche ai fattori alla base del fallimento generale del sistema (e, naturalmente, le ventole di raffreddamento attive sono un altro punto di errore).


1
+1 per indicare che il raddoppio delle CPU aumenta il potenziale di guasto della macchina. Più "parti mobili" significano più opportunità per il fallimento.
Evan Anderson,

4

Dovrai definire esattamente quale tipo di guasti vuoi gestire. Se consideriamo una raccolta di core / CPU / computer che lavorano insieme come una rete, un tipo di errore è che un nodo semplicemente smette di rispondere. Un errore molto più grave è quando un nodo inizia a danneggiare i dati e invia informazioni errate agli altri. Questo è chiamato un fallimento bizantino e, nel peggiore dei casi, interrompe attivamente il funzionamento della rete attraverso "bugie" strategiche. È relativamente facile dimostrare che nessun sistema è in grado di gestire un terzo o più dei suoi nodi che diventano bizantini.

Quello che devi fare è decidere esattamente quale tipo di guasti ti aspetti e progettare il tuo sistema tenendo presente ciò, e accettare il fatto che il problema di gestire un numero arbitrario di nodi dannosi è irrisolvibile. Nel tuo caso, hai bisogno di almeno quattro CPU se una di esse è difettosa.

Una nota a margine: nella fisica quantistica non ci sono impossibilità, ma se dobbiamo aspettare più a lungo dell'età dell'universo per avere statisticamente la possibilità di osservare un certo comportamento, non dobbiamo dire che è possibile. Tienilo a mente quando progetti il ​​tuo sistema. ;)


2

L'errore della CPU potrebbe essere raro. Un errore comporterebbe probabilmente altri problemi a livello di sistema operativo. Non penserei a questo come a qualsiasi forma di tolleranza agli errori.


1

Come le altre risposte, è molto raro che una CPU non funzioni, e nei server medi non è possibile effettuare un hot swap, ciò che probabilmente si può fare è lasciare il server con una CPU fino a quando quella fallita viene sostituita, ovviamente, questo la procedura è totalmente offline ed è necessario arrestare il server


1
Beh, non lo definirei super raro. Si è appena verificato su uno dei miei server. Attualmente in fase di risoluzione dei problemi. Il server con doppia CPU ha appena perso una delle CPU a causa di un guasto della ventola.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.