![服务器故障转移场景](https://linux22.com/image/489106/%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%95%85%E9%9A%9C%E8%BD%AC%E7%A7%BB%E5%9C%BA%E6%99%AF.png)
我有两台 Dell PowerEdge 2950 服务器。为了(希望)消除任何停机时间,我必须实施一个解决方案来检测和调整组件故障、环境故障等......常见的“停机时间是敌人”场景。
从现在开始,我将服务器称为服务器因为实施的解决方案可能会将两台服务器合并为一台逻辑服务器(老实说,最好是一台逻辑服务器)。
我将有大约 15 个瘦客户端,全部指向上述服务器。服务器将充当终端服务器。客户端将连接到服务器并运行客户端 GUI 的实例。实际服务器本身将运行服务器版本同一个应用程序,为客户端 GUI 提供其所需的信息/数据...(我希望这是有意义的!)
我被推荐使用 Marathon Technologies永順2G软件。虽然这似乎是一个公平的解决方案,但它也要 12,000 美元……对我来说似乎有点贵,(不过,这可能是我在这个领域缺乏经验)……
有没有更经济高效的解决方案?我一直在研究一种解决方案,涉及Citrix XenServer目前,但尚未取得太大进展......
如何才能实现上述程度的容错能力呢?
编辑:服务器运行的是Windows Server 2003 Enterprise。
编辑:为了澄清我的误传,我的目标是在发生灾难时将故障转移到仍在运行的节点。要托管的应用程序控制着大量电子锁门和对讲机。因此,如果应用程序不可用,则不会打开任何门,也无法通过对讲机进行通信。哎呀!
编辑: 好吧,经过一些范围变更、资金和其他非技术项目调整后,我推进的解决方案实际上没有使用上述任何方法 :) 长话短说,我们维护两个独立的终端服务器;一个主服务器和一个热备份服务器。在紧急情况下,两者之间的切换将是手动的(尽管实际上它的速度与我们最初预期的一样快,甚至更快)。服务器硬件(两个 NIC、两个电池电源和两个 UPS)将解决所需的故障转移功能。感谢您的所有反馈,非常感谢!
答案1
我怀疑您是否真的需要高可用性,或者您是否只需要在发生硬件故障时故障转移到仍在运行的节点。高可用性将非常昂贵,而且由于用户数量很少,我认为您的预算不会那么高。
您是否考虑过使用 Microsoft 内置的终端服务会话目录功能和负载平衡器?您已经拥有 Windows Server 2003 的“企业版”,因此就实施会话目录功能的许可费用而言,您已经“克服了困难”。
您可能会考虑一些第三方工具,例如2X 负载均衡器,也是如此。(虽然我没有亲身经历过……)
答案2
Marathon 是一个非常重量级的系统,它实际上会将您现有系统的容量减半。首先,我要确保您拥有共享存储等基本功能。
如今,VMware 可以提供 HA,即当其中一个系统出现故障时,可以有效地重新启动服务器;将来,VMware 将能够跟踪机器,这样当其中一个服务器死机时,实例将透明地“实时”迁移到另一个服务。
我想指出的是,除非你真的需要 HA,否则通常最好有一个运行良好的简单系统,而不是一个应该更可靠但实际上并非如此的复杂系统。
答案3
正如 James 所说,如果真的那么重要,那么可能值得考虑使用 VMWare 的 ESX 加载物理服务器。使用这种基础架构,您可以将 Vmotion 与 VMWare 的 HA 工具结合使用,以允许服务器在物理服务器之间无缝移动,而不会对最终用户造成停机。这确实需要 SAN 以及单独的盒子来运行管理软件,但管理软件可以在像桌面一样轻量级的设备上运行。
答案4
以下是我看到的一些选项。
只需在两台服务器上安装所有内容(包括终端服务),然后使用 Windows 服务器内置的服务使用“集群 IP”,这样每个人都可以连接到一个 IP 地址,两台服务器将决定谁连接到哪台机器,从而实现伪负载平衡情况。
另一种方法是投资 VMWare 的工具套件,使用 VM 提供终端服务,然后使用 VMotion 和高可用性选项来保持 VM 处于活动状态。
大多数情况下,企业高可用性似乎需要两台服务器加上一个高速 SAN 或 iSCSI 存储系统,用于保存两台服务器之间的 VM 或共享数据,然后服务器的应用服务在连接到存储服务器的两个系统上运行。
也许可以使用 DRBD 和 Pacemaker 在 Linux 上安装 Xen,但我认为也许只需在 Windows 上使用“集群 IP”来分配两个终端服务器之间的连接就足够了,也许可以使用 NAS 或其他存储服务器来共享应用程序数据目录或数据主目录。这样可行吗?
我觉得你稍微修改了一下你的问题?要不就是我浏览得太快了 :-)
15 个用户使用终端服务访问两台服务器;我认为,出于预算和管理方面的考虑,您最好还是考虑启用负载均衡内置于终端服务。
需要注意的是:一个用户可以为所有人关闭一个终端。我们让一个用户在登录终端查看 weather.com 动画时离开。几个小时后,内存使用量或 CPU 使用量激增到其他人陷入几乎无法使用状态的程度。
此外,如果出现断开连接并且用户重新连接到第二台服务器,他们可能会混淆当网络中断时他们正在使用的应用程序去了哪里,或者主目录服务器上出现文件共享问题,因为文件在服务器一上打开并且他们现在登录到服务器二。
换句话说,无论你的服务器是什么,严重依赖终端服务都意味着拥有良好的基础设施。这意味着在托管交换机和可靠的电缆等方面投入更多资金。你应该有一个 IT 部门随时准备监控这些服务器的异常情况,以防用户占用资源,因为一个人的问题可能会影响到其他用户的会话。