我正在尝试开始在ElasticHosts 云服务器,并且他们的系统不允许用户使用VRRP。
是否有人知道任何为标准 Debian/Ubuntu 预先打包的非 VRRP 负载均衡器?
我尝试过非 VRRP超级猴子,但该软件看起来已经老旧了,而且包装也不再美观——最新版本是针对 Debian Sarge 的。
非常感谢您的建议。
答案1
UltraMonkey 本质上只是几个组件的总括项目,这些组件在 Linux 机器上构建负载平衡器时很有用。这些组件包括:
ipvs
。存在于绝大多数发行版的现成内核(2.6 及更高版本)中,编译为模块。运行modinfo ip_vs
以查看是否存在于您的内核中。目前仍处于开发阶段;并且最近添加了 ipv6 支持。代码必须符合内核标准,并产生极好的性能。请参阅http://www.linuxvirtualserver.org/software/ipvs.html了解更多信息。ipvsadm
。用于管理 IPVS 的命令行工具,允许您从虚拟组中添加和删除后端服务器、设置服务器权重、选择调度算法(例如循环、加权最小连接)等。我不能代表 Debian 发言,但 ipvsadm v1.2.5-1 存在于标准 Ubuntu 存储库中,并且有一个可用的 v1.26,于 2011 年 2 月发布。因此,您很可能可以在系统上运行 a:,sudo apt-get install ipvsadm
然后运行 aman ipvsadm
来获取完整的详细信息。ldirectord
。这是一个用 Perl 编写的健康检查守护进程,它还可以作为 ipvsadm 的便捷接口。它允许您维护 ipvs 配置的配置文件,而不必自己编写多个 ipvsadm 命令脚本。可以在后端服务器上执行多种不同类型的健康检查。同样,ldirectord 可以通过标准存储库安装(至少在 Ubuntu 中),并且目前仍在开发中(2011 年 6 月进行了 IPv6 更改)。- Linux-HA。更复杂的是,这也是一个组合项目,实际上包括 ldirectord。尽管如上所述,您可以通过存储库单独安装 ldirectord。据我所知,Linux-HA 提供的主要附加功能是 Heartbeat,它允许您将 2 个(或更多)负载平衡器集群起来,这些负载平衡器(如您所料)相互发送心跳,以便它们了解彼此的状态,并在必要时进行故障转移。这就是它与 VRRP 的不同之处。您倾向于仅在一个负载平衡器上激活虚拟 IP(即“启动”),以便只有一台机器响应 VIP 的 ARP 请求。因此,负载平衡器将处于主动/被动状态,如果从属节点检测到主节点发生故障,它将“启动”虚拟 IP。如果两个节点上的虚拟 IP 都启动了,那么您就会遇到问题,通常称为“裂脑”。有关 Heartbeat 的更多信息:http://www.linux-ha.org/wiki/Heartbeat。
我认为 UltraMonkey 项目缺乏维护可能是因为现在每个单独的组件(二进制格式)在流行的发行版中都可以广泛使用,而 5 年前的情况并非如此。
请注意,以上述方式使用这些组件可能与您的原始计划不同,因为负载平衡器是一台专用机器;您不必在应用服务器上安装所有这些东西。相反,ipvs 框将位于您的后端服务器前面,并根据其调度算法和其他配置参数(权重等)将流量“引导”到它们。
除非您有在第 4 层进行负载平衡的特定需求(通常是出于性能原因),否则您可能还需要查看 HAProxy,这是一个具有充足负载平衡功能的第 7 层代理。ServerFault 上有许多得到充分解答的 HAProxy 问题。此外,关于心跳/故障转移和管理虚拟 IP,您可能希望将 keepalived 作为 Linux-HA 的 Heartbeat 的替代方案。