10-24-2011 03:04 PM
This document describes by example how two Zeus Traffic Manager clusters can be joined into one Multi-Site Manager cluster. Before proceeding, ensure that all traffic managers in all clusters are running the latest version of Zeus Traffic Manager. For the purposes of this example, it will be assumed that there are two traffic manager clusters - Cluster A, located in Atlanta, and Cluster B, located in Birmingham. Cluster A will be the master cluster - the members of Cluster B will be added to cluster A in a separate configuration location.
A Basic Example
A simple example will be provided first that merges two clusters running the same service in different locations. The service is called 'Website' and runs on port 80 in both Atlanta and Birmingham.
The end result of merging the clusters will be one cluster from which configurations for both locations can be managed. Each location will receive requests for the Website service on port 80 and will distribute them between their own local back-end web servers. For more advanced configurations and for extra details on the steps involved in merging the cluster, see the more in-depth example that follows this one.
Merging the Clusters
First, on the master cluster - Cluster A - create a new configuration location for the cluster you are about to import. In this example the location will be 'Birmingham'. You should also have a location for your existing cluster - in this case 'Atlanta' - with all the traffic managers in the master cluster assigned to it. The 'Website' service is to be merged, so all the configuration options in Birmingham that are not identical to those in Atlanta need to be specified. In this example only the nodes are different, but if the services run on different ports or use different keepalive settings for example these also need to be separated out by location. To change settings by location, find the configuration option in the Admin Server (in this case, the 'node' setting in the pool 'Website') and click the globe icon to the left of the setting. The value can now be set differently for each location. If the cluster being imported uses any additional configuration files, such as extra TrafficScript rules, that do not exist in the master cluster or if there are any Traffic IP groups in the imported cluster then the more in-depth example after this one should be followed. In this example, all the configuration files already exist in the Atlanta cluster so all you need to do is add the traffic managers in Cluster B to Cluster A. To do this, use the 'Join a Cluster' Wizard from each machine in Cluster B, choosing to join Cluster A in the location 'Birmingham'. When all the traffic managers have been moved, the service should operate as before.
A More General Example
The following example illustrates how to merge clusters that contain both local and global services and where the cluster being imported contains additional configuration files and Traffic IP groups. The same clusters from the previous example will be used - Cluster B located in Birmingham will be imported into Cluster A located in Atlanta. This time, Cluster A contains the following services:
Website (port 80)
Secure FTP (port 21 - local to Atlanta) uses Bandwidth Class 'Bandwidth Limit'
Cluster B contains the following services:
Website (port 80)
RTMP videos (port 1953 - local to Birmingham) uses Bandwidth Class 'Bandwidth Limit'
Management (port 443 - local to Birmingham)
There are two types of services identified here:
Any Traffic IP groups configured in Cluster B will also be migrated to Cluster A but will operate only in the Birmingham location.
Install your MSM license key on Cluster A (the master cluster). Ensure it is valid for all traffic managers in all clusters you want to merge. It does not matter whether Cluster B has an MSM license installed or not. On Cluster A, create a configuration location for every location to which you want to assign traffic managers from the other clusters. In this example, the existing machines in Cluster A will be given the location 'Atlanta' and the machines that currently make up Cluster B will be assigned to 'Birmingham'. All machines in Cluster A are assigned the location 'Atlanta'. The 'Birmingham' location will have no traffic managers assigned to it. The procedure described will work whether you are merging two clusters that are already using Multi-Site Manager or you are merging a normal Zeus Traffic Manager cluster into a Multi-Site Manager cluster.
Both clusters have a bandwidth class named 'Bandwidth Limit', but these represent independent classes with different limits and do not want to be merged. When importing Cluster B into Cluster A, all objects associated with services that are specific to one location should be renamed. In this example, the 'Secure FTP', 'RTMP videos' and 'Management' services are specific to one location. To make it clear to which location they belong, it is suggested that you prepend the location name to the object's name, so the 'Bandwidth Limit' bandwidth class would become 'Atlanta: Bandwidth Limit' in Atlanta and 'Birmingham: Bandwidth Limit' in Birmingham. To see what other objects are used by a service you can use the zconf tool supplied with the traffic manager. Log on to the command line of one of the machines in the cluster and navigate to the Zeus installation directory. From here, run the following command:
1. zxtm/bin/zconf list "vservers/Secure FTP"
The output will be a list of the configuration files used by the service. All of the objects that are not identical in both Cluster A and Cluster B should be renamed. In the following output, the Ping monitor will be identical in both clusters and the bandwidth class has already been renamed. It is recommended that you also rename the other config files, such as the pool and virtual server, for consistency.
2. pools/Secure FTP
4. vservers/Secure FTP
The list of services on Cluster A should now be as follows:
Atlanta: Secure FTP (using 'Atlanta: Bandwidth Limit')
And on Cluster B:
Birmingham: RTMP videos (using 'Birmingham: Bandwidth Limit')
To merge the 'Website' services all the configuration options in Cluster B that are specific to Cluster B need to be identified. In this case, it is the pool's nodes that are different. On Cluster A, go through the configuration of the service that is to be merged and split out by location all the options that need to be specific to an individual location. Set the values to be correct for each location. In this example, add the correct nodes for each location to the Website pool. If the service uses different classes in each location then those setting also needs to be split out between locations. If Birmingham used a bandwidth class 'Bandwidth B' for instance, but Atlanta used a bandwidth class 'Bandwidth A' then the bandwidth_class setting should be set to 'None' for Birmingham until the actual class is imported from Cluster B:
Importing the Configuration
Cluster B's config will now be exported and then imported into Cluster A. To export the config, go to the Administration Server of one of the machines in Cluster B and access the System > Backups page. From there, create a backup, click its name in the list of backups and then export it to disk. For the purposes of this example, it will be assumed that the exported backup is named Cluster-B.tar. Alternatively you can log on to the command line of one of Cluster B's traffic managers to take a backup. Navigate to the Zeus installation directory and run the following command:
1. zxtm/bin/zconf export--file Cluster-B.tar
Copy the exported configuration over to one of the machines in Cluster A. On that machine, move the Cluster-B.tar file into the Zeus installation directory and then navigate to it. The following Zeus MSM Cluster Merge Utility script will be used to import the configuration into Cluster A. Save it in the Zeus installation directory along with Cluster B's exported configuration file:
<a target="_blank" title="MSM Cluster Merge Utility" href="http://www.zeus.com/sites/default/files/media/msm-merge.pl">MSM Cluster Merge Utility</a>
Make the Cluster Merge Utility script executable and then run it, specifying the exported configuration from Cluster B as the only argument:
1. chmod +x msm-merge.pl
2. ./msm-merge.pl Cluster-B.tar
You will be asked to specify the location to which you want to assign the new configuration. Select the correct location (Birmingham in this example) and confirm that you want to go ahead with the import. No existing files will be altered on Cluster A. If Cluster B's configuration contained any Traffic IP groups then the Diagnose page might contain some errors related to them. These errors will be resolved when the traffic managers from Cluster B are moved to Cluster A. After the import is complete, go through and assign the newly imported classes from Cluster B to the appropriate services - in this case 'Birmingham: Bandwidth Limit' should be assigned to 'RTMP videos'. Finally, you can set the local services 'Secure FTP', 'RTMP videos' and 'Management' to be active only in one location by splitting out the virtual server Enabled key between the locations and setting it to 'No' for the location in which it should not not be active.
Importing Traffic Managers
The last stage is to move the traffic managers from Cluster B to Cluster A. First you should disable any Traffic IP groups in Cluster B that have been migrated to Cluster A. When you move a traffic manager over to Cluster A it will raise IPs in any Traffic IP group that it joins. Disabling the groups in Cluster B will stop any duplicate IP conflicts from occurring. Log on to the Administration Server of each machine in Cluster B in turn and run the 'Join a Cluster' Wizard. When going through the Wizard, search for Cluster A and assign the new cluster member to the 'Birmingham' location. Even if you have imported some Traffic IP groups from Cluster B, select the option 'Do not add it to any Traffic IP groups' when prompted.
When all traffic managers have been migrated the Diagnose page should be clear. If any issues are reported, you should try to fix them as advised by the Diagnose page, or contact Zeus Support.