High-Availability Installation
From SIPfoundry sipx, The Open Source SIP PBX for Linux - Calivia
Contents |
Redundant High-Availability Installation
Introduction
First introduced in release 3.2 the sipXecs PBX system implements a distributed system offering high-availability and fail-over redundancy for the entire sipXecs call control system (proxy server, authentication proxy server and the registrar server). A single instance of the Configuration Server (sipXconfig) manages two or more distributed sipXecs servers. Under normal operating conditions the servers load-balance using DNS SRV records to route SIP messages to the servers, which scales overall system performance. The registration and other state information is replicated and synchronized with the other servers in real-time, so that from a user perspective the servers look like one big system. Call Detail Record (CDR) recording and processing is fully supported for distributed servers.
The system has been designed to allow for more than two redundant servers. However, from a practical perspective testing was focused on two server redundant setups so far. Also, the way Config Server displays registrations from redundant servers is optimized for two server setups.
Motivation and Overview
In large systems, high availability (HA) is essential. A PBX with more than a few dozen users generally must not have any unexpected outages for basic calling and of course emergency dialing has to be possible. It does seem to be true that voicemail and perhaps some other services do not have the same availability requirement. In sipXecs, basic calling depends on three components: The proxy and the registry/redirect service.
Installing a Redundant HA System
Installation of a two server redundant system is best done using the sipXecs installation CD. The configuration wizard allows for the automated setup of a Master and Slave system and performs all the necessary configuration. CD Installation of sipXecs
Once setup, Config Server manages both servers and sends configuration data (we call this replication) to all machines. Config Server also displays registrations that occur on all machines and it is able to provide information about load distribution between the registration servers.
Managing Processes on the Master and Distributed Server
After installing a high-availability system all sipXecs processes can be managed from the Web UI for both the master and slave server. Login to the Web UI as admin and navigate to Diagnostics / Services.
Processes on the distributed system (slave) can be monitored, stopped, started or restarted.
Monitoring Phone Registrations in an HA-System
In an HA system phones use either the Master or Slave system as the primary registrar. Which one is chosen depends on which server address is returned by the DNS server as the phones queries for the DNS SRV record. The load sharing distribution by default is 50:50, but can be changed by configuring the DNS server. As soon as a phone registered with the primary server (the one it is given by DNS first), sipXecs replicates this registration to the other server. Using the management Web UI you can see what phones used which server as there primary. The example below shows three phones, a Polycom, Snom and Grandstream, where two use the Master as their primary registrar and one used the Slave.
Manual Configuration of an HA System
Manual configuration might be necessary in two cases: a) You want to setup a distributed system that consists of more than 2 servers, or b) you do not want to use the CD installer but installed sipXecs from the RPM repository. The following links point you to the manual on how to do this. Since there are slight differences between releases, there are several links below.
Release 3.8
Release 3.10
Design Documentation:
The Design Documentation provides additional information about how high-availability was implemented. Please post feedback and suggestions to the sipx-dev mailing list at sipx-dev@list.sipfoundry.org.




