This site best when viewed with a modern standards-compliant browser. We recommend Firefox Get Firefox!.

Linux-HA project logo
Providing Open Source High-Availability Software for Linux and other OSes since 1999.

USA Flag UK Flag

Japanese Flag

ホームページ

サイトについて

コンタクト情報

使用条件

協力方法

セキュリティ

This web page is no longer maintained. Information presented here exists only to avoid breaking historical links.
The Project stays maintained, and lives on: see the Linux-HA Reference Documentation.
To get rid of this notice, you may want to browse the old wiki instead.

2010.1.28
追加パッケージ集リニューアル
追加パッケージ集は、こちらから

2008.8.28
RHEL用rpm更新
更新情報はこちらから

2008.8.18
Heartbeat 2.1.4
リリース!
Downloadはこちらから

2007.11.13
Linux-ha-japan日本語ML移植しました

2007.10.5
日本語サイトOPEN
日本語MLも開設しました

2007.10.5
OSC2007 Tokyo/Fall で Heartbeat紹介
発表資料を公開しました

Last site update:
2017-12-14 23:46:42

Linux-HA(Heartbeat 2)入門

Contents

  1. Linux-HA(Heartbeat 2)入門
    1. はじめに
    2. Heartbeatとは
    3. Heartbeat v2を使用する理由
    4. 定義
    5. 入門
    6. セットアップ
    7. Heartbeatのインストール
    8. Heartbeatの構成
      1. 全般的な構成情報
      2. Authkeysの構成
      3. ha.cfの構成
      4. リソースの構成
    9. その他の構成
      1. Apache
      2. DRBD
      3. OCFスクリプト
    10. Heartbeatの使用
    11. Heartbeatのテスト
    12. 関連情報

はじめに

このドキュメントは私(筆者)自身のオリジナルのものではありません。私がこのドキュメントを作成したのは、作業に取り組むユーザーの皆さんに何らかの方法で協力できたらと考えたからです。私が提供する「著作物」とは、Rudy Pawulによる 入門 ページの改訂版です。また、ほかのHA v1/v2ドキュメントから得られた断片的な情報を1つのドキュメントにまとめました。開発者を悩ませたり、メーリングリスト上で単純な質問が繰り返されたりすることがないよう、初めてのユーザーの方にはHeartbeat 2の入門情報をご紹介します。

このドキュメントは、Heartbeat 2のクイックスタートの一種です。上述のとおり、ここには、ほかのドキュメントから得られた断片的な情報が含まれていますので、ドキュメントが一致していないことがあります。正しく動作しない場合や、詳細を知りたい方は、Heartbeatバージョン2入門をご参照ください。

Heartbeat 2を初めて使うユーザー向けに、Heartbeat 2の簡単な構成についてご説明することが目的です。英語は私の母語で はありませんので、間違いがありましたら、ご遠慮なくご指摘ください。

Heartbeatとは

クラスタ」は、 同名のソフトウェアパッケージが生成した2台以上のコンピュータ(ノード)間の「ハートビート」を通じて設定されます。

ハイアベイラビリティLinuxプロジェクトの基本的な目的は、以下のとおりです。

  • Linux向けのハイアベイラビリティ(クラスタリング)ソリューションを提供し、コミュニティでの開発を通じて信頼性、可用性、管理性(RAS)を高めること

Heartbeat v2を使用する理由

Heartbeat 2は、以下の重要な機能を備えています。

  • 3つ以上のノードが使用でき
  • Heartbeat v2では、「mon」や「ldirectord」などを使用せずにリソースを監視できる

  • 依存関係を示す豊富な機能

定義

入門

以下のものが必要です。

  • 2台以上のコンピュータ。両方のマシンで同じハードウェア(メモリ容量やカーネルなど)を用意する必要はありません
  • Heartbeatパッケージを送信するための1つまたは複数のメディア(シリアル、USB、Ethernetケーブル)
  • Linux OS、構成されて稼働する2つのノードを媒介するメディア

最大限のハイアベイラビリティ

単一障害点を避けることが設定時の全体構想です。また、ノード間で複数の通信方法を使用することもお勧めします。メディアスタックが単一障害点になってしまいますので、Ethernetケーブルや1種類のメディアだけを使用することがないようにしてください。

セットアップ

このクイックスタートでは、Debian UnstableでのHeartbeat 2の完全インストール、構成、複数のリソースについて説明します。クイックスタートの目的を果たすため、簡単で一般的な構成を紹介します。共有IPでApache 2のハイアベイラビリティなサービスを提供します(アクティブ/パッシブ)。この構成にはモニタが含まれ、リソースの開始はグループを使用して実行されます。このドキュメントを読み終えるころには、Heartbeat 2の基本がお分かりいただけるでしょう。

ここでは、分かりやすく、ホスト間で1種類のメディア(Ethernetケーブル)を使用します。

  • プライマリノード:hostname = mars、ipaddr = 10.0.0.10
  • スレーブノード:hostname = venus、ipaddr = 10.0.0.20
  • ApacheがリスンするIP: 10.0.0.30

Heartbeatのインストール

Heartbeatは、以下の場所で入手できます。

ソースからビルドすることもできます。

tar -xvzf /path_to_downloaded_tarball/heartbeat-x.x.x
./ConfigureMe configure
make && make install 

もしくは、入手可能なRPMまたは.debバイナリを使用します。Gentooを使用する場合は、emerge を実行するだけです。

私(筆者)はDebian用の.debバイナリを使用したため、以下の行を /etc/apt/sources.listに追加しました。

deb http://ftp.belnet.be/debian/ unstable main contrib non-free 

続いて、以下を実行しました。

apt-get update
apt-get install heartbeat-2

Heartbeatの構成

全般的な構成情報

Heartbeat v2の構成はHeartbeat v1と比べると多少面倒ですが、Heartbeat v1の構成でHeartbeat v2を使用することも可能です。v1の構成を試してみたい場合は、以下をご覧ください

3つのファイルを構成する必要があります。以下のファイルを作成します。

HA v1

HA v2

目的

備考

/etc/ha.d/authkeys

/etc/ha.d/authkeys

ノードの認証

どちらのバージョンでも同じ

/etc/ha.d/ha.cf

/etc/ha.d/ha.cf

Heartbeatの全般構成

HA v2:CRMを使用可能と定義する必要がある

/etc/ha.d/haresources

/var/lib/heartbeat/crm/cib.xml

リソースの構成

別の場所

Authkeysの構成

authkeysファイルを使用して、クラスタのメンバーを認証します。以下の3種類の認証方法を使用できます。

  • crc:セキュリティをほとんど持たず、多くのリソースを使用しません。実際のネットワークでは使用しないでください。
  • md5:セキュリティを備え、それほど多くのCPUリソースを消費しません。
  • sha1:現在使用可能な中では最高のセキュリティを備えています。

この例では、md5を使用しています。authkeysについて詳しく知りたい場合は、 このドキュメントを参照してください。

以下に、 /etc/ha.d/authkeysファイルの例を示します。

auth 1 
1 md5 key-for-md5-any-text-you-want

キーワードauth の後に入力するインデックスが何であれ、インデックスは、このファイル内のキーの下に入力しなければなりません。「auth 4」を入力した場合は、下のリストに「4 署名タイプ」行を含めなければなりません。

ファイルパーミッションを安全にするため、以下を実行します。

chmod 600 /etc/ha.d/authkeys 

ha.cfの構成

#logfacility local7 
#logfile /var/log/ha-log
#debugfile /var/log/ha-debug
use_logd on
udpport 694
keepalive 1 # 1 second
deadtime 10
initdead 80
bcast eth0
#serial /dev/ttyS0 #if you use serial
#baud 19200 #if you use serial
node linuxha1 linuxha2
crm yes 
auto_failback yes

ログとデバッグについて

ログデーモンを使用する場合には、このファイルのlogfile/debugfile/logfacilityは意味をなしません。ログデーモンの構成ファイルをチェックしてください(デフォルトは/etc/logd.cfです)。/usr/share/doc/heartbeat-2/ha_logd.cfでは、例が紹介されています。

use_logd を使用していない場合、全てのログメッセージはログファイルに直接書き込まれます。ログデーモンは、Heartbeatスクリプトで開始または停止されます。

use_logd

ha-logdを使用します。「yes」に設定することをお勧めします。

logfacility

メッセージのログに使用するsyslogログファシリティを定義します。use_logdが有効な場合は無視されます。

logfile

Heartbeatのデバッグ以外のメッセージは全て、このファイルに出力されます。use_logdが有効な場合は無視されます。

debugfile

Heartbeatがデバッグメッセージを書き込むファイルを指定します。use_logdが有効な場合は無視されます。

時間とネットワーク

udpport

ノード間の通信にHeartbeatが使用するポートを指定します。デフォルトは694です。

keepalive

キープ・アライブ・パケットの間隔を指定します。

deadtime

Heartbeatがクラスタのノードが停止していると判断するまでの時間を指定します。

initdead

起動時間とネットワーク初期化を考慮して、(再起動後などに)全てが最初に起動してから、ノードが停止していると判断するまでの待機時間を指定します。

bcast

キープ・アライブ・パケットを送信するインターフェースを指定します(ブロードキャストを使用する場合)。

必要に応じて、bcastの代わりに、 mcastおよび ucastを使用してください。

その他:

node

どのマシンがクラスタ内にあるかを通知します。

crm

Heartbeatでv2スタイルのクラスタマネージャを実行するかどうかを指定します。ここではonに設定しています。

注: Heartbeat 1セットアップを使用する場合は、crmoffに設定します。

ha.cfファイルの詳細は、 こちらをご覧ください。

リソースの構成

/var/lib/heartbeat/crm/cib.xml:基本的には、このファイルで、クラスタのサービスとデフォルトのオーナーを指定します。

以下の場所に、基本的なリソース構成についての簡単な例が紹介されています: ja/v2/Examples/Simple_ja

以下の場所に、高度な構成についての例が紹介されています:ja/v2/Examples/Advanced_ja

より詳細な構成については、ja/ClusterInformationBase/UserGuide_jaに記載されています。

その他の構成

Apache

ここでの設定では2つの構成を行う必要があります。これらは、Apacheの構成ファイルで行うことができます。

Debianの場合: /etc/apache2/apache2.conf

ApacheがリスンするIPを定義します。

Listen 10.7.200.30:80

監視を行うには、下記を実行してください。

# Allow server status reports, with the URL of http://servername/server-status
# Change the ".your_domain.com" to match your domain to enable.
#
<Location /server-status>
    SetHandler server-status
    Order allow,deny
    Allow from all 
</Location>

DRBD

共有ストレージの代わりにDRBDを使用する場合は、DRBDを構成してください。

OCFスクリプト

作成するリソースエージェントを OCFリソースエージェントにすることをお勧めします。

Heartbeatの使用

Heartbeatのテスト

関連情報

Heartbeatバージョン2入門