大きな節目だなあと思っていたLVSの検証に入ってます、まったく使いこなせてはいませんが、とりあえずラウンドロビンでアクセスを分散させることには成功しました。
これでまあ、ひと段落かなあ。
と。
もちのロン、今はローカルでの検証だけですがざっと載せてみます。
まずは今回の構成を図で紹介
サーバーのOSはすべてCentOS6.3です。
図ではラック型とかブレードサーバーとかですが、実は全部VMware中のものです。
仮想なんで何でもありです、速く動こうとするな、速いと知れ みたいな。
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に撮ってみた。
ちょっと死活監視?のものが多い気もするけど、しっかりアクセスが振り分けされていた。
テスト環境の検証なのでOKでしょう。
つうことで、にわかのたけけんでも構成できるくらい簡単になっています。
もう1歩踏み込むとめちゃくちゃ難しいんでしょうけどね。
ぜひコストダウンを検討してみてはいかがでしょうか、みたいな。
誰に言ってるんだ(笑)
参考サイト
とある社会学屋の唯物史観 | 齊藤貴義のメインブログ
Sleepless geek in Seattle
usagitest – usagitestのページ