Conceptos avanzados

SQL Server y las bases de datos de Citrix

Microsoft SQL Server es un componente importante de cualquier implementación de Citrix Virtual Apps and Desktops. Planificar y comprender las interacciones de Citrix SQL es muy beneficioso para usted y su organización para mantener un entorno Citrix sano 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 Citrix.

Resumen de la 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 datos dinámicos relacionados con la intermediación, como el estado actual de la sesión, la conexión, la carga y la información de estado de VDA.

Registro de configuración (también conocido como Registro): Almacena información sobre los cambios de 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 Director, como la información de sesión y conexión.

En versiones anteriores de Citrix Virtual Apps and Desktops como XenApp y XenDesktop 7.6, la base de datos necesaria para Citrix Virtual Apps and Desktops ha creado como una base de datos durante la configuración inicial del sitio (a través de Studio o ejecutando scripts en SQL Server). Después de la instalación, el administrador podría dividirlo en diferentes bases de datos para mejorar el rendimiento o cumplir con las directrices de backup y seguridad.

Con las versiones más recientes de Citrix Virtual Apps and Desktops, puede crear las bases de datos durante la configuración inicial del sitio, así como mediante Studio, o ejecutando scripts en SQL Server. Su base de datos se divide automáticamente en tres bases de datos independientes.

Para entornos con bases de datos de supervisión grandes, una configuración ideal sería alojar la base de datos de supervisión en un servidor diferente de las bases de datos Configuración del sitio y Registro de configuración. Registra más datos, los cambios ocurren con más frecuencia y los datos no se consideran tan críticos como las otras bases de datos. Para obtener más información, consulte Guía para el tamaño de la base de datos o la página 97 en Manual de VDI.

Cada actualización acumulativa (CU) para la versión de servicio a largo plazo (LTSR) contiene correcciones al esquema de base de datos SQL. Por ejemplo, consulte CTX230536. Para proteger mejor su entorno frente a problemas inesperados, asegúrese de que tiene un proceso para actualizar periódicamente su entorno a la CU más reciente. Además, asegúrese de que el servidor SQL y la supervisión de base de datos estén en su lugar para detectar eventos de error y problemas con la alta utilización de recursos y el espacio libre.

Interacción de Citrix con SQL

Citrix Virtual Apps and Desktops Brokers utilizan la base de datos como un bus de mensajes para las comunicaciones del broker, el almacenamiento de datos de configuración, supervisión y auditoría. Las bases de datos están constantemente en uso y pueden consumir recursos informáticos significativos en el servidor SQL.

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

Enumeración: después de la autenticación correcta a través de Citrix ADC y StoreFront, Delivery Controller se pone en contacto con la base de datos del sitio Citrix para comprobar qué aplicaciones están disponibles para el usuario, en función de las credenciales de AD. Cuando se identifican recursos, se extrae de la base de datos información adicional, como nombres de aplicaciones, escritorios e iconos.

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

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

Recomendaciones de bases de datos

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

  • Grupos de disponibilidad AlwaysOn
  • Clústeres de conmutación por error AlwaysOn
  • Grupos de disponibilidad básica
  • Hipervisor HA*

Nota:

Aunque Citrix admite Hypervisor HA, no se recomienda utilizarlo en entornos que alojen aplicaciones EHR, donde el tiempo de actividad es de suma importancia.

Citrix y Epic recomiendan utilizar el mismo enfoque de alta disponibilidad para las tres bases de datos, aunque el registro de configuración y la supervisión de la disponibilidad de la base de datos no son necesarios para el establecimiento de sesiones de usuario final. Por ejemplo, si planea utilizar el grupo de disponibilidad siempre activa de SQL como estrategia de HA, úselo para los tres objetos de base de datos.

También se recomienda realizar una copia de seguridad diaria completa de las bases de datos 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 es típico mantener siete días de copias de seguridad completas y al menos un mes de copias de seguridad semanales. Las programaciones de copia de seguridad del registro 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 en relación con la cantidad de almacenamiento disponible que debe asignar. Asegúrese de supervisar el almacenamiento disponible en su servidor SQL.

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

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

Esta recomendación evita cualquier impacto en el rendimiento de la reconstrucción de índices grandes durante las operaciones diarias, especialmente para una base de datos de supervisión grande.

Microsoft recomienda que los índices se reconstruyan si son mayores del 30% fragmentados y que se reorganicen si son inferiores al 30%. Consulte la sección Mantenimiento de bases de datos.

Caché de host local

Para tener en cuenta los casos en los que la base de datos deja de estar disponible, Citrix agregó la función Caché de host local (LHC) a la plataforma Citrix Virtual Apps and Desktops Desktop 7.x (7.12 y versiones posteriores, incluidos XenApp y XenDesktop 7.15 LTSR). Habilitar esta opción permite a los usuarios de Aplicaciones Publicadas conectarse si se interrumpe la comunicación entre 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 Always On, Mirroring o Clustering, esta función ofrece tolerancia a errores adicional cuando se produce una interrupción completa de SQL o se interrumpe la conectividad de red.

Esto no debe considerarse una alternativa a la alta disponibilidad de SQL, ya que la funcionalidad de administración de sitios no está disponible durante una interrupción de SQL y el proceso de conmutación por error no es instantáneo. En caso de una interrupción de SQL, la funcionalidad de intermediación se pierde hasta que se haya transferido al LHC y los VDA se han vuelto a registrar. Este caso también se encuentra al volver a la transición al modo normal de operación cuando se restaura la conectividad/disponibilidad de SQL.

La caché de host local conserva una copia de los datos del sitio estático en una base de datos local de SQL Express LocalDB en cada Delivery Controller y se basa en estos datos durante una interrupción de la base de datos para admitir continuamente registros de VDA y solicitudes de intermediación de sesiones.

Consideraciones de diseño de caché de host local

Debido a la variación en el tamaño de las implementaciones de miembros de Epic Community, se recomienda que trabaje estrechamente con Citrix para determinar los recursos adicionales necesarios para utilizar LHC.

  • Consideraciones sobre la escalabilidad
    • Los límites máximos documentados para el LHC en XenApp y Xendesktop 7.15 son 10 000 VDA en una zona única y 40 000 VDA en una implementación multizona. En un entorno de Citrix Virtual Apps, la escalabilidad de LHC y zona depende de la velocidad de inicio de sesión y el recuento de usuarios. Por lo tanto, la escalabilidad real que se observa en su entorno puede ser inferior a los máximos publicados. Para esta arquitectura, recomendamos considerar zonas adicionales si el recuento de sesiones esperado supera los 10 000 y/o la tasa de inicio de sesión es superior a 10 usuarios por segundo.
  • Tamaño de Delivery Controller: Cuando LHC está activo, el Delivery Controller (DC) principal elegido por zona gestiona todos los registros, enumeraciones, inicios y actualizaciones de VDA.
    • RAM: Los servicios de caché del host local pueden consumir 2 GB más de RAM dependiendo de la duración de la interrupción y del número de usuarios que se inician durante la interrupción.
    • CPU: Debido a la carga adicional de CPU en el DC elegido, se deben considerar núcleos adicionales para compensar.

    La configuración de la CPU de un Controller, especialmente la cantidad de núcleos disponibles para la base de datos LocalDB de SQL Server Express, afecta directamente al rendimiento que tendrá la Caché de host local, incluso más que la asignación de memoria. Esta sobrecarga de CPU solo se observa durante el período de interrupción cuando la base de datos es inaccesible y el servicio de alta disponibilidad está activo.

    Aunque LocalDB puede usar varios núcleos (hasta 4), está limitado a un solo socket. Agregar más sockets, por ejemplo, tener 4 sockets con 1 núcleo cada uno, no mejora el rendimiento. En vez de ello, Citrix recomienda usar varios sockets con varios núcleos. En las pruebas llevadas a cabo por Citrix, una configuración de 2x3 (2 sockets, 3 núcleos) proporciona un mejor rendimiento que las configuraciones 4x1 y 6x1.

  • Almacenamiento: Durante el modo de caché de host local, el uso de almacenamiento aumenta aproximadamente 1 MB cada 2-3 minutos, suponiendo un promedio de 10 inicios de sesión por segundo. El consumo de almacenamiento aumenta en relación con la velocidad de inicio de sesión. 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 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 relieve la importancia de diseñar e implementar una de las estrategias de HA SQL recomendadas. En la siguiente tabla se describen 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 un escritorio virtual. Nota: La caché de host local (LHC) permite a los usuarios con escritorios compartidos alojados, aplicaciones de explorador y Windows alojadas y escritorios personales volver a conectarse a sus aplicaciones y escritorios incluso cuando la base de datos del sitio no esté disponible. Cuando se encuentra en modo LHC, no se recopilan datos de supervisión y no se pueden realizar cambios de configuración en el sitio.
Base de datos de supervisión Director no muestra ningún dato histórico y Studio no se puede iniciar. La intermediación de las solicitudes de usuario entrantes y de 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 pueden realizar ningún cambio en Citrix Virtual Apps and Desktops.

Recomendación de tamaño SQL

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

Para un entorno SQL que aloja solo 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 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 acerca de los conceptos de tamaño de bases de datos SQL para implementaciones de Citrix Virtual Apps and Desktops 7.x, consulte Tamaño de la base 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 dependiendo de la configuración de retención de datos. XenApp y XenDesktop 7.15 LTSR tienen más opciones que 7.6 LTSR, después de agregar al producto la capacidad de capturar datos granulares de rendimiento de VDA. Para obtener más información sobre la configuración de estas opciones, consulte Configuraciones de directiva de Supervisión y factorizar esto en los cálculos de tamaño de la base de datos.

Actualizaciones y correcciones de CU

Varias veces al año, Citrix publica CUs para Citrix Virtual Apps and Desktops LTSRs. Estas CUs solo contienen actualizaciones de seguridad y correcciones de errores, sin nuevas funciones introducidas. Citrix recomienda ejecutar las últimas CUs, ya que solucionan los problemas identificados en el producto. Algunas de estas revisiones están relacionadas con SQL. Abordan los problemas, como bloqueos, interbloqueos, procedimientos de almacenamiento, que han sido identificados por Citrix o nuestros clientes. Por ejemplo, hay varias correcciones relacionadas con SQL en las CO de XenApp 7.6 hasta CU5. La recomendación sería revisar la sección Problemas fijos para cada CU y buscar SQL dentro de la página.

Problema corregido

Nota:

LC8477 fue lanzado en 7.6 CU5 y 7.17

Referencias adicionales

Escrito por Henry Vernov, Ingeniero principal de sistemas.