标签: lvs

LVS vs HAProxy,我应该选择哪个?

我正在寻找负载平衡和故障转移策略的解决方案,主要用于大型 Web 应用程序。我们有许多服务需要平衡,例如 web、MySQL 和许多其他基于 HTTP 或 TCP 的服务。但我不确定它们的优缺点是什么,我应该选择哪个。

failover load-balancing haproxy lvs

22
推荐指数
2
解决办法
3万
查看次数

HAProxy 使用 TCP 负载均衡时,是否所有出站流量都流经 LB?

我正在设置一个使用虚拟机(可能是亚马逊,但不是一成不变的)托管的应用程序,这将需要 HTTP 负载平衡和负载平衡大量(如果可能,50k 左右)的持久 TCP 连接。数据量并不高,但更新频繁。

现在我正在评估负载均衡器,并且对 HAProxy 的架构有点困惑。如果我使用 HAProxy 来平衡 TCP 连接,是否所有产生的流量都必须流经负载平衡器?如果是这样,另一种解决方案(例如 LVS 甚至 nginx_tcp_proxy_module)是否更合适?

load-balancing haproxy lvs

19
推荐指数
1
解决办法
4万
查看次数

AWS ElasticBeanstalk docker-thin-pool 已满并导致文件系统重新挂载为只读?

我无法弄清楚 AWS 如何在 ElasticBeanstalk 上设置他们的 Docker“瘦池”以及它是如何被填满的。我的 docker 精简池不知何故填满并导致我的应用程序在尝试写入磁盘时崩溃。

这是来自容器内部:

>df -h
>     /dev/xvda1                  25G  1.4G   24G   6%
Run Code Online (Sandbox Code Playgroud)

事实上,EBS 有一个 25GB 的磁盘分配给它;du -sh /返回的是 1.6 GB 。

在 EC2 之外,它开始时足够无害......(通过lvs

LV          VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
docker-pool docker twi-aot--- 11.86g             37.50  14.65
Run Code Online (Sandbox Code Playgroud)

但是,文件系统很快将重新挂载为只读。通过 dmesg:

[2077620.433382] Buffer I/O error on device dm-4, logical block 2501385
[2077620.437372] EXT4-fs warning (device dm-4): ext4_end_bio:329: I/O error -28 writing to inode 4988708 (offset 0 size 8388608 …
Run Code Online (Sandbox Code Playgroud)

filesystems lvs amazon-web-services docker

12
推荐指数
2
解决办法
4289
查看次数

负载平衡 DNS 服务器:UDP / TCP

我被要求在数据中心重建我们的负载平衡基础设施。

最初的请求是对 FTP 服务器进行负载平衡。我尝试使用当前的负载平衡器 ( Piranha / LVS)执行此操作,但没有启动并运行。不仅仅是因为这个软件几乎没有文档。由于Piranha被认为已弃用,我在HAProxy尝试了几天后转而使用它,它在Piranha.

所以我已经有了 FTP 负载平衡(被动模式)。现在,我被要求更换数据中心的整个 Piranha Load Balancer。在当前的 Piranha 配置中,我们有几个 Web 服务器、IIS 服务器....aaa 和DNS

不,事情是这样的:
HAProxy似乎是一个常用的 LB,但它不能处理UDP load balancing. 这是一个无赖,因为我喜欢如何HAProxy运作。所以我用谷歌搜索了很多,遇到了几件事。大多数人似乎将LVS其用作 DNS (TCP/UDP) 的 LB。有的用dlbDNS,有的用lbnamed,有的用netfilter / iptables

由于我想坚持使用HAProxyFTP、HTTP、IIS 服务器,因此我对将它与LVS.

要求:
具有故障转移功能的
2个 LB 实例 具有故障转移功能的2 个 DNS 服务器(已经存在)
多个后端服务器(http、应用程序等...)

问题:
这可能吗?DNS 服务器上的 UDP 负载平衡是否有必要?是否有任何类型的资源可以告诉我如何开始使用它?或者有没有既能处理 TCP/HTTP 又能处理 UDP 负载均衡的 …

domain-name-system load-balancing udp haproxy lvs

10
推荐指数
2
解决办法
1万
查看次数

Linux 虚拟服务器是旧的,还是停滞不前?

基于这个问题:广泛使用的负载均衡解决方案?, LVS 可能是我的问题的正确解决方案。

但是当我去它的主页http://www.linuxvirtualserver.org/ 时,我发现LVS 从2008 年11 月开始更新了。世界变化很快,我不知道LVS 是否已经过时了。

LVS 是停滞不前,还是有更好的解决方案来替代它?

非常感谢。

linux load-balancing lvs

8
推荐指数
1
解决办法
2317
查看次数

持久性负载平衡最佳实践

我们运行一个 Web 应用程序,为越来越多的客户端提供 Web API。首先,客户端通常是家庭、办公室或其他无线网络,向我们的 API 提交分块的 http 上传。我们现在已经扩展到处理更多的移动客户端。文件从几千到几场不等,分解成更小的块并在我们的 API 上重新组装。

我们当前的负载均衡是在两层执行的,首先我们使用轮询 DNS 为我们的 api.company.com 地址通告多个 A 记录。在每个 IP 处,我们托管一个 Linux LVS:http : //www.linuxvirtualserver.org/,负载均衡器查看请求的源 IP 地址以确定将连接交给哪个 API 服务器。这个 LVS 盒子配置了 heartbeatd 来相互接管外部 VIP 和内部网关 IP。

最近,我们看到了两个新的错误条件。

第一个错误是客户端在上传中摇摆或从一个 LVS 迁移到另一个。这反过来会导致我们的负载均衡器失去对持久连接的跟踪,并将流量发送到新的 API 服务器,从而破坏跨两个或更多服务器的分块上传。我们的目的是让下游缓存名称服务器、操作系统缓存层和客户端应用程序层遵守 api.company.com 的循环 DNS TTL 值(我们已将其设置为 1 小时)。大约 15% 的上传会出现此错误。

我们看到的第二个错误要少得多。客户端将向 LVS 盒发起流量并路由到它后面的 realserver A。此后,客户端将通过 LVS 框无法识别的新源 IP 地址进入,从而将正在进行的流量路由到也在该 LVS 后面的真实服务器 B。

鉴于我们上面部分描述的架构,我想知道人们对更好的方法有什么经验,这将使我们能够更优雅地处理上述每个错误情况?

2010 年 5 月 3 日编辑:

这看起来是我们需要的。源 IP 地址上的加权 GSLB 哈希。

http://www.brocade.com/support/Product_Manuals/ServerIron_ADXGlobalServer_LoadBalancingGuide/gslb.2.11.html#271674

domain-name-system load-balancing lvs round-robin

8
推荐指数
1
解决办法
8619
查看次数

IPvsadm 在 wlc 调度程序上的平衡不均衡

出于某种原因,当使用 wlc 或 lc 调度程序时,ipvsadm 似乎并没有平等地平衡我的真实服务器之间的连接。一台真正的服务器会收到大量请求,而其他服务器收到的连接相对较少。

我的 ldirectord.cf 文件如下所示:

quiescent     = yes
autoreload    = yes
checktimeout  = 10
checkinterval = 10

# *.example.com http
virtual = 192.0.2.111:http
    real = 10.10.10.1:http  ipip    10
    real = 10.10.10.2:http  ipip    10
    real = 10.10.10.3:http  ipip    10
    real = 10.10.10.4:http  ipip    10
    real = 10.10.10.5:http  ipip    10
    scheduler = lc
    protocol = tcp
    service = http
    checktype = negotiate
    request = "/lb"
    receive = "Up and running"
    virtualhost = "site.com"
    fallback = 127.0.0.1:http
Run Code Online (Sandbox Code Playgroud)

我认为可能导致问题的奇怪事情(但我真的不确定)是 ipvsadm …

linux ldirectord lvs ubuntu-10.04

5
推荐指数
1
解决办法
3703
查看次数

使用 LVS(Linux 虚拟服务器)进行 DNS HA

我一直在尝试使用 CentOS 6.x 创建 LVS DNS HA:

  • Piranha GUI 配置 DNS
  • Pulse 是 CentOS LB 的 HA 核心
  • IPTables 在数据包上配置标记,因为 DNS 使用 TCP 和 UDP 53

几天后,我发现我无法弄清楚如何使其工作 - 我希望有人可以使用 lvs.cf 文件以及所有必需的 iptables 规则。或者,如果有人已经使用了其他一些允许进行 DNS LB 的开源和免费软件(不是循环 DNS A 记录 - 这不是本练习的目的)。

如果有人成功地在 LVS 下使用池中的两个或多个真实服务器创建了命名 DNS,则工作,如果可以发布配置,我将不胜感激:

  • lvs.cf
  • 要放置的 iptables 规则

我主要是在寻找直接服务器返回或 NAT - 任何一种解决方案都适合我。

先感谢您。

吉姆。

domain-name-system iptables high-availability load-balancing lvs

5
推荐指数
1
解决办法
1818
查看次数

UDP 的每包循环负载平衡

我需要在多个“真实服务器”之间对 UDP 流量进行负载平衡,并以真正的循环方式进行。我已经开始使用 keepalived,但意外地发现,LVS 将 UDP 流量视为“连接”(无论 UDP 是什么......)。实际上,这意味着来自特定客户端的所有流量始终都流向同一个“真实服务器”(这是一个大问题,因为某些客户端可能会产生如此大的流量,以至于单个后端将不堪重负) .

显然,这是预期的行为,但是最近的 LVS 版本有一个“--ops”标志,这使 LVS 绕过其上述行为,以便独立处理每个 UDP 数据报(这就是我想要的!)。但是(总是有一个但是……)这个功能没有从 keepalived.conf 中暴露出来。

有什么解决方案可以让我

  • 在 UDP 的后端之间进行循环分配
  • 检测“死”后端并将它们从循环中删除(当它们“活着”时将它们添加回来也很有用)

显然应该是基于 Linux 的。任何形式的 DNS 轮询在这里都不起作用,因为客户端不知道 DNS。

PS我将尝试脉冲/食人鱼,但从阅读我收集的文档来看,它也没有公开“--ops”标志。我还将尝试mon(通过直接调用 ipvsadm使mon检查后端并添加/删除真实服务器)。

high-availability load-balancing udp lvs keepalived

4
推荐指数
1
解决办法
6587
查看次数

为什么LVS会丢包?

我目前正在尝试解决问题的核心,我的 LVS 控制器似乎不时丢弃来自客户端的数据包。我们在我们的生产系统上有这个问题,并且可以在登台时重现这个问题。

我在 lvs-users-mailing-list 上发布了这个问题,但到目前为止没有得到任何回应。

我们的设置:

我们在 PV XEN-DomU 中使用 ipvsadm 和 Linux CentOS5 x86_64。

当前版本详细信息:

  • 内核:2.6.18-348.1.1.el5xen
  • ipvsadm: 1.24-13.el5

LVS-设置:

我们在 DR 模式下使用 IPVS,我们使用 lvs-kiss 来管理正在运行的连接。

ipvsadm 在heartbeat-v1-cluster(两个虚拟节点)中运行,主节点和备份节点在两个节点上持续运行。

对于 LVS 服务,我们使用由心跳设置的逻辑 IP(主动/被动集群模式)

真实服务器是物理 Linux 机器。

网络设置:

充当控制器的 VM 在使用桥接网络的 Dom0 上作为 XEN-PV-DomU 运行。

网络“在玩”:

  • abn-network(staging-network,用于将客户端连接到director),由真实服务器用于向客户端发送应答(直接路由方式),用于ipvsadm slave/master 多播流量
  • lvs-network:这是一个连接控制器和真实服务器的专用 VLAN
  • DR-arp-problem:解决了我在真实服务器上为 service-ip 抑制 arp-answers
  • service-IP 被配置为 real-server 上 lvs-interface 上的逻辑 IP。
  • 在此设置中,任何地方都不需要 ip_forwarding(无论是在导演上,还是在真实服务器上)。

虚拟机详情:

1 GB RAM,2 个 vCPU,系统负载几乎为 0,可用内存 73M,224M 缓冲区,536M 缓存,无交换。

top 显示几乎总是 100% 空闲,0% us/sy/ni/wa/hi/si/st。

配置详情:

ipvsadm …

xen lvs centos5

2
推荐指数
1
解决办法
2382
查看次数

为什么第 7 层负载均衡器配置不需要任何客户端配置更改?

例如,对于haproxy(第7层)负载均衡,只需要配置VIP(即集群IP)后面的“真实服务器”或“后端”即可。例如:

listen smtp 192.168.3.10:25
        mode tcp
        balance roundrobin
        server smtp1 192.168.3.1:25 check
        server smtp1 192.168.3.2:25 check
Run Code Online (Sandbox Code Playgroud)

但是,对于lvs(第 4 层),我需要:

  1. 将本lvs机设置为路由器,实现“NAT路由”
  2. lvs机和后端都配置有与后端的一些ARP MODS的VIP

如果没有更复杂的配置,第 7 层负载平衡如何设法做到这一点?我在这里误解或遗漏了一些基本的东西吗?

linux cluster load-balancing haproxy lvs

2
推荐指数
1
解决办法
1012
查看次数

在 CentOS 上设置 LVS

我有一个 3 节点(来自提供商的专用服务器)CentOS 7.x 集群。我正在尝试使用此处的链接设置 LVS 。

我的每台机器都已经分配了 3 个额外的别名 IP 地址。我想在其中一台机器上设置 LVS。我的问题是我应该在 Piranha 配置工具中使用什么作为虚拟 IP(VIP)?我可以为我希望 LVS 所在的那台机器选择一个别名 IP 吗?

centos lvs piranha ipvs

2
推荐指数
1
解决办法
4583
查看次数