Cardano ♥ High Availability

April 5th, 2019

If you want your Cardano stake pool operating 24-hours a day, 7-days a week, 365+ days a year, then you need high availability, failover setup.

We are going to set up a simple two-node install if the primary node fails the second node takes over automatically. Note, never use clustering software, as two signing nodes, with the same key, operating simultaneously, constitute as an attack on the network!

High Availability Software

There are two popular high availability packages for Linux system, either would work, so how to choose between heartbeat 1 or keepalived? 2

One quick, not necessarily accurate way of evaluating software is to see what packages it requires to run on your base install. A base install has just the software needed to serve your application, all other software installed on the server is for enhancements, firewall, backup, and failover in our case are strengthening our servers uptime.

$ sudo apt-get install heartbeat

The following NEW packages will be installed:
  cluster-glue corosync fence-agents freeipmi-common gawk heartbeat ipmitool iproute libcfg6 libcib4 libcmap4
  libcorosync-common4 libcpg4 libcrmcluster4 libcrmcommon3 libcrmservice3 libesmtp6 libfreeipmi16 libheartbeat2 liblrm2
  liblrmd1 libnet-telnet-perl libnet1 libopenhpi3 libopenipmi0 libpci3 libpe-rules2 libpe-status10 libpengine10 libpils2
  libplumb2 libplumbgpl2 libqb0 libquorum5 libsnmp-base libsnmp30 libstatgrab10 libstonith1 libstonithd2 libtimedate-perl
  libtotem-pg5 libtransitioner2 libvotequorum8 libxml2-utils openhpid openipmi pacemaker pacemaker-cli-utils


sudo apt-get install keepalived

The following NEW packages will be installed:
  ipvsadm keepalived libnl-genl-3-200 libpci3 libsnmp-base libsnmp30

The logic behind doing this less is more, are fewer dependencies means less can go wrong and less to maintain. I have never been let down by comparing dependencies like this when I do not have a preference, all things being equal.

Keepalived is the clear winner here and would have been my choice even if this was not the case, especially for simple, bulletproof, high availability, two node installs, like this.

Stay tuned, we are finalizing our install, waiting for Shelley test net, and will update this post as soon as we can.

Until then set up two nodes and install Keepalived on both and experiment a little, you won't be disappointed.

  1. ClusterLabs heartbeat ↩︎

  2. Keepalived on GitHub. ↩︎

© 2020 Adaizen, LLC — Cardano Pledge & Infrastructure Service — All rights reserved.
Remember, we're not only engineers, but we're also Cardano owners. ♥