Voicemail High Availability

I am wondering how people have been able to set up a Voicemail system that is redundant and also able to take a lot of load. The simple solution would be to use Heartbeat, but how do you mirror the voicemail messages on two different servers? Also with heartbeat you can only have an active/standby scenario and that second server can’t help with the load. I’ve seen that it is possible to store voicemessages in MySQL, but I read that MySQL is really suppose to only store textual info. If there was a way to mirror the voicemessages across multiple servers then you could use something like OpenSIPS to load balance between the asterisk servers.

Anyone have any experience with this?

You want to use asterisk as just a voicemail server?

I would setup the two systems with asterisk and heartbeat and then configure a DRDB device that heartbeat would mount as the voicemail directory (maybe the asterisk configs as well) before starting asterisk and taking over the IP.

I have setup systems with heartbeat and shared storage on a san, but I haven’t played with DRDB myself. It should work though.

i have several such configurations running with a pair of asterisk servers clustered using heartbeat and DRBD and they have worked for up to about two years just fine. Because DRBD essentially is “RAID across a network” this is a pretty inexpensive way to go. It does not deal with load balancing since a “passive” member of a cluster cannot have write access to the shared drive. To get load balancing, we simply used two clusters.

In one larger system, I used heartbeat and DRBD for two clusters for everything except the VM files which are instead stored on an EMC 16TB fiber raid array using Powerpath to allow all servers to have multipath access to the array for robustness in event of a fail over. This is obviously the much higher budget way to go but is reasonably bullet proof.

Thanks for the info.

I didn’t realize that was possible. Does it cost any extra?

The software is free, you just need to duplicate the hardware.
I have a few servers with heartbeat and DRBD too, they’re working fine.

[quote=“shmaize”]The software is free, you just need to duplicate the hardware.
I have a few servers with heartbeat and DRBD too, they’re working fine.[/quote]

Would you mind giving a list of the files and/or folders that you need to replicate for asterisk? I am trying to set this up and am having trouble finding everything that needs to be replicated. Do you just use symlinks to point /etc/asterisk and the rest to the drbd partition?

Thanks and sorry for highjacking the thread, but I think this info will be helpful for the original poster as well.

there is a package called drbdlinks which will actively manage the symlinks to the cluster partition. this is important since the symlinks have to be turned on and off according to which member of the cluster is active at any given time.

what you need to put on the cluster [drbd] partition really depends on what you have running on your box [e.g. MySQL, Web based GUIs, TFTP servers for endpoint devices, Mail server if you are using it to email VM attachments to users, etc] so there is no general answer to your question. To try to give you something useful, here is a drbdlinks.conf file from one of my clusters:

mountpoint (’/cluster’)
link(’/var/ftp’)
link(’/var/spool/mail’)
link(’/var/spool/asterisk’)
link(’/var/www’)
link(’/var/lib/asterisk’)
link(’/var/lib/mysql’)
link(’/var/lib/php’)
link(’/var/log/asterisk’)
link(’/etc/asterisk’)
link(’/etc/httpd’)
link(’/etc/php.d’)
link(’/etc/xinetd.d’)
link(’/tftpboot’)
link(’/opt’)

hope this helps.