BDRSuite Cluster Deployment Guide for Version 3.9

BDRSuite Cluster Deployment Guide for Version 3.9

KB ID: 115064
Overview:
BDRSuite supports the deployment of multiple BDRSuite Server instances (Nodes) in a cluster for load balancing client requests. This document outlines the clustering process and provides guidance on setting up BDRSuite for version 3.9.
How BDRSuite Clustering Works:
Each BDRSuite Backup Server instance consists of BDRSuite Web Server and the BDRSuite Application. The Vembu BDR Web Server by default listens on port 6060 (and 6061 if HTTPS is enabled) and addresses the Web Service requests from the clients. The BDRSuite Application listens on port 32004 (and 32007 if SSL is enabled) and accepts the backup and restore requests from the clients. The BDRSuite Application of each Backup Server instance access a common RDBMS database and a common backup storage. This enables the BDRSuite Backup Server instances running from different systems to share the backend database and serve the backup/restore requests of the BDRSuite clients independently.
Recommendations:
  1. Install PostgreSQL with VembuBDR installer in a physical machine and dedicate it to PostgreSQL database alone in order to handle huge requests from clients separately rather than setting up a database in the same machine where the application is running. This would be helpful in extreme conditions when the main server goes down so database files would be safe.
  2. Also, keep the storage files of PostgreSQL in common location which helps to rebuild the PostgreSQL server if it goes down.
  3. Allocate static IP/DNS to all server nodes.
Configuring Master Node:
  1. Install BDR server and after the installation has completed, make sure that you uncheck Start BDR Server and Open Web Console in the installation wizard. This will never start 'VembuBDR' service.
  2. Navigate to <vembubdr installation="" location="">\Vembu\VembuBDR\conf\. Open SGConfiguration.conf file in any text editor.
  3. Search for Cluster Enabled="0" and replace it with attribute Cluster Enabled="1"
  4. Search for "ClusterName" and name your Cluster setup, say: ClusterName="BDRCluster"
  5. Search for "NodeLookupNameIP" and "InternalIPAddress" and configure master node IP address to it.
  6. Leave other cluster attribute like "AlgorithmType", "NodeAllocation" and "NodeHealthStatusTimeout" to its default value.   For example: <cluster enabled="1" clustername="BDRCluster" nodelookupnameip="10.5.50.78" internalipaddress="10.5.50.78" algorithmtype="2" nodeallocation="0" nodehealthstatustimeout="600"/> Say, IP of the master node is 10.5.50.78.
  7. Search for the attribute “Database UseODBC” and replace all the attributes as shown below. Here, in the attribute “HostName” enter the IP of the dedicated PostgreSQL server. For example: <database useodbc="2" dsname="PostGreDBConnection" databasename="SGDatabase" hostname="10.5.50.75" username="postgres" password="admin" connectionpooling="1" splitdatabase="1" splitlevel="2"/> Say, IP of the PostgreSQL server is 10.5.50.75.
  8. Now edit config.php file in location: <vembubdr installation="" location="">\Vembu\VembuBDR\htmlgui\consumerweb\secure. Note: This file is edited to sync database string values that are mentioned in SGConfiguration.conf file. Values that needed to be changed are given below: 
    1. define("ser_main_server_dns" , ‘10.5.50.78’); //IP Address of master node
    2. define("DB_SERVER" , ‘10.5.50.75’); // IP Address of PostgreSQL server
    3. define("DB_NAME" , "SGDatabase");
    4. define("DB_USER" , "postgres");
    5. define("DB_PASS" , "admin");
    6. define("DSN_NAME" , "PostGreDBConnection"); 
    7. Note: These settings should remain same across all cluster nodes.
  9. Save and exit the file.
  10. Open apiutility.php file from location: <vembubdr installation="" location="">\Vembu\VembuBDR\htmlgui\common\server
  11. Look for “if(S3_Enabled==1)” and replace it with “if(S3_Enabled==0)”. Save and close the file.
Configuring Failover Node:
Follow the first step in master node configuration and after that:
  1. Open SGConfiguration.conf file and make all the changes as mentioned above but in "NodeLookupNameIP" and "InternalIPAddress", enter the IP of the failover node i.e., enter the IP of the local machine.
  2. Make sure that the cluster name is same on all the nodes that are configured.
  3. After edit and save, SGConfiguration.conf file must be like: <cluster enabled="1" clustername="BDRCluster" nodelookupnameip="10.5.50.79" internalipaddress="10.5.50.79" algorithmtype="2" nodeallocation="0" nodehealthstatustimeout="600"/> Say, IP of the failover node is 10.5.50.79
  4. Search for the attribute “Database UseODBC” and replace all the attributes as shown below. Here, in the tag “HostName” enter the IP of the dedicated PostgreSQL server. For example: <database useodbc="2" dsname="PostGreDBConnection" databasename="SGDatabase" hostname="10.5.50.75" username="postgres" password="admin" connectionpooling="1" splitdatabase="1" splitlevel="2"/> Say, IP of the PostgreSQL server is 10.5.50.75
  5. After the above configuration, follow all the steps as mentioned in Master node configuration.
Configuring Database Connection Strings:
These configurations must be done in the machine that is dedicated for PostgreSQL database storage alone.
  1. Open Pg_hba.conf file using any text editor from location: <postgres installation="" location="">\Postgresql\Data\ Add the following lines under IPV4 local connections.
    1. With IP Address of both master node and failover node
    2. host    all    all    10.5.50.78/0    md5
    3. host    all    all    10.5.50.79/0    md5
    4. If there are any number of failover nodes, add the IP of all the nodes. After editing the file, save it and restart the PostgreSQL from services.msc.
Configuring Database Connector (ODBC):
  1. Search for ODBC Connection from Start and select ODBC Data Source (64 bit) or in the terminal, type “C:\Windows\System32\odbcad32.exe”
  2. Select SystemDSN tab.

  1. Choose 64-bit “PostGreDBConnection” and add the server as your PostgreSQL server’s IP address.
  2. If 10.5.50.75(PostgreSQL server) is your PostgreSQL IP address, You will see something similar to below pic

  1. Do a test connectivity, on success - save the configuration.
  2. Now do the same operation for the 32-bit connector. Open the command terminal and type C:\Windows\Syswow64\odbcad32.exe or search ODBC Data Source (32-bit)
  3. Choose 32-bit “PostGreDBConnection” and add the server as your PostgreSQL server’s IP address.
Note: The above settings should be followed in all the cluster nodes. VembuBDR cluster configuration is done. Now start the master node following all the failover nodes.
Configuring Client:
These steps should be followed for any client (Vembu Network backup, Image backup or VMbackup clients) to be connected with VembuBDR Cluster. Consider network backup client here.
  1. In any Client, open SGConfiguration.conf file in any text editor from the location, <vembubdr installation="" location="">\Vembu\VembuNetworkBackup\conf\
  2. Search for the attribute “ServerLookup Enabled” and change the value as given below: <serverlookup enabled="1" sslenabled="1" httpport="6060" httpsport="6061"/>
Note: This has to be done in all the clients that connect with VembuBDR cluster.
BDRSuite OffsiteDR Cluster:
For BDRSuite OffsiteDR cluster, follow the exact same steps as in BDR.
  1. Before starting exe of VembuOffsiteDR, in SGConfiguration.conf file in location : <vembuoffsitedr installation="" location="">\Vembu\VembuOffsiteR\conf\, after changing the values for Cluster enabling, add an additional tag NodeProcessType = “1” Therefore, SGConfiguration.conf file must be like, <cluster enabled="1" clustername="ODRCluster" nodelookupnameip="10.5.50.80" internalipaddress="10.5.50.80" algorithmtype="2" nodeallocation="0" nodehealthstatustimeout="600" nodeprocesstype="”1”/"> Say, IP of the master node is 10.5.50.80 This must be done in all cluster nodes.Then start the master node followed by all failover nodes.
  2. For a BDR to replicate to OffsiteDR cluster, open SGConfiguration.conf file in VembuBDR and search for the attribute “ServerLookup Enabled”. Change the values as mentioned below: <serverlookup enabled="1" sslenabled="1" httpport="6060" httpsport="6061"/>
  3. OffsiteDR cluster has been configured. Now backups from the BDR are replicated to OffsiteDR cluster.
  4. Similarly, BDRSuite Cluster and BDRSuite OffsiteDR Cluster setups can also be configured by following the procedures mentioned above.
By following these procedures, both BDRSuite Cluster and  BDRSuite OffsiteDR Cluster setups can be successfully configured.