基于一年多以前的一个问题(多路复用 1 Gbps 以太网?),我离开并使用新的 ISP 设置了一个新机架,并在整个地方都有 LACP 链接。我们需要这样做,因为我们有单独的服务器(一个应用程序,一个 IP)为互联网上的数千台客户端计算机提供服务,累积速度超过 1Gbps。
这个 LACP 想法应该让我们打破 1Gbps 的障碍,而无需在 10GoE 交换机和 NIC 上花费大量资金。不幸的是,我遇到了一些关于出站流量分配的问题。(尽管凯文·库法尔在上述链接问题中发出了警告。)
ISP 的路由器是某种 Cisco。(我是从 MAC 地址推断出来的。)我的交换机是 HP ProCurve 2510G-24。服务器是运行 Debian Lenny 的 HP DL 380 G5。一台服务器为热备。我们的应用程序不能集群。这是一个简化的网络图,其中包括具有 IP、MAC 和接口的所有相关网络节点。

虽然它具有所有细节,但很难处理和描述我的问题。因此,为简单起见,这里是一个简化为节点和物理链接的网络图。

所以我离开并在新机架上安装了我的工具包,并从他们的路由器连接了我的 ISP 电缆。两台服务器都有到我的交换机的 LACP 链接,而交换机有到 ISP 路由器的 LACP 链接。从一开始我就意识到我的 LACP 配置是不正确的:测试显示进出每台服务器的所有流量都通过一个物理 GoE 链路专门在服务器到交换机和交换机到路由器之间进行。

通过一些谷歌搜索和大量关于 linux NIC 绑定的 RTMF 时间,我发现我可以通过修改来控制 NIC 绑定 /etc/modules
# /etc/modules: kernel modules to load at boot time.
# mode=4 is for lacp
# xmit_hash_policy=1 means …Run Code Online (Sandbox Code Playgroud) 我开始探索在现有和新安装中使用的VMware 分布式交换机(dvSwitches 或 VDS)。假设 VMware 5.1 及更高版本具有Enterprise Plus许可。在此之前,我充分利用了通过正确类型的物理上行链路(1GbE 或 10GbE)定义并在单个主机上独立管理的标准 vSwitch。
在基本方面,使用分布式交换机对我有何帮助?检查 Internet 上描述的其他安装和设置,我看到很多情况下,虚拟管理网络或 VMkernel 接口保留在标准交换机上,VM 流量流向分布式交换机;混合模型。我什至看到了完全避免分布式交换机的建议!但最重要的是,我在网上找到的信息似乎已经过时了。在转换我现有服务器的一个弱尝试中,我不确定需要在何处定义管理接口,并且无法找到有关如何解决此问题的好答案。
那么,这里的最佳实践是什么?使用标准和分布式交换机的组合?或者这只是不是一种具有良好思想共享的技术?最近在 VDS 中加入了 LACP 功能对此有何影响?
这是一个真实的新安装场景:
构建此设置的最干净、最有弹性的方法是什么?我被要求使用分布式交换机并可能包含 LACP。
我在 Linux 下看到了一些关于绑定接口的令人困惑的行为,我想把这种情况扔出去,希望有人能帮我解决这个问题。
我有两台服务器:服务器 1 (S1) 有 4 个 1Gbit 以太网连接;服务器 2 (S2) 有 2 个 1Gbit 以太网连接。两台服务器都运行 Ubuntu 12.04,尽管内核是 3.11.0-15(来自 lts-saucy linux-generic 包)。
两台服务器都将各自的所有网络接口捆绑到一个具有以下配置(在 中/etc/network/interfaces)的单一 bond0 接口中:
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1 [eth2 eth3]
Run Code Online (Sandbox Code Playgroud)
服务器之间有几台 HP 交换机,(我认为)它们在相关端口上为 LACP 正确配置。
现在,链接正在工作 - 网络流量愉快地进出两台机器。并且所有相应的接口都在使用,因此聚合并非完全失败。但是,我需要在这两台服务器之间提供尽可能多的带宽,而且我没有获得预期的 ~2Gbit/s。
在我的测试中,我可以观察到每个服务器似乎将每个 TCP 连接(例如 iperf、scp、nfs 等)分配给单个从接口。基本上一切似乎都限制在最大 1 Gb。
通过设置bond-xmit-hash-policy layer3+4,我可以使用iperf -c S1 -P2在两个从接口上发送,但在服务器端,接收仍然只发生在一个从接口上,因此总吞吐量上限为 1Gbit/s,即客户端显示 ~40-50MB/s在两个从接口上,服务器在一个从接口上显示 ~100MB/s。不设置bond-xmit-hash-policy发送也仅限于一个从接口。
我的印象是 LACP 应该允许这种连接捆绑,例如,允许单个 scp 传输使用两个主机之间的所有可用接口。
我对 LACP 的理解有误吗?还是我在某处错过了一些配置选项?任何建议或调查线索将不胜感激!
我们把一个4端口英特尔I340-T4 NIC在一个FreeBSD 9.3服务器1,并且被配置为它的链路聚合在LACP模式以试图从主文件服务器降低所花费的反射镜8的时间数据的16个的TiB到2- 4 个平行克隆。我们期望获得高达 4 Gbit/sec 的聚合带宽,但无论我们尝试过什么,它的速度都不会超过 1 Gbit/sec 的聚合带宽。2
我们正在使用iperf3在静态 LAN 上对此进行测试。3第一个实例几乎达到了千兆位,正如预期的那样,但是当我们并行启动第二个实例时,两个客户端的速度下降到大约 ½ Gbit/秒。添加第三个客户端会将所有三个客户端的速度降低到 ~⅓ Gbit/sec,依此类推。
我们在设置iperf3测试时非常小心,以确保来自所有四个测试客户端的流量通过不同端口进入中央交换机:

我们已经验证了每台测试机器都有一条独立的路径返回到机架交换机,并且文件服务器、它的 NIC 和交换机都有带宽来通过拆分lagg0组并为每个机器分配一个单独的 IP 地址来实现这一点。此 Intel 网卡上的四个接口之一。在该配置中,我们确实实现了约 4 Gbit/sec 的聚合带宽。
当我们开始走这条路时,我们使用的是旧的SMC8024L2 管理型交换机。(PDF 数据表,1.3 MB。)这不是当时最高端的交换机,但它应该能够做到这一点。我们认为交换机可能有问题,因为它的年龄,但升级到功能更强大的HP 2530-24G并没有改变症状。
HP 2530-24G 交换机声称有问题的四个端口确实配置为动态 LACP 中继:
# show trunks
Load Balancing Method: L3-based (default)
Port | Name Type | Group Type
---- + -------------------------------- --------- + ----- …Run Code Online (Sandbox Code Playgroud) 我正在将两个以太网接口配置到一个聚合组中以加倍带宽,我想知道绑定模式 = 0 是否适用于所有交换机?不支持 LACP 的哑交换机呢?这种方法是否会使单个主机(“会话”)的带宽加倍?
我很想知道使用 LACP 将多个接口绑定到多个交换机中的端口可以增加冗余的意见、发现或证据。以前绑定的接口一直连接到单个交换机,并有一个冗余通道连接到另一个端口。
在不涉及供应商细节的情况下,我的想法是,由于这是单个 LACP,因此事件或更改可能导致广泛的服务中断。如果没有备用设备或时间在不同的交换机上测试这个单一通道,任何比我有更多网络知识的人都可以告诉我是否有网络侧事件会降低与创建绑定接口的服务器的网络连接到不同交换机上的两个端口?
从服务器跨多个交换机使用绑定以太网通道(我们被告知可以使用)是否提供了更高的吞吐量(毫无疑问)和改进的冗余(不确定)。交换机故障、端口迁移、修补、恢复等网络事件是否会导致两个服务器网络接口的通道不可用?
提前致谢。
我正在为我的数据中心的几个 VMware vSphere 5.5 和 6.0 集群扩展存储后端。在我的 VMware 经验(Solaris ZFS、Isilon、VNX、Linux ZFS)中,我主要使用 NFS 数据存储,并且可能会在环境中引入Nimble iSCSI 阵列,以及可能的Tegile (ZFS) 混合阵列。
当前的存储解决方案是 Nexenta ZFS 和基于 Linux ZFS 的阵列,它们为 vSphere 主机提供 NFS 挂载。网络连接通过存储头上的 2 个 10GbE LACP 中继和每个 ESXi 主机上的 2 个 10GbE 提供。这些交换机是配置为MLAG 对等体的双Arista 7050S-52架顶式设备。
在 vSphere 方面,我在 2 个 10GbE 上行链路和网络 I/O 控制 (NIOC)分配共享的虚拟机端口组、NFS、vMotion 和管理流量上使用配置了 LACP 绑定的 vSphere 分布式交换机 (vDS) 。
这种解决方案和设计方法多年来一直运行良好,但添加 iSCSI 块存储对我来说是一个重大转变。在可预见的未来,我仍然需要保留 NFS 基础设施。
我想了解如何在不改变物理设计的情况下将 iSCSI 集成到此环境中。ToR 交换机上的 MLAG 对我来说非常重要。
我知道这似乎是一个家庭作业问题,但它实际上是一个更大的项目(和网络)的一部分,需要将其分解为多个块,以便我清楚自己在做什么。我从来没有使用过 [R/M]STP,之前只设置了静态 LAG,所以我不太确定我在这里需要什么。
我通过 VLAN 标记将三台交换机全部置于同一个广播域中,通过 LAG 组互连,每个 LAG 组由 2 个铜缆千兆以太网组成。
假设这些交换机支持 LAG/LACP/*STP/802.1q VLAN 标记;为了比较起见,尽量减少供应商专有的扩展,但如果有供应商“重新标记”的开放标准,或者值得一提,请随意这样做。
目标是:
我不确定的是:
这是我认为这个循环的工作原理:来自机器 B1(在交换机 B 上)的 ARP 请求寻找属于机器 A1(在交换机 A 上)的 1.2.3.4,将从 A 到 B 和 A 到达交换机 A -to-C 上行链路。交换机 A 将(我假设)首先通过直接 B 到 A LAG 上行链路接收广播,但会从两个上行链路 LAG 端口发回响应(即 LAG A 到 B 是端口 1/2 和 LAG A-to-C 是端口 23/24),极大地混淆了交换机 B。我对这个循环的解释是否正确?
如果我断言#1 确实是一个循环,我需要*STP。据我所知,STP 既旧又慢;RSTP …
Linux 绑定驱动程序是否有一个底层的管理或诊断接口来确定内部发生了什么?
多年来,我一直在 Linux 机器和 Cisco 交换机之间使用链路聚合。在设置 Linux 端根本不响应 Cisco LACP 数据包的新机器时,我会定期遇到死胡同。我对每台服务器都严格遵循一套严格的说明,但结果似乎各不相同。
无论绑定包含一个从属设备还是八个从属设备,tcpdump 都会显示来自所有绑定接口上的交换机的 LACP 数据包,并且没有数据包被传回。事实上,没有数据包是传输周期。 rx_packets为接口显示可观的流量,但tx_packets为零。日志中没有关于 MII 或绑定的有趣内容。甚至没有任何错误。
目前,我正在处理一个只有两个网卡的盒子。目前,我的债券中只有 eth1。显然,这是一个退化的配置。这种情况不会随着 eth0 和 eth1 在债券中而改变;当网络堆栈完全关闭时,它只会使机器更难工作。如有必要,我可以为两个 nic 重新配置它并通过管理界面 (DRAC),但我无法通过这种方式从框中复制粘贴。
一些预习:
这是今天下载的 debian 8.6。
Linux box 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2
(2016-10-19) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
一个简写的配置:
iface eth1 inet manual
auto bond0
iface bond0 inet manual
slaves eth1
address 10.10.10.10
netmask 255.255.255.0
bond_mode 4
bond_miimon 100
bond_downdelay 200
bond_updelay 200 …Run Code Online (Sandbox Code Playgroud) 我有 2 个运行 centos 6.5 的 linux 机器,每个机器有 2 个绑定在一起的接口,连接到带有 lacp 配置端口的 Cisco 2960-S 交换机。
交换机上的配置
port-channel load-balance src-dst-mac
!
interface Port-channel1
switchport access vlan 100
switchport mode access
!
interface Port-channel2
switchport access vlan 100
switchport mode access
!
interface FastEthernet0
no ip address
!
interface GigabitEthernet0/1
switchport access vlan 100
switchport mode access
speed 1000
duplex full
spanning-tree portfast
channel-protocol lacp
channel-group 1 mode active
!
interface GigabitEthernet0/2
switchport access vlan 100
switchport mode access
speed 1000
duplex …Run Code Online (Sandbox Code Playgroud) lacp ×10
networking ×6
bonding ×5
linux ×3
switch ×2
vmware-esxi ×2
bandwidth ×1
etherchannel ×1
ethernet ×1
freebsd ×1
hp-procurve ×1
iscsi ×1
lag ×1
linux-kernel ×1
ubuntu ×1
vswitch ×1