Rootop 服务器运维与web架构

Linux多网卡绑定

| 暂无评论

为什么要使用多网卡绑定技术呢?我们知道如果使用一块网卡进行网络数据传输时其速度是有限的,即使是千兆网卡,其速度也是有限制的,我们为了提高带宽,我们可以将多块物理网卡绑定成一块逻辑网卡,这样网卡的速率就是多块网卡的速率了。
Linux支持将多块物理网卡绑定成一块逻辑网卡,绑定后的逻辑网卡可以并行使用组成其的所有物理网卡,通过这样的方式可以提高带宽以及网路的稳定性
我们在将多块物理网卡绑定成一块逻辑网卡以后,我们的IP地址就要求配置在这块逻辑网卡上了,而非多块物理网卡

Linux下支持三种模式的网卡绑定:

模式0:平衡轮训  使用这种模式来进行多网卡绑定时我们可以提高网络的带宽,其流量是从绑定的多块网卡上平均分配的
模式1:主动备份  使用这种模式来进行多网卡绑定时我们可以提高网络的稳定性,这种模式不会提高网络的带宽,每次只有一块网卡在走流量,只有当这块网卡发生故障时,绑定在一起的其它物理网卡才会工作
模式3:广播模式  这种模式一般不用

我们如果想通过多网卡绑定来提升网络的带宽,就选择模式0,如果想提高网络的稳定性,则选择模式1
网卡绑定以后我们需要给我们的逻辑网卡取一个名字,通常格式为 bondn,n代表的是编号。

首先关掉 NetworkManager 服务。

编辑逻辑网卡配置文件:
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-band0
DEVICE=bond0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.3
NETMASK=255.255.255.0
ONBOOT=yes
USERCTL=no
GATEWAY=192.168.0.254

编辑两块物理网卡配置文件:
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.5
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.102.134.68
NM_CONTROLLED=”no”
MASTER=bond0
SLAVE=yes
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.4
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.102.134.68
NM_CONTROLLED=”no”
MASTER=bond0
SLAVE=yes

主要就是添加MASTER=bond0(将网卡绑定到bond0逻辑网卡上)和SLAVE=yes(表示网卡附属于bond0这块逻辑网卡)

编辑/etc/modprobe.conf文件,如果没有,手动创建。
[root@localhost ~]# cat /etc/modprobe.conf
alias bond0 bonding
options bond0 miimon=100 mode=0

添加上面两行。
miimon 是链路监测的时间间隔单位是毫秒,miimon=100的意思就是,每100毫秒检测网卡和交换机之间是否连通,如不通则使用另外的链路。
mode=0 表示负载均衡方式,两块网卡都工作,需要交换机作支持。
mode=1 表示冗余方式,网卡只有一个工作,一个出问题启用另外的替上去。

重启网络service network restart:
[root@localhost ~]# ifconfig
bond0 Link encap:Ethernet HWaddr 00:0C:29:B8:44:3B
inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb8:443b/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:38572 errors:0 dropped:0 overruns:0 frame:0
TX packets:3022 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2847831 (2.7 MiB) TX bytes:1639276 (1.5 MiB)

eth1 Link encap:Ethernet HWaddr 00:0C:29:B8:44:3B
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:30763 errors:0 dropped:0 overruns:0 frame:0
TX packets:2413 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2270571 (2.1 MiB) TX bytes:1529059 (1.4 MiB)
Interrupt:19 Base address:0x2000

eth2 Link encap:Ethernet HWaddr 00:0C:29:B8:44:3B
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:7809 errors:0 dropped:0 overruns:0 frame:0
TX packets:610 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:577260 (563.7 KiB) TX bytes:110819 (108.2 KiB)
Interrupt:16 Base address:0x2400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:240 (240.0 b) TX bytes:240 (240.0 b)

会看到eth1和eth2的ip信息没有了,之前我是配置上的,重启网络的时候ssh断掉了,重新去连接逻辑网卡ip。

查看bond0状态:
[root@localhost ~]# more /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:b8:44:3b
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:b8:44:45
Slave queue ID: 0

测试:

负载均衡可通过流量监控来监视拷贝文件花销时间(流量)与单网卡花销时间(流量)对比。

冗余可通过拔网线测试,这里是在虚拟机配置的,无法测试出来效果。建议用物理机测试。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/2418.html

作者:Venus

服务器运维与性能优化

发表回复