Citrix ADC

Real-time synchronization between sites participating in GSLB

You can use the AutomaticConfigSync parameter to automatically synchronize the real-time GSLB configuration of the main site to all the subordinate sites. You do not have to manually trigger the AutoSync option to synchronize the configuration.

You can automatically synchronize GSLB configuration of the main site to all the subordinate sites by using incremental synchronization or full synchronization. The GSLBSyncMode parameter allows you to choose the synchronization mode.

Note:

Starting from Citrix ADC release 13.0 build 79.x, incremental synchronization of GSLB synchronization is supported. By default, the synchronization is performed using incremental synchronization. Incremental synchronization can be performed by enabling the IncrementalSync parameter. For details, see Incremental synchronization of GSLB configuration.

Best practices for using the real-time synchronization feature

  • It is recommended that all the Citrix ADC appliances participating as sites have the sameCitrix ADC software version.
  • To change the RPC node password, first change the password on the subordinate site and then on the main site.
  • Configure local GSLB sites on each site participating in GSLB.
  • Enable automaticConfigSync on one of the sites where the configuration is performed. This site eventually gets synchronized to other GSLB sites.
  • If there is a new configuration or changes are made to the existing configuration, make sure to check the status using the show gslb syncStatus command to confirm if the changes are synchronized across all sites or if there was any error.
  • RSYNC port monitoring must be enabled.

To enable real-time synchronization by using the CLI

At the command prompt, type:

set gslb parameter [–automaticConfigSync (ENABLED | DISABLED)] [-MEPKeepAliveTimeout <secs>]  [-GSLBSyncMode ( IncrementalSync | FullSync )] [-GSLBSyncLocFiles ( ENABLED | DISABLED)] [-GslbConfigSyncMonitor ( ENABLED | DISABLED )] [-GSLBSyncInterval <secs>] [-GSLBSyncSaveConfigCommand ( ENABLED | DISABLED )]
<!--NeedCopy-->

Example:

set gslb parameter –automaticConfigSync ENABLED
<!--NeedCopy-->

The real-time synchronization provides the following configurable parameters:

  • GSLBSyncMode-Mode in which configuration is synchronized from main site to remote sites.
    • Possible values: IncrementalSync, FullSync
    • Default value: IncrementalSync
  • GSLBSyncLocFiles—During GSLB config synchronization, by default, the changes in the location DB files are detected and automatically synchronized. Because the location DB directories do not change often, admins can disable automatically synchronizing the location DB files. Instead, admins must manually copy the location DB files to the GSLB subordinate sites. Synchronizing location DB files takes much time. Thus, avoiding it reduces the overall synchronization time.

    Example to disable automatically synchronizing the location DB files:

     set gslb parameter -GSLBSyncMode IncrementalSync -GSLBSyncLocFiles DISABLED
     <!--NeedCopy-->
    
  • GslbConfigSyncMonitor—Enable the GSLB Config Sync Monitor parameter to monitor the state of the subordinate sites’ RSYNC port which is the SSH port 22 on remote GSLB site IP address. If the monitor shows the subordinate site state as DOWN, the RSYNC operation to that site is skipped. This reduces the synchronization delays caused by attempting to connect to the remote sites that are DOWN.

    Example to enable RSYNC port monitoring in CLI:

     set gslb parameter -GSLBSyncMode IncrementalSync -GslbConfigSyncMonitor ENABLED
     <!--NeedCopy-->
    
  • GSLBSyncInterval—Set the time interval (in seconds) at which the GSLB configuration synchronization occurs. By default, the automatic GSLB configuration sync feature synchronizes the GSLB configuration automatically at every 10 seconds. You can change the time interval to any desired value. Refrain from setting this to a lower value, for example, not lesser than 5 seconds. Because synchronizing frequently might increase the management CPU consumption.

    Note:

    In an admin partition setup, the time interval can be set only in the default partition because it is a global parameter.

    Example to set the sync interval:

     set gslb parameter -AutomaticConfigSync ENABLED -GSLBSyncMode IncrementalSync -GSLBSyncInterval 7
     <!--NeedCopy-->
    
  • GSLBSyncSaveConfigCommand—Enable this parameter to synchronize the save ns config command to subordinate sites, if the AutomaticConfigSync option is enabled.

    Example to enable the synchronization of ‘Save Config’ Command:

     set gslb parameter -AutomaticConfigSync ENABLED -GSLBSyncSaveConfigCommand ENABLED
     <!--NeedCopy-->
    

    The save ns config command isn’t synchronized to subordinate sites in certain scenarios as follows:

    • Subordinate site is down or unreachable when config is saved on main site.
    • Configuration has failed on a subordinate site.

To enable real-time synchronization by using the GUI

  1. Navigate to Configuration > Traffic Management > GSLB > Change GSLB Settings.
  2. In the Set GSLB Parameters page, you can perform the following:
    • To automatically synchronize the real-time GSLB configuration, select Automatic ConfigSync.

    Note: This option must be enabled only in the site where the configuration is performed.

    • To set the Automatic GSLB config sync interval, enter the time in seconds in the GSLB Sync Interval field.
    • To enable RSYNC port monitoring, select the GSLB Config Sync Monitor check box.
    • To disable automatically synchronizing the location DB files, clear the GSLB Sync Loc Files check box.
    • To enable synchronizing of the save ns config command to the subordinate sites, select Sync Save Config Command check box.

    Set GSLB Parameters

For information on the following topics, see Manual synchronization between sites participating in GSLB.

  • Previewing GSLB synchronization
  • Debugging the commands triggered during the synchronization process

Points to note

  • The consolidated log file related to the real-time synchronization is stored in the /var/netscaler/gslb/periodic_sync.log directory.
  • The default configuration file is stored in the /var/netscaler/gslb_sync/ directory.
  • The main site uses the following directory structure:
    • The main site stores all its files in the /var/netscaler/gslb_sync/master directory.
    • The main site stores its configuration file that must be synced to the subordinate sites, in the /var/netscaler/gslb_sync/master/gslbconf/ directory.
    • The status files pulled from all the subordinate sites are stored in the /var/netscaler/gslb_sync/master/slavestatus/ directory.
  • The subordinate site uses the following directory structure:
    • The subordinate site picks up the latest configuration file to be applied from the /var/netscaler/gslb_sync/slave/gslbconf directory.
    • The subordinate site stores its status file in the /var/netscaler/gslb_sync/slave/gslbstatus directory.
  • In an admin partition setup, the same directory structure is maintained in the location: /var/partitions/partition name/netscaler/gslb_sync.
  • The clocks on all the sites must be set accurately to a real-time standard like Coordinated Universal Time (UTC).

Incremental synchronization of GSLB configuration

The automatic GSLB configuration synchronization feature checks for the configuration changes on the main site at the interval of every 10 seconds, and performs a synchronization. This sync interval value is configurable.

In incremental synchronization, only the configurations that have changed on the main site between the last synchronization and the subsequent sync interval (10 secs) is synchronized across all the subordinate sites. Incremental synchronization is the default behavior. Pushing only the incremental configurations considerably reduces the configuration file size, and thus the synchronization time. If an incremental synchronization fails, the system automatically performs a full configuration synchronization.

Incremental synchronization is performed in the following manner:

  • The main site pushes the configuration file comprising of only its latest changes to all the subordinate sites. The latest change refers to the configurations that has changed between the last synchronization and the subsequent sync interval (10 secs).
  • Each subordinate site applies the latest change to its own site.
  • Incremental synchronization in not attempted on the subordinate sites, which are in DOWN state. When the site comes back UP, again synchronization is performed.
  • The subordinate site generates status logs at each step and copies them to a file at a specific location.
  • The main site pulls the status log files from the specified location.
  • The main site prepares a log file with logs combined from all the subordinate sites.
  • This combined log file is stored in the “/var/netscaler/gslb/periodic_sync.log” file.

For more information on the directories where the configuration files are stored, see Points to note section.

To enable GSLB configuration incremental synchronization by using the CLI

set gslb parameter -AutomaticConfigSync (ENABLED | DISABLED) -GSLBSyncMode (IncrementalSync | FullSync) -GslbConfigSyncMonitor (ENABLED | DISABLED) -GSLBSyncInterval <secs> -GSLBSyncLocFiles (ENABLED | DISABLED)
<!--NeedCopy-->

Example:

set gslb parameter -AutomaticConfigSync ENABLED -GSLBSyncMode IncrementalSync
<!--NeedCopy-->

To enable GSLB incremental synchronization by using the GUI

  1. Navigate to Traffic Management > GSLB > Dashboard > Change GSLB settings.
  2. In the Set GSLB Parameters page, choose IncrementalSync from the GSLB Sync Mode drop-down menu.

Full synchronization of GSLB configuration

Whenever there is a configuration change in the main site, the complete GSLB running configuration on the main site is pushed to all the subordinate sites. Even if incremental synchronization is configured, a full synchronization is performed when the main site does not know the configuration status of the subordinate site. Some of such scenarios are as follows:

  • Enable the automatic GSLB configuration synchronization feature for the first time.
  • Reboot the Citrix ADC appliance.
  • GSLB deployment has multiple main sites, and another main site becomes the active main site.
  • Add a new subordinate site to the GSLB deployment.

GSLB configuration full synchronization is performed in the following manner:

  • The main site pushes its latest configuration file to all the subordinate sites.
  • Each subordinate site compares its own configuration with the latest configuration file sent by the main site. The subordinate site identifies the difference in configuration, and applies the delta configuration for its own site.
  • The subordinate site generates status logs at each step and copies them to a file at a specific location.
  • The main site pulls the status log files from the specified location.
  • The main site prepares a log file with logs combined from all the subordinate sites.
  • This combined log file is stored in the “/var/netscaler/gslb/periodic_sync.log” file.

If you attempt to manually synchronize (with the sync gslb config command) a site while it is being autosynchronized, a “Sync in progress” error message appears. Autosynchronization cannot be triggered for a site that is in the process of being synchronized manually.

Attention:

Starting with Citrix ADC 12.1 build 49.37, SNMP traps are generated when you synchronize the GSLB configuration. In real-time synchronization, the synchronization status in the first SNMP trap is captured as failure. You can ignore this status because a second SNMP trap is automatically generated immediately after the first trap with the actual synchronization status. However, if the synchronization failed in the second attempt also, SNMP trap is not generated because the synchronization status has not changed from the previous synchronization status.

For details on configuring Citrix ADC appliance to generate traps, see Configuring the Citrix ADC to generate SNMP traps.

To enable GSLB full synchronization by using the CLI

set gslb parameter -GSLBSyncMode (IncrementalSync | FullSync)
<!--NeedCopy-->

Example:

set gslb parameter -GSLBSyncMode FullSync
<!--NeedCopy-->

To enable GSLB incremental synchronization by using the GUI:

  1. Navigate to Traffic Management > GSLB > Dashboard > Change GSLB settings.
  2. In the Set GSLB Parameters page, choose FullSync from the GSLB Sync Mode drop-down menu.

Multiple main sites in a GSLB deployment

The Citrix ADC appliance supports multiple main sites in an active-passive deployment. It is recommended to have two main sites in a GSLB deployment to cope against GSLB main site failure. Having two main sites can avoid single point of failure of GSLB configuration synchronization. At any time, only one main site can actively process the GSLB configuration from the user. If the configuration changes are performed simultaneously in more than one main site, it might lead to configuration inconsistency or configuration losses. Hence, it is recommended to perform configuration changes from only one main site at a time, and use the other main site as a backup when the active main site fails.

Note:

When multiple main sites are used in a GSLB deployment, RSYNC monitoring must be enabled.

To make a GSLB node as one of the main sites for GSLB configuration synchronization, run the following command:

set gslb parameter -automaticConfigSync Enabled
<!--NeedCopy-->