Fault-tolerant distributed cluster (thinking out loud)

I’m quite excited by Lukas’ HAHA project, as detailed here.

Through work, I have an almost-endless supply of EoL & ex-lease devices that could be put to great use, with several in storage taking up space:

  • Several generations of RasPi’s & other ARM-based SBC’s
    • Including some shields, such as a AIY voice kit
  • Some x86 boxes;
    • some ex-lease desktops,
    • some old thin clients,
    • some PCEngines SBC’s (old pfSense boxes),
    • some Mouser Industrial Controllers
    • some perfectly functional laptops with busted monitors
  • numerous OpenWRT AP’s (will use these for a dedicated/isolated IoT network)

(I’m a bit of a hoarder - hate throwing perfectly usable tech away)

It occured to me that this may be a good application for some distributed architecture around my house/site: pop HASSIO/HASSOS on them, pepper them around the place, hook them into Portainer on my server and orchestrate them so.

What I hope to achieve is introduce a degree of fault-tolerance: allow for up to n-1 HA nodes to fail & the remainder nodes to pick up the slack, even at sub-peak latency.

Of course I’ll need to add the appropriate hardware interfaces to each node (Zigbee, Z-Wave, BLW, etc).
Later-gen RPi’s may be best, as they already have WiFi & BLE baked in.

Such an approach may also allow me to scale to manage multiple sites - home, office, parents, etc.

Portainer (already running it elsewhere for different purposes) already facilitates some of this via Docker-swarm of course (but that’s low-level OS stuff), but then I’m wondering if HA can also be a little more ‘cluster-ware’: distributing some of the functions & operations, and passing some coordination amongst each other & check on each other’s health, becoming a little more “intuitively aware” of what interfaces are available where (BLE here, Zigbee there, AIY voice input over that side, etc).
I suppose much of this I’ll need to manually configure via MQTT myself, but it may be cool to have that “automagically” autodiscover & config.

Anyone else around got a similar setup?
Thoughts?
Caveats & pitfalls?

1 Like