The sys admin's daily grind: Keepalived

Fit Without a Pacemaker

Article from Issue 178/2015

Columnist Charly likes to keep system-critical daemons on two or more servers. If one of the servers fails, the idea is that the service can be started on the other and will be available at the same IP address – a scenario that works with or without the Pacemaker heartbeat.

Services without which nothing works are clear candidates for doppelgängers on my network. If the master fails, or if I just need to shut down the server for maintenance, I want the service automatically to start on the second server and to be available on the same IP address as before, if possible.

To do this, the IP address needs to migrate quickly and without much overhead to the backup machine. Addresses like this are known as floating IPs. The migration helpers here are Pacemaker [1] and Corosync [2]. These tools can't do much more than facilitate the move, however, so the solution seems a little over the top for a simple failover scenario.

A more streamlined solution called Keepalived [3] is part of the default toolset in most distributions. I just installed Keepalived and jumped in feet first. What I found were two servers with IP addresses and My floating IP of choice is

Minor Difference

The /etc/keepalived/keepalived.conf configuration file looks like Listing 1. It differs on the two machines only in one aspect: the priority (line 16). I need to configure a smaller number on one of the machines than on the other to define the master. This server gets the floating IP by default, whereas the other only gets the IP if the master is down. The VRRP (Virtual Router Redundancy Protocol) is used to swap states.

Listing 1



To be able to bind services to an IP address that does not (yet) exist on the system, I need to make some changes to /etc/sysctl.conf:

sudo echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
sudo sysctl -p

Now I can launch Keepalived by typing:

sudo service keepalived start

The floating IP appears on the server with the higher priority value. If I shut down the master, I can see from the Syslog on the secondary machine that it quickly assumes the master role (Figure 1).

Figure 1: A glance at the Syslog on the slave machine shows that it has become the master after a failure of the production machine.

The Author

Charly Kühnast is a Unix operating system administrator at the Data Center in Moers, Germany. His tasks include firewall and DMZ security and availability. He divides his leisure time into hot, wet, and eastern sectors, where he enjoys cooking, freshwater aquariums, and learning Japanese, respectively.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Charly's Column

    A partly overloaded DNS server can slow down all the workstations on the network. Dnsgraph is an early warning system that gives administrators a graph of critical values. Your Dnsgraph charts will help you keep your systems serving names.

  • Proxmox VE

    The Proxmox Virtual Environment has developed from an insider’s tip to a free VMware ESXi/ vSphere clone. We show you how to get started setting up a PVE high-availability cluster.

  • Pacemaker

    When a cluster node fails, the Pacemaker high-availability tool launches the services on another node. A lesser known feature is Pacemaker’s ability to put failed services back on their feet in the cluster manager.

  • Linbit Becomes Heartbeat 2 Maintainer

    The Linbit firm out of Vienna will take over care of the Heartbeat 2 cluster manager.

  • Charly's Column

    Charly may be a traditionalist with sync-unfriendly duplicate home directories, but a little utility called Unison helps keep his data consistent . This month you’ll learn why Rsync sometimes isn’t enough.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More