はじめに
Linuxでクラスタリングを実現したいという要望は根強く、様々なコミュニティやプロジェクトでクラスタリング用の技術が開発されてきました。「heartbeat」はそのようなソフトウェアの一つです。The High Availability Linux Projectが開発したもので、アクティブ・スタンバイクラスタを提供する基本的な機能を提供します。今回は、heartbeat導入の概要とインストールについて解説します。
heartbeatの概要
heartbeatは、クラスタリングを実現するためのソフトウェアで、次のような機能を提供します。
機能 | 説明 |
---|---|
(1)フェールオーバーとフェールバック | 2つのノードで1つのクラスタリングシステムを構成します。フェールオーバーとフェールバックの仕組みを提供します。 |
(2)稼動監視 | サーバ間で、ハートビートと呼ばれる定期的なデータ交換を行うことで、システムの稼動監視を行います。相手サーバからの応答がなくなると、フェールオーバーを行います。 |
(3)共有リソース管理 | 仮想IPアドレスやサービスなどの、クラスタシステム全体で共有すべきリソースを管理し、フェールオーバー時にサービスを切り替えるための仕組みを提供します。 |
(4)サービス監視 | サービスの稼動状態を管理するための機能を提供します。 |
本コーナーでは、heartbeatを使ってアクティブ・スタンバイクラスタを構成する方法について解説しますが、heartbeatは稼動系のサーバにも、待機系のサーバにもインストールする必要があります。
サーバの要件
heartbeatでは、ホスト間の稼動監視を行うためのネットワークを、通常のネットワークとは別にしておくことが推奨されています。また、さらに監視用ネットワークの障害でシステムが誤動作するのを防ぐために、2つ以上の監視ネットワークを設定することが推奨されています。
また、できるだけ安価にシステムを構築できるようにするため、2本目の監視用ネットワークにはLANインタフェースではなく、シリアルインタフェースを利用することができるようになっています。サーバ間をシリアルケーブルで接続する場合には、通常のモデム用ケーブル(ストレートケーブル)ではなくて、クロスケーブルを使用します。
各LANインタフェースには、あらかじめ次の要件にしたがってネットワーク設定を行っておく必要があります。
- 外部のサービス用のネットワークには、通常通りのIPアドレスを設定する。
- 監視用のLANインタフェースには、監視用の専用のネットワークを作成し、設定する。
- 監視用のLANインタフェースには、iptablesなどのパケットフィルタリングを実施しない。
図1は、このようなサーバの構成とネットワークアドレスの例です。本連載ではこの図に記載されたIPアドレスを使って設定を行っていきます。
heartbeatの入手
heartbeatは、SuSE Linux 10やFedora 7などではパッケージで提供されています。これらのディストリビューションを使ってサーバを構築する場合には、このパッケージを利用することができます。それ以外のディストリビューションで利用する場合や、最新のバージョンを利用する場合には、ソースコードを入手してコンパイルする必要があります。
heartbeatは、The High Availability Linux Projectのサイトからダウンロードすることができます。このページは、若干分かりにくいですが、ページ右側のメニューに“Download Software”というリンクがあります。本連載の執筆時点での最新版は2.1.2でしたので、本連載ではheartbeat-2.1.2.tar.gzを使って解説を行います。
また、heartbeatでは、「libnet」というライブラリを使います。libnetは、The Packetfactoryのホームページで配布されていますのでこちらも入手する必要があります。
本連載の執筆時点での最新安定バージョンは1.1.2.1ですので、このバージョンで解説を行います。