标签:私有云

关于OpenStack私有云的HAProxy负载平衡的见解

关于OpenStack私有云的HAProxy负载平衡的见解

在私有云的世界里,OpenStack作为第一大开源技术的领先优势,从小型企业到大型企业都能从中获益。在负载平衡的世界中,人们普遍认为,HAProxy不能出错。在Twitter、Airbnb、Reddit和Instagram等公司的使用中,HAProxy是Rackspace的一个简单选择。

关于OpenStack私有云的HAProxy负载平衡的见解
关于OpenStack私有云的HAProxy负载平衡的见解

HAProxy关键的好处

在规模上的可靠性——HAProxy有一个经过验证的扩展历史,可以处理非常高的流量,同时通过它的HA配置保持可靠。

稳定性——Rackspace已经使用HAProxy数年了,它的稳定性使它对私有云很有价值。有这么多知名公司在规模上部署了HAProxy,并充分利用了它所提供的强大功能,因此,它被打包在当今大多数Linux发行版中并不令人感到意外。

社区支持,开源-由不断增长的贡献者社区支持,更不用说来自HAProxy本身的支持了。

我们如何使用它?

作为OpenStack的联合创始人,Rackspace致力于开源技术的开发。我们认识到在OpenStack的负载平衡中需要有更多的灵活性和选择。因此,我们现在可以部署、管理和完全支持一个冗余的OpenStack控制平面,HAProxy作为负载平衡器。

Rackspace已经证明了HAProxy在Rackspace私有云上的可靠性和稳定性,这是由OpenStack和Rackspace私有云提供的,这意味着您的体验将是无缝的,无论哪种云是最适合您的。

HAProxy优化选项

我们已经花了数年时间来配置、部署和操作HAProxy。我们从这方面获得的知识,使我们对最好的方法进行了深入的了解,以便为生产就绪的、企业级的私有云环境优化HAProxy。

为了从HAProxy中获得最好的结果,有几个可以使用HAProxy进行的调优选项。cfg文件。这个配置文件包含HAProxy配置的所有全局设置,因此,正确地配置这个配置是非常重要的。以下是一些值得注意的值得注意的问题:

高可用性——通过启用保存,我们可以在HA模式中配置多个HAProxy节点,这对于任何生产环境都是至关重要的。这将确保HAProxy在需要时能够在控制平面上的另一个节点上失效,而Rackspace将会着手解决任何相关问题。

最大连接——定义maxconn参数,我们可以设置一个节点将接受的并发连接的最大数量。这可能会对单个节点的吞吐量产生很大影响,因此在这里拥有合适的专业知识非常重要,可以为您的云配置适当的配置。

多线程-在默认情况下,HAProxy使用一个单一的工作进程。这意味着所有的HTTP会话都将通过一个进程来平衡。在包含多个CPU的服务器中,我们可以使用nbproc和cpu-map设置来允许多个CPU处理会话。这可以极大地提高性能和可并发处理的连接数量。

HPProxy,全球

在上面的示例中,我们将最大连接数设置为6000,并在HAProxy节点中定义两个cpu。cpu-map的设置意味着我们可以在每个CPU之间平均分配进程,确保我们充分利用所有的核心。

算法-我们有很多选择:循环,加权,加权循环,最小连接,来源。在多节点设置中,为您的连接选择正确的分布方法对于防止单个节点过载请求是很重要的。这将使您能够更有效地分配流量,同时保持节点的健康。

我们已经调整了负载平衡器,那么我们如何监控它?

正如我们所知,监视可以让您查看云环境是否正确运行,而HAProxy也不例外。

有许多方法可以用来监视HAProxy,它是专门构建在它的配置上的,但是在默认情况下是不启用的。这些范围从使用HTTP的统计页面,一直到诸如HAtop等第三方工具。

我们更喜欢实现的是Unix套接字监视器。通过使用Unix套接字监视器,我们可以查看与HAProxy节点相关的大量统计数据,例如:

请求——队列请求的数量,请求被拒绝的请求,甚至是错误的econ的请求。

HTTP响应——以确定良好的hrps_2xx和错误的hrsp_4xx/5xx请求,并随后出现错误。

会话——当前活动会话的数量,最多的会话smax,甚至会话的极限

通过使用Unix套接字监视器,我们可以在给定的私有云环境中安全地自动化、配置和监控每个HAProxy节点。

在硬件负载平衡器和HAProxy之间进行选择

尽管Rackspace已经证明了HAProxy的价值,但负载平衡的世界有很多选择。这些都是由您的业务需求、对技术的投资,甚至是IT管理员的技能集驱动的。在这些选项之间做出选择可能是一个很有挑战性的决定,因此,而不是对每一项功能进行并排比较,这是思考的精神食粮:

与解决方案收益的财务影响——环境是否证明了高昂的初始前期成本,还是开源的、低成本的模型最有效?您是否与现有的供应商有良好的关系,有助于缓解这一问题?

如果您需要特定的功能,比如层4和/或7负载平衡或SSL终止,那么你需要问的是这些特性以及它们是如何实现的。评估您是否需要控制平面,只需要负载平衡,或者需要数据平面负载平衡,以支持internet面对VM。

考虑一下预期的规模——您将如何快速地扩展您的云计算,以及如何完成(添加更多的节点、更多的服务等等)?