Understudy

作者:Daniel Allen
  • 制造商:Polyserve Software

  • 电子邮件:info@polyserve.com

  • 网址:http://www.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 中。

Understudy

图 1。

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

现在,添加我的第一个“虚拟主机”。这需要在您的 DNS 表中添加一个新主机(例如 DNS 服务器上的 /var/named 中)

virtual1  60   IN       A  150.1.1.1

这只是添加一个新主机名,其生存时间 (TTL) 为 60 秒,并带有其地址。

我添加了带有适用于我的子网的 IP 地址的新行,并重启了 named 守护进程。回到管理工具中,我选择了“添加虚拟主机”。它提示我输入虚拟主机的名称或 IP,并列出了选择框以确定哪台真实服务器将成为主服务器,哪台将成为备份服务器。我输入了我的信息。

Understudy

图 2。

此时,“集群状态”看起来更有趣了(图 2)。它列出了两台真实服务器,子标题描述了第一台服务器对于虚拟主机处于活动状态,而第二台服务器处于非活动状态。我尝试 telnet 到虚拟主机。它将我连接到第一台服务器。我回到管理工具并删除了虚拟主机。我重新添加了它,但这次决定将第二台服务器作为此虚拟主机的主服务器。显示屏立即反映了更改。我 telnet 到虚拟主机。果然,它将我连接到第二台服务器。

幕后发生的事情是这样的:Understudy 在每台服务器上作为守护进程运行。虚拟主机的 IP 地址会自动别名到主服务器。少量流量通过广播 ARP 消息在真实主机之间不断传递。通过守护进程,每台主机都知道哪台主机充当主服务器。当主服务器宕机时,备份服务器会立即将虚拟主机的 IP 地址重新分配给自己。它会继续监听,以便在主服务器恢复运行时释放 IP 地址。

请注意,Understudy 不允许您使用已分配或别名给真实主机的 IP 地址作为虚拟主机。我想否则很容易“劫持”您子网中其他主机的 IP 地址。

Understudy

图 3。

接下来,我设置了一个“服务监视器”(图 3)。这允许我选择要监视的特定端口,例如邮件、Web、FTP 或 TELNET 的端口。如果活动服务器在该端口上没有响应,则非活动服务器将介入。我选择了 HTTP,并且“集群状态”报告 Web 服务器在两台真实服务器上都已启动。我使用 Lynx 验证了对虚拟主机的请求会发送到主服务器,除非它正在监视的某个服务宕机,在这种情况下,请求会发送到备份服务器。在所有情况下,Lynx 都显示了虚拟主机名称的 URL,正如预期的那样。

对于下一个测试,我设置了轮询 DNS。轮询 DNS 是内置于名称服务器(例如 BIND(4.9 及更高版本))中的一项功能。轮询允许服务器通过在给定主机名的任意数量的 IP 之间轮换来透明地共享负载。唯一的问题是,如果一台或多台服务器宕机,则不会进行纠正,因此在每个请求周期中,某些请求会发送到无效服务器。有了 Understudy,这不再是问题。您可以为多个虚拟主机设置轮询 DNS,其中每个虚拟主机都有不同的主服务器。如果任何服务器宕机,则其请求将发送到下一个辅助服务器。Understudy 文档中提供了执行此操作的完整示例。这些说明相当清晰易懂。在工作了几个小时后,我拥有了一组完全冗余的服务器,并且服务器上的现有服务没有中断。

管理工具的最后一个功能是服务器日志,它可以访问集群中每台服务器的守护进程消息。这让我想到一个小小的抱怨:日志有点难以解析。如果能看到一个集成的集群日志,提供服务器日志的摘要,那就更好了。

安全性

使用手册指出,远程控制台和服务器之间的所有消息都经过签名以确保安全。远程控制台可以与防火墙一起使用,如果有人尝试“重放”内部 UDP 消息以混淆服务器,服务器会将消息记录到日志中。

实际应用

要在生产环境中使用 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 美元许可证的人来说,这似乎是一个不错的解决方案。

优点;缺点

Understudy
Daniel Allen (da@coder.com) 通过 1200 波特调制解调器、免费本地拨号连接和 MIT 的访客帐户发现了 UNIX,那时这些东西还存在。自 1995 年以来,他一直是热情的 Linux 用户。他是 Prescient Code Solutions 的总裁兼联合创始人,这是一家位于纽约州伊萨卡的软件咨询公司。
加载 Disqus 评论