17 LVS 4层负载均衡+ keepalive
1
sudo apt-get install ipvsadm
2 在lvs机器中
- 1 写lvs_dr.sh添加虚拟网卡
sudo vim /usr/local/bin/lvs_dr.sh
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=192.168.220.130
rs1=192.168.220.135
rs2=192.168.220.139
case $1 in
start)
echo "Start LVS"
ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up #添加虚拟网卡
route add -host $vip dev eth0:0 #添加到虚拟主机的路由
$ipv -A -t $vip:80 -s lc #添加虚拟服务器,-s:调度算法
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1 #添加真实服务器,-g:DR,-w:权重
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
;;
stop)
echo "Stop LVS"
route del -host $vip dev eth0:0 #删除虚拟网卡
ifconfig eth0:0 down #删除路由
$ipv -C #删除虚拟主机
;;
*)
echo "Usage:$0 {start|stop}"
exit 1
esac
启动
./lvs_dr.sh start
- 2 编写lvs_rs.sh
sudo vim /usr/local/bin/lvs_dr.sh
#!/bin/bash
vip=192.168.220.130
case $1 in
start)
echo "Start LVS"
ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev eth0:0
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
sysctl -p > /dev/null 2>&1
;;
stop)
echo "Stop LVS"
route del -host $vip dev eth0:0
/sbin/ifconfig eth0:0 down
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p > /dev/null 2>&1
;;
*)
echo "Usage:$0 {start|stop}"
exit 1
esac
启动
./lvs_dr.sh start
3 在real server中开放路由
同理添加
./lvs_rs.sh start
启动
./lvs_dr.sh start
4 查看
- 1 执行ipvsadm
- 2 执行ipvsadm -ln
5 关闭防火墙
iptables
iptables -F
6 测试效果
7 lvs + keepalive
8 在master和backup主机上安装Keepalived
tar zxcf keepalived-2.2.2.tar.gz
cd keepalived-2.2.2
# yum install ipvsadm openssl-devel popt-devel libnl libnl-devel libnfnetlink-devel -y
sudo apt-get install ipvsadm libssl-dev libpopt-dev libnl-3-dev libnl-genl-3-dev libnfnetlink-dev
sudo ./configure --prefix=/usr/local/keepalived
sudo make
sudo make install
- 报错
说找不到ssl,
- 解决:
sudo apt-get install libssl-dev
以及源码安装了openssl
- 报错说没有Popt库,
- 解决: 按照以往的做法,缺什么装什么,可以解决99%的bug
sudo apt-get install libpopt-dev
sudo make
sudo make install