Some time ago I realized that I had too many wires on my desk and around my desk. I decided to combine my Raspberry Pi hardware and move the four systems into a single unit. The resulting layout is a basic single board computer cluster running Slackware ARM. I need to purchase a case. The layout below is sufficient for the time being.
My network is hard wired to use Cat 6 Ethernet, which is perfect in this case. I do not feel the need to harden OpenSSH or to harden the software on this cluster. I made sure to put it behind a router firewall on a separate subnet within my home network. I control it using a combination of containers and scripted parallel secure shells. Again, the hardware is all left over from previous projects, minus the Raspberry Pi 4.
I created this cluster so I could have an affordable software development build server. Naturally, I combine the resources through the use of distcc. With distcc I can run parallel compilations in order to speed up the build time are large software packages. The end goal is to save me time and effort.
- 1 Raspberry Pi 4 4GB
- 1 Raspberry Pi 1 B+ (armv6)
- 2 Raspberry Pi 3 B+
- 1 Legrand DA2154-V1 Router
- 1 Unmanaged Trendnet Switch
- A power strip with sufficient power
I installed the systems in the image below. You will notice that it is managed in one terminal window, with GNU Screen windowing, and on my laptop. There are not monitors attached to these systems, it is all headless.
I included my Raspberry Pi 1 B+ because I want the capability of native builds on ARMv6. Ideally you want to use at the very least four Raspberry Pi model 3s. If you have the cash it is best to use the Pi 4 8GB. Anyway, here is an example of distcc building Aarch64 kernel packages.
I built the Libre Office Suite as a test to see what my miniature cluster could do. Usually it takes 12+ hours to build on a single ARM system. My cluster cut the time nearly in half at 5 hours and change. I am very pleased with the outcome of this project.
Below is a visual of my daily work flow. Hopefully it gives you an idea about how I am using these systems:
That is it for now! Please like and share on social media. Post a comment below with any suggestions or questions. Thanks for reading!