「waku2とらふぃっくすHAクラスタ化プロジェクト」のひとつです。 本日は、「LVS + heartbeat2(v1モード) + ldirectord(apache連携)による負荷分散&冗長化その4[動作確認]」についてです。
こんにちは。猫ITソリューションズ広報の齊藤メイ(♀)です。 本日は、「LVS + heartbeat2(v1モード) + ldirectord(apache連携)による負荷分散&冗長化その3[httpの負荷分散]」についてです。関連記事:
- 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サーバ構築編/デージーネット(著者)
220 円 (税込)
デージーネット(著者)販売会社/発売会社:秀和システム/秀和システム発売年月日:2005/12/05JAN:9784798011899
【中古】 Xen徹底入門 第2版
5,410 円 (税込) 送料込
【メーカー名】翔泳社【メーカー型番】【ブランド名】掲載画像は全てイメージです。実際の商品とは色味等異なる場合がございますのでご了承ください。【 ご注文からお届けまで 】・ご注文 :ご注文は24時間受け付けております。・注文確認:当店より注文確認メールを送信い..
各アプリケーションのなんとなくの仕様の理解、上記構成をなんとなく図解できる程の把握、Xenでの仮想化完了が前提となります。また基本的にはLinuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編の内容をyumからインストール・設定した記事になります。
以下の記事も合わせてお読みください。
Xen(Domain-0)のインストール
Xen(Domain-U)のインストール
Xenマスターイメージ作成
Xen(Domain-U)の複製(LVMベース)
Xen(Domain-U)で複数のネットワークインターフェイスを使う
動作確認
参考サイト:LVSで構築するgatewaying型負荷分散システム:企業IT部門の変革を支援するエンタープライズ実践情報サイト EnterpriseZine
バージョン1系互換動作モードの設定と動作確認
稼動系サーバー(mikeneko)でIPアドレスを確認
1 2 3 4 |
# ifconfig 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)で動作状況を確認。
(1)が実サーバのサービス用のアドレスになっていることを確認する。
(2)(3)で実サーバの設定を確認する。
masqueradingの設定ではForwardの欄が「Masq」であったのに対して、このgatewaying設定では「Route」と表示される。 実サーバへ正常にアクセスできない場合にはWeightの欄が0になるので、Weightの欄が1になっていることを確認する。 ldirectord(/etc/ha.d/ldirectord.cf)の設定が間違っている場合には、正しく情報が出力されない。
1 2 3 4 5 6 7 |
# /sbin/ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.90:80 wlc (1) -> 192.168.1.22:80 Route 1 0 0 (2) -> 192.168.1.32:80 Route 1 0 0 (3) |
実際に仮想アドレス(192.168.1.90)にアクセスして、負荷分散していることを確認する。
http://192.168.1.90/
ついでにphpの動作も確認する。
http://192.168.1.90/phpinfo.php
負荷分散の状況を確認
ipvsadmの出力では、現在アクティブなセッションの数(ActiveConn)と、 接続が完了してから一定時間内のセッションの数(InActConn)が表示される。 この数値を確認することで、負荷分散の様子を観察することができる。
1 2 3 4 5 6 7 |
# /sbin/ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.90:80 wlc -> 192.168.1.22:80 Route 1 0 2 ←今アクセスしたので増えている -> 192.168.1.32:80 Route 1 0 1 |
フェイルオーバーの確認
稼動系サーバー(mikeneko)の heartbeatサービスを停止させます。
1 2 |
# /etc/init.d/heartbeat stop Stopping High-Availability services: |
正しく設定されていれば、仮想IPアドレスとサービスが待機系サーバー(toraneko)に引き継がれているはず。 待機系サーバー(toraneko)の仮想IPアドレスの確認
1 2 3 4 |
# ifconfig -a eth0:0 eth0:0 Link encap:Ethernet HWaddr 00:14:5E:5C:1C:4F inet addr:192.168.1.90 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 |
実際に仮想アドレス(192.168.1.90)にアクセスして、フェイルオーバーしていることを確認する。
http://192.168.1.90/
フェイルバックの確認
強制的にフェイルバックを発生させるため、稼動系サーバー(mikeneko)で heartbeat サービスを起動します。
※どうも重み付けのためか表示上はうまくいっていない感じだけど、ブラウザでのアクセスではOKっぽい。要再検証。
(ちゃんとReal server 1 / 2 と切り替わる)
1 2 3 4 |
# /etc/init.d/heartbeat start Starting High-Availability services: 2009/01/27_02:00:20 INFO: Resource is stopped [ OK ] |
稼動系サーバの仮想IPアドレスの確認
1 2 3 4 |
# ifconfig -a eth0:0 eth0:0 Link encap:Ethernet HWaddr 00:14:5E:5C:1C:4F inet addr:192.168.1.90 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 |
実際に仮想アドレス(192.168.1.90)にアクセスして、フェイルバックしていることを確認する。
http://192.168.1.90/
これでLVSサーバー(稼動系:mikeneko/待機系:toraneko)の冗長化と、http(sabineko/kuroneko)の負荷分散はOKとなる。