我有两个Debian 8负载均衡器和三个Graylog服务器Debian 9。
我网络中的每个服务器都通过rsyslog将日志发送到在LB上配置的虚拟服务器。连接是UDP。
问题是数据包不是平衡的。(所有连接都位于列表中的第一个真正的服务器上)
在故障转移的情况下,数据包被正确地发送到其他真正的服务器。
我发现重新平衡连接的唯一方法是从LB和重新启动保持服务中删除所有真正的服务器。
我已经打成平局了:
ipvsadm --set 0 0 1
Timeout (tcp tcpfin udp): 900 120 1我已经设置了这两个变量:
echo 1 > /proc/sys/net/ipv4/vs/expire_nodest_conn
echo 1 > /proc/sys/net/ipv4/vs/expire_quiescent_templateIPVS配置如下:
vrrp_instance logserver {
state MASTER
interface eth0
virtual_router_id 195
priority 200
advert_int 1
authentication {
auth_type keepalived
auth_pass xxxxxx
}
virtual_ipaddress {
10.20.20.195/22
}
}
virtual_server 10.20.20.195 0 {
delay_loop 60
protocol UDP
lb_algo wrr
lb_kind DR
persistence_timeout 30
real_server 10.20.20.196 0 {
weight 100
MISC_CHECK {
connect_timeout 3
misc_path "/etc/keepalived/checkgraylog 10.20.20.196"
}
}
real_server 10.20.20.197 0 {
weight 100
MISC_CHECK {
connect_timeout 3
misc_path "/etc/keepalived/checkgraylog 10.20.20.197"
}
}
real_server 10.20.20.198 0 {
weight 100
MISC_CHECK {
connect_timeout 3
misc_path "/etc/keepalived/checkgraylog 10.20.20.198"
} } }有办法有效平衡UDP连接和直接路由吗?谢谢
发布于 2021-05-24 19:40:20
virtual_server 10.20.20.195 12333 {
delay_loop 60
protocol UDP
lb_algo wrr
lb_kind DR
ops # <<< - Try this. Works for me (Ubuntu 18.04, Keepalived v1.3.9, ipvsadm v1.28)
real_server 10.20.20.196 12333 {选项ops只在以下两种情况下才有效:
fwmark与virtual_server定义一起使用。不适用于virtual_server_IP 0表单--在这种情况下,ipvsadm -Ln显示也使用了persistent选项。
https://stackoverflow.com/questions/51784174
复制相似问题