「waku2とらふぃっくすHAクラスタ化プロジェクト」のひとつです。 本日は、「LVS + heartbeat2(v1モード) + ldirectord(apache連携)による負荷分散&冗長化その1[基本インストール・heartbeatの設定]」についてです。
こんにちは。猫ITソリューションズ広報の齊藤メイ(♀)です。 本日は、「LVS + heartbeat2(v1モード) + ldirectord(apache連携)による負荷分散&冗長化その1[基本インストール・heartbeatの設定]」についてです。
関連記事:
- LVS + heartbeat2(v1モード) + ldirectord(apache連携)による負荷分散&冗長化その1[基本インストール・heartbeatの設定]
- LVS + heartbeat2(v1モード) + ldirectord(apache連携)による負荷分散&冗長化その2[ldirectordの設定]
- LVS + heartbeat2(v1モード) + ldirectord(apache連携)による負荷分散&冗長化その3[httpの負荷分散]
- LVS + heartbeat2(v1モード) + ldirectord(apache連携)による負荷分散&冗長化その4[動作確認]
貴重な情報ありがとうございます。深く感謝の意を表します。
参考サイト:
- CentOS5.0とLVS(Linux Virtual Server)でWeb負荷分散装置を作る - sous le grand arbre
- LVSで構築するgatewaying型負荷分散システム:企業IT部門の変革を支援するエンタープライズ実践情報サイト EnterpriseZine
ここでの構成は以下の通りとなります。(xenが前提です。洒落のつもりはないです)
- (Domain-0)mikeneko.waku2traffics.com LVS(ipvsadm)/heartbeat
- (Domain-0)toraneko.waku2traffics.com LVS(ipvsadm)/heartbeat
- (Domain-U)sabineko.waku2traffics.com apache
- (Domain-U)kuroneko.waku2traffics.com apache
- (eth0)192.168.1.20/(eth1)10.0.0.20 mikeneko.waku2traffics.com
- (eth0)192.168.1.21/(eth1)10.0.0.21 buchineko.waku2traffics.com
- (eth0)192.168.1.22/(eth1)10.0.0.22 sabineko.waku2traffics.com
- (eth0)192.168.1.30/(eth1)10.0.0.30 toraneko.waku2traffics.com
- (eth0)192.168.1.31/(eth1)10.0.0.31 shironeko.waku2traffics.com
- (eth0)192.168.1.32/(eth1)10.0.0.32 kuroneko.waku2traffics.com
OS:CentOS5.2 x86_64版
なお、構成についてですが、正直こんな文字だけでは分からないと思います。 申し訳ありませんが図は用意できませんのでご了承願います。構成を自分なりの図にすることをオススメしますが、さっぱりわからないと思いますので、この本を参考に作る事を強くオススメします。
【中古】 Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編/デージーネット(著者)
【中古】Xen徹底入門 オ-プンソ-スで実現するOS仮想化環境 第2版/翔泳社/宮本久仁男(大型本)
各アプリケーションのなんとなくの仕様の理解、上記構成をなんとなく図解できる程の把握、Xenでの仮想化完了が前提となります。また基本的にはLinuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編の内容をyumからインストール・設定した記事になります。
以下の記事も合わせてお読みください。
Xen(Domain-0)のインストール
Xen(Domain-U)のインストール
Xenマスターイメージ作成
Xen(Domain-U)の複製(LVMベース)
Xen(Domain-U)で複数のネットワークインターフェイスを使う
基本インストール
mikeneko/toranekoの両方にインストール
1 2 3 4 5 6 |
# yum install ipvsadm # yum install heartbeat <div class="notes">※2系</div> <div class="notes">※heartbeat-stonith/heartbeat-pils(プラグイン)もインストールされる。</div> # yum install heartbeat-ldirectord # yum install heartbeat-gui |
インストールすると自動的にhaclusterというユーザーが追加される。 heartbeat2のhb_gui(設定ファイルcib.xmlのGUI管理モード)はこのhaclusterのみ操作可能なため パスワードを設定しておく。
1 |
# passwd hacluster |
ipvsadmの動作確認
1 2 3 4 |
# ipvsadm -L IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn |
heartbeatの設定
mikeneko に設定ファイルを新規作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# vi /etc/ha.d/ha.cf # v2設定をするための記述(今回はv1設定のためコメントアウト) # crm on # ログの出力先ファイル logfile /var/log/ha-log # システムログへの出力方法 logfacility local0 # watchdogデバイス watchdog /dev/wathdog # ハートビートの間隔 keepalive 3 # ノードが死亡したと認知する時間 deadtime 30 # ハートビートが返ってこないと警告となる時間 warntime 10 # 起動時にのみ使用されるノード死亡認知時間 initdead 60 # ハートビートで使用するポート udpport 694 # ハートビートをeth1経由でユニキャストにて行う(相手IPアドレスを指定) # ※ここだけ異なる。 ucast eth1 10.0.0.30 # ハートビートをシリアルで行う場合の通信速度 baud 19200 # シリアルポートのデバイス serial /dev/ttyS0 # ノード復旧後にサービスを自動的に戻す auto_failback on # ping先 ping 192.168.1.1 # 監視処理 respawn hacluster /usr/lib64/heartbeat/ipfail apiauth ipfail gid=haclient uid=hacluster # クラスタに参加するノード名(uname -nコマンドで表示されるもの)をすべて記述 node mikeneko.waku2traffics.com node toraneko.waku2traffics.com |
toranekoに設定ファイルを新規作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# vi /etc/ha.d/ha.cf # v2設定をするための記述(今回はv1設定のためコメントアウト) # crm on # ログの出力先ファイル logfile /var/log/ha-log # システムログへの出力方法 logfacility local0 # watchdogデバイス watchdog /dev/wathdog # ハートビートの間隔 keepalive 3 # ノードが死亡したと認知する時間 deadtime 30 # ハートビートが返ってこないと警告となる時間 warntime 10 # 起動時にのみ使用されるノード死亡認知時間 initdead 60 # ハートビートで使用するポート udpport 694 # ハートビートをeth1経由でユニキャストにて行う(相手IPアドレスを指定) # ※ここだけ異なる。 ucast eth1 10.0.0.20 # ハートビートをシリアルで行う場合の通信速度 baud 19200 # シリアルポートのデバイス serial /dev/ttyS0 # ノード復旧後にサービスを自動的に戻す auto_failback on # ping先 ping 192.168.1.1 # 監視処理 respawn hacluster /usr/lib64/heartbeat/ipfail apiauth ipfail gid=haclient uid=hacluster # クラスタに参加するノード名(uname -nコマンドで表示されるもの)をすべて記述 node mikeneko.waku2traffics.com node toraneko.waku2traffics.com |
mikeneko/toranekoの両方で、リソースとして仮想IPアドレスを使うための設定をする。
古いドキュメントでは IPaddr2 でなく IPaddr が使われている例を目にするが、今や、特段の事情でもない限り IPaddr のほうを使う理由はない。 双方の大きな違いは次の点だ; ・IPaddrは仮想IPの発生にifconfigを使い、ネットワークエイリアスとして生成する。 ・IPaddr2はiproute2を使い、副IPアドレスをifaceに直接付加する。 この点により、IPaddr2 で発生された仮想IPアドレスは ifconfig コマンドでは表示されないことがある。 確実に表示させるには iproute2 のコマンドを使用して、 # ip addr show とする。
1 2 |
# vi /etc/ha.d/haresources mikeneko.waku2traffics.com IPaddr::192.168.1.90/24/eth0 ldirectord |
mikeneko/toranekoの両方で認証設定ファイルを作成
1 2 3 4 5 6 7 |
# vi /etc/ha.d/authkeys # 下記の1の記述を認証として使用 auth 1 # sha1方式による認証。「xxxxxxxx」の部分がパスフレーズ 1 sha1 xxxxxxxx # sha1が推奨されていて、md5は優先順位が劣る 2 md5 less than sha1 |
パーミッションを変更
1 |
# chmod 600 /etc/ha.d/authkeys |
mikeneko/toranekoの両方でheartbeatを起動
1 2 |
# /etc/init.d/heartbeat start Starting High-Availability services: |
稼動系サーバー(mikeneko)に仮想IPができているか確認
1 2 3 4 |
# ifconfig -a eth0:0 eth0:0 Link encap:Ethernet HWaddr 00:14:5E:5C:1E:A8 inet addr:192.168.1.90 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 |
mikeneko/toranekoのいずれかでモニター表示して動作確認
1 2 3 4 5 6 7 8 9 10 11 |
# /usr/sbin/crm_mon -i 3 Defaulting to one-shot mode You need to have curses available at compile time to enable console mode ============ Last updated: Sun Jan 18 18:58:36 2009 Current DC: toraneko.waku2traffics.com (94c82120-b48e-4d6a-b26d-e9ba34b3a9d2) 2 Nodes configured. 0 Resources configured. ============ Node: toraneko.waku2traffics.com (94c82120-b48e-4d6a-b26d-e9ba34b3a9d2): online Node: mikeneko.waku2traffics.com (f0d3ae77-2f7a-4a56-97ac-b7c3b155049a): online |
mikeneko/toranekoの両方で、詳細設定ファイルが生成されているか確認する。
1 2 3 4 5 6 7 8 9 |
# cd /var/lib/heartbeat/crm # ls -al 合計 24 drwxr-x--- 2 hacluster haclient 4096 1月 18 18:57 . drwxr-xr-x 5 root root 4096 1月 18 18:56 .. -rw------- 2 hacluster haclient 840 1月 18 18:57 cib.xml -rw------- 2 hacluster haclient 840 1月 18 18:57 cib.xml.last -rw-r--r-- 2 hacluster haclient 32 1月 18 18:57 cib.xml.sig -rw-r--r-- 2 hacluster haclient 32 1月 18 18:57 cib.xml.sig.last |
確認が出来たら一旦停止する。
1 |
# /etc/init.d/heartbeat stop |
その2に続きます。