Understudy
制造商:Polyserve Software
电子邮件:info@polyserve.com
价格:低于 1000 美元(含支持)
评论员:Daniel Allen
网络上的每台主机都会有停机时间,从最酷的 RaQ 到最低端的 NT 486 都是如此。将停机时间降至最低的工作落在了系统管理员身上。有各种解决方案可供选择,涵盖各种需求和预算。一种方法是使用高可用性服务器,配备光纤通道 RAID 阵列、多个冗余 CPU 和电源以及面向事务的文件系统。这些服务器可以布置在价值 5 万美元的负载均衡和故障转移系统之后,以便在发生故障时自动更换服务器。
在成本谱的另一端,一种解决方案是运行备份服务器,并在必要时手动切换到主服务器。在这种情况下,如果服务器意外故障,可能需要几分钟或几小时,可怜的系统管理员才能进行切换。这种解决方案既不优雅,又在公司网络中被广泛使用。
第三种方法是“服务器集群”,或使多台服务器对用户来说看起来像是同一台服务器,以实现容错和负载均衡的目的。目前正在进行非常有趣的努力,以提供完全基于 Linux 的服务器集群解决方案。其中包括开源的 Linux Virtual Server,以及高可用性 Linux 项目正在做的其他工作。这些项目前景广阔,对于希望紧跟技术前沿的网站来说,它们可能是正确的答案。然而,小型企业需要完全受支持的解决方案,这些解决方案不需要对其现有的、可能是异构的网络进行重大修改。这正是 Polyserve 希望用 Understudy 填补的空白。正如您将在下面看到的,我认为它做得很好。
Understudy 是一款基于软件的服务器集群实用程序,为 Linux(Red Hat、Debian 和 Slackware)、Solaris、Cobalt、FreeBSD 和 Windows NT 实现了负载均衡和故障转移保护。它支持集群中两到十台异构服务器,所有服务器都必须位于同一 DNS 子网中。Polyserve 希望尽快发布一个更新的版本,以规避单一子网要求。服务器集群可以提供任何服务,包括 Web、邮件、新闻或文件共享。
当服务器宕机时,它在集群中被标记为非活动状态,另一台服务器会在几秒钟内取代它的位置。当服务器恢复运行时,它会立即重新集成到集群中。通过将 Understudy 与称为“轮询 DNS”的负载轮换方案结合使用,站点还可以提供简单的负载均衡。负载均衡需要集群中每台服务器一个额外的 IP 地址。简单的故障转移只需要一个“虚拟主机”的 IP 地址,这就是用户看到集群的方式。
Red Hat Linux 版本的安装很简单。阅读发行说明后,我预计在其他平台上也不会有重大困难。Understudy 在其网站上提供了一份“快速入门”白皮书,建议阅读,以及关于 Web 服务器细节和轮询 DNS 的白皮书。如果您曾经配置过 Web 服务器或更改过 DNS 配置,它们很容易理解。
我下载了免费 30 天试用版的 RPM,并以 root 身份运行 rpm 来安装它。安装文件后,Understudy 启动了它的守护进程,并提醒我为管理工具分配密码,我照做了。我在组成集群的四台服务器中的每一台上重复了这个过程。
这四台服务器是远程管理的,所以我无法运行图形化的本地管理工具,该工具需要在服务器上安装 X。但是,Polyserve 还提供了一个图形化的远程管理工具,可用于 Red Hat 或 Windows 98/NT。我使用 Debian RPM 管理器 Alien 在我的本地 Debian 系统上下载并安装了 RPM。没有出现严重问题,尽管我需要修改它创建的启动脚本,以正确指向 Java 运行时环境 (1.1.7) 的副本以及它也安装的库。它将所有内容都归档在 /usr/local/polyserve 中,启动脚本位于 /usr/bin 中。

图 1。
接下来,我使用一对服务器设置了我的第一个具有故障转移保护的集群。这需要一个“虚拟主机”,它只是一个未附加的 IP 地址,与真实主机位于同一子网中。这是一个简单的过程,按照快速入门指南中的说明进行操作即可。启动图形化管理工具后,它提示我输入集群 IP 和密码。我提供了第一台服务器的 IP,并显示了主窗口(图 1)。主框的标题为“集群状态”,列出了我提供的服务器名称,状态令人放心地显示为“OK”。菜单包括“文件”、“集群”、“服务器日志”和“帮助”。“集群”菜单有最有趣的选择:“添加服务器”、“添加虚拟主机”、“向选定主机添加服务监视器”、“删除选定项”和“更新选定虚拟主机”。我选择了“集群 --> 添加服务器”,并提示我输入服务器名称或 IP。我填写了我的第二台服务器。瞧:“集群状态”告诉我两台服务器都正常。到目前为止,一切顺利。
现在,添加我的第一个“虚拟主机”。这需要在您的 DNS 表中添加一个新主机(例如 DNS 服务器上的 /var/named 中)
virtual1 60 IN A 150.1.1.1
这只是添加一个新主机名,其生存时间 (TTL) 为 60 秒,并带有其地址。
我添加了带有适用于我的子网的 IP 地址的新行,并重启了 named 守护进程。回到管理工具中,我选择了“添加虚拟主机”。它提示我输入虚拟主机的名称或 IP,并列出了选择框以确定哪台真实服务器将成为主服务器,哪台将成为备份服务器。我输入了我的信息。

图 2。
此时,“集群状态”看起来更有趣了(图 2)。它列出了两台真实服务器,子标题描述了第一台服务器对于虚拟主机处于活动状态,而第二台服务器处于非活动状态。我尝试 telnet 到虚拟主机。它将我连接到第一台服务器。我回到管理工具并删除了虚拟主机。我重新添加了它,但这次决定将第二台服务器作为此虚拟主机的主服务器。显示屏立即反映了更改。我 telnet 到虚拟主机。果然,它将我连接到第二台服务器。
幕后发生的事情是这样的:Understudy 在每台服务器上作为守护进程运行。虚拟主机的 IP 地址会自动别名到主服务器。少量流量通过广播 ARP 消息在真实主机之间不断传递。通过守护进程,每台主机都知道哪台主机充当主服务器。当主服务器宕机时,备份服务器会立即将虚拟主机的 IP 地址重新分配给自己。它会继续监听,以便在主服务器恢复运行时释放 IP 地址。
请注意,Understudy 不允许您使用已分配或别名给真实主机的 IP 地址作为虚拟主机。我想否则很容易“劫持”您子网中其他主机的 IP 地址。

图 3。
接下来,我设置了一个“服务监视器”(图 3)。这允许我选择要监视的特定端口,例如邮件、Web、FTP 或 TELNET 的端口。如果活动服务器在该端口上没有响应,则非活动服务器将介入。我选择了 HTTP,并且“集群状态”报告 Web 服务器在两台真实服务器上都已启动。我使用 Lynx 验证了对虚拟主机的请求会发送到主服务器,除非它正在监视的某个服务宕机,在这种情况下,请求会发送到备份服务器。在所有情况下,Lynx 都显示了虚拟主机名称的 URL,正如预期的那样。
对于下一个测试,我设置了轮询 DNS。轮询 DNS 是内置于名称服务器(例如 BIND(4.9 及更高版本))中的一项功能。轮询允许服务器通过在给定主机名的任意数量的 IP 之间轮换来透明地共享负载。唯一的问题是,如果一台或多台服务器宕机,则不会进行纠正,因此在每个请求周期中,某些请求会发送到无效服务器。有了 Understudy,这不再是问题。您可以为多个虚拟主机设置轮询 DNS,其中每个虚拟主机都有不同的主服务器。如果任何服务器宕机,则其请求将发送到下一个辅助服务器。Understudy 文档中提供了执行此操作的完整示例。这些说明相当清晰易懂。在工作了几个小时后,我拥有了一组完全冗余的服务器,并且服务器上的现有服务没有中断。
管理工具的最后一个功能是服务器日志,它可以访问集群中每台服务器的守护进程消息。这让我想到一个小小的抱怨:日志有点难以解析。如果能看到一个集成的集群日志,提供服务器日志的摘要,那就更好了。
要在生产环境中使用 Understudy,您需要配置任何服务(例如 Web、FTP、邮件、TELNET)以响应虚拟 IP 地址(以及真实 IP 地址)。有关将虚拟主机添加到您的 Apache 或 Microsoft IIS Web 服务器的完整说明。
Understudy 不会自动将信息从一台服务器镜像到另一台服务器,尽管 Polyserve 已声明这是未来版本的目标。您应该考虑服务器是否需要具有最新的数据副本,并据此进行计划。某些数据库应用程序可能需要额外的硬件,例如连接到多台服务器的 RAID 阵列。我建议访问 Linux 高可用性网站 http://linux-ha.org/,以获取 LAN 镜像的想法。
Understudy 可以免费下载和演示 30 天,在此期间,通过电子邮件提供的技术支持也是免费的。它是试用软件;在试用期内,守护进程将在使用两小时后自行关闭,需要您重新启动守护进程。包含服务合同的永久许可证价格略低于 1000 美元。如果没有服务合同,价格大约是前者的一半。Polyserve 提供各种支持选项,因此您应该联系他们以获取完整列表。我对他们的客户服务评价很高。由于与 Understudy 软件相关的网络问题(但不是软件的故障),我花了很多时间通过电话与 Polyserve 的支持人员交谈。他们在技术上很精湛,并且非常乐于助人地为我指出了解决问题的好方法。
文档可以从网站以 PDF 格式下载。它完整且有用,尽管产品手册显示出一些编辑不佳的迹象。与白皮书不同,该手册错误地指出您只能将其与两台服务器一起使用,而不是十台。
如需进一步帮助,还有一个六页的帮助工具,其中描述了程序的操作。由于某种原因,在我的计算机上,帮助页面不断抛出 Java 异常。但是,信息仍然可以访问,并且它们只是轻微的干扰。这些是我在程序中发现的唯一错误。
对于需要通过重启、故障和计划内停机来保持服务 24/7 运行的困境中的系统管理员、服务器场或 ISP 来说,Understudy 应该是一个福音。该软件的一个优势是它能够在任何具有各种主机的网络中工作。即使您的备份服务器是一台 33MHz 的 486,Understudy 也可以让您的网络勉强维持运行,直到您可以修复主服务器。对于那些买不起 10,000 美元到 50,000 美元的专用故障转移和负载均衡服务器,或者根本不愿意为集群中的每台服务器支付 2000 美元许可证的人来说,这似乎是一个不错的解决方案。
