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.
central-processing-unit
Soviero
fuente
fuente
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".
fuente
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).
fuente
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. ;)
fuente
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.
fuente
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
fuente