We will be releasing Baruwa Enterprise Edition version 2.0.7 on Monday 23rd March 2015.
This update has greatly improved the clustering functionality. In the past the documentation of Baruwa Enterprise Edition clustering was not up to scratch. This has been fixed in this release.
The article is part of a series introducing the features available in Baruwa Enterprise Edition release 2.0.7. To read the other articles in this series go to https://www.baruwa.org/blog/category/2.0.7/
Baruwa is capable of running in a cluster. Full Baruwa functionality is available from any member within a Baruwa cluster and all cluster members have equal status. This allows you to provide round robin access either using Load Balancers or DNS configuration.
All cluster profiles are supported by BaruwaOS and baruwa-setup. This greatly simplifies configuration.
The supported clustered topologies are described below.
In this topology all the backend components are each installed on standalone systems and the frontend components are also installed on standalone systems. This solution is the recommended for very large environments as it performs better and scales out and in easily.
In this topology all the backend components are each installed on standalone systems and the frontend components are combined on to a node. Scaling is achieved by adding additional frontend nodes.
In this topology all backend components are installed on a single system and the frontend components are each installed on standalone systems. Scaling is achieved by adding additional frontend nodes.
In this topology all backend components are installed on a single system and the frontend compontents are combined on to a node. Scaling is achieved by adding additional frontend nodes.
Baruwa Enterprise Edition can be installed on a standalone server or distributed with various components on different servers. A distributed setup is required if you want to run a cluster.
The available cluster system profiles are described below.
This setup installs all the backend components on to one server, the backend components that are installed are:
This setup can be used with a clustered setup of several nodes. You have to setup one server as a backend system in a basic cluster setup.
This is a frontend system it provides the mail and web interfaces, mail is delivered to the server and at the same time it serves as the web interface for both administration as well as end user access. This system requires a backend system or distributed backend systems. You can have several of these nodes scaling up or down as demand grows or drops.
This is a front-end system that is dedicated to processing mail, it does not provide a web interface for administration as well as user access. You setup this kind of system if you want dedicated servers processing mail only. You can have several of these nodes scaling up or down as demand grows or drops.
This is a front-end system that is dedicated to providing web interface access for administration as well as user access. You setup this kind of system if you want dedicated servers providing only web access. You can have several of these nodes scaling up or down as demand grows or drops.
This is a backend server in a distributed system, it provides the backend indexing functionality. You setup this profile if you want a dedicated server providing search indexing.
This is a backend server in a distributed system, it provides the backend database functionality. You setup this profile if you want a dedicated server providing database functionality.
This is a backend server in a distributed system, it provides the message queue functionality. You setup this profile if you want a dedicated server providing message queue functionality.
This is a backend server in a distributed system, it provides the cache functionality. You setup this profile if you want a dedicated server providing cache functionality.
Baruwa Enterprise Edition can be setup to use load balancers that support the Proxy-protocol, the most popular being Haproxy.
To use Baruwa Enterprise Edition SMTP servers with these load balancers you need to specify the load balancer IP addresses in the Load Balancer IP’s field on the MTA Settings screen in baruwa-setup
A sample configuration for haproxy with both HTTP and SMTP being load balanced is below.:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
option redispatch
retries 3
maxconn 2000
timeout connect 5000
timeout client 50000
timeout server 50000
listen http :80
mode tcp
option tcplog
balance roundrobin
server web1 192.168.1.20:80 check
server web2 192.168.1.23:80 check
listen https :443
mode tcp
option tcplog
balance roundrobin
server web1 192.168.1.20:443 check
server web2 192.168.1.23:443 check
listen smtp :25
mode tcp
no option http-server-close
option tcplog
timeout server 1m
timeout connect 5s
balance roundrobin
server smtp1 192.168.1.22:25 send-proxy
server smtp2 192.168.1.24:25 send-proxy