05-Windows Server 2012 R2 会话远程桌面-标准部署-RD连接代理高可用性(RemoteApp)

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
全局流量管理 GTM,标准版 1个月
简介:

05-Windows Server 2012 R2 会话远程桌面-标准部署-RD连接代理高可用性(RemoteApp)

马博峰

在之前的文章中,我们以快速的部署方式和标准部署的方式完成了RemoteApp的部署,如果在企业正式环境中需要部署基于会话的远程桌面,那么最好采用标准部署。在标准的部署中,有一个重要的功能角色服务,那就是RD连接代理,RD连接代理是负载平衡RD会话主机服务器场中的会话负载平衡和会话重连。还可使用 RD 连接代理并通过 RemoteApp 和桌面连接让用户访问RemoteApp程序和虚拟机,所以他在整体会话远程桌面中起到重要的作用,从部署架构中可以看到,RD连接代理处于中间的位置,起到连接前端和后端应用或者桌面的连接,所以,当RD连接代理出现故障时,整个会话远程就全部中断了,无法使用。

clip_image001

在我们要考虑增加安全性和可用性的同时,也要同时考虑其中的某些服务的高可用性,可以使用多台服务器或者虚拟机为RD连接代理进行服务,远程桌面连接代理(RD连接代理)支持负载平衡和会话重新连接到新的会话主机场, RD连接代理也用来提供用户通过RemoteApp和桌面的连接,如果启用了RD连接代理的均衡负载,则RD连接代理还会在每个RD会话主机或者RD会话场跟踪用户会话的数量。下图就是RD连接代理的高可用性设计图

clip_image002

Active/Active的RD连接代理模式是Windows Server 2012 R2是一个完整的高可用性部署,每个RD接代理服务器都是活跃的,提供共享负载。它提供了高可用性和高可用伸缩性,适合更大规模的部署。设置RD接代理服务高可用性需要SQL数据库的支持,SQL数据库用于存储RD连接代理服务器运行时的情况和配置数据,这种Active/Active的RD代理为管理员提供一个轻松部署高可用性和可伸缩性RD连接代理服务器的解决方案。

一、部署的前提条件:

1、 至少需要2台windows server 2012 R2安装RD连接代理服务。

2、 需要特定的数据库服务器或SQL数据库实例,SQL服务器版本为2008 R2标准版或更高版本。

3、 所有RD连接代理服务器都必须安装SQL客户端。

4、 RD代理服务器拥有完全权限的SQL数据库和SQL文件夹。

5、 至少需要一台会话主机服务器。

6、 确保网络中的防火墙没有阻拦服务器的通信。

设置RD连接代理高可用性至少需要4台服务器,其中1台为域控制器,并设置了DNS服务器,一台为SQL服务器,支持SQL server 2008 R2和SQL server 2012,剩下2台服务器中,其中有一台必须安装了RD连接代理,并且这些服务器都加入了域环境,以域管理员的身份进行登陆。  

服务器名称

操作系统

IP设置

功能

AD-DC.mabofeng.com

Windows Server 2012 R2

192.168.1.100

域控制器

RDCB01.mabofeng.com

Windows Server 2012 R2

192.168.1.110

远程桌面连接代理01

RDCB02.mabofeng.com

Windows Server 2012 R2

192.168.1.111

远程桌面连接代理02

SQL.mabofeng.com

Windows Server 2012 R2

192.168.1.120

数据库服务器


二、连接代理部署


1、首先将RD连接代理的服务器、SQL服务器和会话主机加入到域环境中,我们需要把所有的RDCB服务器要具备对SQL的完全控制权,那么我创建一个安全组RDCB computer,然后把所有的RDCB服务器添加进这个组当中,在Active Directory用户和计算机管理器中,右键选择User,在弹出的菜单中选择新建,选择组,在新建对象-组页面中,输入组的名称,并选择全局和安全组,最后点击确定。

clip_image004

建立好新建的对象组RDCB computer后,点击RDCB computer组的属性,在RDCB computer属性对话框中,选择成员一栏,点击添加将所有RDCB服务器加入进来,然后点击应用,最后点击确定。

clip_image005

接着把这个安全组添加到RDCBSQL的SQL安全性当中,在安装了SQL server 2008 R2或者是SQL Server 2012的数据库服务器中,打开Microsoft SQL Server Management Studio管理工具,在对象资源管理器中选择“安全性”,在展开的树状结构中右键选择登录名,在弹出的菜单中选择“新建登录名”在登录名-新建对话框中,点击搜索,将之前建立的用户安全组加入到登录名中。

clip_image007

接下来在左侧的选择页中选择服务器角色选项,设置服务器角色用于向用户授予服务器范围内的安全特权,这里默认会有选项public,这里要勾选dbcreator选项,然后点击确定。

clip_image009

点击确定后,就可以在Microsoft SQL Server Management Studio管理工具中,在展开的树状结构登录名中就可以看到我们之前添加的安全组。

clip_image011

成功将安全组加入到SQL数据库中后,在SQL server服务器中的任意位置建立一个文件夹,这里在SQL server服务器中的C盘下建立RDCB文件夹。

clip_image013

将建立的RDCB文件夹设置共享,允许RDCB代理服务器能否在此文件夹中具有读写的权限,所以将RDCB computer安全组加入到RDCB文件夹中,并赋予读写的权限。

clip_image015

接下来就是创建RDCB的DNS轮循,在域控制器服务器里的DNS管理器总,在正向查找区域中添加DNS,例如环境中有2台RD代理服务器,其中RDCB01的IP地址为192.168.1.110,RDCB02的IP地址为192.168.1.111,则需要建立2条DNS信息,分别建立名称为HARDCB的2条不同IP地址,其地址为RDCB01和RDCB02的数据地址。

clip_image017

接下来就是检查DNS管理器中是否开启了DNS循环,在DNS管理器中,右键单击AD-DC DNS名称,在弹出的菜单中选择属性,在AD-DC的属性页面中,选择高级,在高级页面中可以查看是否启用的循环,一般情况下,DNS循环是默认开启的,只需要进行确定检查即可。

clip_image019

在每台RD连接代理服务器中安装SQL native client,如果使用的数据库是SQL server 2008 R2,则需要下载SQL native client 10的版本,如果是SQL server 2012,则需要安装SQL Native client 11。

Microsoft SQL Server 2008 R2 Native Client下载地址为: http://www.microsoft.com/zh-cn/download/details.aspx?id=26728

Microsoft SQL Server 2012 Native Client下载地址为: http://www.microsoft.com/zh-cn/download/details.aspx?id=35580

clip_image020

将Microsoft SQL Server 2012 Native Client或者是Microsoft SQL Server 2008 R2 Native Client下载后进行安装,知道完成Microsoft SQL Server Native Client的安装完成。

clip_image021

当我们成功安装Microsoft SQL Server Native Client,我们需要连接到数据库中,在开始界面中,点击管理工具,在管理工具文件夹中选择ODBC数据管理程序(64位),在ODBC数据管理程序中选择系统DSN,然后选择添加,在创建新数据源页面中,选择SQL Server Native Client 11.0,点击完成。

clip_image023

在接下来的向导中,要求输入数据源的名称和服务器地址,然后按照默认的方式点击下一步,知道完成数据库的连接,在最后的ODBC Microsoft SQL Server安装界面中,选择测试数据源,之后会弹出SQL Server ODBC数据源测试界面,在这界面中会显示测试成功,如果不显示成功或者显示无法连接到数据库,则需要检查下Native Client所在的服务器是否与SQL Server能正常的进行通信,检查防火墙的设置,直到测试成功。

clip_image025

测试成功后,点击确定,在ODBC数据管理程序(64位)中显示已经连接到的数据库,当成功连接后,一定要重新启动服务器,之后进行RD连接代理服务器的高可用设置。

clip_image027

三、RD连接代理的高可用性设置

在完成之前一系列的所有工作后,接下来就进行RD连接代理的高可用性设置,首先我们以域管理员的形式登录到其中已经安装好的RD连接代理服务器中,在服务器管理器,远程桌面服务-概述中,查看部署概述,右键选择RD连接代理,在弹出的菜单中选择“配置高可用性”

clip_image029

在配置RD连接代理的高可用性向导中,完成RD连接代理的高可用性的配置,在开始页面中,显示了要完成配置工作前需要满足一些条件,包括Microsoft SQL server具有对所有RD连接代理服务器的写入权限,所有RD连接代理服务器上已经安装了Microsoft SQL Server Native Client,已为所有RD连接代理服务器分配了静态IP地址,已为具有单一DNS名称的所有RD连接代理服务器创建DNS记录,确保之前都完成了准备工作,然后点击下一步。

clip_image031

在配置RD连接代理的高可用性页面中,输入数据库连接字符串、存储数据库文件的文件夹路径和DNS轮循机制名称。由于使用不同版本的Microsoft SQL Server Native Client,所以在输入数据库连接字符串也有所不同。

如果使用的是SQL 2008 R2,则输入如下字符串:

DRIVER=SQL Server Native Client 10.0;SERVER=<SQLserver名称>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;Database=<要建立数据库的名称>

如果使用的是SQL 2008 R2,则输入如下字符串:

DRIVER=SQL Server Native Client 11.0;SERVER=<SQLserver名称>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;Database=<要建立数据库的名称>

在输入存储数据库文件的文件夹路径时,需要输入我们在数据库服务器上所建立的文件夹,最后我们输入在域控服务器中建立的DNS轮循机制名称,然后点击下一步。

clip_image033

在确认界面中,确认所设置的信息,然后点击配置。单击“配置”后,RD连接代理服务器的SQL数据库将被创建,所有的RD连接代理服务器从本地计算机上的数据将被迁移到RDCBSQL服务器的SQL上,然后在RD连接代理服务器将开始使用的SQL服务器。

clip_image035

在进度页面中,查看配置RD连接代理的高可用性进度,当成功完成后点击关闭,完成配置。

clip_image037

注意1:在此配置过程中,可能会遇到几种错误的情况,首先是在配置RD连接代理服务器的高可用性中报错,其报错内容为:

“配置RD连接代理服务器RDCB01.mabofeng.com中没有使用数据库连接字符串指定的数据库,请确保网络上的SQL服务器可用、RD连接代理服务器上安装了SQL server native client,并且RD连接代理具有对此数据库的写入权限。”

clip_image039

遇到这种情况后,检查一下内容:

1、 没有安装SQL server native client客户端

2、 防火墙阻断RD连接代理(端口1433)与SQL访问

3、 指定了不正确的SQL Server Native Client的版本

4、 不正确的SQL Server名称指定

5、 RD连接代理服务器是否在配置数据库连接后重启。

注意2:在此配置过程中,可能会遇到下面这种错误的情况,其错误提示为“无法创建数据库RDBC”,并在事件日志事件32776提高。这意味着,在SQL Server权限不够,遇到这种情况,检查一下3个方面:

1、 RD连接代理服务器有适当的SQL(数据库创建者)的权限。

2、 RD连接代理服务器在SQL数据库服务器上创建的文件夹是否有读写的权限。

3、 SQL服务器中是否有重名的数据库名称。

clip_image041

四、添加RD连接代理

当我们成功配额完成后,在服务器管理器中就可以看到RD连接代理已经设置成了高可用性的模式,这在部署RD连接代理高可用性算是第一步,显然,有一个RD连接代理服务器不使其具有高可用性。第二步则是添加一个额外的RD连接代理。相较于第1步,这是安装程序的最简单的部分。 我们用鼠标右键单击RD连接代理的部署概述并选择“添加RD连接代理服务器”,但是在添加之前,我们先看下之前建立的数据库RDBC。

clip_image043

我们到在SQL Server服务器上RDBC文件夹中创建的数据库。

clip_image045

我们使用Microsoft SQL Server Management Studio打开数据库进行查看。

clip_image047

设置到这里,我们发现这里并没有把RDCB02添加进来,所以我们需要在SQL server中添加安全组与这个数据库的关系吧,首先打开Microsoft SQL Server Management Studio,在“对资源管理中”选择安全性-登录名,右键选择我们之间添加的安全组,在弹出的菜单中选择属性。在登录属性的常规页面中,设置默认数据库为rdcb。

clip_image049

在登录属性的服务器角色页面中,通过添加一个用户映射到包含RD连接代理服务器,以便该组具有db_owner权限的组来完成。

clip_image051

然后我们进行添加第二台RD连接代理服务器,首先在服务器管理器中,将第二台添加RD连接代理服务器与第一台添加RD连接代理服务器共同进行管理,将台RD连接代理服务器添加到已选计算机框中后点击确定。

clip_image053

在第一台添加RD连接代理服务器的服务器管理器中,我们右键单击RD连接代理的部署概述并选择添加RD连接代理服务器。

clip_image055

在添加在配置RD连接代理服务器向导中,完成RD连接代理的添加配置,在开始页面中,显示了要完成配置工作前需要满足一些条件,点击下一步。

clip_image057

在选择服务器页面中,选择向部署中添加RD代理的服务器,然后点击下一步。

clip_image059

在确认页面中,将在服务器上安装RD连接代理角色服务,并将此服务添加到部署中,之后点击添加。

clip_image061

点击添加后,会在第二台服务器上安装RD连接代理服务。

clip_image063

clip_image065

注意:在设置过程中可能会出现下面的错误,通常这是SQL Server的权限问题。 回想一下,先决条件之一是,所有的RD连接代理数据库所需的权限在数据库。第一台RD连接代理只需要数据库创建者权限才能成为数据库的所有者。有关更多的RD连接代理,我们需要添加这些权限。

clip_image067

五、编辑RD连接代理属性

我们可以手动设置活动的RD连接代理服务器,在服务器管理器中,部署概述中点击任务,在弹出的菜单中选择设置活动的RD连接代理服务器。

clip_image069

在设置活动的RD连接代理服务器界面中,可以看到当前活动的RD连接代理服务器为RDCB01.mabofeng.com,可以切换到其他的RD连接代理服务器,如果将其他RD连接代理设置为活动,则会取消所有与粗部署相关的正在运行以及计划的任务。

clip_image071

除此之外,我们也可以更改RDCB高可用性的DNS别名,但是,如果要更改RDCB高可用性的DNS别名,则不可以在图形化的界面下进行更改,而是需要进行在PowerShell模式下进行更改。

clip_image073

clip_image075

如果要更改DNS轮循机制的名称,则需要使用PowerShell命令来进行更改,无法在GUI界面中进行更改,更改DNS轮循机制的名称的命令为:

Set-RDClientAccessName -ConnectionBroker <当前服务器名称> -ClientAccessName <新DNS名称>


本文转自 mabofeng 51CTO博客,原文链接:http://blog.51cto.com/mabofeng/1338283 ,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
1月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
1月前
|
数据库 数据安全/隐私保护 Windows
Windows远程桌面出现CredSSP加密数据修正问题解决方案
【10月更文挑战第30天】本文介绍了两种解决Windows系统凭据分配问题的方法。方案一是通过组策略编辑器(gpedit.msc)启用“加密数据库修正”并将其保护级别设为“易受攻击”。方案二是通过注册表编辑器(regedit)在指定路径下创建或修改名为“AllowEncryptionOracle”的DWORD值,并将其数值设为2。
386 3
|
26天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
26天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
3月前
|
Windows
Windows操作系统部署安装Kerberos客户端
详细介绍了在Windows操作系统上部署安装Kerberos客户端的完整过程,包括下载安装包、安装步骤、自定义安装路径、修改环境变量、配置hosts文件和Kerberos配置文件,以及安装后的验证步骤。
425 3
Windows操作系统部署安装Kerberos客户端
|
2月前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
2月前
|
弹性计算 安全 Windows
通过远程桌面连接Windows服务器提示“由于协议错误,会话将被中断,请重新连接到远程计算机”错误怎么办?
通过远程桌面连接Windows服务器提示“由于协议错误,会话将被中断,请重新连接到远程计算机”错误怎么办?
|
3月前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
2月前
|
关系型数据库 MySQL Linux
Navicat 连接 Windows、Linux系统下的MySQL 各种错误,修改密码。
使用Navicat连接Windows和Linux系统下的MySQL时可能遇到的四种错误及其解决方法,包括错误代码2003、1045和2013,以及如何修改MySQL密码。
286 0
|
1月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。