Hi Joseph, On Thu, Feb 24, 2011 at 10:39:11AM -0500, Joseph Hardeman wrote: > Hi guys, > > I have been asked if it were possible for Haproxy to receive traffic > from servers for NFS over TCP, pass that traffic to a storage cluster > and then the cluster send the data directly to the servers. Sort of the > same method as LVS-DR would be. > > So the flow would go something like this: > > Server Pool ? Haproxy ? Storage Cluster VIP's > ? ? > ?????????????? > > I know that Willy has tested Haproxy to 10G through put but they don't > want Haproxy to become an I/O bottleneck as they scale their > application. Or if someone has a recommendation to use instead of > Haproxy or RR DNS for this sort of connections to the Storage Cluster I > would love to hear it. They enjoy Haproxy on the other applications > that they are using it for and it is working great.
I'm not fond of using proxies for protocols like NFS, for several reasons : - proxies hide the source address, and servers often have per-source IP settings ; - NFS is extremely sensible to latency. Adding even one millisecond of transit can become very noticeable in directory listings ; - NFS uses long-lived connections, that means that you can't reconfigure your proxy without breaking them ; - at one point the proxy can still become a bottleneck, especially for the outgoing traffic. On a local switched network, it can be enough to plug a second network interface into the server and double its bandwidth. When all the traffic passes through a proxy this is much more complex. If I were you, I'd either use some active/standby mechanism such as heartbeat, keepalived or anything else to provide HA to the storage cluster, or if you need some LB, just make use of LVS+DR. In both cases, the downlink traffic does not experience any risk of bottleneck. Regards, Willy