willem.com blog

Clouds below my floor

Building a little datacenter in my basement

Aug. 31, 2017 - Willem L. Middelkoop

At my home I have this crazy fast optical internet connection. It is a 600MB up and down fibre connection which directly arrives in my home (no copper cables involved). It's like a private internet highway. Reason enough to find out if I could do something to make better use of all this speedy fiber galore...

Hardware

I had some spare parts left from killing my office LAN last month. You can read about it here. It left me some shielded network cables, some power supplies and a power efficient server. All the ingredients for some do-it-yourself-datacenter-engineering.

The server started its life originally as a power efficient (and silent) desktop computer. I took it apart to remove the optical drive to make room for extra memory and harddisks. It now has two drives of 8TB each, totalling a whopping 16TB of storage.

Software

The computer runs Debian GNU/Linux - the same software that my corporate servers run in the (real) datacenter. This is great because it means that I can use the very same software as a normal server could run. (Like some good native HTTP, SFTP, SSH and RSYNC action!)

Under the floor

Ideally I wanted the hardware to be out of sight so I went looking in the house for a suitable place. Computer hardware works best in dry and cool environments. I figured the space under my house matched these conditions.

Though a hatch near my front door I have access to the space below the floor.
Though a hatch near my front door I have access to the space below the floor.

It is easily accessible by a hatch in the floor near the front door. This space is meant as a buffer between the foundation and the house. At some houses this space is not dry, but judging by the amounts of utterly dry dust I figured that this place hasn't seen any moisture in years.

Sitting on some concrete tiles the modified PC is connected to the internet
Sitting on some concrete tiles the modified PC is connected to the internet

Just to be sure though, I took some concrete tiles and made a little tower to lift the electronics from the ground. After some more efforts I managed to get a power and network cable into my newly arranged little datacenter.

If you're planning on doing this yourself, make sure the place is dry. If in doubt you can get an humidity sensor for a few euro's at the local department store. Or find one you can connect using USB to the server itself. Whatever the case: electronics and water usually don't go well together...

Testing

The server connects to the router using a 1GB shielded CAT6 ethernet cable. The Apple Airport Extreme router is connected to the glass fiber modem using a very short, CAT6 cable. After powering on the server and some router configuration I was ready for a little test drive.

Connected a monitor and keyboard to test the systems
Connected a monitor and keyboard to test the systems
Averaging 3.4 milliseconds in pinging Google. That's fast, datacenter fast.
Averaging 3.4 milliseconds in pinging Google. That's fast, datacenter fast.

Pinging google.com is lightning fast, averaging at 3.4 milliseconds. Then I decided to see what speeds I can achieve when pushing some data through the wire. For this test I used rsync to copy over a bunch of files. The speed is amazing, maxing out at in excess of 230 megabit - which I assume is because of the physical limits of my harddisks and some software overhead because of the encryption I use.

In just one hour I copied about 104 gigabytes of data. That's insanely fast, datacenter fast. If I would let it steam along, I could transfer 2496 gigabytes per day and an astonishing 75TB per month.

At some point I even contacted the internet provider, monitoring the datacenter, to let them know that the spike in traffic was not an error or DDOS attack... it was me and my little server. :-) They saw the traffic and thanked me for the explanation.

Graphs from the connection monitoring system (from the real datacenter) cleary show when I tested my little server
Graphs from the connection monitoring system (from the real datacenter) cleary show when I tested my little server

Actual use

How about actually using this? I decided to use my newly connected server as an additional backup: making copies of production files and databases from the real servers. While cloud computing has become cheaper over the past few years, storing big data is still expensive (€50 per month for just 10TB).

I would never do any actual production computing from a setup like this. The datacenter is much more suitable for this because of it provides an unmatched redundancy in power and connectivity. But for non-critical operations it works great!

Then there I have it: clouds below my floor.

Clouds below my floor: my little basement datacenter.
Clouds below my floor: my little basement datacenter.

Other stories

all blog posts