Understanding Server Clustering
With the ability to step outside of our framework and cater to your specific needs on a one-time basis, We assist you with Clustering setups like MySQL Clustering and DNS clustering.
Similar to load balancing with web farms MySQL load balancing is also quiet similar with the configurations and architecture. Using HAProxy load balancer modules we can load balance MySQL query transactions between 2 or more database servers.
HAProxy provides queuing and throttling of connections towards one or more MySQL Servers and prevents a single server to become overloaded with too many requests. All clients connect to the HAProxy instance and the proxy forwards the connection to one of the available MySQL Servers based on the load-balancing scheme used.
The question arises , how to implement DNS cluster and the ways in which it will benefit us ?
Firstly, the Nameservers can be spread out across different Datacenters. These Datacenters are distributed over various geographical locations (example: London, United states, Germany etc). Even if one nameserver fails , the visitor can still reach their websites on the hosted server. In this way , DNS cluster helps to maintain the functionality of the DNS zones as well as lowering the risk of DNS failure.
- Firstly, the requirements to set up a DNS cluster is at least 2 WHM server’s or at least 1 WHM server and DNSONLY server’s .
- Secondly, all the machines in the cluster must have cPanel & WHM or cPanel .
- The DNSONLY version 11 or higher installed on it.
- Lastly, the machines with PowerDNS in the cluster must have DNSSEC disabled.
There’s an advantage of using “cPanel DNSONLY” server over normal “cPanel-WHM” server. cPanel DNSONLY server could be used as a nameserver’s in the DNS cluster and are available free of cost from cPanel (no need to purchase a license).
In simple words, whenever a DNS change occurs on one of the main server in a cluster , the DNS records will be immediately transferred to the other servers .
The cluster should be set up in a way that it speeds up the DNS resolution. Indeed, the best way to get through is the use of direct links between the Webserver and Nameserver without any intermediate server as shown in the below diagram 1.
Steps to setup DNS cluster in cPanel
Step1 : Enable DNS clustering from WHM >> Home >> Clusters >> DNS Cluster >> Click Enable DNS clustering.
Once you have enabled the settings , you can then check the column “Server’s in your DNS cluster ”. There you will find an option to “Add a new server to the cluster” >> click configure >> Enter the details Remote cPanel hostname , Username and Remote server access Hash ( Server’s remote access key is available in WHM under Home >> Clusters >> Remote Access Key ) >> tick the check-box setup reverse trust relationship >> change DNS role to “Synchronize changes”
Note :: Synchronize changes will push all the DNS zone changes to any other Nameserver’s that are linked to this server.
Make sure DNS server (Nameserver) should not sync back the DNS to the Webserver.
For example : Let ns1 be in London , ns2 in Germany , ns3 in USA. DNS changes made on Webserver A or B will be synchronized to each of the Nameserver’s A, B and C.
Whenever a website is browsed that is present on webserver A, the DNS zone will be picked up from the nearest Nameserver thereby reducing latency and giving a better response time.
Diagram1 : DNS Cluster
Overall benefits of using cluster
- Reduces Downtime
- Improves Performance
- If you try to add a domain that already exists in a cluster the you will be prompted with an error “DNS already exists” . It avoids creating of a domain on multiple Webservers in a cluster.