YUMインストール
sudo yum install -y ipvsadm
keepalivedのインストール
keepalivedはYUMレポジトリに追加されていないので、基本ソースからコンパイルしてインストールになります(その際、カーネルのソースコードが必要です。ただ、RPMを作れるオプションもあって、私の方でCentOS6.3(x86_64)のRPMを作成しました。↓からダウンロードできます)
http://www.geek.sc/file/keepalived-1.2.7-5.x86_64.rpm
wget http://www.geek.sc/file/keepalived-1.2.7-5.x86_64.rpm
rpm -ivh keepalived-1.2.7-5.x86_64.rpm
/etc/keepalived/keepalived.conf編集(VIP(VirtualIP)構成)
! Configuration File for keepalived
global_defs {
notification_email {
saito@geek.sc
}
notification_email_from saito@geek.sc
# smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance vip_httpd {
interface eth1
virtual_router_id 1
virtual_ipaddress {
10.0.0.100/24 dev eth1
}
}
virtual_server 10.0.0.100 80 {
delay_loop 3
lvs_sched rr
lvs_method DR
protocol TCP
real_server 10.0.0.51 80 {
weight 1
inhibit_on_failure
HTTP_GET {
url {
path /health.html
status_code 200
}
connect_port 80
connect_timeout 3
}
}
real_server 10.0.0.52 80 {
weight 1
inhibit_on_failure
HTTP_GET {
url {
path /health.html
status_code 200
}
connect_port 80
connect_timeout 3
}
}
IPフォワード設定
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
$ sudo vi /etc/sysctl.conf
net.ipv4.ip_forward=1
$ sudo sysctl -p /etc/sysctl.conf
分岐先サーバーでiptables設定
$ sudo iptables -t nat -A PREROUTING -p tcp -d 10.0.0.100 -j REDIRECT
$ sudo /etc/init.d/iptables save
LVSサーバーでipvsadmとkeepalived起動
$ sudo /etc/init.d/ipvsadm start
$ sudo /etc/init.d/keepalived start
確認
ip add |grep -w inet
結果 inet 10.0.0.100/24 scope global secondary eth3
sudo ipvsadm -Ln
結果
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.0.100:80 rr
-> 10.0.0.51:80 Route 1 0 0
-> 10.0.0.52:80 Route 1 0 0