Load Balancing FTP Services for High Availability
In this post, I'm going to take you through the steps of setting up JSCAPE MFT Gateway to establish load balancing across two FTP servers. Load balanced servers can help you achieve high availability for mission critical file transfer services. We're going to start by creating a new FTP cluster consisting of two FTP servers. Once that FTP cluster is ready, we'll then make it accessible to clients by creating an FTP reverse proxy service that will forward client requests to that cluster.
Note: This post has been updated for JSCAPE MFT Gateway 3.0 and higher
Before you configure your JSCAPE MFT Gateway, make sure you already have the following in place:
1. Two (2) redundant JSCAPE MFT Server instances with FTP services enabled.
By "redundant" we mean that these two servers should have the same configurations, i.e. same groups, same users, same services, etc. The easiest way to ensure that your servers will have the same settings is to configure the failover settings of your primary server. That would be JSCAPE MFT Server 1 in the network configuration shown below.
2. One (1) JSCAPE MFT Gateway running on a machine equipped with two NICs.
One NIC on your JSCAPE MFT Gateway should connect to the network containing your servers, while the other NIC should connect to the network containing your client(s). Please refer to the network configuration below.
I've included the IP addresses I used in my lab to serve as reference for the succeeding discussion. You may of course use your own.
Launch your JSCAPE MFT Gateway now and let's get started.
Adding a new FTP cluster
Go now to the Clusters section and click the Add button.
Give your cluster a name (e.g. "FTP Cluster") and select FTP from the Protocol drop-down list.
Next, select your desired load balancing algorithm. Since version 3.0, JSCAPE MFT Gateway has already started supporting several load balancing algorithms, including: Round Robin, Weighted Round Robin, Random, Least Connections, and Weighted Least Connections. For now, just select the default, Round Robin.
After that, click the Add button to start adding your existing FTP servers to this cluster.
Enter the hostname or IP address of the first FTP server into the Host field. Also enter the port number into the Port field. Since this is a regular FTP service, then the port number should be 21. Specify a Timeout value and then check the Enabled check box. When you're done, click the Add button.
Repeat the process for the second FTP server. Make sure you change the value in the Host field to the appropriate hostname or IP address.
After you click Add, you should see those two FTP servers in the list of hosts for this cluster. If everything looks good, click the outer Add button.
You'll then be brought back to the main screen where you should be able to see your newly created cluster in the Clusters section.
Making the FTP service accessible to users
What we've done so far is create an FTP cluster. The service delivered by that cluster should be made available to your users. Here's how you do it.
Navigate to your Services section and click the Add button.
Select FTP from the Protocol drop-down list and then click OK.
In the succeeding screen, start by expanding the Local host drop-down list. You'll see a couple of IP addresses associated with your Gateway machine. Select the IP address facing your clients. In our case, that would be 10.0.0.3.
Enter the port number of your FTP service (21).
Select the Cluster option button and then select the cluster you created earlier (e.g. "FTP Cluster")
Click the Add button.
Here's the newly created FTP reverse proxy service.
You have just learned how to load balance FTP services. To provide load balancing to your other file transfer services, just follow exactly the same process we outlined here. Of course, make sure you change the protocols and the port numbers. As of this writing, the protocols supported by JSCAPE MFT Gateway are: FTP, FTPS Explicit, FTPS Implicit, SFTP/SSH, SMTP, POP3, IMAP4, MySQL, HTTP, HTTPS, and all other TCP services.