SugarCRM is the leader in open source CRM systems, and has been adopted by some of the largest firms, including IBM. The CRM software includes all sales, marketing and support tools out of the box, and can also be extended to integrate social media sources. For those depending on SugarCRM, especially when deploying in cloud environments with lower SLAs, having a high availability architecture can make a lot of sense.
In this blog post, we will show you how to cluster SugarCRM Community Edition with MySQL Galera Cluster. For simplicity, we will use NFS as the shared storage system (storage1) but keep in mind that storage1 is a single point of failure. Have a look at our previous blogs on how to deploy other shared file systems like GlusterFS, OCFS2, GFS2, csync2 with lsyncd or CephFS.
We will use a total of 5 servers. SugarCRM will be co-hosted with the Galera nodes, NFS storage will be co-hosted with the primary HAproxy while ClusterControl will be co-hosted with secondary HAproxy node. The high-level architecture is illustrated in following figure:
Turn SElinux and firewalls off on all nodes. They should have the following host definitions in /etc/hosts:
192.168.197.100 virtual-ip mysql 192.168.197.101 haproxy1 keepalived1 storage1 192.168.197.102 haproxy2 keepalived2 clustercontrol 192.168.197.111 web1 galera1 192.168.197.112 web2 galera2 192.168.197.113 web3 galera3