生产环境网卡绑定汇总
1 什么是bonding,team?
1.1 bonding,team简介
在了解正式的概念之前,我们先从不太专业的角度取解释这两个名词。 所谓bonding就是联结。以下是来自柯林斯英汉双解大词典对于bonding的解释。 the process by which individuals become emotionally attached to one another 形成的密切关系的过程 →see also pair bond 所谓team,你可以理解为团队,也可以理解为一个组。那好,现在正式介绍bonding以及team。 Bonding bonding就是将多块网卡绑定在同一个IP地址上对外提供服务,可以实现高可用或者负载均衡。通过bonding技术,虚拟出一块物理网卡(比如bond0)对外提供连接,而被绑定在同一块bond0上的所有网卡的MAC地址会修改成bond0的MAC地址。通过这个方法,我们也可以鉴定网卡是否绑定成功。 Team team就是升级版的bonding。bonding应用于redhat6,team应用于redhat7。team是将多个网卡聚合在一起的方法,从而实现冗错和提高吞吐量。team技术相对于旧版的bonding技术来说,提供了更好的性能和扩展性。
1.2 bonding,team的工作模式
我将介绍三种常用的模式,分别是round-robin,active-backup,broadcast模式,这三种模式在bonding以及team中都存在。
1. mode 0
轮转(round-robin)策略:slave网卡轮流发送数据包,本模式提供负载均衡和容错的能力。
2. mode 1
主备策略(active-backup):只有一块网卡被激活,当其中的一块网卡出现故障,另一块网卡就会激活。提供容错的功能。
3. mode 3
广播策略(broadcast):在所有的slave网卡接口传送所有的报文,提供容错的能力,但同时也极其消耗系统资源。
2 centos6中创建bond0实例
2.1 添加两块网卡并且验证网卡
验证方式:
1. ip a 查看网卡是否存在
2.2 模块加载
vi /etc/modprobe.d/dist.conf
alias char-major-89-* i2-dev后添加下面一行信息 #一般为最后一行
alias bond0 bonding #加载bond0驱动
2.3 创建ifcfg-bond0配置文件
cd /etc/sysconfig/network-scripts/
vi ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.0.0.110
PREFIX=24
GATEWAY=10.0.0.254
DNS=114.114.114.114
BONDING_OPTS="mode=1 miimon=100 primary=eth0"
#主备模式,每隔100ms检测一次网卡状态,首选eth0网卡
2.4 修改ifcfg-eth0配置文件
vi ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
2.5 修改ifcfg-eth1配置文件
vi ifcfg-eth1
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
2.6 停止NetworkManager管理网络服务
service NetworkManager stop
chkconfig NetworkManager off
modprobe bonding
service network restart
2.7 验证网卡是否绑定成功
1. ip a
如果成功,则bond0、eth0以及eth1的MAC地址是一样的
2. cat /proc/net/bonding bond0
如果成功,则显示bond0、eth0以及eth1处于up状态
3. centos7中创建team0实例
(ps:这里我将centos7中的网卡名称改为了传统的命名方式,目的是为了便于管理。修改方式我将会另一篇博客写出)
3.1 添加网卡并且验证网卡
nmcli device show
nmcli connetcion show
3.2 创建ifcfg-team0配置文件
nmcli connection add type team ifname team0 con-name team0 config '{"runner":{"name":"activeback"}}'
3.3 为team0配置IP地址
nmcli connection modify team0 ipv4.addresses 10.0.0.110/24 ipv4.gateway 10.0.0.254 ipv4.method manual
3.4 重新加载网卡配置,使配置文件实效
nmcli connection reload
systemctl restart network
3.5 创建ifcfg-team0-eth0配置文件
nmcli connection add type team-slave ifname eth0 con-name team0-eth0 master team0
3.6 创建ifcfg-team0-eth1配置文件
nmcli connection add type team-slave ifname eth1 con-name team0-eth1 master team0
3.7 启动slave设备
nmcli connection up team0-eth0
nmcli connection up -team0-eth1
nmcli connection up team0
3.8 查看设备是否启动
1.nmcli connetcion show
查看team0 team-eth0 team0-eth1是否激活
2.ip a
查看team0 eth0 eth1 网卡的MAC地址是否一致
3.teamdctl team0 state
查看team0 eth0 eth1 状态是否up(激活)
以下两图是两种检测team是否配置成功的方法。另外补充,通过nmcli方式配置将会直接生成配置文件,很方便很强大。
作者:michael
2017年5月7日
原创文章,作者:PowerMichael,如若转载,请注明出处:http://www.178linux.com/74886