Búsqueda de sitios web

Configuración de la alta disponibilidad del agente de conexión de RDS en Windows Server


El agente de conexión a escritorio remoto (RDCB) es un componente de la función de servicios de escritorio remoto (RDS) en Windows Server. RD Connection Broker le permite equilibrar la carga de los servidores de la granja RDS (cuando se conecta a una granja RDS, el usuario es redirigido al host RDS menos cargado), proporciona acceso de usuario a VDI y RemoteApps, administra la configuración del host RDS en la granja. Además, RDCB permite a los usuarios volver a conectarse a sus sesiones: al conectarse a RDS, RDCB verifica si hay alguna sesión incompleta en otros servidores de la granja y los redirige a sus sesiones anteriores.

En este artículo, mostraremos cómo configurar una instancia de RD Connection Broker de alta disponibilidad y tolerante a fallas manteniendo sus funciones en caso de que falle uno de los servidores con la función RDCB. Se utilizará un servidor de base de datos que ejecuta MS SQL Server 2019 para almacenar datos del Agente de conexión de escritorio remoto. Para evitar un punto único de falla, también se debe implementar una base de datos SQL de RDCB en una configuración tolerante a fallas. En este ejemplo, usaremos dos nodos de SQL Server con el grupo de disponibilidad SQL Always On configurado.

Requisitos de alta disponibilidad de RD Connection Broker y configuraciones admitidas:

  • Al menos 2 servidores con el rol de agente de conexión a Escritorio remoto que ejecutan Windows Server 2022/2019;

  • Si desea utilizar alta disponibilidad para una base de datos SQL RDCB, necesitará al menos 2 hosts con SQL Server 2014 o posterior (edición Standard o Enterprise). En este ejemplo, hemos instalado una instancia independiente de MS SQL Server 2019 Enterprise en cada uno de los servidores. Si no vas a tener una base de datos HA SQL, un servidor con SQL Express es suficiente;

  • Instale SQL Server Native Client en los servidores con la función Agente de conexión a Escritorio remoto;

  • Otorgue control total sobre su base de datos SQL y la carpeta de instalación de SQL a los servidores de RD Connection Broker;

  • Al menos un servidor con la función Host de sesión de escritorio remoto en la granja.

Crearemos una configuración RDCB de alta disponibilidad de dos servidores. Ambos tendrán instalado el rol Conexión a Escritorio remoto y SQL Server. El grupo de disponibilidad siempre activa de SQL Server proporcionará alta disponibilidad y recuperación ante desastres de la base de datos de SQL Server.

En Windows Server 2012 y versiones posteriores, RDS Connection Broker proporciona alta disponibilidad en el modo Activo/Activo. En este modo, todos los servidores RDCB están activos y pueden procesar conexiones entrantes. Permite proporcionar una alta disponibilidad y escalabilidad de RDCB en grandes entornos de Escritorio Remoto.

Preparación de la infraestructura para el agente de conexión a escritorio remoto

Asigne direcciones IP estáticas a todos los servidores con la función Agente de conexión a Escritorio remoto y únalas a su dominio de Active Directory.

  • srv-rds1.a-d.site

    —

    192.168.13.20
  • srv-rds2.a-d.site

    —

    192.168.13.21

Cree un nuevo grupo de seguridad en Active Directory (

MUN_RD_Connection_Brokers

) y agréguele todos los servidores RDCB. Puede crear el grupo con el complemento ADUC (

dsa.msc

) o usando PowerShell:

New-ADGroup "MUN_RD_Connection_Brokers" -path 'OU=Groups,OU=Berlin,DC=a-d,DC=com' -GroupScope Global -PassThru -Verbose

Agregue dos hosts RDS al grupo:

Add-AdGroupMember -Identity "MUN_RD_Connection_Brokers" -Members srv-rds1$,srv-rds2$

Cree registros A para el nombre del clúster de su granja RDS (en nuestro ejemplo, es MUNRDCB) en DNS. Los registros DNS deben contener las direcciones IP de todos los servidores RDCB. Habilita el balanceo de carga (Round Robin) entre los servidores de RD Connection Broker. He creado las siguientes entradas:

  • A -

    MUNRDCB.a-d.site 192.168.13.20

    (Dirección IP del primer servidor RDCB — srv-rds1.a-d.site)

  • A -

    MUNRDCB.a-d.site 192.168.13.21

    (Dirección IP del segundo servidor RDCB — srv-rds2.a-d.site)

Puede crear registros A en DNS utilizando PowerShell:

Add-DnsServerResourceRecordA -Name MUNRDCB -IPv4Address 192.168.13.20 -ZoneName a-d.site
Add-DnsServerResourceRecordA -Name MUNRDCB -IPv4Address 192.168.13.21 -ZoneName a-d.site

Instale SQL Server Native Client en todos los servidores con la función RDCB. Puede descargar SQL Server Native Client para su versión de SQL Server desde el sitio web de Microsoft o copiarlo desde la imagen de instalación de SQL Server (

D:\1033_ENU_LP\x64\Setup\x64\sqlncli.msi

).

A continuación, ejecute SQL Server Management Studio y conéctese a su primer servidor SQL, en el que se creará una base de datos compartida de Connection Broker (luego la moveremos al grupo de alta disponibilidad Always On).

Abra Seguridad -> Inicios de sesión para agregar un nuevo inicio de sesión. Haga clic en Buscar, seleccione su dominio en Ubicaciones, configure Tipos de objeto=Grupos y busque el grupo de dominio MUN_RD_Connection_Brokers.

Asignar

dbcreator

y

sysadmin

papeles al grupo.

Abra los puertos de SQL Server en el Firewall de Windows Defender (de manera predeterminada, el puerto TCP 1433 se usa para conectarse a SQL Server).

Instalar roles de servicios de escritorio remoto en Windows Server

Luego, debe instalar roles RDS en sus servidores. Abra la consola del Administrador del servidor, seleccione Administrar -> Agregar funciones y funciones -> Instalación de servicios de escritorio remoto.

En este artículo se describe la instalación de la función RDS en un host independiente.

Seleccione Implementación estándar -> Implementación de escritorio basada en sesiones.

Elija un servidor en el que desee instalar la función Agente de conexión a Escritorio remoto. No necesita instalar la función RDCB en el segundo servidor ahora.

Instale el rol Acceso web de escritorio remoto en el mismo servidor. Instale la función Host de sesión de escritorio remoto en ambos servidores.

Espere a que se complete la instalación de los roles de RDS.

Cuando haya terminado de instalar los roles, agregue los hosts RDCB y las cuentas 'NT AUTHORITY\NETWORK SERVICE' al grupo local Servidores de administración RDS en ambos servidores.

Durante la instalación de la función Agente de conexión a Escritorio remoto en el primer servidor de la granja, se creará una base de datos SQL local en

C:\Windows\rdcbDb\rdcms.mdf

en la unidad local del servidor del Agente de conexión a Escritorio remoto.

Esta base de datos mantiene la información sobre las sesiones de usuario de la granja y la terminal. Dado que está ubicado en la computadora local, otros servidores RDCB no podrán usarlo. Para proporcionar RDCB HA, debe moverlo a un servidor SQL dedicado donde otros servidores puedan acceder a él.

Implementación de la alta disponibilidad del agente de conexión a Escritorio remoto

Antes de agregar un segundo host con la función Agente de conexión a Escritorio remoto a la granja, debe migrar la base de datos RDCB local a un servidor SQL externo.

Para mover la base de datos del agente de conexión de la base de datos local al servidor SQL dedicado, abra el Administrador del servidor -> Servicios de escritorio remoto -> Descripción general. Para ejecutar el Asistente de configuración de conmutación por error del Agente de conexión a Escritorio remoto, haga clic en la imagen de la función Agente de conexión a Escritorio remoto y seleccione Configurar alta disponibilidad.

Luego seleccione Servidor de base de datos dedicado. Especifique la configuración de conexión de SQL Server, la base de datos RDCB local se moverá.

Rellene dos campos:

  • DNS nombre para el clúster del agente de conexión a Escritorio remoto: un nombre FQDN de su granja RDCB para la que hemos creado registros de DNS Round Robin (en nuestro ejemplo, es

    MUNRDCB.a-d.site

    ). Esta es la dirección que usarán los clientes RDP cuando se conecten a los servidores de RD Connection Broker;

  • Cadena de conexión de base de datos: especifique la cadena de conexión a la base de datos de SQL Server. Aquí está el formato de cadena:

    DRIVER=SQL Server Native Client 11.0;SERVER=<SQL Server Name>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=<DB Name>

    En este ejemplo, SQL Server Name es el nombre del servidor SQL en el que desea crear una base de datos y DB Name es el nombre de su nueva base de datos:

    DRIVER=SQL Server Native Client 11.0;SERVER=srv-rds2.a-d.site;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=RDCB_DB

Una vez que se habilita una configuración HA de RD Connection Broker, no podrá volver a la base de datos interna de RDCB sin desactivar toda la configuración de la granja de RDS.

Haz clic en Configurar en el siguiente paso.

Luego, conéctese a su instancia de SQL Server mediante SQL Management Studio y asegúrese de que se haya creado la nueva base de datos RDCB_DB.

Otorgue a ambos servidores del Agente de conexión a Escritorio remoto permisos de escritura en la base de datos. Abra la base de datos -> RDCB_DB -> Seguridad -> Usuarios -> Nuevo usuario.

Crear dos nuevos usuarios:

BUILTIN\RDS Management Servers

y

a-d\MUN_RD_Connection_Brokers

. otorgar ambos

db_owner

y

public

privilegios

Para proporcionar alta disponibilidad en caso de que falle el primer servidor, agregue un segundo servidor de Agente de conexión a Escritorio remoto a la configuración actual.

Haga clic en el icono del Agente de conexión a Escritorio remoto y seleccione Agregar servidor del Agente de conexión a Escritorio remoto.

Ingrese el nombre del segundo servidor en el que desea instalar la función Agente de conexión y haga clic en Siguiente. Luego aparecerán dos servidores con la función RDCB en la lista de hosts de la granja RDS. También verá el mensaje Agente de conexión a Escritorio remoto (modo de alta disponibilidad).

Esto completa la configuración de alta disponibilidad de Remote Desktop Connection Broker.

Configurar la configuración de conmutación por error de SQL Server para HA del agente de conexión a Escritorio remoto

Luego configure una configuración de conmutación por error de su base de datos SQL. Mientras tanto, se ejecuta en un solo servidor. Coloque su base de datos del Agente de conexión a Escritorio remoto en el clúster de SQL. Puede ser un clúster de conmutación por error clásico de Microsoft o un grupo de alta disponibilidad de SQL Server Always On.

La configuración básica de Always On en SQL Server 2019 se describe en este artículo. Aquí mostraremos solo los pasos principales:

  1. Instale el rol de Failover Clustering y cree un clúster SQL-RDS de dos hosts RDCB con un testigo y quórum en cualquier servidor de archivos (se describe en el artículo sobre Always On mencionado anteriormente);

  2. Habilite la opción Habilitar grupos de disponibilidad siempre activos en la configuración del Administrador de configuración de SQL Server en ambos servidores;

  3. Ejecute el Asistente para nuevo grupo de disponibilidad;

  4. Introduzca un nombre del Grupo de disponibilidad (SQL-RDS);

  5. Seleccione una base de datos que desee colocar en su grupo de alta disponibilidad (RDCB_DB);

  6. Agregue el segundo servidor SQL al grupo de alta disponibilidad y marque la opción Failover automático;

  7. En la pestaña Oyente, ingrese el nombre y la dirección IP que los clientes usarán para conectarse a la base de datos en su grupo Siempre activo (SQL-RDSDB-liste);

  8. Abra el complemento Failover Cluster Manager (

    FailoverClusters.SnapInHelper.msc

    ) y asegúrese de que el nuevo recurso haya aparecido en la lista de roles.

Luego cambie la cadena de conexión para el servidor SQL con la base de datos RDCB en la configuración del Agente de conexión. Solo puede cambiar la cadena de conexión RDCB a través de PowerShell:

Set-RDDatabaseConnectionString [-DatabaseConnectionString] <String> [[-ConnectionBroker] <String>] [ <CommonParameters>]

En mi ejemplo, el comando para cambiar la granja RDCB al grupo de alta disponibilidad de la base de datos SQL tiene este aspecto:

Set-RDDatabaseConnectionString -ConnectionBroker srv-rds1.a-d.site -DatabaseConnectionString "DRIVER=SQL Server Native Client 11.0;SERVER=SQL-RDSDB-liste;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=RDCB_DB"

Si el comando no devuelve ningún error, entonces todo está bien. Ahora su clúster de RDS Connection Broker está configurado para usar el grupo de disponibilidad SQL Always On.

Abra la configuración de su granja de RDS y asegúrese de que se use una nueva cadena de conexión para HA (Tareas -> Editar propiedades de implementación).

Por lo tanto, hemos creado un servicio RDS Connection Broker de alta disponibilidad en Windows Server 2022/2019. Puede probar la alta disponibilidad de RDCB apagando uno de los hosts en la granja RDS.

Luego puede continuar con la configuración de su granja RDS, implementar un servidor de licencias RDS, agregar servidores RDSH, configurar colecciones RDS, publicar RemoteApps, habilitar el cliente web HTML5 para RDS, etc.

Artículos relacionados