「waku2とらふぃっくすHAクラスタ化プロジェクト」のひとつです。 本日は、「LVS + heartbeat2(v1モード) + ldirectord(apache連携)による負荷分散&冗長化その3[httpの負荷分散]」についてです。
こんにちは。猫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サーバ構築編/デージーネット(著者)
【中古】 Xen徹底入門 第2版
各アプリケーションのなんとなくの仕様の理解、上記構成をなんとなく図解できる程の把握、Xenでの仮想化完了が前提となります。また基本的にはLinuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編の内容をyumからインストール・設定した記事になります。
以下の記事も合わせてお読みください。
Xen(Domain-0)のインストール
Xen(Domain-U)のインストール
Xenマスターイメージ作成
Xen(Domain-U)の複製(LVMベース)
Xen(Domain-U)で複数のネットワークインターフェイスを使う
httpの負荷分散(wwwサーバーの設定)
sabineko/kuroneko の両方にapacheをインストール
1 |
# yum install httpd |
ついでにphpもインストール。
1 2 |
# yum install php # yum install php-ldap php-mysql php-pear php-mbstring |
テストスクリプトを作っておく
1 2 3 4 |
# vi /var/www/html/phpinfo.php <!--?php phpinfo(); ?--> |
sabineko/kuroneko の両方で行う。
ARPの設定
Webサーバでは、VIPをループバックインターフェースに設定する。 また同じVIPを複数のWebサーバで共有するため、このVIPに関するARPを投げたり受けたりしないようにする。
1 2 3 4 5 6 7 |
# vi /etc/sysctl.conf 以下を追記 ※novellのサイトだとARPだったけどCentOSだとarpじゃないとエラーになる。 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.eth0.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.eth0.arp_announce = 2 |
反映
1 |
# sysctl -p |
sabineko/kuroneko の両方で行う。
ループバックインターフェースの設定
1 2 3 4 5 |
# vi /etc/sysconfig/network-scripts/ifcfg-lo:0 DEVICE=lo:0 IPADDR=192.168.1.90 NETMASK=255.255.255.255 ONBOOT=yes |
起動
1 |
# ifup lo:0 |
確認
1 2 3 4 5 6 7 |
# ifconfig lo:0 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet 192.168.1.90/32 brd 192.168.1.90 scope global lo:0 inet6 ::1/128 scope host valid_lft forever preferred_lft forever |
sabineko/kuroneko の両方で行う。
デフォルトゲートウェイの確認。
192.168.1.90がこの位置にあるとインターネットにつなげない。
1 2 3 4 5 6 7 |
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth1 0.0.0.0 192.168.1.90 0.0.0.0 UG 0 0 0 lo |
system-config-network-tuiによりeth0(=インターネットに繋げるインターフェース)のデフォルトゲートウェイを変更する。 猫ITソリューションズの環境では 192.168.1.90 → 192.168.1.1 となる。
1 |
# system-config-network-tui |
sabinekoでやる
1 2 |
# vi /var/www/html/test.html Still alive |
1 2 |
# vi /var/www/html/index.html Real server 1 |
kuronekoでやる。
1 2 |
# vi /var/www/html/test.html Still alive |
1 2 |
# vi /var/www/html/index.html Real server 2 |
sabineko/kuroneko両方でapache起動
1 |
# service httpd start |
その4に続きます。