为什么要聚合网络接口(接口绑定)?
创建接口绑定(bonding)的两个重要原因是:
- 提供增加的带宽
- 面对硬件故障时提供冗余
配置绑定的准备工作之一是拥有支持 Etherchannel 的网络交换机(在几乎所有交换机的情况下都是如此)。
配置接口绑定
- 创建主bond0接口
为此,我们必须创建一个包含以下内容的文件 /etc/sysconfig/network-scripts/ifcfg-bond0:
# vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static ONBOOT=yes IPADDR=10.10.1.10 NETMASK=255.255.255.0 BONDING_OPTS="miimon=100"
在 RHEL6 上,在 ifcfg-bondX 中配置绑定参数,而不是在 /etc/modprobe.d/bonding.conf 文件中。
好处是这些参数可以在接口初始化过程中更改为每个绑定接口,而不是绑定驱动程序初始化过程。
也就是说,改变参数不再需要重新加载bonding驱动。
这有助于减少系统范围的网络中断,同时对绑定接口进行一些小的更改。
BONDING_OPTS - Specify bonding module parameters, e.g. miimon - link polling interval for fault detection (in ms)
由于我们已使用 IP 地址和网络掩码配置了绑定接口,因此无需在构成绑定的各个接口文件中指定它们。
- 创建从接口
我们将使用 em0 和 em1 作为从接口来创建 bond0 绑定接口。
MASTER 和 SLAVE 行将主绑定接口 bond0 和 em0/em1 定义为从接口。
# vi /etc/sysconfig/network-scripts/ifcfg-em0 DEVICE=em0 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
# vi /etc/sysconfig/network-scripts/ifcfg-em1 DEVICE=em1 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
- 配置bonding驱动
配置文件 /etc/modprobe.conf 在 RHEL 6 上已弃用,配置文件现在位于目录 /etc/modprobe.d 中。
旧的配置文件仍然受支持,但不推荐。
在目录/etc/modprobe.d 中创建一个新文件bonding.conf 来告诉内核它应该为新设备bond0 使用bonding 驱动程序。
# vi /etc/modprobe.d/bond.conf alias bond0 bonding
- 重启网络服务
重启网络服务,使能bonding接口。
# service network restart
如果我们不想重新启动网络服务,我们可以单独检测绑定接口:
# ifup bond0
- 验证
检查 ifconfig 命令输出中的新接口:
# ifconfig bond0 bond0 Link encap:Ethernet HWaddr 00:0C:29:9B:FD:2B inet addr:10.10.1.10 Bcast:10.10.1.1 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe9b:fd2b/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:39 errors:0 dropped:0 overruns:0 frame:0 TX packets:34 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:13875 (13.5 KiB) TX bytes:3446 (3.3 KiB)
要验证绑定模块是否正确加载:
# lsmod |grep bond bonding 122351 0
要检查哪个接口当前处于活动状态(在主动备份模式的情况下):
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: em0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 5000 Down Delay (ms): 5000 Slave Interface: em0 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:21:28:b2:65:26 Slave queue ID: 0 Slave Interface: em1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:21:28:b2:65:27 Slave queue ID: 0
如果我们想测试绑定是否正确配置,请从绑定中关闭活动接口(此处为 em0)。
我们仍然会发现绑定接口仍然可以访问。
# ifdown em0
on
it
road
.com
Bonding的模式
根据要求,我们可以将绑定模式设置为以下 7 种模式中的任何a)
绑定模式可以在绑定接口网络文件/etc/sysconfig/network-scripts/ifcfg-bond0中设置如下:
BONDING_OPTS="mode=active-backup miimon=250"
或者
BONDING_OPTS="mode=1 miimon=250"
模式 | 策略 | 如何工作 | 容错 | 负载均衡 |
---|---|---|---|---|
0 | Round Robin 轮询 | 数据包依次通过每个接口一个接一个地发送/接收。 | 不 | 是的 |
1 | Active Backup 主备模式 | 一个 NIC 处于活动状态,而另一个 NIC 处于休眠状态。如果活动 NIC 出现故障,另一个 NIC 将变为活动状态。仅在 x86 环境中受支持。 | 是的 | 不 |
2 | XOR [异或者] | 在这种模式下,从 NIC 的 MAC 地址与传入请求 's MAC 匹配,一旦建立此连接,同一个 NIC 将用于发送/接收目标 MAC。 | 是的 | 是的 |
3 | Broadcast 广播模式 | 所有传输都在所有从机上发送 | 是的 | 不 |
4 | 动态链接聚合(DLA) | 聚合的 NIC 充当一个 NIC,这会导致更高的吞吐量,但也会在 NIC 发生故障的情况下提供故障转移。动态链路聚合需要支持 IEEE 802.3ad 的交换机。 | 是的 | 是的 |
5 | 传输负载平衡 (TLB) | 根据每个从接口上的当前负载分配传出流量。当前从站接收传入流量。如果接收从站出现故障,另一个从站将接管故障从站的 MAC 地址。 | 是的 | 是的 |
6 | 自适应负载平衡 (ALB) | 与动态链路聚合不同,自适应负载平衡不需要任何特定的交换机配置。自适应负载平衡仅在 x86 环境中受支持。接收报文通过ARP协商进行负载均衡。 | 是的 | 是的 |
日期:2020-09-17 00:14:24 来源:oir作者:oir