主從模型的ipvs高可用集群實驗
一.實驗拓圖
二.實驗環境
本實驗是keepalived+lvs-dr的高可用負載均衡實驗
本實驗是在虛擬機上完成,因此如上拓撲圖需要準備至少四臺虛擬機
1.各節點的時間同步
使用yum安裝chrony包,使用nat命令同步時間
2.關閉服務主機的iptables和selinux
三.實驗步驟:
1.在VS1和VS1上安裝keepalived
yum install keepalived y
2.配置文件
#vim /etc/keepalived/keepalived.conf
global_defs { ###通告的郵件用戶
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id nodel1
vrrp_mcast_group4 224.0.101.50 ###同一個組播域
}
vrrp_instance VI_1 {
state MASTER ###當前物理設備在虛擬器設備的狀態 MASTER或者BACKUP
interface eth1
virtual_router_id 51
priority 100 ###當前物理節點在虛擬路由器中的優先級
advert_int 1 ###對外通知時間間隔
authentication { ###認證
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { ###定義虛擬ip
172.18.18.80 dev eth1
}
notify_master “/etc/keepalived/notify.sh master” ###通知腳本調用
notify_backup “/etc/keepalived/notify.sh backup”
notify_fault “/etc/keepalived/notify.sh fault”
}
#vrrp_instance VI_2 {
# state BACKUP
# interface eth1
# virtual_router_id 52
# priority 98
# advert_int 1
# authentication {
# auth_type PASS
# auth_pass 2222
# }
# virtual_ipaddress {
# 172.18.18.90 dev eth1
# }
#}
virtual_server 172.18.18.80 80 { ###虛擬服務配置
delay_loop 3 ###服務輪詢時間間隔
lb_algo wrr ###調用算法
lb_kind DR ###調用類型
protocol TCP
sorry_server 127.0.0.1 80
real_server 172.18.18.20 80 { ###Real Server 配置信息
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
}
}
real_server 172.18.18.30 80 {
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
}
}
}
3.Notify通知腳本配置
#!/bin/bash
#
contact=’root@localhost’
notify(){
mailsubject=”$(hostname) to be $1″
mailbody=”$(hostname) to be $1, vrrp transion,$(date).”
echo “$mailbody” | mail -s “$mailsubject” $contact
}
case $1 in
master)
notify master ;;
backup)
notify backup ;;
fault)
notify fault ;;
*)
echo “Usage: $(basename $0) master|backup|fault”
exit 1
;;
esac
4.啟動keepalived配置
systemctl start keepalived.service
systemctl status keepalived
查看負載均衡配置
ipvsadm -ln
另一臺節點主機同上配置
5.開始配置后端兩臺服務器的網絡配置
網絡配置的腳本
vim setparam.sh
#!/bin/bash
2 #
3 vip=”172.18.18.80″
4 iface=”lo:0″
5 case $1 in
6 start)
7 echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
8 echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
9 echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
10 echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
11 ip addr add $vip/32 dev lo label $iface
12 route add -host $vip dev $iface
13 ;;
14 stop)
15 ip addr flush dev lo label $iface
16 echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
17 echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
18 echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
19 echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
20 ;;
21 esac
運行腳本
setparam.sh start
另一臺服務器同上
6.啟動httpd服務
systemctl start httpd
7.測試
以上就是該實驗的一些基礎步驟。
原創文章,作者:xialingfeng,如若轉載,請注明出處:http://www.www58058.com/76084