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