July 16, 2017

Low Powered Cluster Project, Part 3

Hardware Changes

So since my last post, I’ve changed my hardware setup a little bit. The old Node #2 died. It works just fine for about 2 - 10 minutes, then it powers off. No warning, and the amount of time before it shuts off is not consistent. I can’t determine the cause of the issue, so that computer is now junk.

Unrelated to this project, I had a old Lenovo T410 laptop laying around. It’s got a first-gen Core i5 CPU (dual-core & HyperThreading) and 4 GB of memory. I took the 8 GB memory stick and the 128 GB SSD out of the old Node #2 and put it into the T410. However, it wouldn’t boot. After some troubleshooting, the T410 doesn’t support 8 GB memory sticks. Frustrated, I threw in a spare 4 GB stick, bringing the machine’s total to 6 GB. While still usable, I was disappointed that the fastest machine wouldn’t have 12 GB of RAM. Especially when the much weaker nodes all have 8 GB. Ah well,

Redesigned Network

I also redesigned the network the machines are connected to. Just like the T410, I had a Raspberry Pi (1, Model B+) lying around and I read that it could run IPFire, a Linux based firewall distribution. I knew that using a Pi would bring some limitations, most notably, the Pi is really (really) slow. The Pi 1 is something like two or three times slower than a Pi 2, and a Pi 2 isn’t anything special. Also there was only one Fast Ethernet port (100 Mbps) and the USB 2.0 (~250 Mbps) ports shared the same internal communication bus. So performance was not going to be a strong point. IPFire could certainly do more things than the stock firmware of the D-Link router I had. (Which was not compatible with any alternative firmware.) I could get my hands dirty with networking with IPFire. So I ended up buying two Linksys USB 3.0 gigabit Ethernet adapters ($12.50 each, obviously won’t run at full speed) and installed IPFire. Since the built-in ethernet device was unused, I decided to connect that to another D-Link router I had laying around (DIR-615). (Postscript: I have a lot of equipment laying around!)

The final result was the Pi running IPFire with three network interfaces. One acts as a WAN connection (connected to my house’s LAN), one acts as a LAN connection (connected to a gigabit switch where the node machines are also connected), and the third interface acts as a WLAN connection (connected to the D-Link DIR-615 router, configured as an access point).

Software

All four nodes are currently running Debian 9 Stretch. I have also just installed Salt on all four nodes. The laptop is acting as the master and the other three nodes are acting as Salt minions. I want to eventually learn more about salt and set up some cool things. One idea I had is to use Salt to create many Apache instances using Linux Containers (LXC) and then run a load balancer. Another idea was to use Salt to create a Kubernetes environment. I think I will attempt the Apache load balancer first.