I have named my home server solution Mini, in deference to the mini computers of the 1970s & 1980s. Which is kind of relevant as the workloads I intend to run are more akin in style to the pre- client/server era architectures of mega databases on mega hosts.
My requirements for Mini are;
- high performance
- high availability
- relatively low cost
- a sandpit to teach my kids
I want high performance as at least two family members use our network attached storage for 4K NLE video workloads.
I want high availability as I run our home monitoring, automation and data-science on the network. Additionally we run logic that determines when to charge our Tesla stationary battery & Tesla car, based on forecast household loads and forecast solar irradiance. This workload must be up at all times, especially when the utility ToU peek/off-peak changes.
I have built Mini using eight year old (roughly) second hand HPE servers, with two to four year old SSD storage and current prosumer grade networking.
As such, Mini is ‘relatively’ low cost.
As an educational sandpit, Mini utilises virtualisation for machine level abstraction, and the current go-to for the cloud computing crowd, Kubernetes for ‘server-less’ workload abstraction. Further to this, the Home-Assistant.io project is being used to ingest all our household IoT and some personal activity data. Mini will be capable of running some data-science workloads on those data, providing a playground for family members to understand the digital breadcrumbs our 21st century lifestyle exposes. Perhaps even harnessing for ones own good.
Briefly, what is Mini
Five 2012-2013 era HPE servers, connected by three LAN network fabrics, housed in a near silent, sealed server rack.
Power is supplied and protected by an APC UPS and our Tesla Powerwall.
The servers themselves run the excellent Debian Linux based Proxmox distribution. Proxmox provides for Ceph distributed storage, which makes for a converged infrastructure, wherein a seperate storage array network becomes unnecessary.
Proxmox also provides integrated ZFS storage. ZFS is the highly resilient longterm storage that has been a feature of my home servers for many years. Only one of my HPE servers has a spinning rust attached for a ZFS storage pool.
Running in virtual machines on the five physical servers is a network of virtual servers that run Linux and Kubernetes.
Kubernetes is the application/workload abstraction that is also available in the Google Compute Engine, Amazon Elastic Cloud, Microsoft Azure, Linode and other public cloud providers. Thus developing our home workloads for Kubernetes enables those workloads to span beyond our home, and out into the dystopian cyberspace of our future.
At length, what is Mini
Before I layout the specifics of Mini, it may make sense to explain the rational for some of the technology choices made. But for that I believe it makes sense to explain my previous home servers and IT background in general.
thus, please read my home computing journey
Part 1 - What is Mini (this post)Part 2 - home computing journeyPart 3 - converged clusterPart 4 - not a fifth wheelPart 5 - our Mini computer