[Asterisk-Users] High Availability and Mass Deployment for Asterisk

WipeOut wipe_out at onetel.com
Thu Oct 30 16:14:49 MST 2003


Senad Jordanovic wrote:

>Scenario one:
>One asterisk server, 200+ calls/channels through it. Judging by related
>posts this scenario will work fine.
>
>Scenario two:
>10000+ calls/channels with one registration URL. I heard that Voyage has
>50,000+ clients now. I am talking about that sort of scenario. Mass
>deployment. What then?
>
>1. Do a lot of "switch" command to move the calls between servers?
>2. Implement a load balancing/high availability solution
>3. Your suggestions please
>
>Here is my understanding of load balancing:
>1. One or more director server are needed which will accept all incoming
>requests and direct those requests to least busy application server.
>2. Two or more application servers running * with shared network file
>system for all needed directories /var/log/asterisk , /etc/asterisk etc.
>3. RAID File Server (RAID 5 preferably)
>
>The "weakest link" would be the director server but if run in a pair
>that should provide very good reassurance that at least one of them will
>be running while the faulty one is being replaced. The file server, of
>course should have its own redundancy put in place.
>
>
>Anyone out there: 
>Is there anything in * operation or structure preventing this sort of
>setup?
>Any other suggestions?
>
>Ta
>
>Senad
>
>  
>
This is somthing that I have been giving somth thought to as well.. not 
that I have any need to handle 10 000+ calls but the idea of a 
"clustered" PBX is awesome..

Here are some of the issues..

If you are load balancing with a "director" that spreads the load across 
multiple servers, the first problem would be sharing the SIP 
registration information between the two or more servers..
This is so that if UA1 is registered on Server1 and UA2 is registered on 
Server2.. Then when a call is made from UA1 to UA2, Server1 would know 
the registration details of UA2 in order to connect the call.. Sure it 
could be made to try the other servers from within the dialplan but this 
will be very messy as the number of servers goes up..

Then there is the NAT issue.. If UA1 or UA2 are behind NAT then the NAT 
table will have an entry for the Server where the UA registered and not 
the other servers.. So when the call was initiated from one of the other 
servers the NAT would simply drop the packets..

What is probably needed is one of two things..
a. An SSI(Single System Image) cluster that load balances the processing 
to multiple nodes but all data in and out are seen to be from a single 
IP address..
b. A front end "router/proxy" that handles the IP traffic and SIP 
information to and from a number of Asterisk nodes behind it that are 
doing the processing..

Or alternatively a method where by Asterisk is able to be clustered 
within itself sharing the relevant data and load between the nodes of 
the cluster and managing the data flow in and out of the server and 
removing and adding nodes dynamically to the cluster when a node fails 
or is taken offline and brought back online.. Basically an SSI Asterisk 
application.. Of course if it did manage this who would need telco's 
anymore.. :)

I guess you could always pop down to the store and order up a 64 way SMP 
server... that should get at least a couple of thousand concurrent calls 
going.. :)

Later..




More information about the asterisk-users mailing list