how to Shared jasmin configuration in HA scenario

836 views
Skip to first unread message

Ettore Pelliccioni

unread,
Jan 5, 2016, 9:40:29 AM1/5/16
to Jasmin SMS Gateway
Hi,

First, congratulations for this project, your team do a great job!


Now, i am doing a test scenario for High Disponibility deployement (HA),

I actually use HAProxy cluster version 1.6 to load balance HTTP /MT submits with 2 instance of Jasmin (ubuntu) virtual machines.

Next I will create a cluster for RabbitMQ and redis, to share jasmin messages, but How can I share the jasmin users /connectors / routing/ filters setups between Jasmin virtual machines? actually i repeat the same configuration on each node, there is a more easy way?


Thanks in advance,

Bruno C

unread,
Jan 5, 2016, 10:18:19 AM1/5/16
to Jasmin SMS Gateway
Hi and thank you !

How are you doing HA ? loadbalancing (active/active) or failover (active/standby) ? and do you have a shared disk between nodes ?

Ettore Pelliccioni

unread,
Jan 5, 2016, 10:26:47 AM1/5/16
to Jasmin SMS Gateway
Hi Bruno

I actually use openvz(proxmox enviroment cluster), and virtual machine disks are in a nfs share,  I create a two vps nodes in failover with HAProxy cluster with Keepalive and a virtual ip address, serving the http port (1401) por sms mt delivery in http mode, and loadbalance to two vps with jasmin on ubuntu 15.04. each jasmin installation is independent, no share between them, and finally then connect smpp to a jasmin as gateway to operators (KVM).


I use rsync to copy /etc/jasmin/store, to jasmin nodes and replicate configs. It seems to be ok.

I plan to setup two vps to cluster rabbitmq and redis, in order to share the common spaces to messages. Any suggestions?


Thanks in advance

Ettore Pelliccioni

unread,
Jan 5, 2016, 10:50:10 AM1/5/16
to Jasmin SMS Gateway
The scenario is like this:


                                                                            HAProxy VPS01 (MASTER)
                                                                           /                                          \
                                                                                                                       JASMIN USERS GW VPS01
                                                                                                                                                                   \
Virtual IP (http://smsmt:1401)   FAILOVER HA -  LOADBALANCING 1:1                                                             JASMIN GATEWAY KVM  => TELCO
                                                                                                                                                                   /
                                                                                                                       JASMIN USERS GW VPS02
                                                                           \                                         /
                                                                            HAProxy VPS02 (BACKUP)

I have another question, in order to share user configs between jasmin nodes (billing, per examble:  the mt_messaging_cred quota sms_count ) how this can be done?, Actually I do this at last jasmin KVM instance (the gateway to operators).

Regards,

Bruno C

unread,
Jan 5, 2016, 12:23:17 PM1/5/16
to Jasmin SMS Gateway
Ettore, i didnt get you, please send a clear architecture overview so i can help you.

Ettore Pelliccioni

unread,
Jan 5, 2016, 12:39:29 PM1/5/16
to Jasmin SMS Gateway
Hi Bruno

The architecture overview:

1.- HAPROXY (frontend):
2 x VPS DEBIAN 7 (openvz)
Haproxy V.1.6
Keepalive
Virtual IP to bind HTTP port 1401 (default http jasmin port for sms mt delivery).
load balance to jasmin farm servers (users-clients config)

2.- JASMIN-USERS CLIENTS (farm - backend):

2 x VPS  Ubuntu 15.04 (openvz)
Jasmin v0.8 (jasmin + redis + rabbitmq)
same replicated configuration (rsync /etc/jasmin/store)
no share space

3.- JASMIN TELCO-GATEWAY (BILLING)
1 x HVM Ubuntu 15.04 (KVM)
Jasmin v0.6.rc (jasmin + redis + rabbitmq)
no share space. Billing (SMS-count)


Actually, stage 3 (Jasmin-Telco Gateway) is a important point of failure, i wish to replace this with a redis/rabbitmq cluster (as a share space) like this "http://www.101tech.net/2014/08/08/highly-available-redis-cluster/", and do directly telco connection to each node on stage 2 (Jasmin Users VPS), increase bandwitdh with adding more vps nodes, and make the system more reliable, in case of a node failure.

Also i need to be able to manage the billing in a centralized way.

Thanks in advance.

Ettore

Bruno C

unread,
Jan 5, 2016, 12:57:30 PM1/5/16
to Jasmin SMS Gateway
I understand you have active/active deployment, how are you synchronizing configs between active nodes ?

For example, if you add a user on node 1, how will it be replicated to node 2 ? same if user 1 on node 1 is disabled, how to disable it on node 2 ?
I guess replicating /etc/config/store using rsync is not sufficient as Jasmin do timed persistence but does load the config only on boot, so even if you update the config on disk, Jasmin will not take it into consideration and may even replace it when auto persistence is enabled.

Is my understanding right ?

Ettore Pelliccioni

unread,
Jan 5, 2016, 6:01:24 PM1/5/16
to Jasmin SMS Gateway
Yes you are right.

I will finísh the redis/rabbitmq cluster, but if believe that if the jasmin configuration is stored in the redis cluster and then common in all nodes, it would be the right solution.

Regards

Bruno C

unread,
Jan 6, 2016, 3:41:04 AM1/6/16
to Jasmin SMS Gateway
This feature is in the backlog: https://github.com/jookies/jasmin/issues/292

but not planned yet, meanwhile, i know users doing sync through inhouse apis.

Ettore Pelliccioni

unread,
Jan 6, 2016, 7:22:44 AM1/6/16
to Bruno C, Jasmin SMS Gateway
Ok i understand...

Meanwhile the provisioning of the users and other configurations may be done turning off the autopersist feature and definíng a master where will do all the configurations,set a shared mount or filesystem for /etc/jasmin/store and then a reload from the others nodes slaves

The issue will be the balance / billing because when a user check balance o try to send a new sms can obtain diferents acounting valúes as use differents nodes each time.


--
Jasmin SMS Gateway -- http://jasminsms.com
---
You received this message because you are subscribed to a topic in the Google Groups "Jasmin SMS Gateway" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jasmin-sms-gateway/OS-YgBq5Jss/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jasmin-sms-gate...@googlegroups.com.
Visit this group at https://groups.google.com/group/jasmin-sms-gateway.
To view this discussion on the web, visit https://groups.google.com/d/msgid/jasmin-sms-gateway/b8cd52e7-ac5c-40ba-9637-e025326fa243%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--

Atentamente,
Ing. Ettore Eliseo Pelliccioni Monrroy

Tlf.:+58.212.7626555
Móvil:+58.414.1111330
Skype:ettore.pelliccioni
eMail/msn: ettore.pe...@techniclite.com
Web site: www.techniclite.com


This message may contain confidential information or privileged material, and is intended only for the individual(s) named. If you are not in the named address you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system.
E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of e-mail transmission. If verification is required please request a hard-copy version.  
Reply all
Reply to author
Forward
0 new messages