Lock-Step: CPU に異常が起きても止まらないシステム ― 2006年05月25日 13時10分59秒
電源を二重化するのは簡単だ。ハードウェアベンダであれば、造作もないことであろう。しかし、CPU の計算結果を全て比べるとなると、そう単純にはいかない。
Stratus 機では、複数の物理 CPU が一つの論理 CPU を構成する。Continuum は一つの論理 CPU は四つの物理 CPU で出来ている。CPU は動作時でも脱着可能なように、ドータボード上に設置されている。そして、そのドータボードが必ず二つずつ対になって動作する。対になっているドータボードには、また、二つずつの CPU が対になっている。全ての CPU には全く同じ命令が、完全に同時に実行される。まず、同じドータボード上で対になって動いている CPU の結果が比較される。その後、ドータボード間で結果が比較されるのである。これが Stratus 社の言う Lock-Step である。さしづめ、石橋を叩きながら一歩一歩進むような感じである。
一つのドータボード上の結果が異なれば、それが報告され同じ値を出しているドータボードの値が使われる。残念ながら、それ以上のエラーが出た場合の処理は詳しくは知らない。ただ、四つの物理 CPU 全て違う結果を同時に出すと言う確率はとても、低いだろ。二つのドータボード上で、CPU が違う値を出し合うということも、かなり低い確率だと思う。聞くところによると、二つ以上の物理 CPU が違う結果を出すようだと、違う自己検診が走るとらしい。
大体、二つ以上の物理 CPU が違う場合はどうなるかを知っている人は身近にいなかった。アーキテクトに聞く機会があったら、是非教えて欲しい。
ftServer の場合は、三つの CPU をまとめて使っているらしい。つまり、三つの結果を同時に見て、最低二つが同じであれば、問題ないとなるわけだ。この三つの CPU が実際に三つの物理 CPU なのか、既に対になっていて計六つの物理 CPU なのかはわからない。しかし、この方法はあまり良くなかったらしく、ftServer も従来の方式に戻すらしいとの噂を聞いた。
さて、忘れてはいけないのが CPU の交換だ。もちろん PC や Workstation などではないので、不良 CPU を交換する時に、電源を落としてなどいられない。ましてや、性能の劣化なども許されない。最後の、Lock-Step の検査が二つのドータボードになっているのには意味がある。異常が検出された方のドータボードをひっこ抜いて、新しいのを差し込めばいいだけだ。一つのドータボードに、既に二つの物理 CPU が付いて比較演算しているので、性能も落ちたりはしない。
コンピュータも上位機種になると、ディスクなどは RAID を組んで冗長化する。しかし、CPU となるといくらたくさん組み込まれていても、全ては独立して動いていて、冗長化も何も無い。CPU の全ての計算結果の結果の検証。それが無停止サーバの底力だ。
最近のコメント