- - PR -
DNSラウンドロビンとmod_proxy_balancerで簡易ロードバランス
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-02-08 18:39
素晴らしいページを教えていただき、ありがとうございます。
いろいろ試しているのですが、なんか、テストしづらいです。 LVS設定前、 サーバ1 # ifconfig ---- eth0 inet addr:xx.xx.xx.117 Bcast:xx.xx.xx.119 Mask:255.255.255.248 eth0:0 inet addr:yy.yy.yy.61 Bcast:yy.yy.yy.63 Mask:255.255.255.252 eth0:1 inet addr:yy.yy.yy.62 Bcast:yy.yy.yy.63 Mask:255.255.255.252 eth1 inet addr:192.168.78.126 Bcast:192.168.78.255 Mask:255.255.255.0 lo inet addr:127.0.0.1 Mask:255.0.0.0 ---- サーバ2 # ifconfig ---- eth0 inet addr:xx.xx.xx.116 Bcast:xx.xx.xx.119 Mask:255.255.255.248 eth0:0 inet addr:yy.yy.yy.53 Bcast:yy.yy.yy.55 Mask:255.255.255.252 eth0:1 inet addr:yy.yy.yy.54 Bcast:yy.yy.yy.55 Mask:255.255.255.252 eth1 inet addr:192.168.78.125 Bcast:192.168.78.255 Mask:255.255.255.0 lo inet addr:127.0.0.1 Mask:255.0.0.0 ---- 両方、eth0に3つのグローバルIPアドレスとeth1にローカルIPアドレスが 割り当てられています。 DNSラウンドロビンで返ってくるIPアドレスは、各eth0:0のアドレスです (yy.yy.yy.61 と yy.yy.yy.53)。 これを、各eth0のアドレス(xx.xx.xx.117 と xx.xx.xx.116)へロード バランスしたいです。 サーバ1の設定 1. # vi /etc/sysctl.conf ---- net.ipv4.ip_forward = 1 ---- # sysctl -p 2. # ifconfig lo:0 〜 ---- lo:0 inet addr:yy.yy.yy.53 Mask:255.255.255.255 ---- 3. # ipvsadm -A -t yy.yy.yy.61:80 -s rr # ipvsadm -a -t yy.yy.yy.61:80 -r xx.xx.xx.117:80 -g # ipvsadm -a -t yy.yy.yy.61:80 -r xx.xx.xx.116:80 -g # ipvsadm -L -n ---- IP Virtual Server version 1.2.0 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP yy.yy.yy.61:80 rr -> xx.xx.xx.117:80 Local 1 0 0 -> xx.xx.xx.116:80 Route 1 0 0 ---- サーバ2の設定 1. # vi /etc/sysctl.conf ---- net.ipv4.ip_forward = 1 ---- # sysctl -p 2. # ifconfig lo:0 〜 ---- lo:0 inet addr:yy.yy.yy.61 Mask:255.255.255.255 ---- 3. # ipvsadm -A -t yy.yy.yy.53:80 -s rr # ipvsadm -a -t yy.yy.yy.53:80 -r xx.xx.xx.117:80 -g # ipvsadm -a -t yy.yy.yy.53:80 -r xx.xx.xx.116:80 -g # ipvsadm -L -n ---- IP Virtual Server version 1.2.0 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP yy.yy.yy.53:80 rr -> xx.xx.xx.117:80 Local 1 0 0 -> xx.xx.xx.116:80 Route 1 0 0 ---- これで、片側のhttpd止めたりしてテストしているのですが、 ちゃんとバランスしているような、いないような。 ブラウザがキャッシュしたりするので、うまくいっているのか とてもビミョーです。 見当違いなことやってないか、お気付きでしたら、ご指摘 ください。 しかし、LVSってスゴいですねぇ。 これでうまくいっているとしたら、とても簡単だし。 あと、heartbeatとかも設定してみます。 | ||||
|
投稿日時: 2007-02-08 19:04
LVSを使うのであればDNSラウンドロビンは要らないのでは? yy.yy.yy.61とyy.yy.yy.53のどちらかを仮想IPにしましょう。 あと、DSRになるので仮想IPはループバックで定義する必要があります。 この構成で設定すると、アクティブ側のロードバランサの仮想IPは、 勝手にループバックからeth0のエイリアスに切り替わってくれました。 自分が試したときは手順通りでうまく行きましたよ。 今までの内容からすると、完全に同じ構成でいいはずです。 |