Answers:
在普通的双插槽系统中,没有,尽管有些服务器允许热交换处理器和RAM。这些东西确实存在,但是它们处于市场的非常非常高端的位置。
这并不是什么大不了的事-服务器中所有可能发生故障的事物,处理器都位于列表的底部,紧随其后的是将主板固定在机箱上的黄铜小挡板。
谈论x86商用硬件,如果系统正在运行且CPU出现故障,则正常情况下会停止运行。但是,系统在重新启动后仍可以正常运行,尽管速度稍慢。
多数CPU都具有并行处理功能,并不是真正的容错功能。但是,如果系统能够在CPU(或更多)发生故障时仍能启动,那就很好了。
我要说的是,您的CPU发生故障的可能性比Mark Henderson所建议的要高,但可能性仍然很小。以我的经验,大多数情况是在系统频繁过热并自行关闭时发生的(在空调较差的办公室服务器机房中这很容易)。CPU不太喜欢那样。
当然,如果您有一个不错的IBM大型机或类似主机,那么热插拔CPU(板)就足够了。
如果CPU出现故障-根据其他答案,这是极不可能的-基本上,系统将无能为力。根据失败的方式,最终可能会以奇怪的方式破坏内存,或者破坏进程表,或者谁知道其他什么。如果您要使用某种活动的监视系统来监视CPU,以确保其工作正常(并且能够回滚CPU在其死机期间所做的任何更改),那么该系统也将是另一种系统可能会失败,并且以编程方式确定软件失败是非常困难的(基本上,实际上,唯一可行的方法是让另一个CPU在完全相同的时间执行完全相同的操作并比较结果-这样最终会减慢速度下来这样
也就是说,CPU故障很少发生,增加系统中的CPU数量实际上会使您的故障率上升,因为现在您可能发生的故障是两倍。您还具有其他也会发生故障的子系统,例如那些使CPU缓存保持同步的子系统,而功耗和热量输出的增加也导致了整个系统故障的因素(当然,主动冷却风扇是另一个原因)故障点)。
您必须准确定义要处理的故障类型。如果我们将一组一起工作的内核/ CPU /计算机视为网络,则故障的一种类型是节点仅停止响应。更为严重的故障是节点开始破坏数据并将错误信息发送给其他节点时。这称为拜占庭式故障,在最坏的情况下,它会通过战略性“谎言”积极破坏网络的运行。比较容易地表明,没有系统可以处理拜占庭式的三分之一或更多节点。
您需要做的是,准确地确定您期望的故障类型,并牢记这一点来设计系统,并接受以下事实:处理任意数量的恶意节点是无法解决的。在您的情况下,如果其中一个出现故障,则至少需要四个CPU。
附带说明一下:在量子物理学中没有不可能,但是如果要等到比宇宙年龄更长的时间才能统计学上有机会观察到某种行为,我们不必说这是可能的。在设计系统时,请记住这一点。;)