freno
offers two alternate methods for high availability:
- raft consensus, where
freno
nodes are allraft
nodes and coordinate state with each other. - MySQL based, where
freno
uses aMySQL
backend for state and leadership resolution. In this setupfreno
assumesMySQL
is available.
MySQL backend adds MySQL as a dependency, and also requires the user to maintain high availability for MySQL itself. It makes sense in environments where MySQL HA is a solved problem.
raft
has less dependencies, but is also more difficult to deploy on some setups, namely Kubernetes, because of the strict need for nodes to explicitly know each other by name/IP.
It is possible to instruct a freno
daemon to assume it is the leader, no matter what consensus says.
- Provide the
--force-leadership
flag. - This does not affect other nodes. Another node may also believe its the leader, either because of consensus or because of similar configuration.
This flag can be used in emergency cases where consensus cannot be established, due to hardware/network issues.