🐼
LVS-DR数据包流向
LVS-DR中的ARP问题
修改 /etc/sysctl.conf 文件
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
问题处理后的LVS-DR的数据流量分析
DR模式的特点
LVS-DR负载均衡集群部署
配置主备负载调度器
modprobe ip_vs
cat /proc/net/ip_vs
yum install -y ipvsadm
配置虚拟ip
采用虚接口的方式为网卡绑定 VIP 地址,以便响应群集访问
调整proc参数
对于 DR 集群来说,由于由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应
vim /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.ens33.send_redirects = 0
sysctl -p
配置负载均衡策略
若使用隧道模式,结尾-g替换为-i
ipvsadm -C
ipvsadm -A -t 172.16.10.10:80 -s rr
ipvsadm -a -t 172.16.10.10:80 -r 172.16.10.115:80 -g
ipvsadm -a -t 172.16.10.10:80 -r 172.16.10.119:80 -g
ipvsadm -ln
配置NFS
yum install -y nfs-utils rpcbind
systemctl start nfs rpcbind
systemctl enable nfs rpcbind
vim /etc/exports
exportfs -rv
showmount -e
配置节点服务器
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=172.16.10.10
NETMASK=255.255.255.255
ONBOOT=yes
route add -host 172.16.10.30 dev lo:0
route -n
vim /etc/rc.local
/sbin/route add -host 172.16.10.10 dev lo:0 #添加VIP本地访问路由
chmod +x /etc/rc.d/rc.local
挂载NFS
yum -y install httpd
systemctl start httpd
systemctl enable httpd
mount.nfs 172.16.10.100:/opt/qaq /var/www/html
mount.nfs 172.16.10.100:/opt/qwq /var/www/html
调整内核ARP响应参数
目的是阻止更新VIP的MAC地址,产生冲突
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
Keepalived 双机热备
LVS+keepalivd高可用集群
以上面的LVS-DR为基础,增加一台负载调度器,使用 keepalived 来实现主、从调度器的热备,从而兼有负载均衡、高可用性两种能力的 LVS 网站群集平台
yum -y install keepalived #安装软件包
route add -host 172.16.10.10 dev ens33:0 #禁锢虚拟网卡
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak #备份文件
vim keepalived.conf
global_defs { #定义全局参数
#第10行,邮件服务指向本地
smtp_server 127.0.0.1
#第12行,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
router_id LVS_01
}
vrrp_instance VI_1 { #定义VRRP热备实例参数
#20行,指定热备状态,主为MASTER,备为BACKUP
state MASTER
#21行,指定承载vip地址的物理接口
interface ens33
#第22行,指定虚拟路由器的ID号,每个热备组保持一致
virtual_router_id 10
#第23行,指定优先级,数值越大优先级越高,主为100,备为99
priority 100
advert_int 1 #通告间隔秒数(心跳频率)
authentication { #定义认证信息,每个热备组保持一致
auth_type PASS #认证类型
第27行,指定验证密码,主备服务器保持一致
auth_pass 123123
}
virtual_ipaddress { #指定群集vip地址
172.16.10.10
}
}
#第34行,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 172.16.10.115 80 {
delay_loop 6 #健康检查的间隔时间(秒)
lb_algo rr #指定调度算法,轮询(rr)
#第37行,指定群集工作模式,直接路由(DR)
lb_kind DR
persistence_timeout 50 #连接保持时间(秒)
protocol TCP #应用服务采用的是 TCP协议
#第41行,指定第一个Web节点的地址、端口
real_server 192.168.0.20 80 {
weight 1 #节点的权重
第43行,添加以下健康检查方式
TCP_CHECK {
connect_port 80 #添加检查的目标端口
connect_timeout 3 #添加连接超时(秒)
nb_get_retry 3 #添加重试次数
delay_before_retry 3 #添加重试间隔
}
}
#第二个服务器站点
real_server 172.16.10.119 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
验证
客户机测试,轮询访问