I feel like it's time to build a new homelab

I've played around with docker a bit, but I really want to up my game with distributed containerization and distributed filesystems. Instead of buying a server and creating virtual machines, I'm going to build my next homelab with distributed computing in mind.

The ODROID-HC1 and ODROID-HC2 are perfect. They're Single Board Computers with an included case that allows you to attach a hard drive. They have a 2ghz ARM processor, 2GB of memory, and a gigabit network card. The cases even stack on top of each other.

Basically, they're like network-attached external hard drive cases with embedded computers that can run a server operating system. I have a large pile of old hard drives that I'm not using and can put them in the cases.

Why, you ask? Well, with a distributed filesystem like Ceph or GlusterFS, I can simply plug one of these devices into the network and have them join the storage array. No more playing with NAS devices or dealing with RAID.

At the moment, I have about 20 terabytes of data on non-redundant hard drives in my desktop computer. It's not safe and whenever I reboot my machine to apply a new kernel, it takes that data offline. With this setup, I can use my pile of older hard drives to build a new storage array, move my data to it, and then take the hard drives out of my desktop and also add them to the storage array.

What's more exciting is that I can also treat each small hard drive device as a host to run Docker containers on using Docker swarm.

This stackable pile of drives and SBC's will be able to run all my web servers (At least one server for every site, with more launched automatically during times of heavy traffic), automated downloaders, database server, Nextcloud instance, home automation software, network security monitor, home video security monitoring software, load balancer, e-mail server, chat servers, VPN gateway, DNS server, DHCP server, etc. All of those are individual services that will be able to be deployed across the array of micro-servers.

What will it take? A decent network switch, a half-dozen ODROID's, a reliable power supply for them, a pile of used hard drives, and some inexpensive MicroSD cards. As I want to expand, all I have to do is get another ODROID and drive and add it to the array.

Even better, as I expand, I can create different storage pools with different features. Video storage doesn't need replication and can run on slower hard drives. Music and Books will be replicated on a different pool with spinning disks. Everything else can be on an array made of up inexpensive SSD's I get on sale.

How fantastic.