[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