KeepAlivedとLVSでロードバランシング

大きな節目だなあと思っていたLVSの検証に入ってます、まったく使いこなせてはいませんが、とりあえずラウンドロビンでアクセスを分散させることには成功しました。

これでまあ、ひと段落かなあ。
と。

もちのロン、今はローカルでの検証だけですがざっと載せてみます。
まずは今回の構成を図で紹介

サーバーのOSはすべてCentOS6.3です。
図ではラック型とかブレードサーバーとかですが、実は全部VMware中のものです。
仮想なんで何でもありです、速く動こうとするな、速いと知れ みたいな。

ipvs01

ipvsadmとKeepalivedのインストールをします。
Keepalivedのインストールは齊藤貴義さんのrpmを使わせていただきました。

yum -y install ipvsadm
rpm -ivh keepalived-1.2.7-5.x86_64.rpm

vim /etc/sysconfig/iptables
-A PREROUTING -p tcp -d 192.168.50.100 -j REDIRECT

vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
notification_email {
tako@example.net
}
notification_email_from tako@example.net
smtp_server 192.168.24.100
smtp_connect_timeout 30
router_id LVS_DEVEL
}

include web.conf

vim /etc/keepalived/web.conf

virtual_server_group HTTP100 {
192.168.24.100  80
}

virtual_server group HTTP100 {
delay_loop   3
lvs_sched    rr  ←これがラウンドロビン
lvs_method   NAT
protocol     TCP

real_server  192.168.50.101 80 {
weight 1
inhibit_on_failure
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
}
}
real_server  192.168.50.102 80 {
weight 1
inhibit_on_failure
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
}
}
}

こんな感じ。

vs_sched   lcにすると最小接続数のサーバにリクエストを転送することになる。
ほかにもいろいろありました。

そして起動、ドン。

/etc/init.d/ipvsadm start
/etc/init.d/keepalived start

ipvsadm -ln でチェク。

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.24.100:80 rr
-> 192.168.50.101:80            Masq    1      0          0
-> 192.168.50.102:80            Masq    1      0          0

こんなのが出る。

Apacheにはindexだけのページを用意して、F5でラウンドロビンされる様をSSに撮ってみた。

ipvs02

ちょっと死活監視?のものが多い気もするけど、しっかりアクセスが振り分けされていた。
テスト環境の検証なのでOKでしょう。

つうことで、にわかのたけけんでも構成できるくらい簡単になっています。
もう1歩踏み込むとめちゃくちゃ難しいんでしょうけどね。
ぜひコストダウンを検討してみてはいかがでしょうか、みたいな。
誰に言ってるんだ(笑)

参考サイト

とある社会学屋の唯物史観 | 齊藤貴義のメインブログ

Sleepless geek in Seattle

usagitest – usagitestのページ

 

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *