Hades Architecture

The Hades system consists of several modules: one 'Control Module' and several 'Storage Modules'.

Control Module

It's a Linux system, with the database (currently using mySQL), the web interface (using Apache and PHP), the system images for the Storage Modules, the PXE network boot servers (DHCP and TFTP) and the command dispatcher daemon.

Storage Modules

This is where the data is stored, this modules consist of an x86 mainboard, with as many hard disks as possible. Currently we use VIA EPIA mini-itx boards, each with 4 disks of 300GB each. There's no system disk, the OS is network booted via PXE protocol; therefore, the data density is maximized. The control module sends commands to copy data files to and from the disks. There's also a minimal httpd server, just to let the user to download files directly, the refering pages are generated by the control module.


We use VIA EPIA M10000 mini-itx mainboards for this system, their small size, low power needs and high integration make them ideal for building many compact and inexpensive modules. Each module with just a mainboard and four 3.5" hard disks fit in a 1U rackmount case, just 15" deep.


The control module uses a standard Linux distribution. We use SuSE, but it would be equally apropiate to use RedHat, Debian, or anyone you feel comfortable with.

The services needed are: Apache and PHP for the web interface, mySQL for the index database, DHCP and TFTP for the network boot, crond, bash.

The storage modules use a minimal system, loaded from the control module at bootup. I use the BusyBox package, compiled with uClibc to minimize space. Busybox includes most of the tools needed, even a small and fast httpd server. I only added the ssh suite and a few shell scripts to manage startup. I packaged it all in a cramfs image file, and put it in the TFTP server with a reduced 2.6 kernel (with reiserfs support), and the PXELinux utility. In all, the full system is just over 5MB.