我正在研究建立一个由三个CentOS 5.4盒组成的负载平衡服务器解决方案。其中两个箱子将存放在一个设施内,而第三个箱子将存放在另一个设施中。
我目前正在建立心跳,ldirectord,ipvsadm来负载平衡机器,但我不确定它是否能与
我不太熟悉所有这些服务器如何工作的细节,但是当这些服务器不在同一个LAN上时,负载平衡是否会正确工作呢?我不确定心跳是否使用SNMP发送信号,这将只在局域网上工作。有人尝试过或者找到了不同的解决方案吗?
发布于 2010-06-16 14:39:01
这是一个大的话题,很快就会变得复杂起来。盖定理是一个很好的起点,因为它确定了必须进行的更高级别的选择。
当您处理写重的Web应用程序时,它使得在维护数据完整性的同时在Internet上分配负载变得更加困难。以阅读为中心的应用程序(搜索!)更容易分发,因为您不必担心编写数据的后勤工作。
ipvs允许Linux从本质上成为第4层交换机。我在第二层(ARP/以太网-链路层)上使用它取得了最大的成功,这将是我的第一选择,但是在没有广播层连接的地理分离的服务器上使用undefined这样的方法可能是可行的。注意,ipvsadm是ipvs的userland工具,ldirectord是管理ipvs资源的守护进程。
心跳已经有效地被起搏器所取代。要监视另一台服务器,必须有多个链接。服务器之间没有串行或冗余物理连接的风险要大得多。即使是两个站点之间心跳监视的多个物理上不同的互联网连接也必然会下降。这就是数据的风险发挥作用的地方,因为自动故障转移会使数据因大脑分裂而损坏。没有理想的方法来减轻这种风险。
您可以在故障转移过程中注入更多的逻辑。例如:
如果path1关闭,path2关闭,该进程将不运行,而我无法这样做--然后故障转移。
这降低了风险,但即使这样,也不一定能够在短距离内实际连接服务器。
对于静态内容,使用内容分发网络很容易。
简单的负载平衡和故障转移可以使用圆形罗宾DNS完成,这是更容易出错的。
边界网关协议是一种能够在网络层上实现高可用性的网络协议。
最终,只要有足够的资金(时间/资源),就可以开发出适当的SLA,以实现高可用性。你的预算将是你的终极限制。定义您的需求,然后看看您可以在您的预算内完成什么,因为会有妥协。
我经常发现,至少在编写大量应用程序的情况下,在相同的物理前提下启用高可用性和自动故障转移更有意义。作为灾难恢复计划和SLA的一部分,将手动故障转移过程转移到物理上独立的站点,这允许维护数据完整性,但仍然保持了高质量的服务水平。
发布于 2010-06-16 14:23:17
在不同的位置拥有不同的服务器应该不是一个问题,直到它们能够到达对方。
问题在于它们之间的带宽,以及它们的流量。
心跳不使用snmp,可以是多播、单播或广播。这是一个特定的协议(无论如何,snmp在局域网之间工作,这是一个udp协议)。
什么样的服务在努力实现负载平衡?
发布于 2010-11-01 23:01:35
另一个想法是实现一些具有高可用性的DRBD。查看这个站点,找出http://www.drbd.org/home/what-is-drbd/
https://serverfault.com/questions/151728
复制相似问题