标签:操作系统 超时 ddr weight efs lvs负载均衡 toc cts IV
LVS-DR+keepalived高可用群集LVS负载均衡采用直连路由工作模式(LVS-DR),采用半开放的网络结构,结构与IP隧道模式类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络,负载调节器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。
主机 | 操作系统 | IP | 软件 |
---|---|---|---|
LVS主调度器 | CentOS-7.3x86_64 | 192.168.100.101 | keepalived、ipvsadm |
LVS从调度器 | CentOS-7.3x86_64 | 192.168.100.102 | keepalived、ipvsadm |
web1服务器 | CentOS-7.3x86_64 | 192.168.100.103 | httpd |
web2服务器 | CentOS-7.3x86_64 | 192.168.100.104 | httpd |
开启路由转发功能,关闭proc响应重定向功能;
vi /etc/sysctl.conf
net.ipv4.ip_forward=1 //开启路由转发功能
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
//关闭proc响应重定向功能
sysctl -p //立即生效
设置虚拟网卡,并启动虚拟网卡;
cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.255 //注意:子网掩码必须全为1
ifup ens33:0
配置负载分配策略(编写脚本方便管理);
cd /etc/init.d
vim dr.sh //脚本名
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.50
RIP1=192.168.100.103
RIP2=192.168.100.104
case "$1" in
start)
/sbin/service ipvsadm start
/sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
/sbin/route add -host $VIP dev ens33:0
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
echo "ipvsadm starting --------------------[ok]"
;;
stop)
/sbin/ipvsadm -C
/sbin/service ipvsadm stop
ifconfig ens33:0 down
route del $VIP
echo "ipvsamd stoped----------------------[ok]"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ];then
echo "ipvsadm stoped---------------"
exit 1
else
echo "ipvsamd Runing ---------[ok]"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
chmod +x dr.sh //提权
service dr.sh start //开启服务
配置keepalived(编写脚本方便管理);
yum install keepalived -y
vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost.localdomain
}
notification_email_from benet root@localhost.localdomain
smtp_server 127.0.0.1 //指定本地
smtp_connect_timeout 30
router_id LVS_01 //指定名称,备份服务名称不同
}
vrrp_instance VI_1 {
state MASTER //备份服务器为BACKUP
interface ens33 //接口为ens33
virtual_router_id 10 //组号;备份服务器相同
priority 100 //优先级;备份服务器小于主服务器
advert_int 1
authentication {
auth_type PASS
auth_pass abc123
}
virtual_ipaddress {
192.168.100.50 //指定VIP地址
}
}
virtual_server 192.168.100.10 80 {
delay_loop 6
lb_algo rr
lb_kind DR //指定工作模式
persistence_timeout 60
protocol TCP
real_server 192.168.100.103 80 { //web1服务器IP和端口
weight 1 //权重
TCP_CHECK { //健康检查方式
connect_port 80 //端口
connect_timeout 3 //连接超时
nb_get_retry 3 //重试次数
delay_before_retry 3 //重试间隔时间(秒)
}
}
real_server 192.168.100.104 80 { //web2服务器IP和端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
systemctl start keepalived.service //启动服务
ip addr show dev ens33:0 //查看虚拟网卡
关闭防火墙和安全功能
systemctl stop firewalld.service
setenforce 0
安装http服务,启动http服务,关闭防火墙与安全功能;
yum install httpd -y
systemctl start httpd.service
systemctl stop firewalld.service
setenforce 0
创建http服务的测试首页,/var/www/html (两台web服务器测试首页内容不同);
echo "this is web1 test " > /var/www/html/index.html //web1服务器
echo "this is web2 test " > /var/www/html/index.html //web2服务器
配置虚拟IP地址(VIP):ifcfg-lo:0(若使用远程连接的虚拟机,切勿重启,否则会中断远程连接)
cd /etc/sysconfig/network-scripts
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.50
NETMASK=255.255.255.255
ONBOOT=yes
调整proc响应参数(使用脚本,脚本文件提权,启动脚本);
cd /etc/init.d/
vim web.sh //脚本名
#!/bin/bash
VIP=192.168.100.10
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo: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
echo "RealServer Start OK "
;;
stop)
ifconfig lo:0 down
route del $VIP /dev/null 2>&1
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
echo "RealServer Stopd"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
chmod +x web.sh
service web.sh start
启动虚拟网卡;
ifup lo:0
在虚拟机中可输入 firefox "http://127.0.0.1/" & 命令使用火狐浏览器进入测试首页
service web.sh stop
service web.sh start //(建议重启服务)
-在客户机浏览器中输入VIP:192.168.100.50,即可将进入web服务器测试首页,多刷新几次,可进入连个不同的测试首页;
标签:操作系统 超时 ddr weight efs lvs负载均衡 toc cts IV
原文地址:http://blog.51cto.com/13659182/2132401