Heartbeatに限った話ではありませんが、HAクラスタの運用に際して常に頭を悩ませる問題が、スプリット・ブレイン(第3回記事で紹介)です。
ここで再度簡単に説明しますと、スプリット・ブレインとは、ハートビート通信を行うネットワークに断線などの問題が発生した場合、ホストに障害が起こったと勘違いし、本来立ち上がってほしくないスタンバイ側のホストがアクティブになってしまうというものです。
特に、Heartbeatの場合厄介なことが1つあります。仮に、ネットワーク断線によってスプリット・ブレインが発生した場合、その状態でケーブルだけを交換しても、正常な状態に自動復旧してくれません。
そういった場合には、
といった手順でcib.xmlファイルを自動復元させる必要があります。
ただし、Heartbeat 2.1.3からは自動復旧機能が強化されています。このため、どちらかのホストにリブートが掛かることにより、スプリット・ブレインが強制的に回避されることもあります。
とはいえ、スプリット・ブレインを起こさない最も単純な方法は、ハートビート通信を行う経路を複数用意することです。NICもハブも安価な時代ですので、こうした構成を取ることをお勧めします。
一般的なHAクラスタの問題ではなく、Heartbeat自体の問題に遭遇したときは、開発コミュニティに頼ることになると思います。幸いなことに、Heartbeatについては日本語のメーリングリスト(ML)が立ち上げられているので、ここで聞くのもよいでしょう。ただし、バグ修正などが必要となれば、やはり本家のMLに投稿せねばならないこともあります。
ただ、1つ注意したいことがあります。よく見受けられるのが、設定ファイルなどを添えることなく質問するケースです。最低でもha.cfとcib.xml、できればhb_reportの結果も添えるとよいでしょう。
また、かなり古いバージョン(現在では、2.0.8ですら古くなっています)を使用して問題に遭遇し、質問したところ、最新バージョンではすでに解決済みだった、ということもよくあります。ですので、何らかの問題に遭遇したときは、最新のバージョン、できれば開発リポジトリのもので問題が起きないか確認するのが望ましいでしょう。
特にHeartbeatの場合は、リリースされたバージョンに対する個別のパッチは提供されず、すべて開発ツリーに取り込まれます。また開発ツリーについては、最近は特に新しい機能を盛り込むよりも、バグフィックスを中心とする傾向が強くなっていますので、使用の障壁は低いと思います。
今回でこの連載も最終回となりました。5回という短い間でしたが、クラスタの分類、紹介から、Heartbeatを用いたHAクラスタの構築に関して順を追って解説しました。誌面の都合上、書き足りなかった部分もありますが、皆さん、これまでお付き合い下さりありがとうございました。
Copyright © ITmedia, Inc. All Rights Reserved.