LVS + KEEPALIVED 實現DR架構的負載均衡
來自:dogdogcom.blog.51cto.com
LVS DR架構拓撲圖
mysql
1. 在
firewall 上
1)#Vi /etc/sysctl.conf --打開
IP_FORWARD
#sysctl -p
2)iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 10.1.1.100
意思是將
80端口的請求全丟給10.1.1.100去處理
2. 在DR 上
1) 網關設成:
10.1.1.254
2)安裝
ipvsadm
yum install ipvsadm
3)#Vi /etc/sysctl.conf --打開
IP_FORWARD
4)安裝配置
keepalived
#tar xvf keepalived-1.1.20.tar.gz -C /usr/src/
#cd /usr/src/keepalived
./configure && make && make install
#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
#mkdir /etc/keepalived
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/sbin/keepalived /usr/sbin/
#service keepalived start|stop
#vim /etc/keepalived/keepalived.conf
#這個直接修改爲這樣就能夠了,原來的先備份下(配置文件我按照高可用來配置的,單個
LVS也能夠用。)
vrrp_instance VI_1 {
state MASTER ---主
DR
interface eth0 ---經過
eth0 來測試心跳
virtual_router_id 51 --ID值,
---從LVS須要相同ID
priority 88 --從服務器
ID值要比88小
advert_int 1
authentication {
auth_type PASS ---驗證方式
auth_pass 123
}
#若是你不用
2臺DR作高可用調度,上面能夠省略。
virtual_ipaddress {
10.1.1.100 ----定義
VIP爲哪一個IP
}
}
virtual_server 10.1.1.100 80 {
-----調度
VIP的80端口設置,若是mysql就3306
delay_loop 6
lb_algo rr ---輪叫
lb_kind DR ----DR架構 記得大寫
nat_mask 255.255.255.0
protocol TCP
real_server 10.1.1.2 80 { -----兩個
WEB服務器的設置
weight 1 ----權重
TCP_CHECK { ---這個設置幾秒鐘測試一下這服務有沒有掛
.
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 10.1.1.3 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
重啓
service keepalived restart
運行ipvsadm 查看是否成功
[root@lvs1 ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port
Forward Weight ActiveConn InActConn
TCP 10.1.1.100:http rr
-> nginx1.dog.com:http
Route 1 0 0
-> nginx2.dog.com:http
Route 1 0 0
-----------------------------------------------------------------------
下面設置兩臺
WEB服務器,都同樣的設置
1,vim /etc/sysctl.conf
打開轉發
net.ipv4.ip_forward = 1
在最後面添加下面四行,做用是本地ARP不做迴應。
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
----------------------------------------------
#sysctl -p
2.#Ifconfig lo:1 10.1.1.100/32
--增長一塊本地網卡記住,要開機就運行這命令
/etc/rc.local
3.網關設成:10.1.1.254
完成
-------------
增長高可用LVS2
配置基本和LVS1同樣 只需修改下配置文件
vim /etc/keepalived/keepalived.conf
state BACKUP
priority 9 ---比主
LVS小哦
其餘同樣
測試,輸入http://192.168.68.71 測試須要關閉瀏覽器在從新登入來測試,否則又緩存。總會只連到其中一臺WEB服務器。nginx
關於SESSION同步問題,能夠參考我博客的memcached共享SESSION,或者利用NFS共享SESSION。sql