我正在研究设置一个由三个CentOS 5.4盒子组成的负载均衡服务器解决scheme。 其中两个箱子将驻留在一个设施中,而另一个将驻留在另一个设施中。
我目前正在设置心跳,ldirectord,ipvsadm负载平衡的机器,但我不知道它会去工作
我不太熟悉所有这些工作背后的细节,但是当这些服务器不在同一个局域网上时,负载平衡能够正常工作吗? 我不确定心跳是否使用SNMP发送信号,这只能通过局域网工作。 有没有人试过或find了不同的解决scheme?
这是一个复杂得很快的大话题。 CAP定理是一个很好的起点,因为它确定了必须做出的更高层次的select。
在处理写入繁重的Web应用程序时,在保持数据完整性的同时,更难以在Internet上分发负载。 阅读中心应用程序(search!)更容易分发,因为您不必关心写入数据的后勤工作。
ipvs允许Linux基本上成为第4层交换机。 我在第2层(ARP / ethernet–链路层)上使用它是最成功的,这将是我的第一select,但是对于地理上分离的服务器使用LVS-Tun等可能是可行的。连接在广播层。 请注意,ipvsadm是ipvs的用户级工具,而ldirectord是pipe理ipvs资源的守护进程。
心脏起搏器已经有效地得到了成功。 要监视其他服务器,必须有多个链接。 服务器之间没有串行或冗余物理连接的风险大得多。 即使是两个站点之间心跳监测器的多个物理上不同的互联网连接也必然会停下来。 这就是数据风险起作用的地方,因为自动故障转移会导致数据破裂。 没有理想的方法来减轻这种风险。
您可以在故障转移过程中注入更多的逻辑。 例如:
如果path1closures,path2closures,这个进程没有运行,我不能这样做 – 然后故障转移。
这降低了风险,但即使如此,仍然不一定能够在短距离上物理连接服务器。
使用静态内容,员工可以轻松使用内容分发networking 。
简单的负载均衡和故障转移可以使用Round Robin DNS来实现。
边界网关协议是一种networking协议,可以在networking层实现高可用性。
最终,有了足够的资金(时间/资源),可以开发适当的SLA以实现高度的可用性。 你的预算将是你的最终约束。 定义你的要求,然后看看你可以在预算内完成什么,因为会有妥协。
我经常发现,至less在写入大量应用程序的情况下,更有意义的是在相同的物理前提下实现高可用性和自动故障转移。 作为灾难恢复计划和SLA的一部分,它将手动故障转移到物理上独立的站点,这样可以保持数据完整性并保持高质量的服务级别。
在不同地点使用不同的服务器不应该成为问题,直到他们可以互相访问。
问题在于它们之间的带宽以及你在其上的stream量。
心跳不使用snmp,可以是多播,单播或广播。 这是一个特定的协议(无论如何snmp作品之间的兰斯这是一个udp协议)。
什么样的服务试图负载平衡?
另一个想法是一些具有高可用性的DRBD的实现。 查看这个网站http://www.drbd.org/home/what-is-drbd/