Armada

What Is Armada?

This setup is no longer running. I'm keeping it here since someone may find it useful.

Armada was a collection of diskless, netbooting, distributed computing computers. Each computer uses PXE to load a Linux distribution called Linux Terminal Server Project (LTSP) off a central server. I use LTSP 4.2 because it supports local apps. I primarily run BOINC and distributed.net on them.

I launched the first version of Armada on October 16, 2003. It was based on a Folding@Home setup called yattamonster. I modified it to run the now defunct project Find-a-Drug. After Find-a-Drug ended, Armada was dead for over a year until I wrote version 2. Version 2 has the flexibility to run any project I choose. Eventually it was all shutdown in November 2010.

How Does It Work?

The Server

The server runs various daemons to provide the services required. The most critical are dhcpd, tftpd, and nfsd. dhcpd is configured to point the clients to the PXE boot image. tftpd serves the image to the clients. nfsd serves the client file system, including each client's home directory.

The V2 server is configured as follows:

The server was eventually migrated to a Windows Server 2008R2 Hyper-V virtual machine running on a Dell PowerEdge T110 that was on sale.

The Client

Each client is is set to use PXE booting in the BIOS. When the client boots, it requests an IP address and the location of the boot image. It uses tftp to download the boot image and then boots the kernel. The kernel boots just like any other Linux distro at this point. The only difference is that it uses an nfs export instead of a hard drive. After the kernel boot, it then proceeds to run configuration scripts and finally the Armada script. The Armada script determines what distributed computing program is run.

E4400 Client Hardware

Q6600 Client Hardware

Installation/Configuration

The majority of the setup instructions can be found in the LTSP 4.1 documentation. I do have some additional items to address though.

The clients run the Armada script. The script is placed in /opt/ltsp/i386/etc/screen.d This script controls client installation, configuration, running the selected program, and even shutting down and rebooting. The key is placing the control files in the right location. The directory structure and control files are listed below.

Armada Directory Structure

Other Info

I like hardware control also. That's why I have some networked I/O controllers. I'm using the Aviosys IP Power 9212. I've modded mine to have 8 NO contacts. Newer versions are supposedly selectable. I have them wired to monitor motherboard power and to activate the motherboard's reboot and power headers. I use software I wrote to control them.

I've also hacked up a web page to directly control the outputs using a web browser. I did this primarily so I could control them using my Windows Mobile phone instead of using pliers to short the connectors. Eventually, I'll port my Armada Commander to VB.NET and then target the compact framework so I have some proper control.

I also have a couple other systems running the Armada setup. One is a hacked up benchtop system. The other is my Dell Latitude D520 when it's docked.

Pictures