Lock-Step: CPU に異常が起きても止まらないシステム2006年05月25日 13時10分59秒

Stratus 機を語るのに、ハードウェアを避けては通れない。無停止は二重化されたハードウェアによって支えられている。全ての部品は二重化され、常にお互いの結果を点検する。

電源を二重化するのは簡単だ。ハードウェアベンダであれば、造作もないことであろう。しかし、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 の全ての計算結果の結果の検証。それが無停止サーバの底力だ。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/05/25/379991/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。