システム高負荷時に発生しうるスプリットブレインについて
高負荷時に発生しうるスプリットブレインについて
現象:
LifeKeeperのフェイルオーバーは、ハードウエアやLifeKeeperで保護しているアプリケー
ションの障害によって発生するものですが、ノードのCPU負荷、IO負荷、ネットワーク負荷が
高くなった場合に、LifeKeeperが障害と判断するのと同じ状態になることがあります。この
現象はLifeKeeperの不具合ではなく、サーバに対し設計性能を超えた利用が発生し、それに
伴いノード間の死活監視が出来ないほどの状態が発生することに起因します。
この現象が発生した場合、LifeKeeperではなにもすることが出来ません。ハードウエアの性
能を上げる、高負荷状態を発生させるソフトウエアを別のサーバに移すなど、LifeKeeper以
外の部分での対応をするようにしてください。
高負荷が発生する要因について:
サーバの性能設計時に考慮していなかったアプリケーションを、あとからサーバに導入した。
●良くある例
・サーバで動作する、ウイルススキャンソフトウエアを導入している。
ウイルススキャンソフトウエアは、IOを高負荷状態にします。サーバ性能に余裕が無い場合、
その性能の限界値を超えることでサーバを不安定にさせたりネットワークが途絶する状態も
発生します。ウイルススキャンソフトウエアを使用する場合には、サーバの性能設計時にそ
れらを考慮し、余裕を持たせるようにしてください。
・定期的にバックアップ処理が走る
バックアップソフトウエアもウイルススキャンソフトウエアと同様にIOを高負荷状態にしま
す。定期的にバックアップソフトウエアを使用する場合には、サーバの性能設計時にそれら
を考慮し、余裕を持たせるようにしてください。
システム担当者が大容量のファイルのコピーや、手動でのバックアップ処理を実行した。
●良くある例
・大容量のファイルを、ネットワーク経由で別のサーバにコピーした。
大容量のファイルを、ネットワーク経由で別のサーバにコピーする場合、ネットワークが高
負荷状態になります。ある特定の条件下(1つのコントロールチップで複数のEthernet
Portを制御しているLANカードなど)では、ネットワークIOの高負荷状態によって、ネット
ワークが途絶する状態も発生します。サーバの構成設計時に、可能であれば1つのコントロー
ルチップで1つのEthernet Portを使うようなカードを使用するなど、設計してください。
・手動でバックアップ処理を実施
バックアップ処理はIOを高負荷状態にします。ある特定の条件下では、IOの高負荷状態によっ
て、ネットワークが途絶する状態も発生します。手動でバックアップ処理を行う場合には、高
負荷状態を発生させないように考慮するか、高負荷状態になりそうな場合は、HAクラスタの切
替が発生しないようにlkstop -fコマンドを使用して、一時的にHAクラスタ状態を解除するなど
対応してください。
※注意:lkstop -fを実行した後は、LifeKeeperによるフェイルオーバー処理は行われませんが、
この状態のときにサービスを提供しているサーバに障害が発生すると、システムは完全に
ダウンしてしまいます。十分注意の上、lkstop -fコマンドは利用するようにしてください。
回避について:
先にご説明したとおり、スプリットブレインはLifeKeeperに起因するものではありませんので、LifeKeeperによる回避手段はありません。暫定的に対処療法的にスプリットブレインが発生しに
くくなるよう検知を遅らせる(コミュニケーションパスの監視間隔を広げる)、
フェイルオーバー時に、元のノード側で代表IP開放まで時間がかかるのを無視して同じ代表IPを
つけられるようにする(代表IPの重複チェックを外す)、スイッチボックスを設置して強制的に
相手側ノードをリブートさせる(相手ノード状況は確認せず、強制リブートのため、DRの場合
データ破壊の可能性があります。)などがありますが、いずれも恒久的に利用するのはお勧め
できません。恒久的に対策をする場合には、以下の方法をご検討ください。
・サーバ性能を向上させCPU負荷、IO負荷、ネットワーク負荷を下げる
メモリやCPUの増設が可能な場合はそれらを追加し、CPU負荷、ネットワーク負荷を下げます。
IO負荷については、SCSI(SCSI RAID)インターフェースの性能が大きく左右しますので、
内蔵のオンボードのものを使わず高速のインターフェースに交換する、RAID5はIO負荷が高いので
RAID1にするなど、トータルのIO負荷が下がる方法をご検討ください。
・シリアルケーブルのコミュニケーションパスを追加する
コミュニケーションパスを用意する場合、通信メディアをEthernetだけではなく、シリアルケーブル(クロスケーブル)によるコミュニケーションパスの設置もご検討ください。なお、富士通ハードウエアでは、Linuxでシリアルポートの利用に制限がありますので、シリアルポートを利用する場合には、
まず利用の可否を含めて富士通にご確認ください。
・ディスク領域を使用したコミュニケーションパスを追加する(Windows版の場合)
Windows版の場合は共有ディスク領域を使用した、ディスクによるコミュニケーションパスの設置を必
ず用意することをお勧めします。
以上
掲載日: 2006年8月1日