双CPU提供容错function吗?

比方说,我购买了两个Intel Xeon,并将它们安装到服务器级硬件中。如果一个CPU出现故障,另一个仍然可以正常工作并提取冗余,因此提供容错function?

这似乎不太可能,但我想我会问,而不是做出任何假设。

    在一个普通的双路系统中,不,虽然有服务器允许热插拔处理器和RAM。 所以这些东西确实存在,但是它们处于非常高端的市场。

    这不是什么大不了的事情 – 服务器中的所有内容都可能会失败,处理器就在列表的底部,旁边是那些将主板从机箱中拿走的小铜pipe。

    谈到x86商品硬件,如果一个系统正在运行,并且一个CPU发生故障,事情就会正常停止。 然而,系统在重新启动后会正常工作,虽然速度稍慢。

    大多数CPU都有并行处理,而不是真正的容错。 但是有一个系统仍然会启动一个CPU(或更多)失败,这是很好的。

    我会说这比你说的马丁·亨德森(Mark Henderson)所说的更有可能失败,但是这个可能性还不大。 根据我的经验,当系统经常过热并且自行closures时(在空调不良的办公室服务器房间里,这很容易)。 CPU不喜欢那么多。

    当然,如果你有一台不错的IBM大型机或类似的设备,热插拔一个CPU(板卡)就“足够”了。

    如果一个CPU出现故障 – 这是非常不可能的,根据其他答案 – 系统基本上没有什么能够恢复的。 根据失败的方式,最终会以奇怪的方式破坏内存,或者破坏进程表,或者谁知道还有什么。 如果你有一些主动的监视系统来监视CPU,以确保它运行正常(并且能够比如说在CPU死亡期间回滚CPU所做的任何改变),那么这也将是另一个系统那么可能会失败,以编程方式确定软件故障相当困难(基本上,实际上,唯一的办法就是让另一个CPU在完全相同的时间完成相同的工作,然后比较结果 – 最终会放慢速度这样就没有必要另外开一个CPU了)。

    也就是说,与CPU故障一样罕见,增加系统中的CPU数量实际上会使您的故障率上升,因为现在有两倍的故障可能性。 你也有其他的子系统可能会失败,比如那些保持CPU的高速caching同步的子系统,功耗和热输出的增加也是造成整个系统故障的原因(当然,主动冷却风扇是另一个子系统失败点)。

    你将不得不准确定义你想要处理的故障types。 如果我们把一组核心/ CPU /计算机一起作为一个networking,一种失败就是一个节点只是停止应答。 更严重的故障是节点开始损坏数据并向其他节点发送错误信息。 这被称为拜占庭式的失败 ,在最坏的情况下,它通过战略性的“谎言”积极地破坏networking的运作。 表明没有一个系统可以处理拜占庭三分之一或更多的节点。

    你需要做的是准确地确定你所期待的是什么types的故障,并devise你的系统,并接受处理任意数量的恶意节点的问题是无法解决的。 在你的情况下,如果其中一个故障,你至less需要四个CPU。

    在一个侧面说明:在量子物理中没有不可能的事情,但是如果要比宇宙的年龄等待更长的时间才能在统计上观察到某种行为,那么我们不必说这是可能的。 请记住,当你devise你的系统。 ;)

    CPU故障可能是罕见的。 一个失败可能会导致操作系统级别的其他问题。 我不认为这是任何forms的容错。

    另一个答案是,CPU是非常罕见的,在一般的服务器上你不能做一个热插拔,你可能做的就是把服务器留给一个CPU,直到更换失败的CPU,当然,这个程序完全脱机,你需要停止服务器