デュアルCPUはフォールトトレランスを提供しますか?


16

たとえば、2つのIntel Xeonを購入してサーバークラスのハードウェアにインストールしたとしましょう。1つのCPUに障害が発生しても、もう1つのCPUが機能し、スラックを受け取ります。

これはあまりありそうにないように思えますが、私は仮定をする代わりに尋ねると思いました。

回答:


29

通常のデュアルソケットシステムでは、いいえ。ただし、プロセッサとRAMのホットスワップを許可するサーバーがあります。したがって、これら存在しますが、非常にハイエンドの市場にあります。

サーバーで障害が発生する可能性のあるものすべての中で、プロセッサはリストの一番下、マザーボードからシャーシを守る小さな真鍮製のライザーの隣にあります。


1
サーマルペーストが正しく取り付けられていないと、ピーク負荷時にCPUが過熱する可能性があります。自発的なブラスライザーの故障よりも多くのケースが発生していると確信しています。
オッドシンク

8
@Oddthinkingあなたはそれをあまりにも真剣に受け止めたと思います。
ピーター

5
ホットスワップ可能なCPUを使用しても、システムはいずれかのCPUの突然の障害を許容しません。OSカーネルが現在停止しているCPUで実行されていると仮定すると、他のCPUで実行を再開することはできません。ホットスワップ可能なCPUの場合、カーネルは最初にそのCPUを正常にシャットダウンする必要があります。
パトリック

4
@パトリック:ええ、そうです。ご存知のように-間違っています;)これはハイエンドCPUの標準的な動作です-これはメインフレームで、CPUのコストは5000+ USDです。それでも、トランザクションメモリを使用し、トランザクションは別のCPUで再起動されます。
トムトム

5
@TomTom:もちろん、それからx86-64のバニラアーキテクチャではなく、由緒あるTANDEM(およびその現代の後継者)のような話をしています。
-Piskvor

9

x86コモディティハードウェアについて言えば、システムが実行されていてCPUに障害が発生した場合、正常に停止します。ただし、多少遅くなりますが、システムは再起動後に正常に機能します。

複数のCPUは、実際にはフォールトトレランスのためではなく、主に並列処理を行うためにあります。ただし、CPU(またはそれ以上)が失敗する場合でもブートするシステムがあると便利です。

マークヘンダーソンが示唆するよりも、CPUに障害が発生する可能性が少し高いと思いますが、それでも非常にまれです。私の経験では、ほとんどの場合、システムが頻繁に過熱してシャットダウンするときに発生します(空調の悪いオフィスサーバールームでは非常に簡単です)。CPUはそれをあまり好まない傾向があります。

もちろん、優れたIBMメインフレームなどを使用している場合、CPU(ボード)のホットスワップは「簡単」です。


うーん、しかしハードリブートの場合でも:IIRC CPU#0に障害が発生した場合、まだねじ込まれています-POSTなし。これは、最初のCPUのみが初期起動プロセスに使用されるため、これ以上ブートしないことを意味します。
-Piskvor

それが当てはまるかどうかはわかりません。サーバーでテストする必要があります。私はそれは問題ないと思い、1つのCPUが存在する限り、システムは正常に起動します。
aseq

5

CPUに障害が発生した場合(他の回答では非常にありそうもないことですが)、基本的にシステムが回復するためにできることは何もありません。失敗した方法によっては、奇妙な方法でメモリを破損したり、プロセステーブルを破壊したり、誰が他に何を知っているかを知ることができます。CPUのタブを保持して、正常に動作していることを確認する(たとえば、死のスロー中にCPUによって行われた変更をロールバックできる)アクティブな監視システムがある場合、それは別のシステムにもなります。それは失敗する可能性があり、プログラムでソフトウェア障害を判断するのはかなり難しいです(基本的にあなたが実際にそれを行うことができる唯一の方法は、まったく同じことを別のCPUにまったく同じことをさせて結果を比較することです-そしてそれは物事を遅くしますダウンするような

とはいえ、CPU障害はまれですが、システムでCPUカウントを増やすと、実際に障害が発生する可能性のあるものが2倍になるため、実際に障害率が上がります。CPUのキャッシュの同期を維持するサブシステムなど、故障する可能性のある他のサブシステムもあります。また、電力消費と熱出力の増加は、システム全体の故障の原因にもなります(もちろん、アクティブな冷却ファンも障害点)。


1
CPUを2倍にすると、マシンの障害の可能性が高くなることを指摘した+1。「可動部品」が多いほど、故障が発生する可能性が高くなります。
エヴァンアンダーソン

4

どの種類の障害を処理するかを正確に定義する必要があります。コア/ CPU /コンピューターの集まりがネットワークとして機能していると考えると、障害の1つのタイプは、ノードが単に応答を停止することです。より深刻な障害は、ノードがデータの破損を開始し、障害のある情報を他のノードに送信することです。これはビザンチン障害と呼ばれ、最悪の場合、戦略的な「嘘」によってネットワークの運用を積極的に混乱させます。ビザンチンに向かうノードの3つ以上を処理できるシステムないことを示すのは比較的簡単です。

行う必要があるのは、予想される障害の種類を正確に決定し、それを念頭に置いてシステムを設計し、任意の数の悪意のあるノードを処理する問題が解決できないという事実を受け入れることです。あなたのケースでは、そのうちの1つに障害がある場合、少なくとも4つのCPUが必要です。

補足:量子物理学では不可能はありませんが、特定の行動を統計的に観察する機会を得るために宇宙の年齢よりも長く待たなければならない場合、それが可能だと言う必要はありません。システムを設計するときは、このことに留意してください。;)


2

CPU障害はまれです。障害が発生すると、おそらくOSレベルで他の問題が発生します。私はこれを何らかの形のフォールトトレランスとは考えません。


1

他の答えとして、CPUが故障することは非常にまれであり、平均的なサーバーではホットスワップを行うことはできません。手順は完全にオフラインであり、サーバーを停止する必要があります


1
まあ、私はそれを超レアとは言いません。サーバーの1つで発生しました。現在、トラブルシューティング中です。デュアルCPUサーバーは、ファンの故障によりCPUの1つを失いました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.