クラスタについて

OSS

OSSのクラスタ管理ソフト「Pacemaker」

図:OSSのクラスタ管理ソフト「Pacemaker」

Pacemakerは、クラスタシステム全体を管理するオープンソースソフトウェアです。

Pacemakerは、もともとLinux-HAプロジェクトが開発、管理を行っているHeartbeatというソフトウェアの一部でした。2007年に、他のクラスタソフトウェアとも協調して動作できるように、Heartbeatから切り離されたものです。

Pacemakerは、クラスタ全体のリソースの管理を行います。Pacemakerが動作するには、クラスタの各ノードの管理と、ノード間の通信を行うクラスタの基盤となる仕組み(クラスタ基盤ソフト)が別に必要です。

クラスタリソースマネージャ

Pacemakerは、クラスタリソースマネージャ(CRM)と呼ばれ、クラスタシステム内のリソースを管理します。代表的なリソースには次のようなものがあります。

サービス

WWWサーバや、メールサーバのような、Linux上で稼働するサービスのことです。

仮想IPアドレス

クラスタの各ノードは、自分自身のIPアドレスを持っています。これとは別に、クラスタシステムとして、外部に見せるサービス用の仮想的な代表IPアドレスを割り当てることができます

ファイルシステム

ハードディスク上のファイルシステム領域です。

Pacemakerでは、単純な2台構成のクラスタシステムだけではなく、複数台のクラスタシステム(マルチサーバ構成)をサポートしています。例えば、図のように3台のサーバがあって、正常時は2台でサービスが起動されています。故障した場合には、1台のバックアップノードで縮退運転するようにも構成できます。

図:クラスタリソースマネージャ

リソースには、動作させる順番も関係しています。例えば、メールデータが含まれているファイルシステムのリソースを確保していなければ、メールサーバを動かすことはできないかもしれません。そのため、先にファイルシステムのリソースを確保し、次にメールサーバを起動するなど、リソースの起動順も管理する必要があります。

Pacemakerは、各リソースを稼働させるノードの優先順位や、リソースの起動順などの設定に基づいて、どのリソースをどのノード上で動作させるのかを、動的に管理します。

リソースエージェント

リソースエージェントは、Pacemakerがリソースを起動、停止する時に使うプログラムです。また、リソースが正常に稼働しているかの稼働監視も行います。リソースエージェントは、決められたマナーに従えば、自分で作成することもできます。

Pacemakerで利用できるリソースエージェントには、次の3つの種類があります。

LSBリソースエージェント

Linuxディストリビューションから提供されるサービススクリプトです。一般的には、/etc/init.dに配置されているものです。start、stop、statusの3つの動作を行える必要があります。ただし、すべてのサービススクリプトが利用できる訳ではありません。
LSBの規格外部サイトへ通りの機能を提供するものに限られます。

OCFリソースエージェント

Heartbeatなどと共に配布されるリソースエージェントで、LSBリソースエージェントの定義を拡張したものです。start、stop、monitor、meta-data、validate-all、promote、demote、notify、reload、migrate_from、migrate_to、recoverなど、様々な指示できめ細かな動作が行えるように拡張されています。

従来型のHeartbeatリソースエージェント

LSBリソースエージェントと同じ規格で動作するエージェントで、start、stop、statusの3つの動作を行える必要があります。Version 2までのHeartbeatのエージェントを引き続き利用することができます。

参考情報