harumaki.netトップラーメン全般GNU/Linuxinfraこのサイトサイトマップharumaki.netインフラ屋の覚書や、ラーメン食べある記とか。†2台のホスト間でのクラスタリングを構成する。以下のような機能を提供する。フェイルオーバ機能2つのノードでアクティブ/スタンバイ構成とし、フェイルオーバー、フェイルバック機能を提供。共有リソースの切替サーバー間で仮想IP、サービスの引継ぎを実行。稼動監視、サービス監視(heartbeat-ldirectord)IPでの監視のほか、シリアルIFでの監視も可能。GUIコンソール通常はコマンドラインから作業が必須だったが、バージョン2.0.5より対応(検証中)。参考サイトお世話になっております!heartbeatLinux-HA.orghttp://linux-ha.org/HeartbeatProgramhttp://linux-ha.org/download/UltraMonkeyhttp://www.ultramonkey.org/日本語ページ有りlibnethttp://packetfactory.net/libnet/ダウンロードページlibnethttp://mirror.centos.org/centos/4/extras/SRPMS/heartbeathttp://linux-ha.org/download/そのほか、CentOSのパッケージページから、SRPMをダウンロード。構成ファイルとバージョン※依存関係でインストールする追加パッケージは割愛。各作業ログを参照のこと。使用バージョンは1.1.2.1-2。heartbeatのインストールに必要となるので、事前にビルド/インストール。使用バージョンは2.0.0。ソースRPMからビルド/コンパイルする。heartbeatのインストールには以下のパッケージが必要。事前に確認し、不足分はインストールしておく。heartbeat.specビルドしたパッケージの一覧/usr/src/redhat/RPMS/i386/heartbeat-2.0.0-1.i386.rpm/usr/src/redhat/RPMS/i386/heartbeat-ldirectord-2.0.0-1.i386.rpm/usr/src/redhat/RPMS/i386/heartbeat-stonith-2.0.0-1.i386.rpm/usr/src/redhat/RPMS/i386/heartbeat-pils-2.0.0-1.i386.rpm/usr/src/redhat/RPMS/i386/heartbeat-debuginfo-2.0.0-1.i386.rpmインストールheartbeat-ldirectordとheartbeat-debuginfoを除くパッケージをまずインストール。†ダウンロードとビルドパッケージはheartbeatのビルド時に同時に作成されるので割愛。追加パッケージheartbeat-ldirectordはデフォルトでは依存関係によりperlモジュールが必要。必要としない場合はheartbeatのリビルド時にspecファイルから不要モジュールの記述を削除しておく。※1.下記のうちRHELのメディアに含まれるのはperl-Net-DNS-0.48-1.i386.rpmのみ。そのほかはUltraMonkeyなどからダウンロードする。Core1用だったので、これを利用する。可能な限りソースRPMを落としてきてコンパイル。perl-Parse-RecDescenthttp://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/perl-Parse-RecDescent-1.80-1.rh.el.um.1.noarch.rpmperl-Mail-IMAPClienthttp://www.ultramonkey.org/download/2.0.1/fr.c.1/SRPMS/perl-Mail-IMAPClient-2.2.7-1.fr.c.1.um.1.src.rpmperl-Net-DNS以下のパッケージも含む。perl-Digest-HMACperl-Digest-SHAperl-Net-SSLeayhttp://www.ultramonkey.org/download/2.0.1/fr.c.1/SRPMS/perl-Net-SSLeay-1.23-1.fr.c.1.um.1.src.rpmperl-ldaphttp://www.ultramonkey.org/download/2.0.1/fr.c.1/SRPMS/perl-ldap-0.2701-1.fr.c.1.um.1.src.rpmperl-Authen-SASLhttp://www.ultramonkey.org/download/2.0.1/fr.c.1/SRPMS/perl-Authen-SASL-2.03-1.fr.c.1.um.1.src.rpmperl-IO-Socket-SSLhttp://www.ultramonkey.org/download/2.0.1/fr.c.1/SRPMS/perl-Authen-SASL-2.03-1.fr.c.1.um.1.src.rpmperl-libnethttp://www.hizlab.net/archive/rpms/perl-libnet/perl-libnet-1.19-1.noarch.rpmインストール部分は割愛。heartbeat-ldirectordのインストール各パッケージの依存関係が解消したところでldirectordをインストール。†インストール直後のファイル構成は以下のとおり。設定ファイルディレクトリ/etc/ha.d/但しインストール直後はコンフィグファイルが無いので/usr/share/doc/heartbeat-2.0.0/からコピーして配置する。サービススクリプトheartbeatが用意するフェイルオーバー用起動スクリプトとしてデフォルトで/etc/ha.d/resource.d/以下に設置される。これらは仮想IPの切替や共有ディスクのマウント、Raidなどの切替用に使用する。heartbeatで共有リソースを指定するスクリプトは/etc/ha.d/resource.d/のほか、/etc/init.d/も検索対象となる。上記のディレクトリに置かれているスクリプトはそのままの名称で指定OK。†heartbeatを構成する設定は以下のとおり。クラスタ設定クラスタ構成ノード、主系サーバの指定、ログ出力先、keepaliveやタイムアウトの指定など共有リソース設定クラスタ間で共有するリソース(仮想IP、共有ディスク、アプリケーション)の指定IPは今回以下の組み合わせで設定。設定ファイル:/etc/ha.d/ha.cfサンプルファイル:/usr/share/doc/heartbeat-2.0.0/ha.cfクラスタ設定は/etc/ha.d/ha.cfで設定。ha.cf[設定パラメータ]主系サーバの編集後の設定値を抜粋。設定ファイル:/etc/ha.d/haresourcesサンプルファイル:/usr/share/doc/heartbeat-2.0.0/haresources共有リソースの定義は/etc/ha.d/haresourcesで行う。こちらもサンプルファイルを利用して編集。主系/副系で同じ設定にする。haresources設定例)上記の3つのサービスを順番に起動する場合の例。今回は下記の設定で起動テストを行う。共有ディスク/dev/drdb0を/mnt/shareにマウント※DRBDでマウントされる共有ディスクを使用する場合、heartbeat起動前にプライマリにしておくこと。セカンダリになっていると起動に失敗する。設定ファイル:/etc/ha.d/haresources今回検証したバージョン2.0からheartbeatの動作に応じてメール通知を行うスクリプトが追加されたので、設定を追加。スクリプト実行のトリガーとなる動作は以下のとおり。heartbeatデーモン起動フェイルオーバー時フェイルバック時スクリプト名:/etc/ha.d/resource.d/MailTo設定項目:/etc/ha.d/haresourcesへ記述する。設定ファイル:/etc/ha.d/authkeyサンプルファイル:/usr/share/doc/heartbeat-2.0.0/authkeyサーバ間の通信の認証方法と認証に使う鍵(文字列)を指定する。/etc/ha.d/authkeyに設定を追記。authkeys[認証方法]サーバ間の認証には以下の3つの方法を指定可能。・sha1SHA1による暗号化を実施。・md5MD5方式による暗号化。・crc暗号化なし、パケットの整合性のみチェックを実施。※シリアルケーブルでの通信の場合はこの方式。今回は起動とフェイルオーバのテストなのでcrcでテストする。設定が終わったらセキュリティのためパーミッションを設定。authkeys※この時点でheartbeatの運用開始が可能。†heartbeatサービスの起動(主系)設定が完了したら主系ノードで動作を確認。事前にharesourcesで指定した共有リソースが停止/無効になっていることを確認する。start同時に/var/log/ha-logを確認しておく。[リソース開始時のログ出力]仮想IP、DRBDデバイスのマウント、httpdの起動の順に確認できる。completed.[通知メール]設定したアドレスに以下のメールを配信。今回登録したhttpdが正常起動していることを確認。/usr/sbin/httpdheartbeatサービスの起動(副系)主系のheartbeartを起動後にこちらも起動する。start[主系ログ]副系ノードのリンクアップを確認後、ステータスがアクティブに設定される。主系・副系のheartbeatサービスが起動した状態でのフェイルオーバー・フェイルバックを確認。主系heartbeatサービス停止→副系共有サービス起動(シャットダウン→フェイルオーバー)主系のデーモンを通常に停止した際の副系の動作を確認。host2[主系ログ]サービスの停止を確認。complete.[副系ログ]リソースのフェイルオーバーを確認。keepalive=2に設定されているので、主系のheartbeat停止を検知したのち2秒後にサービスを開始。ログの1行目で、host1からshutdownコマンドを受けていることが確認できる。host1.フェイルオーバーの完了を確認後、リソースの正常性を確認する。主系heartbeatサービス停止→副系共有サービス起動(電源OFF→フェイルオーバー)主系ノードがダウンした際の副系の動作を確認。ping監視の停止を確認後、フェイルオーバーが行われる。host2[主系]副系との通信を確立し、共有サービスの停止を確認後、主系で共有サービスを起動。completed.[副系]主系のheartbeatとの通信を確認後、共有リソースを停止。resources.今回はディスク容量も少なく、起動アプリもhttpdのみだったので軽快にフェイルオーバー、フェイルバックが切り替わったが、DBやJDKなどで負荷のかかるサーバでの動作については今後も要検証。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。RPMパッケージが紹介されていたので、空き時間に入れて試してみる。...[AWS]ただのメモ:ELBでSSL証明書をアップするときは秘密鍵をRSAで。KEYへ変更すること。4.ソケット接続とステータス出力haproxyでステータスやバックエンドサーバーの状態やプールを確認する場合、コマンドラインからチェックできるツールは無い様子。6.*とCentOS6.*です。2004年10月メタ情報ログイン投稿フィードコメントフィードWordPress.orgこのサイトサイトマッププライバシーポリシーharumaki.netインフラ屋の覚書や、ラーメン食べある記とか。