对于这个应用程序,与总吞吐量相比,我不太关心高可用性。我在服务器端有一个 IP 地址,我希望能够从服务器发送超过 1 Gb 的流量。服务器有两个 1 千兆位卡并连接到一对交换机。该应用程序涉及世界各地连接到服务器(即不是本地网络)的数千个远程客户端。
目前,使用模式 5(balance-tlb)设置绑定,但结果是每个端口的吞吐量不会超过 500Mbit/s。我怎样才能突破这个限制?请假设我无法访问交换机,因此我无法实现 802.3ad。
(我希望添加“bonding”标签,但我无法添加新标签,所以是“teaming”。)
我有一个带 4 个端口的服务器(2 个适配器,每个适配器有两个端口)。我想将两个端口连接到本地交换机,将另外两个端口连接到外部交换机。该本地交换机具有到外部交换机的上行链路,外部交换机可以访问网络。由于本地交换机具有更快的连接 (1 Gb),我想将其用作使用两个端口的主交换机。如果此开关出现故障,我希望与外部开关连接的以下两个端口将被激活。
这可能吗?
谢谢。
我已启用 Linux 主动备份模式绑定。每个接口都是千兆接口,但是bond接口好像最后是100兆:
bonding: bond0: Warning: failed to get speed and duplex from eth1, assumed to be 100Mb/sec and Full.
...
bnx2: eth0 NIC Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON
...
bonding: bond0: backup interface eth1 is now up
Run Code Online (Sandbox Code Playgroud)
ethtool 显然无法提供有关债券的信息:
sudo ethtool bond0
Settings for bond0:
No data available
Run Code Online (Sandbox Code Playgroud)
那么这是否意味着我的运行速度为 100 或 1000 兆位(我猜是 1000)?如果只有 100,我需要在 ifcfg 脚本或 modprobe 绑定选项中设置哪些选项才能使其为 1000?
嘿,所有这些都是我在 cisco 论坛上提出的一个问题的转帖,但从未得到有用的答复。
嘿,我正在尝试将工作中的 FreeBSD 服务器从常规千兆链接转换为双千兆滞后链接。我们的生产服务器在 3560 上。我在 3550 上有一个小型测试环境。我已经实现了故障转移,但是在实现速度提升方面遇到了麻烦。所有服务器都运行 gig intel (em) 卡。服务器的配置是:
BSD服务器:
#!/bin/sh
#bring up both interfaces
ifconfig em0 up media 1000baseTX mediaopt full-duplex
ifconfig em1 up media 1000baseTX mediaopt full-duplex
#create the lagg interface
ifconfig lagg0 create
#set lagg0's protocol to lacp, add both cards to the interface,
#and assign it em1's ip/netmask
ifconfig lagg0 laggproto lacp laggport em0 laggport em1 ***.***.***.*** netmask 255.255.255.0
Run Code Online (Sandbox Code Playgroud)
开关配置如下:
#clear out old junk
no int Po1
default int range GigabitEthernet …Run Code Online (Sandbox Code Playgroud) 我有一台最少安装 CentOS6 64 位的服务器(安装程序的最小选项)。绑定驱动程序似乎无法正常工作。/proc/net/bonding/bond0 的输出是:
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: None
MII Status: down
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Run Code Online (Sandbox Code Playgroud)
如您所见,没有列出作为药膏的接口。绑定驱动程序选项在 /etc/modprobe.d/bonding.conf 中配置为:
alias bond0 bonding
options bond0 mode=1 primary=eth0 miimon=100
Run Code Online (Sandbox Code Playgroud)
接口 eth0 和 eth4 配置如下:
DEVICE="eth0"
MASTER="bond0"
SLAVE="yes"
HWADDR="78:2B:CB:56:ED:5D"
NM_CONTROLLED="no"
ONBOOT="yes"
DEVICE="eth4"
MASTER="bond0"
SLAVE="yes"
HWADDR="00:1B:21:C9:F7:38"
NM_CONTROLLED="no"
ONBOOT="yes"
Run Code Online (Sandbox Code Playgroud)
和 bond0 配置如下:
DEVICE="bond0"
IPADDR="10.100.46.3"
NETMASK="255.255.254.0"
NM_CONTROLLED="no"
ONBOOT="yes"
Run Code Online (Sandbox Code Playgroud)
这是 /var/log/messages 的输出:
Dec 9 08:20:55 app2 kernel: bonding: Warning: either miimon …Run Code Online (Sandbox Code Playgroud) 我正在设置一个带有多个以太网接口的 Ubuntu Server 11.10 机器,这些接口被绑定在一起以实现冗余。我打算将它用作 KVM 主机,所以我需要一个网桥。
为此,我安装了 ifenslave 和 bridge-utils,然后编写了我的/etc/network/interfaces文件。相关部分如下:
auto br0
iface br0 inet static
address 10.1.254.101
netmask 255.255.255.0
network 10.1.254.0
broadcast 10.1.254.255
gateway 10.1.254.50
dns-nameservers 10.1.254.252
bridge_ports bond0
bridge_stp off
iface bond0 inet manual
bond-slaves eth0 eth3
bond_mode balance-rr
bond_miimon 100
Run Code Online (Sandbox Code Playgroud)
不幸的是,这并没有给我连接。ifup br0给我“ can't add bond0 to bridge br0: Invalid argument”,ifdown br0给我“ device bond0 is not a slave of br0”。如果我修改我的interfaces文件以摆脱网桥,我就可以完全连接——但我将需要网桥。
我认为我的interfaces文件中的某些内容是错误的,但我不知道如何改正。有人知道吗?谢谢!
这是情况。出于容错和负载平衡的原因,我想使用双链路将我的 Linux 服务器连接到单个网络。服务器有 2 个或更多 1-gig NIC,我计划将它们中的每一个连接到驻留在单个堆栈中的不同交换机(即单个虚拟交换机)。所有交换机都是瞻博网络 EX4200 或 EX4500。
我知道我可以使用任何 Linux 绑定模式,我想知道什么是最好的。过去我使用主动备份模式,因为有些服务器连接到非堆叠交换机,但现在我们有了一个新的、一致的网络,我想使用一种绑定模式,除了容错外,还提供负载平衡。
我认为最好使用的模式是 802.3ad (LACP),因为这是所有网络设备上使用的标准,但事实证明,当我将一组端口配置为交换机端的 LACP 通道时,连接中断,直到我还要正确配置服务器端。这使我们的系统管理任务变得更加困难,因为在安装新服务器之前,我们必须删除交换机上的 LACP 配置(因为 PXE 引导和网络安装之类的东西在 LACP 端口上不起作用),并且在安装之后我们需要更改交换机再次设置,但必须在服务器配置为使用 LACP 之后,否则连接将中断。
其他绑定模式(例如 balance-alb)不需要在交换机侧进行任何特殊配置,而在纸面上提供相同的优势。
有什么理由选择 802.3ad 而不是 balance-alb?
我正在尝试在 2 台服务器上将 3 个网卡组合在一起。我正在尝试实现 3Gbps 的最大吞吐量以在服务器之间复制数据。设置很简单,我在同一台 Cisco 交换机上连接了 2 个带有 3 个千兆网卡的服务器。正好在服务器 1 的端口 1-2-3 和服务器 2 的端口 4-5-6 上。我的接口配置如下:
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet manual
bond-master bond0
auto eth1
iface eth1 inet manual
bond-master bond0
auto eth2
iface eth2 inet manual
bond-master bond0
auto bond0
iface bond0 inet static
address 192.168.1.11
netmask 255.255.255.0
gateway 192.168.1.1
bond-miimon 100
bond-mode 802.3ad
#bond-downdelay 200
#bond-updelay 200
bond-lacp-rate 1
# tried …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建我的个人圣杯:从 iSCSI 目标无盘启动我的 Debian Wheezy KVM 服务器,无盘服务器上唯一需要的配置是 NIC ROM 中的 iSCSI 参数。其余的配置应该都在 iSCSI LUN 的“内部”。
系统有两个 NIC,它们连接到支持 LACP 的交换机。所以,我想通过绑定接口启动机器,这也在桥内vmbr0。虽然这种组合并不完全有效。
因为我读到 iSCSI 连接不应在启动后中断(例如通过重新配置接口),所以我尝试在启动前设置所有 IP 配置(在内核参数/cmdline 中)。
iSCSI 引导部分由我的 Broadcom 双端口 NIC 的 ROM 处理。这似乎工作得很好:grub 启动后继续引导。在我的 grub 配置中,我有这个:
linux /vmlinuz-2.6.32-26-pve root=UUID={iscsi-disk-uuid} ro quiet bond=bond0:eth0,eth1:mode=802.3ad,lacp_rate=1,miimon=100,xmit_hash_policy=layer2+3 bridge=vmbr0:bond0 ip=192.168.15.4::192.168.15.1:255.255.0.0::vmbr0:off
Run Code Online (Sandbox Code Playgroud)
当 grub 启动内核时,我收到以下错误:
ipconfig: vmbr0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
... repeated 10 times...
/scripts/local-top/iscsi: .: line 426: can't open '/run/net-vmbr0.conf'
Run Code Online (Sandbox Code Playgroud)
我被放到了 initramfs shell 中,我发现它bond0根本没有配置(但是bonding模块已加载),vmbr0 …
我在分组时在 vlan 上创建网桥时遇到问题。为什么我会做这样的事情?- Kvm 需要网桥 - Vlans 因为我需要不同子网中的 vm - 在选项 active-backup 中分组(小型 HA)
我在 centos 7 x64 上使用 NetworkManager 进行操作。两个物理接口:
TYPE=Ethernet
DEFROUTE=no
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_PEERDNS=no
IPV6_PEERROUTES=no
IPV6_FAILURE_FATAL=no
NAME=enp8s0f0
UUID=311d4881-f3f1-45af-b01f-b48872b00b0f
ONBOOT=yes
TYPE=Ethernet
DEFROUTE=no
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_PEERDNS=no
IPV6_PEERROUTES=no
IPV6_FAILURE_FATAL=no
NAME=enp8s0f1
UUID=eb43a315-b9e7-42fb-ab52-97e09a162825
ONBOOT=yes
Run Code Online (Sandbox Code Playgroud)
我的步骤:
nmcli con add con-name team0 ifname team0 type team config '{"runner": {"name": "activebackup"}}'
nmcli con add con-name team0-port1 ifname enp8s0f0 type team-slave master team0
nmcli con add con-name team0-port2 ifname …Run Code Online (Sandbox Code Playgroud)