Posted on | October 28, 2007 | 1 Comment
In my on-going effort to make the building blocks for a “poor man’s” cluster, I’ve decided to get to work on some virtual appliance images suitable for use with Xen (and possibly others).
Pound is a great load balancing tool. Its light weight, super easy to configure and pretty reliable. Depending on the kind of kernel used, pound can be setup to bind two separate load balancers to a single CVIP (cluster virtual IP).
There doesn’t appear to be any kind of control panel (web/GUI) for pound, nor could I find someone who has made any kind of an API for automation (for instance, 5 new http servers being added to the back end of host xyz.com). If you know of one, please e-mail me and point it out.
It would be neat to have a “ready to go” image with pound + APF and/or Shorewall featuring a basic web CP to control things with an API to allow scripts to update the load balancer / firewall. I’ve decided to begin work on one, most likely based on a very minimal install of Ubuntu Feisty (or later).
Pound won’t be hard to ‘wrap’, its rather easy to configure with straight forward simple text files. Pound supports many virtual hosts sharing a single CVIP and operates rather sensibly. I’ll likely store stuff in a sqlite database and make a utility to ‘spit out’ pound’s configuration files.
Wrapping APF will be a little time consuming (lots of sanity checks needed), but rather straight forward. As far as iptables wrappers go, APF is the king of simplicity. I’ll store APF’s stuff in a sqlite database as well.
Shorewall is going to be a different story Shorewall has extensive options (its quite complete, down to rather extensive NAT and routing). Some stuff exists that simplifies Shorewall configurations via web which I’ll surely re-use.
I’m hoping for ease of firewall configurations to consolidate the ‘business end’ of a simple cluster into one easy to manage place.
This is going to take a little time to get ‘just right’ (probably a month or two). If you work frequently with Shorewall, I could really use a hand coming up with a good scheme to make managing it simple (via web GUI). Drop a line to email@example.com if you’d like to work on it.
Pound has some beta versions out, slightly ahead of the Debian packaged versions, which also differ slightly from the Ubuntu packaged versions. The first step is going to be to diff the three vs the current (stable) author sources for pound to make sure its made as sensible as possible.
Once I get something substantial enough to view, you’ll see yava-lb (what I’m naming the project) appear in my hg. “yava” just short for “yet another virtual appliance”, then “-”, finally what the appliance does. I plan to make a few “yavas”, they’re fun to build and people will likely find them to be very useful.