Server load balancing in pfSense 1.3
I was poking around at the 1.3-ALPHA-ALPHA pfSense, and it looks like slbd is going to be replaced with OpenBSD’s relayd! I can’t tell you how happy I am about this development. Not only will relayd increase pfSense’s feature set by some order of magnitude, I have hope that it will make pfSense a viable load balancer.
Though pfSense has load balancing features right now, its limitations make it mostly unusable for my applications. The way that slbd operates breaks session stickiness. I’m not sure why, but I suspect that slbd is updating its pf anchor unconditionally per polling period which causes pf to reset its session state. In addition to breaking stickiness, this causes load to be balanced unfairly.
I’ll have to do some testing to see if relayd has this say behavior. If nothing else, though, I’m excited about a whole new host of features, some of which I haven’t seen since I last touched a NetScaler:
- Layer 7 (in addition to Layer 3) load balancing
- Layer 7 health monitoring (http request/response checking)
- In-Flight HTTP request/response modifications (such as appending Remote-Host header)
- Additional balancing algorithms, including one that can be sticky on HTTP headers/cookies
All-in-All pretty fantastic. I don’t imagine we’ll see 1.3 until Q2 of 2009, though, so it may be worth back-porting it as a package for 1.2.1.