High Availability for SARK
History
HA was originally developed for a customer in South Africa and it has since proved very popular with customers who place a high value on the availability of their PBX. The goal was, and is, to provide an Asterisk-based PBX with very near 100% availability. SARK HA gets pretty close to this goal. The original SARK Version 2 offering is called sarkha V1 but this has now been augmented as part of the V3 development by a newe general purpose Asterisk module called asha (Asterisk High Availability).
How it works
Asha works by using the proven standard Linux HA cluster technology to run two Asterisk servers side-by-side; one active, or primary, server and one passive, or standby, server. In the event of a failure of either Asterisk or Linux on the active server, the standby server will automatically assume control of all the resources and continue the service until such time as the primary is once again ready to assume responsibility. The time it takes to fail-over can vary depending upon how you set the Heartbeat parameters but it is quite common to have large systems (250->300 phones) set-up to fail over in under 20 seconds. That means from a hard down on the primary to being able to place outbound calls on the standby.
There are three components to the solution,-
- The regular Linux Heartbeat modules, which you can install with rpm or yum and can usually be found in the extras repo of the CentOS 5 and SME 8.0 distribution libraries.
- The asha rpm which manage the synchronisation of data between nodes and adds some ancillary functions such as the Asterisk watchdog task.
- The sarkha V3 environment rpms which manage the SARK specific integration with asha.
Installation
Installation is straightforward in an EL5 environment (RHEL5, C5 or SME8.0). Heartbeat can be installed directly from the yum repos and the other modules can be fetched from the download site.
Here is a regular EL5 install
yum install heartbeat --enablerepo=* rpm -Uvh asha-1.0.0-2.noarch.rpm rpm -Uvh el5sarkha-3.1.0-2.noarch.rpm
Here is an smeserver 8 install
yum install heartbeat --enablerepo=* rpm -Uvh asha-1.0.0-2.noarch.rpm rpm -Uvh smesarkha-3.1.0-2.noarch.rpm