Digamos que comprei dois Intel Xeon e os instalei no hardware da classe de servidor ... Se uma CPU falhasse, a outra ainda funcionaria e pegaria a folga, fornecendo tolerância a falhas?
Isso não parece muito provável, mas pensei em perguntar em vez de fazer suposições.
central-processing-unit
Soviero
fonte
fonte
Falando sobre hardware básico x86, se um sistema estiver em execução e uma CPU falhar, as coisas irão parar normalmente. No entanto, o sistema funcionará bem após uma reinicialização, embora um pouco mais lento.
Muitas CPUs estão lá para ter processamento paralelo, não para tolerância a falhas. Mas é bom ter um sistema que ainda seja inicializado caso uma CPU (ou mais) falhe.
Eu diria que é um pouco mais provável que sua CPU falhe do que Mark Henderson sugere, mas ainda é muito improvável. Na minha experiência, ocorre principalmente quando o sistema superaquece e se desliga (isso é bastante fácil em uma sala de servidores de escritório com ar condicionado). As CPUs não costumam gostar muito disso.
Obviamente, se você tivesse um bom mainframe IBM ou similar, a troca a quente de uma CPU (placa) é "fácil" o suficiente.
fonte
Se uma CPU falhar - o que é extremamente improvável, de acordo com as outras respostas - não há basicamente nada que o sistema possa fazer para se recuperar. Dependendo do modo como falha, isso pode acabar corrompendo a memória de maneiras estranhas, destruindo a tabela de processos ou quem sabe mais o quê. Se você tivesse algum tipo de sistema de monitoramento ativo que mantém controle da CPU para garantir que esteja funcionando bem (e capaz de, por exemplo, reverter quaisquer alterações feitas pela CPU durante seus problemas), esse também seria outro sistema isso pode falhar e determinar a falha de software programaticamente é bastante difícil (basicamente a única maneira de você praticamente fazer isso é fazendo com que outra CPU faça exatamente as mesmas coisas ao mesmo tempo e compare os resultados - o que acabará atrasando as coisas para baixo de tal maneira que
Dito isso, por mais raro que seja uma falha da CPU, aumentar a contagem de CPU em um sistema aumentará sua taxa de falhas, pois agora você tem o dobro de coisas que podem falhar. Você também tem outros subsistemas que também podem falhar, como aqueles que mantêm os caches das CPUs sincronizados, e o aumento no consumo de energia e na saída térmica também contribuem para os fatores por trás da falha geral do sistema (e, é claro, os ventiladores de refrigeração ativos são outro ponto de falha).
fonte
Você precisará definir exatamente com que tipo de falhas deseja lidar. Se considerarmos uma coleção de núcleos / CPUs / computadores trabalhando juntos como uma rede, um tipo de falha é que um nó simplesmente para de responder. Uma falha muito mais grave ocorre quando um nó começa a corromper dados e envia informações com defeito para os outros. Isso é chamado de falha bizantina e, na pior das hipóteses, está atrapalhando ativamente a operação da rede por meio de "mentiras" estratégicas. É relativamente fácil mostrar que nenhum sistema pode lidar com um terço ou mais de seus nós que se tornam bizantinos.
O que você precisa fazer é decidir exatamente que tipo de falhas você espera e projetar seu sistema com isso em mente e aceitar o fato de que o problema de lidar com um número arbitrário de nós maliciosos é insolúvel. No seu caso, você precisa de pelo menos quatro CPUs, se uma delas estiver com defeito.
Em uma nota lateral: na física quântica não há impossibilidades, mas se tivermos que esperar mais do que a idade do universo para estatisticamente ter a chance de observar um determinado comportamento, não precisamos dizer que isso é possível. Lembre-se disso ao projetar seu sistema. ;)
fonte
Falha na CPU é rara. Uma falha provavelmente resultaria em outros problemas no nível do sistema operacional. Eu não pensaria nisso como qualquer forma de tolerância a falhas.
fonte
Como as outras respostas, é muito raro que uma CPU falhe, e nos servidores médios você não pode fazer uma troca a quente, o que você provavelmente pode fazer é deixar o servidor com uma CPU até que a falha seja substituída, é claro, isso O procedimento é totalmente offline e você precisa fazer uma parada no servidor
fonte