我即将部署两个不同的系统:一个MySQL集群和一个Jetty Web服务器集群。
1.软件
我可以为HA / LB获得更多的Linux服务器,但是我应该使用哪种软件? 我与CentOS。
我听说过HAProxy,LVS和UltraMonkey。
我已经阅读了大量的文档,但是不清楚它们是否支持MySQL和HTTP / S(都)。
我想要一个解决scheme,照顾两个 ,简单(而不是处理两个)。
2.性能
我读过,负载平衡可以通过三种方式完成:
– 直接路由<<局域网交换机相关?
– IP-IP封装(隧道)<<听起来最好。 不局限于局域网,而不是“直接路由”
– networking地址转换<<非常有限(从应用服务回复通过LB)
关于性能的底线是我最担心的是最终有可能(而且我不希望它)互联网用户和我的集群之间的所有数据都是通过一台服务器(平衡器)进行的,这使得平衡器成为一个瓶子- 颈 。
如果连接了100MBit的连接,那么整个系统就会受到限制 。
是否有可能避免这种情况,但是还要保持平衡和高可用性? 什么是“成本”呢? 我是否需要networking上的特殊开关?
很好,您不必依靠LB(负载平衡器)来获取会话信息。
您对速度的需求导致恕我直言对LVS和“直接路由”方法。 你可以做直接路由而不使用ip_forward机制。 我通过使用从LB到真实服务器的专用lvsnetworking来设置它。
现在为“需要速度”:直接路由LB采取传入请求,改变他们的目的地MAC并且把他们放在线路到RS。 现在,RS必须在LVSnetworking上具有逻辑IP(但不应该回答该IP的ARP请求)。 RS将服务于该请求,并直接向客户回答 – 回答不会通过LB返回,从而最小化LB上的负载。
此外,您的ingoingstream量最适合远低于出站stream量 – 这样就适合您的需求。
最后一个弱点是LB itselv的可用性。 您可以将LB与另一台接pipe逻辑IP(和lvs)的机器集群。 由于会话粘性在你的设置中没有问题 – 这就是你所要做的。
我发现lvs-kiss是dynamic重新configurationlvs的一个很好的可能性 – 但是还有其他的工作解决scheme。
BTW – 我们使用LVS的大部分服务器都是CentOS 5。
更新2011-11-11: heartbeat-ldirectord是心跳的插件,然后你不需要lvs-kiss – 如果你想要集群无论如何。
负载均衡:
对于医pipe局,我build议看看心脏起搏器它是强大的,可扩展的和灵活的解决scheme,用于集群和高可用性。