Linux集群:LVS搭建負載均衡集群(二)
阿新 • • 發佈:2018-04-11
DR模式 keepalived+LV 一、DR模式LVS搭建
1、準備工作
- 調度器dir:192.168.242.128
- 真實服務器rs1:192.168.242.129,網關恢復為之前的原始網關
- 真實服務器rs2:192.168.242.130,網關恢復為之前的原始網關
- VIP:192.168.242.110
2、dir上編寫腳本
[root@zlinux-01 ~]# vim /usr/local/sbin/lvs_dr.sh #! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward ipv=/usr/sbin/ipvsadm vip=192.168.242.110 rs1=192.168.242.129 rs2=192.168.242.130 #ifdown ifup 同等於重啟網卡,對虛擬網卡進行重置 #防止再次啟動腳本的時候,再次設置虛擬網卡的IP地址 ifdown ens33 ifup ens33 #註意這裏的網卡名字 ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev ens33:2 $ipv -C $ipv -A -t $vip:80 -s rr $ipv -a -t $vip:80 -r $rs1:80 -g -w 1 $ipv -a -t $vip:80 -r $rs2:80 -g -w 1 [root@zlinux-01 ~]# sh /usr/local/sbin/lvs_dr.sh 成功斷開設備 ‘ens33‘。 成功激活的連接(D-Bus 激活路徑:/org/freedesktop/NetworkManager/ActiveConnection/2)
3、rs上編寫腳本(兩臺內容相同)
[root@zlinux-02 ~]# vim /usr/local/sbin/lvs_dr_rs.sh #!/bin/bash vip=192.168.242.110 ifdown lo ifup lo #把vip綁定在lo上,是為了實現rs直接把結果返回給客戶端 ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip lo:0 #以下操作為更改arp內核參數,目的是為了讓rs順利發送mac地址給客戶端 #參考文檔 www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce [root@zlinux-02 ~]# sh /usr/local/sbin/lvs_dr_rs.sh
4、測試
我在這裏是用的第四臺虛擬機測試的,沒有的話可以直接在瀏覽器輸入VIP地址測試。
[root@zlinux-04 ~]# curl 192.168.242.110 LVS-zlinux03 [root@zlinux-04 ~]# curl 192.168.242.110 LVS-zlinux02 [root@zlinux-04 ~]# curl 192.168.242.110 LVS-zlinux03 [root@zlinux-04 ~]# curl 192.168.242.110 LVS-zlinux02 [root@zlinux-04 ~]# curl 192.168.242.110 LVS-zlinux03
二、keepalived+LVS
完整架構需要兩臺服務器(角色為dir)分別安裝keepalived軟件,目的是實現高可用,但keepalived本身也有負載均衡的功能,所以本次實驗可以只安裝一臺keepalived;
keepalived內置了ipvsadm的功能,所以不需要再安裝ipvsadm包,也不用編寫和執行那個lvs_dir的腳本。
1、準備工作
主keepalived(調度器dir):192.168.242.128
真實服務器rs1:192.168.242.129,網關恢復為之前的原始網關
真實服務器rs2:192.168.242.130,網關恢復為之前的原始網關
VIP:192.168.242.110
2、修改keepalived配置問價
[root@zlinux-01 ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak //備份下配置文件
[root@zlinux-01 ~]# > /etc/keepalived/keepalived.conf //清空
[root@zlinux-01 ~]# vim /etc/keepalived/keepalived.conf //添加以下內容
vrrp_instance VI_1 {
#備用服務器上為 BACKUP
state MASTER
interface ens33
virtual_router_id 51
#備用服務器上為90
priority 100
auth_pass zlinux
}
virtual_ipaddress {
192.168.242.110
}
}
virtual_server 192.168.242.110 80 {
#(每隔10秒查詢realserver狀態)
delay_loop 10
#(lvs 算法)
lb_algo wlc
#(DR模式)
lb_kind DR
#(同一IP的連接60秒內被分配到同一臺realserver)
persistence_timeout 0
#(用TCP協議檢查realserver狀態)
protocol TCP
real_server 192.168.242.129 80 {
#(權重)
weight 100
TCP_CHECK {
#(10秒無響應超時)
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.242.130 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
3、啟動keepalived
[root@zlinux-01 ~]# ipvsadm -C //清空之前的規則,因為之前執行過LVS腳本
[root@zlinux-01 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@zlinux-01 ~]# systemctl start keepalived //啟動
[root@zlinux-01 ~]# ps aux | grep keep
root 3406 0.0 0.0 120720 1404 ? Ss 18:21 0:00 /usr/sbin/keepalived -D
root 3407 0.0 0.1 127464 3324 ? S 18:21 0:00 /usr/sbin/keepalived -D
root 3408 0.0 0.1 131656 2848 ? S 18:21 0:00 /usr/sbin/keepalived -D
root 3414 0.0 0.0 112680 976 pts/0 R+ 18:25 0:00 grep --color=auto keep
還需要在兩臺rs上執行sh /usr/local/sbin/lvs_dr_rs.sh
4、測試
檢驗方法1:
在瀏覽器輸入VIP192.168.242.110
,然後故意停掉一臺rs的Nginx服務,然後刷新瀏覽器看結果。
檢驗方法2:
在調度器執行相關命令,查看連接數:
[root@zlinux-01 ~]# 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.242.110:80 wlc
-> 192.168.242.129:80 Route 100 0 0
[root@zlinux-01 ~]# ipvsadm -ln //打開另一臺Nginx服務,刷新之後,兩個連接
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.242.110:80 wlc
-> 192.168.242.129:80 Route 100 0 0
-> 192.168.242.130:80 Route 100 1 0
Linux集群:LVS搭建負載均衡集群(二)