Equilibrio de carga

Con esta funcionalidad se permite el equilibrio de carga entre los servidores de Grabación de sesiones. Para utilizar esta característica, configure el equilibrio de carga en Citrix NetScaler para que los Servidores de grabación de sesiones puedan equilibrar la carga y conmutar por error automáticamente.

Algunas configuraciones de equilibrio de carga se pueden sincronizar entre todos los Servidores de grabación de sesiones.

Nota:

Esta característica requiere la versión 7.16 o posterior del Servidor de grabación de sesiones y del Agente de grabación de sesiones.

Cambios en la Grabación de sesiones para respaldar el equilibrio de carga:

  • Todos los Servidores de grabación de sesiones comparten la misma carpeta para almacenar los archivos de grabación.
  • Todos los Servidores de grabación de sesiones comparten la misma Base de datos de grabación de sesiones.
  • (Recomendado) Instale solo una Consola de directivas de grabación de sesiones y todos los Servidores de grabación de sesiones pueden compartirla.

Configuración de equilibrio de carga

Para usar esta característica, realice los siguientes pasos en Citrix NetScaler y en los diversos componentes de Grabación de sesiones:

Configuración de equilibrio de carga (parte de Citrix NetScaler)

Configuración de servidores de equilibrio de carga

En Citrix NetScaler, agregue los Servidores de grabación de sesiones a los servidores de equilibrio de carga.

Configuración de servicios de equilibrio de carga

  1. Agregue un servicio de equilibrio de carga para cada protocolo necesario en cada uno de los Servidores de grabación de sesiones.
  2. (Recomendado.) Seleccione el monitor de protocolo correspondiente para enlazar cada monitor de servicio.

Configuración de servidores virtuales de equilibrio de carga

  1. Cree servidores virtuales con la misma dirección IP virtual de NetScaler, basada en los protocolos necesarios, y enlace esos servidores virtuales a los servicios pertinentes de equilibrio de carga.
  2. Configure la persistencia en cada servidor virtual.
  3. (Recomendado.) Seleccione LEASTBANDWITH o LEASTPACKETS como el método de equilibrio de carga, en lugar del método predeterminado (LEASTCONNECTION).
  4. Cree un certificado para el servidor virtual HTTPS.

Configurar el equilibrio de carga (parte de Grabación de sesiones)

En cada servidor donde instaló el Servidor de grabación de sesiones, haga lo siguiente

  1. (Recomendado) Escriba el mismo nombre de la Base de datos de grabación de sesiones durante la instalación del Servidor de grabación de sesiones.
  2. Si elige la función Registro de administrador, Citrix recomienda que especifique el mismo nombre de base de datos de Registro de administrador cuando instale cada Servidor de grabación de sesiones.
  3. Después de compartir el permiso de lectura y escritura en la carpeta de almacenamiento de archivos con todas las cuentas de equipo de Servidor de grabación de sesiones, realice cambios para utilizar la carpeta de almacenamiento de archivos como carpeta compartida en Propiedades del Servidor de grabación de sesiones. Para obtener más información, consulte Cómo especificar dónde se almacenan las grabaciones.
  4. Agregue una clave al Registro del Servidor de grabación de sesiones (HKEY_LOCAL_MACHINE\Software\Citrix\SmartAuditor\Server).
    Nombre de la clave: EnableLB
    Valor de la clave: 1 (D_WORD, para habilitar)
  5. Si elige el protocolo HTTP o HTTPS para la cola de mensajes del Administrador de almacenamiento de grabación de sesiones, cree un host para la dirección IP virtual de NetScaler, agregue la redirección de C:\Windows\System32\msmq\Mapping\sample_map y reinicie el servicio Message Queuing.

    La redirección es similar a:

    <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>
    

    Donde <NetScalerHost> es el FQDN de creado de la dirección IP virtual de NetScaler, y <LocalFqdn> es el nombre FQDN del host local.

  6. (Recomendado) Después de configurar el Registro de Windows de un Servidor de grabación de sesiones, puede usar el siguiente script para exportar sus configuraciones e importarlas en los Registros de Windows de los demás Servidores de grabación de sesiones. Además, puede usar el script para agregar la asignación de la redirección de cola de mensajes.

    # 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. Guarde el código de ejemplo anterior como un script de PowerShell; por ejemplo, SrServerConfigurationSync.ps1.

6b. En un Servidor de grabación de sesiones, después de configurar la clave de Registro EnableLB, inicie un símbolo del sistema como administrador y ejecute el comando powershell.exe -file SrServerConfigurationSync.ps1 –Action Export,AddRedirection –NetScalerHost <NetScalerHost> donde <NetScalerHost> es el FQDN de creado de la dirección IP virtual de NetScaler.

6c. Después de ejecutar el script, se genera un archivo de Registro llamado SrServerConfig.reg y se agrega un archivo sr_lb_map.xml a la ruta C:\Windows\System32\msmq\Mapping.

6d. En otro Servidor de grabación de sesiones, copie el archivo SrServerConfig.reg generado en el paso anterior, abra un símbolo del sistema como administrador y ejecute el comando powershell.exe -file SrServerConfigurationSync.ps1 –Action Import,AddRedirection –NetScalerHost <NetScalerHost>, donde <NetScalerHost> es el nombre FQDN creado de la dirección IP virtual de NetScaler.

6e. Una vez ejecutado el script, la clave EnableLB se agrega a los Registros de Windows de los demás Servidores de grabación de sesiones y se agrega el archivo sr_lb_map.xml a la ruta C:\Windows\System32\msmq\Mapping.

En la máquina donde instaló el Agente de grabación de sesiones, realice lo siguiente en las propiedades del Agente de grabación de sesiones

  • Si elige el protocolo HTTP o HTTPS para la cola de mensajes del Administrador de almacenamiento de grabación de sesiones, escriba el FQDN de la dirección IP virtual de NetScaler en el cuadro de texto Servidor de grabación de sesiones.
  • Si elige el protocolo TCP predeterminado para la cola de mensajes del Administrador de almacenamiento de grabación de sesiones, escriba la dirección IP virtual de NetScaler en el cuadro de texto Servidor de grabación de sesiones.

En la máquina donde instaló el Reproductor de grabación de sesiones, realice lo siguiente

Agregue la dirección IP virtual de NetScaler o su FQDN como el Servidor de grabación de sesiones conectado.

En el servidor SQL donde instaló la Base de datos de grabación de sesiones, realice lo siguiente

Agregue todas las cuentas de equipo del Servidor de grabación de sesiones a la Base de datos de grabación de sesiones compartida y concédales el permiso db_owner.

Equilibrio de carga