Server Cluster Deployment
Overview
supports installing multiple Server instances (Nodes) in a cluster to provide load balancing of the clients. Backup and Restore requests from the client machines are directed to one of the Nodes as per the load balancing algorithm (Node Locked, Round Robin or Load Based) configured for the cluster. New Backup Server machines (Nodes) can be added to the cluster anytime to increase the capacity.
The Nodes share a common RDBMS database. If the load balancing algorithm configured in the cluster is 'Round Robin' or 'Load Based', then the Nodes have to share a common backup storage as well.
NOTE: Only Node Locked algorithm for load balancing is currently supported.
How does the Clustering Work?
The illustration below shows how a new client machine registers with the Backup Server cluster and initiates its backup. Each Backup Server instance consists of Web Server and the Application. The Web Server by default listens on port 6060 (and 6061 if HTTPS is enabled) and addresses the Web Service requests from the clients. The Application listens on port 32004 (and 32007 if SSL is enabled) and accepts the backup and restore requests from the clients. The Application of each of the Backup Server instances access a common RDBMS database. This enables the Backup Server instances running from different systems to share the backend database and serve the backup/restore requests of the clients independently.
Here is how a client selects a backup server (Node) from the cluster to backup:
- A Client machine backing up to a Backup Server Cluster first sends a HTTPS (or HTTP request as configured in SGConfguration.conf file in the client machine; HTTPS been default) 'Server Lookup' Web Service request at the backup server address (say for example: backup.datamaniacs.com - as specified while configuring the backup schedule in the client machine). The default port at which the request is sent is 6061 for HTTPs and 6060 for HTTP.
- The backup server that receives the 'Server Lookup' request assigns a backup server (Node) for the client based on the Load Balancing algorithm (described below) specified for the cluster.
- The backup server sends the response back to the client with the details of the assigned Node like its public lookup name (say serverB.datamaniacs.com) or public IP address, backup ports etc.
- The client opens a TCP connection with the assigned Node on port 32004 (if SSL is disabled in the client) or 32007 (if SSL is enabled) and starts backing up.
Load Balancing Algorithms
The different load balancing algorithms and how they work are described below:
Node Locked Algorithm
Round Robin Algorithm (coming soon!)
Load based Algorithm (coming soon!)
Only Node Locked Algorithm of load balancing is supported currently.
Node Locked
In Node Locked algorithm, a Client machine backs up to the node to which the client is 'Node Locked' by the administrator of the backup server cluster. If the client machine is not 'Node Locked', then it backs up to the Node to which its parent Customer or its parent Reseller account is Node Locked.
The administrator can 'Node Lock' a Reseller, Customer or a Client to a particular node in the cluster through 'Cluster Management' page in the backup server's web console. If a Reseller account is Node Locked, all Clients under all the Customers under that Reseller account will backup to that locked node (backup server instance) by default. However, if a Customer is node locked to a different node, then all the Clients under that Customer will backup to that node, even if the parent Reseller account is Node Locked to a different node. Similarly if a Client is Node Locked, it will always backup to that node even if its parent Customer is locked to a different node.
If neither the parent Reseller nor the parent Customer nor the Client is Node Locked, then the client will be automatically node locked to the first node (the backup server instance that was first added to the cluster) in the cluster, the second client will be automatically Node Locked to the second node and so on, in a Round Robin fashion. Thereafter, the client will always backup to that locked node.
Round Robin
Unlike in Node Locked, in Round Robin algorithm, the client machines can backup to any node in the cluster and is not locked to a node. The backup/restore requests from the clients are directed to the different nodes in Round-Robin fashion - first backup request is directed to the first node, second request to the second node and so on. This load balancing algorithm needs centralized backup data storage solution such as SAN, NAS or Amazon S3. It supports dynamically taking down and adding of nodes to the cluster on-the-fly. This algorithm will be supported in the future releases.
Load Based
This algorithm is very similar to Round Robin, but takes into account the current load in the nodes and assign the backup/restore request to the least loaded node. Like Round Robin, Client is not locked on to a single server instance and this load balancing algorithm needs centralized storage solution such as SAN, NAS or Amazon S3. It supports dynamically taking down and adding of nodes to the cluster on-the-fly. This algorithm will be supported in the future releases.
Clustering requires a common RDBMS database that the cluster nodes share. For Round Robin and Load Load Based clustering, the backup storage should also be common to the nodes.
|