Growing Our Build Farm
We have received our new server for continuous builds of the GNU Guix system, and are putting the finishing touches on its installation. The machine is intended as an eventual replacement for hydra.gnu.org, a virtual machine kindly hosted by the FSF. The new machine will drive our build farm, which continuously compiles the GNU system, and it will feed the mirror with binary packages, so that end users who do not wish to compile packages by themselves can easily keep up-to-date. Time to report on the adventure! This first part covers the hardware.
Of course, we wanted to buy the best for the money — but it turned out the best did not exist yet! Our goal was a system that would be as free as possible, starting from the BIOS, without backdoors of one kind or another; of course it also needed to be powerful enough to pilot our build farm, which is expected to grow with an ever increasing number of packages and maybe new architectures. The Libreboot project provides a free BIOS, which was in the process of being ported to the ASUS KGPE-D16 mainboard. Timothy Pearson from the Coreboot project (on which Libreboot is based) worked hard to make the port a reality. We bought the machine from Thomas Umbach, owner of VIKINGS, a company selling complete servers based on this board and planning to provide hosting services on this platform. Thomas made us a very generous offer of only billing the parts, so we are grateful to VIKINGS as a second sponsor for this machine; independently, the close interaction with Thomas and his fast and helpful replies to our questions meant a very pleasant experience for a first-time buyer of a server machine! Hopefully, this will not be the last time either.
The machine arrived carefully packaged in styrofoam and cardboard packaging with a power cable and the rails for mounting it in the rack of the hosting facility (for the time being, however, it is still sitting on a Moroccan pouffe in my living room, waiting for its installation to be finished). It is 1U high to save hosting fees. At the front, two USB ports, a power and a reset button. At the back, more USB ports, Ethernet ports, a VGA and a serial port; apart from the latter, it does not look more exotic than my laptop.
The interior looks very tidy to my untrained eyes. This is not only a good sign for the vendor's professionalism, but according to Thomas also a necessity for ensuring sufficient air flow in the 1U case! This air flow is created by the array of five case fans on the right, in their orange housing. At the left, one can distinguish the two processors. We opted for the AMD Opteron 6262HE, which is free of backdoors to the best of our knowledge and power saving. Each of the processors has 16 cores, which should be amply enough for our needs (remember that the compilation of packages will take place on the build farm and not on this machine). Actually, only the processor fans and their big copper heatpipes are visible. There are 16 slots for memory, of which only four are used so far, each with a 16GB module for 64GB of total RAM — I do not think we will need to make use of our extension possibilities any time soon! Two hard disks of 4TB each are hidden under the metal cover to the right.
So the hardware looks very neat, and in the next installment, we will have a look at the installation of GuixSD on it.
About GNU Guix
GNU Guix is a
transactional package manager for the GNU system. The Guix System
Distribution or GuixSD is an advanced distribution of the GNU system
that relies on GNU Guix
the user's freedom.
In addition to standard package
management features, Guix supports transactional upgrades and
roll-backs, unprivileged package management, per-user profiles, and
garbage collection. Guix uses low-level mechanisms from the Nix
package manager, except that packages are defined as
native Guile modules,
using extensions to the Scheme
language. GuixSD offers a declarative approach to operating system
configuration management, and is highly customizable and
GuixSD can be used on an i686 or x86_64 machine. It is also possible to use Guix on top of an already installed GNU/Linux system, including on mips64el and armv7.