Équilibrage de charge

Cette fonctionnalité est conçue pour prendre en charge l’équilibrage de charge sur les serveurs d’enregistrement de session. Pour utiliser cette fonctionnalité, configurez l’équilibrage de charge dans Citrix NetScaler afin que les serveurs d’enregistrement de session puissent réaliser l’équilibrage de charge et le basculement automatique de charge.

Une amélioration a été apportée de manière à ce que certaines configurations d’équilibrage de charge puissent être synchronisées entre tous les serveurs d’enregistrement de session.

Remarque :

Cette fonctionnalité nécessite la version 7.16 ou ultérieure du serveur d’enregistrement de session et de l’agent d’enregistrement de session.

Modifications apportées à l’enregistrement de session pour prendre en charge l’équilibrage de charge :

  • Tous les serveurs d’enregistrement de session partagent le même dossier pour stocker les fichiers d’enregistrement.
  • Tous les serveurs d’enregistrement de session partagent la même base de données d’enregistrement de session.
  • (Recommandé) Installez un seul composant de console de stratégie d’enregistrement de session et tous les serveurs d’enregistrement de session partagent cette console.

Configurer l’équilibrage de charge

Pour utiliser cette fonctionnalité, effectuez les étapes suivantes sur Citrix NetScaler et sur les différents composants de l’enregistrement de session :

Configurer l’équilibrage de charge (dans Citrix NetScaler)

Configurer les serveurs d’équilibrage de charge

Ajoutez les serveurs d’enregistrement de session aux serveurs d’équilibrage de charge dans Citrix NetScaler.

Configurer les services d’équilibrage de charge

  1. Ajoutez un service d’équilibrage de charge pour chaque protocole nécessaire sur chaque serveur d’enregistrement de session.
  2. (Recommandé) Sélectionnez le protocole de surveillance approprié pour lier chaque service de surveillance.

Configurer les serveurs virtuels d’équilibrage de charge

  1. Créez des serveurs virtuels avec la même adresse VIP NetScaler selon les protocoles nécessaires et liez les serveurs virtuels avec les services d’équilibrage de charge appropriés.
  2. Configurez la persistance sur chaque serveur virtuel.
  3. (Recommandé) Choisissez LEASTBANDWITH ou LEASTPACKETS en tant que méthode d’équilibrage de charge plutôt que la méthode par défaut (LEASTCONNECTION).
  4. Créez un certificat pour activer le serveur virtuel HTTPS.

Configurer l’équilibrage de charge (dans l’enregistrement de session)

Sur chaque serveur sur lequel vous avez installé le serveur d’enregistrement de session, procédez comme suit

  1. (Recommandé) Entrez le même nom de base de données d’enregistrement de session que pendant l’installation du serveur d’enregistrement de session.
  2. Si vous choisissez la fonctionnalité de journalisation de l’administrateur, Citrix vous recommande d’entrer le même nom de base de données de journalisation de l’administrateur lorsque vous installez chaque serveur d’enregistrement de session.
  3. Après avoir partagé l’autorisation Lecture/Écriture du dossier de stockage de fichiers avec tous les comptes de machines de serveur d’enregistrement de session, définissez le dossier de stockage de fichiers en tant que dossier partagé dans Propriétés du serveur d’enregistrement de session. Pour plus d’informations, consultez la section Spécifier l’endroit où les enregistrements sont restaurés.
  4. Ajoutez une clé au Registre du serveur d’enregistrement de session (HKEY_LOCAL_MACHINE\Software\Citrix\SmartAuditor\Server).
    Nom de la clé : EnableLB
    Valeur de la clé : 1 (D_WORD, signifie activer)
  5. Si vous choisissez le protocole HTTP ou HTTPS pour la file d’attente des messages du gestionnaire de stockage d’enregistrement de session, créez un hôte pour l’adresse VIP de NetScaler, ajoutez la redirection dans C:\Windows\System32\msmq\Mapping\sample_map et redémarrez le service Message Queuing.

    La redirection est similaire à ceci :

    <redirections xmlns="msmq-queue-redirections.xml">
            <redirection>
                        <from>http://<NetScalerHost>\*/msmq/private$/CitrixSmAudData</from>
                        <to>http://<LocalFqdn>/msmq/private$/CitrixSmAudData</to>
            </redirection>
            <redirection>
                        <from>https://<NetScalerHost>\*/msmq/private$/CitrixSmAudData</from>
                        <to>https://<LocalFqdn>/msmq/private$/CitrixSmAudData</to>
            </redirection>
    </redirections>
    

    <NetScalerHost> est le nom de domaine complet créé depuis l’adresse VIP NetScaler, et <LocalFqdn> le nom de domaine complet de l’hôte local.

  6. (Recommandé) Après avoir configuré un registre de serveur d’enregistrement de session, vous pouvez utiliser le script suivant pour exporter les configurations de ce registre de serveur et importer le registre dans les autres registres du serveur d’enregistrement de session. En outre, vous pouvez utiliser le script pour ajouter un mappage de redirection pour la file d’attente des messages.

    # Copyright (c) Citrix Systems, Inc.  All rights reserved.
    <#
           .SYNOPSIS
    
           This script is used to sync configurations between Session Recording Servers for load balancing deployment.
    
           .DESCRIPTION
    
        Will do below kinds of actions:
    
        1. Export values from the registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server to SrServerConfig.reg;
    
        2. Import from SrServerConfig.reg and overwrite values in registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server;
    
        3. Add redirection mapping sr_lb_map.xml in %windir%\System32\msmq\mapping;
    
           3.1 sr_lb_map.xml will consist redirection rule for both http and https, and not port specific.
    
           .PARAMETER Action
    
           Export - to export the registry configurations of Session Recording Server to a registry file
    
           Import - to import the registry configurations of Session Recording Server from a registry file
    
           AddRedirection - to add HTTP/HTTPS redirection for MSMQ
    
           .PARAMETER NetScalerHost
    
           The host name or FQDN of NetScaler.
    
        .OUTPUTS
    
        Exported configuration file (SrServerConfig.reg) or backup configuration file (SrServerConfig.reg.bk)
    
           .EXAMPLE
    
           SrServerConfigurationSync.ps1 -Action Export
    
           .EXAMPLE
    
           SrServerConfigurationSync.ps1 -Action Import
    
           .EXAMPLE
    
        SrServerConfigurationSync.ps1 -Action AddRedirection -NetScalerHost netscaler.xd.local
    
           .EXAMPLE
    
        SrServerConfigurationSync.ps1 -Action Import,AddRedirection -NetScalerHost netscaler.xd.local
    
           .EXAMPLE
    
        SrServerConfigurationSync.ps1 -Action Import,Export,AddRedirection -NetScalerHost netscaler.xd.local
    
    #>
    
    ######################
    
    # Parameters section #
    
    ######################
    
    Param(
    
           [Parameter(Mandatory = $true)]
    
           [ValidateSet("Export", "Import", "AddRedirection")]
    
           [string[]] $Action,
    
           [Parameter(Mandatory = $false)]
    
           [string] $NetScalerHost
    
    )
    
    #############################
    
    # Default variables section #
    
    #############################
    
    $SR_SERVER_REG_PATH   = "HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server"
    
    $REG_FILE_PATH        = "SrServerConfig.reg"
    
    $REG_BACKUP_FILE_PATH = "SrServerConfig.reg.bk"
    
    $TEMP_REDIRECT_XML    = "sr_lb_map.xml"
    
    $REDIRECT_XML_PATH    = "$env:windir\System32\msmq\mapping"
    
    ############# MAIN ###############
    
    Try
    
    {
    
           If ($Action -Contains "export") {
    
                  Write-Host "Exporting current Session Recording Server Configuration to registry file: $REG_FILE_PATH ..." -ForegroundColor Green
    
                  & REG EXPORT $SR_SERVER_REG_PATH $REG_FILE_PATH /Y
    
                  Write-Host "Finish exporting." -ForegroundColor Green
    
           }
    
           If ($Action -Contains "import")
    
           {
    
                  If (!(Test-Path $REG_FILE_PATH))
    
                  {
    
                         Write-Host "No $REG_FILE_PATH founded. Aborted." -ForegroundColor Yellow
    
                         Exit 0
    
                  }
    
                  # Back up previous registry key
    
                  Write-Host "Backing up Session Recording Server Configuration to Registry file: $REG_BACKUP_FILE_PATH ..." -ForegroundColor Green
    
                  & REG EXPORT $SR_SERVER_REG_PATH $REG_BACKUP_FILE_PATH /Y
    
                  Write-Host "Importing Session Recording Server Configuration from Registry file: $REG_FILE_PATH ..." -ForegroundColor Green
    
                  & REG IMPORT $REG_FILE_PATH 2>$null
    
                  Write-Host "Finish importing." -ForegroundColor Green
    
           }
    
           If ($Action -Contains "addredirection")
    
           {
    
                  # Check if netscaler host is given; If not, exit normally with warning.
    
                  If(([String]::IsNullOrEmpty($NetScalerHost)))
    
                  {
    
                         Write-Host "No NetScaler host name is specified. Finish adding redirection." -ForegroundColor Yellow
    
                         Exit 0
    
                  }
    
                  If (!(Test-Path $TEMP_REDIRECT_XML))
    
                  {
    
                         New-Item $TEMP_REDIRECT_XML -Type file
    
                  }
    
                  $SysInfo = Get-WmiObject -Class Win32_ComputerSystem
    
                  $LocalFqdn = "$($SysInfo.Name).$($SysInfo.Domain)"
    
                  $RedirectXmlContent =
    
    @"
    
    <redirections xmlns="msmq-queue-redirections.xml">
    
           <redirection>
    
                  <from>http://$NetScalerHost*/msmq/private$/CitrixSmAudData</from>
    
                  <to>http://$LocalFqdn/msmq/private$/CitrixSmAudData</to>
    
           </redirection>
    
           <redirection>
    
                  <from>https://$NetScalerHost*/msmq/private$/CitrixSmAudData</from>
    
                  <to>https://$LocalFqdn/msmq/private$/CitrixSmAudData</to>
    
           </redirection>
    
    </redirections>
    
    "@
    
                  # Don't take care of encoding
    
                  $RedirectXmlContent | Out-File -FilePath $TEMP_REDIRECT_XML
    
                  Write-Host "Copying $TEMP_REDIRECT_XML to $REDIRECT_XML_PATH ..." -ForegroundColor Green
    
                  Copy-Item $TEMP_REDIRECT_XML -Destination $REDIRECT_XML_PATH
    
                  Write-Host "Restarting MSMQ service ..." -ForegroundColor Green
    
                  Restart-Service msmq -Force
    
                  Write-Host "Finish adding HTTP/HTTPS Redirection for MSMQ." -ForegroundColor Green
    
           }
    
           Exit 0
    
    }
    
    Catch
    
    {
    
           Write-Host "$_.Exception.Message" -ForegroundColor Red
    
           Exit 1
    
    }
    
    Finally
    
    {
    
           # Nothing to do
    
    }
    
    

6a. Enregistrez l’exemple de code précédent en tant que script PowerShell, par exemple SrServerConfigurationSync.ps1.

6b. Sur un serveur d’enregistrement de session, après avoir configuré la clé de Registre EnableLB, démarrez une invite de commande en tant qu’administrateur et exécutez la commande powershell.exe -file SrServerConfigurationSync.ps1 –Action Export,AddRedirection –NetScalerHost <NetScalerHost>, où <NetScalerHost> est le nom de domaine complet créé de l’adresse VIP NetScaler.

6c. Après l’exécution du script, un fichier de registre exporté nommé SrServerConfig.reg est généré et un fichier sr_lb_map.xml est ajouté au chemin C:\Windows\System32\msmq\Mapping.

6d. Sur d’autres serveurs d’enregistrement de session, copiez le fichier généré SrServerConfig.reg dans l’étape qui précède, démarrez une invite de commande en tant qu’administrateur et exécutez la commande powershell.exe -file SrServerConfigurationSync.ps1 –Action Import,AddRedirection –NetScalerHost <NetScalerHost>, où <NetScalerHost> est le nom de domaine complet créé de l’adresse VIP NetScaler.

6e. Une fois le script exécuté, la clé EnableLB est ajoutée aux autres registres du serveur d’enregistrement de session et un fichier sr_lb_map.xml est ajouté au chemin C:\Windows\System32\msmq\Mapping.

Sur la machine sur laquelle vous avez installé l’agent d’enregistrement de session, effectuez ce qui suit dans les propriétés de l’agent d’enregistrement de session

  • Si vous choisissez le protocole HTTP ou HTTPS pour la file d’attente de messages du gestionnaire de stockage d’enregistrement de session, entrez le nom de domaine complet de l’adresse VIP de NetScaler dans la zone de texte Serveur d’enregistrement de session.
  • Si vous choisissez le protocole TCP par défaut pour la file d’attente de messages du gestionnaire de stockage d’enregistrement de session, entrez l’adresse VIP de NetScaler dans la zone de texte Serveur d’enregistrement de session.

Sur la machine sur laquelle vous avez installé le lecteur d’enregistrement de session, effectuez ce qui suit

Ajoutez l’adresse VIP de NetScaler ou son nom de domaine complet comme serveur d’enregistrement de session connecté.

Sur le serveur SQL Server sur lequel vous avez installé la base de données d’enregistrement de session, effectuez ce qui suit

Ajoutez tous les comptes de machines de serveur d’enregistrement de session à la base de données d’enregistrement de session partagée et attribuez-leur l’autorisation db_owner.

Équilibrage de charge