互联网上负载均衡的Linux服务器?

Modified on: Sat, 09 Nov 2019 13:20:02 +0800

我正在研究设置一个由三个CentOS 5.4盒组成的负载均衡服务器解决方案。其中两个箱子将驻留在一个设施中,而第三个箱子将驻留在不同的设施中。

我目前正在设置heartbeat,ldirectord,ipvsadm以对机器进行负载平衡,但我不确定它是否适用于

我不是太熟悉所有这些工作原理背后的细节,但是当这些服务器不在同一个局域网上时,负载平衡能够正常工作吗?我不确定心跳是否使用SNMP发送信号,这只能在局域网上工作。有没有人试过这个或者找到了不同的解决方案?

作者:LinuxGnut

最佳答案

这是一个快速复杂的大话题。 CAP定理是一个很好的起点,因为它确定了必须做出的更高级别的选择

当您处理写入繁重的Web应用程序时,它会使在整个Internet上分配负载更加困难,同时保持数据完整性。读取中心应用程序(搜索!)更容易分发,因为您不必关心编写数据的后勤工作。

ipvs允许Linux基本上成为第4层交换机。我在第2层(ARP / ethernet--链接层)上使用它取得了最大的成功,这将是我的第一选择,但使用像LVS-Tun用于没有地理位置的单独服务器广播层上的连接。注意,ipvsadm是ipvs的用户态工具,ldirectord是管理ipvs资源的守护进程。

心脏起搏器有效地取消了心跳。要监控其他服务器,必须拥有多个链接。服务器之间没有串行或冗余物理连接的风险要大得多。即使是两个物理上不同的Internet连接,两个站点之间的心跳监视器也必然会关闭。这就是数据风险发挥作用的地方,因为自动故障转移可能会导致数据损坏。没有理想的方法可以降低这种风险。

您可以在故障转移过程中注入更多逻辑。例如:

如果path1已关闭,则path2已关闭,此进程未运行,我无法执行此操作 - 然后进行故障转移。

这降低了风险,但即使如此,仍然不一定能够在短距离内物理连接服务器。

使用静态内容,您可以轻松使用内容分发网络

使用Round Robin DNS可以实现简单的负载平衡和故障转移,这更容易犯错。

边界网关协议是一种网络协议,可以在网络层实现高可用性。

最终,如果有足够的资金(时间/资源),可以开发适当的SLA以实现高度可用性。您的预算将是您的最终约束。定义您的要求,然后看看您可以在预算范围内完成哪些工作,因为会有妥协。

我经常发现,在写入繁重的应用程序的情况下,更有意义的是在同一物理前提下实现高可用性和自动故障转移。作为灾难​​恢复计划和SLA的一部分,可以将手动故障转移过程连接到物理上独立的站点,从而保持数据完整性,同时仍保持高质量的服务水平。

作者:,Warner

相关问答

添加新评论