[OpenSIPS-Users] Two Opensips proxies sharing the same DB

Bogdan-Andrei Iancu bogdan at opensips.org
Thu Jan 20 21:44:55 CET 2011


Jeff Pyle wrote:
>>> We're looking to add a second Opensips instance on a separate server
>>> for failover. Or, from an operational perspective, it could be
>>> described as "active-active" since both will be available at any one
>>> time. We'll control the traffic flow to the proxies with the SRV
>>> records used by the clients.
>>>
>>> Looking through the db tables used, it seems there may be some
>>> conflict with the location and dialog tables.
>>>
>>> The usrloc module clearly saves the local socket used during the
>>> registration. Is there a way to tell Opensips 1.6 to ignore this when
>>> loading the record?
>>>       
>> socket;s are discarded at load time if not local.
>>     
>
> I run db_mode=3 to keep everything current in the db.  The performance is
> acceptable (MySQL cluster helps).  If I understand you correctly:  on a
> shared table, if I save() a registration on Proxy A, but then load() it
> into Proxy B, Proxy B will ignore it since the socket is non-local.
the socket is ignored, not the record - the record will be used, but the 
socket info discarded

>   Any
> way to work around that within Opensips itself?  If I ran separate
> location tables on each, I might be able to work something up with MySQL
> triggers to push a saved registration from one table to the other at
> save()-time, changing the socket field as it goes.  That's a bit more
> hackery than I was hoping to have to implement.
>
>   
>>> That way, either proxy can use records saved by either proxy. A force
>>> socket option perhaps to the local IP? Clients are all public IPs ­ no
>>> NAT.
>>>       
>> depends on what db_mode you use for usrloc - if you use a DB mode
>> involving caching, the DB is read only at startup (otherwise, at
>> runtime, it is just written), so data will not be shared at all. Of
>> course you completely disable the usrloc caching via DB_ONLY db_mode,
>> but the performance penalty is high - maybe you should consider register
>> replication at SIP level.
>>     
>
> Replication at the SIP level.  That is, have the SIP client register with
> both proxies at once?
>   
yes. UAC registers with P1 and P1 replicates to P2 (see the 
t_replicate() function in TM module). But again, this makes sense only 
if using cache for usrloc


Regards,
Bogdan

-- 
Bogdan-Andrei Iancu
OpenSIPS Event - expo, conf, social, bootcamp
2 - 4 February 2011, ITExpo, Miami,  USA
OpenSIPS solutions and "know-how"




More information about the Users mailing list