Hey All,
Trying to mount an NFS share vi an Haproxy / Keepalived configuration.
When I mount the NFS share directly from the host, bypassing Haproxy /
Keepalived, it works fine. However, when I try via the Haproxy /
Keepalived combination, it freezes.
What's also interesting everything works fine via the Haproxy /
Keepalived configuration.
It almost seems as if there is some sort of connection limit on this
where, except for the first client, all others trying to mount via the
Haproxy / keepalived freeze on subsequent mount attempts.
I did test the services behind the configuration and traced it down to
the last remaining element running: haproxy.
Wondering if anyone has seen this and could let me know what I could try
to nudge me forward a bit?
--
Cheers,
Tom K.
-------------------------------------------------------------------------------------
Living on earth is expensive, but it includes a free trip around the sun.
[ DETAILS ]
haproxy-1.5.18-7.el7.x86_64
[root@nfs03 audit]# cat /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2 debug
stats socket /var/run/haproxy.sock mode 0600 level admin
# stats socket /var/lib/haproxy/stats
maxconn 4000
user haproxy
group haproxy
daemon
debug
defaults
mode tcp
log global
option dontlognull
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend nfs-in
bind nfs-c01:2049
mode tcp
option tcplog
default_backend nfs-back
backend nfs-back
mode tcp
balance source
server nfs01.nix.my.dom nfs01.nix.my.dom:2049 check
server nfs02.nix.my.dom nfs02.nix.my.dom:2049 check
server nfs03.nix.my.dom nfs03.nix.my.dom:2049 check
listen stats
bind :9000
mode http
stats enable
stats hide-version
stats realm Haproxy\ Statistics
stats uri /haproxy-stats
stats auth admin:passw0rd
[root@nfs03 audit]#
Ran keepalived in debug but it showed no log entries during the
connection attempt. So doesn't look like the traffic was being passed:
[root@nfs03 haproxy]# cat /etc/keepalived/keepalived.conf
vrrp_script chk_haproxy {
script "killall -0 haproxy" # check the haproxy process
interval 2 # every 2 seconds
weight 2 # add 2 points if OK
}
vrrp_instance VI_1 {
interface eth0 # interface to monitor
state BACKUP # MASTER on haproxy1, BACKUP on
haproxy2,haproxy3 etc
virtual_router_id 51
priority 103 # 101 on haproxy1, 102 on
haproxy2, 103 on haproxy3 etc
virtual_ipaddress {
192.168.0.80 # virtual ip address
}
track_script {
chk_haproxy
}
}
[root@nfs03 haproxy]#