ページの本文へ

Hitachi

Open Middleware Report Web

どきどき、ハートビートのしくみ

じゃあ、EADsが備えている特長を説明していこうか。

梅田先生

はい、お願いします!

みどるちゃん

EADsは大きく3つの特長を備えている。
膨大なデータを受け付けて、遅延なく次のシステムに転送する「高速性」。
障害が発生してもシステムを止めない「高可用性」。
そして日立ならではの"隠しネタ"があるけど、それは後で教えよう。
まずは「高速性」。
これはさっき言ったようにデータを分散した複数のサーバのメモリ領域に配置して直接アクセスする仕組みで実現している。

梅田先生

ふむふむ

みどるちゃん

次に「高可用性」。
インメモリデータグリッドでは、障害が発生したり電源が切れると、該当のサーバにあるメモリ記憶内容を失ってしまう。

梅田先生

えっ、そうなんですか!
知らなかった…

みどるちゃん

だからEADsは最初にデータを書き込んだ時、その複製(コピー)を自動的に作って、分散した別のサーバのメモリに同じデータを書き込むんだ。
これを「多重化」と呼ぶんだけど、これでどのサーバに障害が発生しても、高速に複製データに切り換えて処理を継続することができる。
通常は、正データ以外に複製を1つ作る「二重化」が多いけど、特に重要なデータの場合は2つ作って「三重化」するケースも少なくない。
これでシステムとしての可用性を上げているわけさ。

梅田先生

可用性を確保するためのもう1つの工夫が、障害検知と柔軟な縮退運転だ。
EADsでは複数のサーバ間をハートビート通信で結んで生存確認を行っている。
サーバ同士が互いの"心音"を聞きながら「おい、生きてるか?」「うん大丈夫!」と確かめ合っているわけさ。
たとえば4台のサーバの中で1台だけ返事が帰ってこなかったら、「こいつは故障か何かでダウンしちゃったな」と多数決で判断してから切り離し、残りのサーバで処理を継続する。

松本先生

次に入ってきたデータは自動的に、ダウンしていない3台に振り分けられるし、代役となる1台が新しく仲間に入ってきた時も、「よし、元通り4台になったな」と判断して動き続けるから、業務を止めることがない。

松本先生

すごい!
それにしても"ハートビート"って聞くと何だか踊り出しそうな気分に…

みどるちゃん