32 Raspberry Pi Cluster

We were developing a gateway and client library products for IoT that ran on embedded boards. The boards we standardized on were the Raspberry Pi 1 B+, the Boundry Deviced IMX 6 and Freescale K64. To enable development by remote teams and automated on device testing we needed to have a number of the boards running in a lab situation. My colegue Gary and I built clusers of 32 of each kind of board. We used carts designed for charging tablets in schools as a basis as they were both a good hardware basis and came equiped with a 32 port USB hub with 2A per port.

We also installed a master controller Pi in each cart with GPIO relay boards that allowed remote power cycling of the boards. Also for the IMX6 we had serial consoles back to the master PI so we could remote shell in that way and access boot loader etc.

For the software I built a web UI and database driven managment system for all the devices with a check in/out reservation system for developers and a web based SSH console. I built a network booting server to provide the OS image, it was cool in that it used an Overlay file system which meant we could have a seperate NFS file system for each device without duplicating files. Any writes would go into thier own overlay directory. Then when a developer was finished and checked a device back in we could just clear that overlay directory and reboot the device back to a clean state. This was an embedded system precursor for how Docker works today.