Franken-Switch

written by Tim Callaghan on October 27, 2010 with no comments

I did quite a bit of testing on one of the major VoltDB v1.2 features, Network Fault Protection. When enabled this feature detects a network partition and ensures that we don’t allow “split-brain” behavior (a single VoltDB cluster splitting into two independent clusters).

As I planned my test strategy I had two ideas:

1. Buy a switch that supports VLANs, since multiple VLANs on a switch should allow me to partition two groups of machines. (So I’d have to read reviews of various switches, purchase the switch hardware, wonder if I bought the best switch for the money, read the manuals, setup VLANs, etc.)
2. Build my own partition-able switch.

In the spirit of Halloween, “split-brains”, and my personal cluster budget, I chose option 2. I would build my own “partition-enabled” switch and name it “Frankenswitch”.

frankenswitch

In case you’d like to build your own, here is the recipe:

Materials
- (1) 8-port D-Link DGS2208 Switch (I already had one for my cluster)
- (1) 5-port D-Link DGS2205 Switch ($29.56 from NewEgg)
- (1) 1FT Cat5e Patch Cable ($0.51 from Monoprice)
- (2) 4″ pieces of packing tape (any tape will do)

Build Process
- Place the two switches side-by-side
- Tape across top and bottom of switches
- Connect two switches using 1FT patch cable

In my testing, I kept 3 of my servers on one switch and 3 on the other. When I wanted to introduce a network partition I simply pulled the patch cable from either switch. It is 100% reliable and I now have 10 available ports on the Frankenswitch (versus the 7 available ports on my original switch).

Happy Halloween!

Tim Callaghan
Sr. Technical Consultant
VoltDB