Skip to content

Cloud Native (Mainly Storage)

Note

This page is just to organise my research into different solutions which turn out to be very complicated but may one day solve my issue with HomeAssistant constantly dying and my NAS replication issues.

In the spirit of procrastinating as long as possible, I've now started to look into highly available replicated storage as a part of my resiliency goals for my NAS and other important applications such as HomeAssistant. I've put off re-instating these for as long as I can since they've died, but want to see if there's a better way I can be doing this, whilst also making me more hireable in the future... enter cloud native storage (Yay?)

Container Orchestration

Kubernetes

  • Cluster of computers which can work as a single unit.
  • Control plane--responsible for coordinating the cluster
  • Nodes--workers running applications
  • Could run PleX or HA as an application with X workers in a ReplicaSet so that they come back up if a machine dies
  • Each spare Pi can be setup as a node to run pods
  • These pis individually shouldn't have any state, e.g., netboot and overlay
  • Tutorial seemed approachable, allows me to run applications out across multiple pods at once, to a specified number of replicas. Can then issue a rolling update and backoff if that fails for whatever reason
  • Control plane can also be made highly available, but this seems to require a fair bit of work

Minikube

  • Local kubernetes server for testing

MicroK8s

Rancher

File Storage

Ceph

  • Highly available, distributed files
  • Can replicate them to provide higher cluster throughput or use erasure coding which is more efficient for storage
  • Minimum 3 nodes running for redundancy otherwise it complains

Rook

  • Running Ceph in Kubernetes

Longhorn

  • Distributed block storage
  • Incremental snapshotting to secondary storage backups
  • Mostly geared towards k8s cluster and not distributed storage?

OpenEBS

  • Decent speeds a couple of years ago

Further Reading