我目前正在规划对 RDS 基础设施进行必要的更改,以满足由于公司扩张而即将增加的用户数量。
目前,系统仅有一台 RDS 会话主机服务器。即将到来的扩展让我不禁想知道,当您决定切换到具有多个会话主机的模型时,哪些因素会影响您的决定。
我一直在思考的一个问题是:如果你能够轻松地扩展现有主机,而不是部署另一台主机,那么这样做是否有意义,并避免在绝对必要之前切换到多主机模型?考虑到拥有多个会话主机所带来的额外维护和复杂性,这似乎是一个非常中肯的问题,但我不确定我是否有一个可靠的答案。
我将阐述我目前对竞争因素的看法。我很想知道其他人对这些因素的看法,以及是否还有其他同样重要的因素。
拥有多个会话主机会带来一定程度的冗余,特别是如果您在运行它们时留有足够的空间,以便在其中一个主机出现故障时弥补不足。但是,您必须确保所有会话主机都具有相同的配置。这需要额外的工作,并且可能会随着时间的推移导致主机之间出现差异。虽然我自己还没有这样做过,但我可以理解这些问题主要可以通过使用自动化、集中管理和配置控制等方式来解决,但所需的技能水平更高,您必须付出最初的努力来实施工具和流程。您还需要在主机之间进行负载平衡(使用连接代理),这增加了复杂性。
扩展单个主机可以降低复杂性,只要可能/合理,我就会非常喜欢这样做。您只需维护一个主机。从表面上看,这让我认为最好尽可能地扩展现有主机,直到冗余成为一个严重的问题。但我感觉事情并没有那么简单。还有人可以提供他们的想法/经验吗?
为了对此进行一些限制,我的具体情况是使用 Windows Server 2012 R2,并使用 Hyper-V 虚拟化会话主机。在这种特定情况下,许可并不是主要问题。
答案1
在我看来,只保留一台 RDS 主机的最大缺点是全部除了任何意外停机外,当您必须关闭系统进行维护/修补时,您的用户也会受到影响。
在多台服务器之间分担负载可让您“耗尽”需要维护的服务器上的服务,从而有效地消除所有计划维护的用户停机时间(这也允许您在工作时间内进行维护)。如果发生意外停机,只有使用停机服务器的部分用户会受到影响;并且时间只够重新连接到服务器群中的另一台服务器。
答案2
如果 RDS 场需要任何类型的正常运行时间保证,请扩展。在单独的 VM 上安装连接代理角色(如果需要,则安装 HA 集群)。
RDS 中最大的问题是资源共享。如果一个用户消耗了太多资源,就会影响该服务器上的所有人。Scale-Out 可以缓解这种情况。
我还建议为容量规划配置 N+1(或更多)台服务器。这为维护提供了空间,同时又不损害服务器场的健康状况。
轶事:
我运行了一个 3 节点服务器场,为 Great Plains 服务,同时有大约 90 个用户同时在线。我想说的是,每个会话主机都是 8 核、16GB RAM(Nimble SAN、IOPS 都不是问题)和卸载用户配置文件。这个服务器场可以在 2 个主机上降级运行,影响不大,业务可以在一个主机上运行。
由您和您的企业来决定需要什么级别的服务以及可以接受的成本。
如果您可以整理配置管理(PowerShell DSC 或类似技术),那么拥有多个节点就是一个优势,而不是增加复杂性。