Bases de datos de SQL Server y Citrix Virtual Apps and Desktops

Microsoft SQL Server es un componente importante de cualquier implementación de Citrix Virtual Apps and Desktops (CVAD).
Planificar y comprender las interacciones de Citrix SQL es muy beneficioso para usted y su organización a la hora de mantener un entorno Citrix saludable y con buen rendimiento.
La falta de alta disponibilidad de SQL Server y de amplios recursos informáticos tiene un efecto negativo en la experiencia del usuario y el tiempo de actividad de la infraestructura de Citrix.

Resumen base de datos

Hay 3 bases de datos que se requieren o se crean durante la implementación de Citrix Virtual Apps and Desktops:

Sitio:(también conocido como configuración del sitio) Almacena la configuración del sitio en ejecución, además de los datos dinámicos relacionados con la intermediación, como la información sobre el estado actual de la sesión, la conexión, la carga y el estado de Virtually Delivery Agent (VDA).

Registro de configuración:(también conocido como registro) Almacena información sobre los cambios en la configuración del sitio y las actividades administrativas. Esta base de datos se usa cuando la función Registro de configuración está habilitada (opción predeterminada).

Supervisión:almacena los datos utilizados por el Director, como la información de sesión y conexión.

Durante la configuración inicial de Citrix Virtual Apps and Desktops, se crean tres bases de datos independientes, ya sea mediante Studio o mediante la ejecución de scripts en SQL Server.

Para entornos con bases de datos de monitorización de gran tamaño, una configuración ideal es alojar la base de datos de supervisión en un servidor diferente al de las bases de datos de configuración del sitio y registro de configuración.
Registra más datos, los cambios se producen con mayor frecuencia y los datos no se consideran tan críticos como las demás bases de datos.
Para obtener más información, consulte el artículo Cómo cambiar las ubicaciones de la base de datos de la base de datos de registro de supervisión y configuración .

Asegúrese de que haya una supervisión adecuada del servidor SQL y de la base de datos para detectar los eventos de error y los problemas.

Interacción de Citrix con SQL

Los Delivery Controllers utilizan la base de datos como un bus de mensajes para las comunicaciones con los intermediarios y almacenan los datos de configuración, supervisión y auditoría.
Las bases de datos se utilizan constantemente y pueden consumir importantes recursos informáticos en el servidor SQL.

Las etapas de enumeración de recursos (recursos identificados y presentados al usuario), lanzamiento de recursos e inicio de sesión requieren que Citrix Delivery Controller interactúe con el servidor SQL.

Enumeración:
Tras la autenticación correcta mediante NetScaler y StoreFront, el Delivery Controller se pone en contacto con la base de datos del sitio de Citrix para comprobar qué aplicaciones están disponibles para el usuario, según las credenciales de AD. Cuando se identifican los recursos, se extrae información adicional (como nombres de aplicaciones, escritorios e iconos) de la base de datos.

Inicio:
cuando el usuario selecciona la aplicación o el escritorio que se va a iniciar, StoreFront envía una solicitud de inicio a Delivery Controller. El Delivery Controller se pone en contacto con la base de datos del sitio en el servidor SQL para seleccionar el VDA adecuado al que enviar al usuario.

Inicialización de la sesión:
Tras el inicio de la sesión, el VDA se pone en contacto con el Delivery Controller para escribir la información de la sesión en la base de datos del sitio.

Recomendaciones para las bases

Para asegurarse de que una interrupción de SQL Server tenga un impacto mínimo en la infraestructura de Citrix Virtual Apps and Desktops, los clientes pueden elegir entre las siguientes opciones de bases de datos de alta disponibilidad :

  • Instancias en clúster de conmutación por error de AlwaysOn de SQL Server
  • Grupos de disponibilidad AlwaysOn de SQL Server (incluidos los grupos de disponibilidad básica)
  • Crear reflejo de la base de datos de SQL Server

Citrix recomienda utilizar el mismo enfoque de alta disponibilidad para las tres bases de datos.
Por ejemplo, si tiene previsto utilizar los grupos de disponibilidad de SQL AlwaysOn como estrategia de HA, utilícelos para los tres objetos de la base de datos.

También le recomendamos que realice una copia de seguridad diaria completa de las propias bases de datos de Citrix, especialmente de la base de datos del sitio.

Los períodos de retención varían según los requisitos de la organización, pero lo habitual es mantener siete días de copias de seguridad completas y al menos un mes de copias de seguridad semanales.
Los cronogramas de respaldo de los registros de transacciones deben basarse en una combinación de los estándares de la organización y la tasa de crecimiento del registro de transacciones.
Asegúrese de supervisar el almacenamiento disponible en el servidor SQL.

Alinee su modelo de recuperación para las bases de datos de Citrix con los requisitos del enfoque de alta disponibilidad que está adoptando.

Según una recomendación de Microsoft, los clientes configuran planes de mantenimiento que se ejecuten todas las noches y semanalmente para mantener los índices de las bases de datos. Los planes de mantenimiento pueden simplemente reorganizar los índices durante la noche durante la semana y reconstruir los índices los fines de semana.

De este modo, se evita cualquier impacto en el rendimiento derivado de la reconstrucción de índices grandes durante las operaciones diarias, especialmente en el caso de una base de datos de monitoreo grande.
Microsoft recomienda que los índices se reconstruyan si están fragmentados en más del 30% y que se reorganicen si están menos del 30%.

Caché de host local

Para tener en cuenta los casos en los que la base de datos deja de estar disponible, Citrix proporciona la función Local Host Cache (LHC) con Citrix Virtual Apps and Desktops.

Esta opción permite a los usuarios de aplicaciones y escritorios publicados conectarse si se interrumpe la comunicación entre los Delivery Controllers y la base de datos de configuración del sitio de Citrix.
Si SQL está configurado en una arquitectura de alta disponibilidad, como AlwaysOn o Mirroring, esta función ofrece una tolerancia a errores adicional cuando se produce una interrupción total de SQL o se interrumpe la conectividad de la red.

Esto no debe considerarse una alternativa a la alta disponibilidad de SQL, ya que la funcionalidad de administración del sitio no está disponible durante una interrupción de SQL y el proceso de conmutación por error no es instantáneo.

En caso de que se produzca una interrupción de SQL, la funcionalidad de intermediación se pierde hasta que se haga la transición al LHC y los VDA se registren de nuevo.
Este escenario también ocurre cuando se vuelve al modo normal de operación cuando se restaura la conectividad/disponibilidad de SQL.

La caché de host local guarda una copia de los datos estáticos del sitio en una base de datos LocalDB local de SQL Express en cada Delivery Controller. Se basa en estos datos durante una interrupción de la base de datos para respaldar de forma continua los registros de VDA y las solicitudes de intermediación de sesiones.

Para los sitios de Citrix Virtual Apps and Desktops con varias zonas, existe un LHC independiente para cada zona.
Los Delivery Controllers de la zona guardan los datos dinámicos específicos de su zona en la base de datos local de SQL Express.

Consideraciones de diseño de caché de host

Debido a las numerosas variables que existen en las implementaciones empresariales, se recomienda trabajar en estrecha colaboración con Citrix para determinar los recursos adicionales necesarios para usar el LHC.
En un entorno Citrix Virtual Apps and Desktops, la escalabilidad del LHC y de las zonas depende de la velocidad de inicio de sesión y del número de usuarios.

  • Consideraciones sobre la escalabilidad
    • El límite máximo para el LHC de Citrix Virtual Apps and Desktops 2203 LTSR es de 10 000 VDA en una sola zona y 40 000 VDA en una implementación de varias zonas.
    • La escalabilidad real puede ser inferior a los máximos publicados. Recomendamos considerar la posibilidad de añadir zonas si el número de sesiones previsto supera las 10 000 o si la tasa de inicio de sesión es superior a 10 usuarios por segundo.
  • Tallaje de Delivery Controller
    • Cuando el LHC está activo, el Delivery Controller (DC) principal elegido por zona gestiona todos los registros, enumeraciones, lanzamientos y actualizaciones de los VDA.
    • RAM: los servicios del LHC pueden consumir más de 2 GB de RAM en función de la duración de la interrupción y del número de inicios del usuario.
    • CPU: debido a la carga adicional de la CPU en la DC elegida, considere la posibilidad de utilizar núcleos adicionales para compensarla.

    La configuración de la CPU de un controlador, en particular la cantidad de núcleos disponibles para la base de datos local de SQL Server Express, afecta directamente al rendimiento de la caché del host local.
    La sobrecarga de la CPU solo se observa durante el período de interrupción, cuando no se puede acceder a la base de datos y el servicio de alta disponibilidad está activo.

    Si bien LocalDB puede usar varios núcleos (hasta 4), está limitado a un solo socket.
    Agregar más enchufes no mejora el rendimiento. En vez de ello, Citrix recomienda usar varios sockets con varios núcleos.
    En las pruebas de Citrix, una configuración de 2x3 (2 sockets, 3 núcleos) proporcionó un mejor rendimiento que las configuraciones de 4x1 y 6x1.

  • Almacenamiento: Durante el modo LHC, el uso del almacenamiento aumenta aproximadamente 1 MB cada 2-3 minutos, suponiendo un promedio de 10 inicios de sesión por segundo.

Para obtener más información, consulte el artículo Caché de host local.

Efectos de una interrupción de la base de datos

En el caso de una interrupción total de la base de datos, casi todas las funciones críticas de Delivery Controller se ven afectadas, lo que pone de manifiesto la necesidad de implementar una de las estrategias de alta disponibilidad de SQL recomendadas.
En la siguiente tabla se indican estos efectos:

Componente Impacto de la interrupción de la base de datos
Base de datos de configuración del sitio Los usuarios no pueden conectarse ni volver a conectarse a una aplicación o escritorio virtual.
Base de datos de supervisión Director no muestra ningún dato histórico y no se puede iniciar Studio. La intermediación de las solicitudes de los usuarios entrantes y las sesiones de usuario existentes no se ve afectada.
Base de datos de registros de configuración Si Permitir cambios cuando se desconecta la base de datos se ha habilitado en las preferencias de registro de Citrix Virtual Apps and Desktops, una interrupción de la base de datos de registro de configuración no tiene ningún impacto (excepto los cambios de configuración que no se están registrando). De lo contrario, los administradores no podrán realizar ningún cambio en el entorno de Citrix Virtual Apps and Desktops.

Nota: Consulte la sección Qué no está disponible durante una interrupción y otras diferencias para obtener más información sobre este tema.

Recomendación de tamaño de SQL

El servidor SQL debe tener el tamaño correcto para garantizar el rendimiento y la estabilidad de un entorno. Dado que cada producto Citrix usa SQL Server de una manera diferente y cada cliente tiene patrones de uso diferentes, no se pueden proporcionar recomendaciones de tamaño genéricas.
En su lugar, las recomendaciones de tamaño de SQL Server por producto se proporcionan más adelante, y el rendimiento debe supervisarse cuidadosamente durante la implementación para validar las suposiciones de tamaño.

Para un entorno SQL que solo aloja bases de datos relacionadas con Citrix, los servidores SQL deben aprovisionarse con un mínimo de 4 vCPU y 8 GB de RAM para un máximo de 10 000 usuarios.
Para implementaciones más grandes o implementaciones con altas tasas de inicio de sesión, recomendamos un mínimo de 8 vCPU y 16 GB de RAM.

Para obtener más información sobre los conceptos de tamaño de bases de datos SQL, consulte el tamaño de bases de datos de Citrix XenDesktop 7.x . Este artículo también incluye información sobre las funciones de la carga de trabajo, como la tasa estimada de crecimiento del registro de transacciones.

Tenga en cuenta que la base de datos de supervisión varía en tamaño según la configuración de retención de datos.
Además, las versiones más recientes del producto tienen más opciones y puntos de datos que consumen más espacio (por ejemplo, LTSR 2203 frente a LTSR 1912).
Para obtener más información sobre la configuración de estas opciones, consulte Supervisar la configuración de las políticas .

Actualizaciones y correcciones de CU

Varias veces al año, Citrix publica actualizaciones acumulativas (CU) para los LTSR de Citrix Virtual Apps and Desktops. Estas CUs solo contienen actualizaciones de seguridad y correcciones de errores, sin nuevas funciones introducidas.

Citrix recomienda ejecutar las CU más recientes, porque solucionan los problemas que se han identificado en el producto. Algunas de estas correcciones están relacionadas con SQL. Abordan los problemas identificados por Citrix o nuestros clientes (por ejemplo, bloqueos, interbloqueos o procedimientos almacenados).

Somos conscientes de que la aplicación de actualizaciones integrales a los entornos de Citrix Virtual Apps and Desktops requiere tiempo y una planificación adecuada (especialmente en situaciones críticas que funcionan las 24 horas del día, los 7 días de la semana), pero Citrix recomienda encarecidamente mantenerse lo más actualizado posible con respecto a las CU para un estado y un rendimiento generales óptimos.

La documentación más reciente

Este documento destaca la importancia de SQL en los entornos Citrix Virtual Apps and Desktops, incluida la estrategia de alta disponibilidad y varias consideraciones. No pretende ser una bibliografía completa sobre las recomendaciones de Citrix y SQL. Para obtener detalles adicionales e información actualizada, consulte estos documentos:

Bases de datos Citrix Virtual Apps and Desktops

Caché de host local de Citrix

Tamaño de bases de datos Citrix XenDesktop 7.x

Bases de datos de SQL Server y Citrix Virtual Apps and Desktops