¿Las CPU duales proporcionan tolerancia a fallas?

16

Digamos que compré dos Intel Xeon's y los instalé en hardware de clase de servidor ... Si una CPU fallara, ¿la otra funcionaría y recuperaría la holgura, por lo tanto, proporcionaría tolerancia a fallas?

Esto no parece muy probable, pero pensé en preguntar en lugar de hacer suposiciones.

Soviero
fuente

Respuestas:

29

En un sistema normal de doble socket, no, aunque hay servidores que permiten el intercambio en caliente de procesadores y RAM. Así que estas cosas hacen existir, pero que están en la gama alta muy, muy del mercado.

No es realmente un gran problema: de todo lo que puede fallar en su servidor, el procesador está justo en la parte inferior de la lista, al lado de esos pequeños elevadores de latón que sostienen la placa base fuera del chasis.

Mark Henderson
fuente
1
La pasta térmica mal instalada puede causar el sobrecalentamiento de una CPU durante la carga máxima. Estoy seguro de que hay muchos más casos de que eso suceda que la falla espontánea del elevador de latón.
Pensamiento extraño
8
@Oddthinking Creo que te lo tomaste demasiado en serio.
Peter
55
Incluso con CPU intercambiables en caliente, el sistema aún no tolerará una falla abrupta de una de ellas. Supongamos que el núcleo del sistema operativo se está ejecutando actualmente en la CPU que muere, no puede simplemente reanudar la ejecución en la otra CPU. Para las CPU intercambiables en caliente, el kernel tiene que apagar con gracia esa CPU primero.
Patrick
44
@Patrik: sí, claro. Usted sabe - INCORRECTO;) este es el comportamiento estándar para CPU de gama alta - concedido, este es el mainframe donde la CPU cuesta 5000+ USD. Aún así, usan memoria transaccional y la transacción se reiniciaría en otra CPU.
TomTom
55
@TomTom: Por supuesto, entonces estamos hablando de cosas como el venerable TANDEM (y sus sucesores modernos), no una arquitectura vainilla x86-64.
Piskvor
9

Hablando de hardware básico x86, si un sistema está funcionando y una CPU falla, las cosas se detendrán normalmente. Sin embargo, el sistema funcionará bien después de un reinicio, aunque algo más lento.

La mayoría de las CPU están allí para tener un procesamiento paralelo, no para la tolerancia a fallas. Pero es bueno tener un sistema que todavía arranque si fallara una CPU (o más).

Diría que es un poco más probable que su CPU falle de lo que sugiere Mark Henderson, pero aún así es muy poco probable. En mi experiencia, ocurre principalmente cuando el sistema se sobrecalienta y se apaga con frecuencia (eso es bastante fácil en una sala de servidores de oficina mal acondicionada). A las CPU no les gusta mucho eso.

Por supuesto, si tenía un buen mainframe IBM o similar, el intercambio en caliente de una CPU (placa) es lo suficientemente "fácil".

aseq
fuente
Hmmm, pero incluso en el caso de un reinicio completo: IIRC si la CPU # 0 falla, todavía estás jodido, sin POST, lo que significa que no se iniciará más, ya que solo se usa la primera CPU para el proceso de inicio temprano.
Piskvor
No sé si ese sería el caso. Debería probarlo en un servidor. Pensé que no importaría y mientras haya 1 CPU presente, el sistema arrancará bien.
aseq
5

Si una CPU fallara, lo cual es extremadamente improbable, según las otras respuestas, básicamente no hay nada que el sistema pueda hacer para recuperarse. Dependiendo de la forma en que falle, podría terminar corrompiendo la memoria de maneras extrañas, o destruyendo la tabla de procesos, o quién sabe qué más. Si tuviera algún tipo de sistema de monitoreo activo que controle la CPU para asegurarse de que funciona bien (y pueda, por ejemplo, revertir cualquier cambio realizado por la CPU durante su agonía), ese también sería otro sistema eso puede fallar, y determinar la falla del software mediante programación es bastante difícil (básicamente, la única forma en que prácticamente puede hacerlo es haciendo que otra CPU haga exactamente lo mismo al mismo tiempo y compare los resultados, lo que luego terminará ralentizando las cosas abajo de tal manera que hay

Dicho esto, por raro que sea un fallo de la CPU, aumentar el recuento de la CPU en un sistema realmente aumentará su tasa de fallas, ya que ahora tiene el doble de cosas que pueden fallar. También tiene otros subsistemas que también pueden fallar, como los que mantienen sincronizados los cachés de las CPU, y el aumento en el consumo de energía y la salida térmica también contribuyen a los factores detrás de la falla general del sistema (y, por supuesto, los ventiladores de refrigeración activos son otro punto de falla).

mullido
fuente
1
+1 por señalar que duplicar las CPU aumenta el potencial de falla de la máquina. Más "partes móviles" significa más oportunidades para que ocurra una falla.
Evan Anderson
4

Tendrá que definir exactamente qué tipo de fallas desea manejar. Si consideramos una colección de núcleos / CPU / computadoras que trabajan juntas como una red, un tipo de falla es que un nodo simplemente deja de responder. Una falla mucho más grave es cuando un nodo comienza a corromper datos y envía información defectuosa a los demás. Esto se llama un fracaso bizantino , y en el peor de los casos está interrumpiendo activamente el funcionamiento de la red a través de "mentiras" estratégicas. Es relativamente fácil mostrar que ningún sistema podría manejar un tercio o más de sus nodos que se vuelven bizantinos.

Lo que debe hacer es decidir exactamente qué tipo de fallas espera, y diseñar su sistema con eso en mente, y aceptar el hecho de que el problema de manejar un número arbitrario de nodos maliciosos no tiene solución. En su caso, necesita al menos cuatro CPU si una de ellas está defectuosa.

En una nota al margen: en la física cuántica no hay imposibilidades, pero si tiene que esperar más de la edad del universo para tener una oportunidad estadística de observar un determinado comportamiento, no tenemos que decir que es posible. Tenga eso en cuenta cuando diseñe su sistema. ;)

Anders Sjöqvist
fuente
2

El fallo de la CPU es muy raro. Una falla probablemente resultaría en otros problemas a nivel del sistema operativo. No pensaría en esto como una forma de tolerancia a fallas.

ewwhite
fuente
1

Como las otras respuestas, es muy raro que una CPU falle, y en los servidores promedio no puede hacer un intercambio en caliente, lo que probablemente puede hacer es dejar el servidor con una CPU hasta que la falla sea reemplazada, por supuesto, esto el procedimiento está totalmente fuera de línea y debe detener el servidor

Núcleo
fuente
1
Bueno, no lo llamaría super raro. Acaba de ocurrir en uno de mis servidores. Actualmente en proceso de resolución de problemas. El servidor de CPU dual acaba de perder una de las CPU debido a una falla del ventilador.