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