CentOS 双网卡绑定实现平衡负载
绑定两块网卡主要为了解决网卡故障、负载均衡等问题。
1、在vm加一块网卡,登录后检查网卡是否识别。
分别用ip addr和nmcli查看网卡的情况
[root@bigdata-senior01 ~]# ip addr
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::ea:: brd ff:ff:ff:ff:ff:ff
inet 192.168.31.10/ brd 192.168.31.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feea:/ scope link
valid_lft forever preferred_lft forever
: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::ea:: brd ff:ff:ff:ff:ff:ff
新加入的网卡接口是ens37
2、常见的绑定模式
常用的有三种
mode=:平衡负载模式,有自动备援,但需要交换机支持及设定,
两个交换机端口需要做聚合,该模式下bond所绑定的网卡的IP都被修改成相同的mac地址,交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址。
mode=:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=:平衡负载模式,有自动备援,不用交换机支持,绑定的是不同的MAC地址。
3、用例,环境CentOS7.x(CentOS6是另外的配置)
#查看bonding模块是否加载
lsmod | grep bonding
bonding 136705 0
#如果没有加载,手动先加载
modprobe bonding #在/etc/sysconfig/network-scripts目录下配置ens33,ens37,bond0三个网卡接口,bond0是抽象网卡
[root@bigdata-senior01 network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens33
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
BONDING_MASTER=yes [root@bigdata-senior01 network-scripts]# cat ifcfg-ens37
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens37
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
BONDING_MASTER=yes
#实际是把原来网卡1的ip配置放入了bond0里
BOOTPROTO=none
DEVICE=bond0
TYPE=Bond
ONBOOT=yes
ZONE=public
IPADDR=192.168.31.10
NETMASK=255.255.255.0
GATEWAY=192.168.31.2
DNS1=192.168.31.2
USERCTL=no
NM_CONTROLLED=no
BONDING_MASTER=yes
BONDING_OPTS="mode=6 miimon=100" 重启网络systemctl restart network,如果原来network就没启动,那么使用systemctl start network #ens33和ens37应该是没有配置IP的。
[root@bigdata-senior01 modprobe.d]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:ea:31:47 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:ea:31:47 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:0c:29:ea:31:47 brd ff:ff:ff:ff:ff:ff
inet 192.168.31.10/24 brd 192.168.31.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feea:3147/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
查看bonding的状态
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0 Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ea:31:47
Slave queue ID: 0 Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ea:31:51
Slave queue ID: 0 #测试,在ping的过程中中断一个网卡的连接(可以在VM的属性里取消连接勾选),丢包2%,网卡从ens33自动切成ens34
--- 192.168.1.103 ping statistics ---
86 packets transmitted, 84 received, 2% packet loss, time 85275ms
rtt min/avg/max/mdev = 0.471/1.057/1.684/0.348 ms
4、删除bond0
删除网卡配置文件 ifcfg-bond0
卸载模块:rmmod bonding
重新配置物理网卡:
重启网络:systemctl restart network
CentOS 双网卡绑定实现平衡负载的更多相关文章
- CentOS双网卡绑定bond0
a)拷⻉并配置vim /etc/sysconfig/network-scripts/ifcfg-bond0配置⽂件(会自动创建文件) DEVICE=bond0 TYPE=Ethernet ONBOOT ...
- linux中配置双网卡的目的?如何实现双网卡绑定,以实现负载均衡?
配置双网卡的目的:========================== 1.你想做路由器,网关 2.实现冗余 3.负载均衡 linux 主机安装双网卡,共享一个IP地址,对外提供访问,实际 同 ...
- Linux 双网卡绑定技术
bond技术是在linux2.4以后加入内核. 一般步骤是1.把bonding模块加入内核, 2 编辑要绑定的网卡设置,去除地址设定 3 添加bond设备,设置地址等配置 4 重启网络 5 在交换机 ...
- Centos 7.6 双网卡绑定实现高可用
Centos 7.6 双网卡绑定实现高可用 作者:尹正杰 版权声明:原创作品, 谢绝转载!否则将追究法律责任. 一.Bond模式概述 当linux系统上有多个单独网卡,又想充分利用这些网卡,同时对外提 ...
- CentOS 6.9下双网卡绑定单个IP地址及装网卡绑定到一个网桥(转)
说明:经过查阅,原来双网卡绑定一个IP的专业名词叫做bond,可以实现负载均衡:如果想要实现两张网卡绑定到一个网桥,基本思路是两张网卡设置同一个网桥是行不通的,但如果先实现bond,然后将bond绑定 ...
- CentOS 6.X 双网卡绑定配置
相关环境 主机:Dell PowerEdge R720服务器(背板有4个GE网口) 操作系统:CentOS(RHEL)6.X 网线连接 使用6类网线 将Dell R720 GE网口 0,与交换机A相连 ...
- Centos 7.2 双网卡绑定之踩坑
线上服务器,安装centos7.2 x64最小化安装,需要做链路聚合,双网卡绑定.在centos 6.x 和 centos 7上测试都OK,于是直接开搞. 说明下,以下环境是在虚拟机中实现的: 系统: ...
- centos 6.4系统双网卡绑定配置详解
Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡(需要交换机支持),这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作. ...
- Linux下双网卡绑定(bonding技术)
Linux网卡绑定探析 2013-08-20 15:39:31 现在很多服务器都自带双千兆网口,利用网卡绑定既能增加网络带宽,同时又能做相应的冗余,目前应用于很多的场景.linux操作系统下自带的 ...
随机推荐
- [Python3.X]python 实现斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一 ...
- VMWare虚拟机下 centos network is unreachable 问题的解决
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.1.255 HW ...
- spring + mybatis 注解 @Transactional失效
1.问题 在使用@Transactional注解管理事务的时候会出现很多错误,比如: *** was not registered for synchronization because synchr ...
- java中i=i++的解析
int i = 0; i = i++; //答案是0 System.out.println(i); 执行以上代码,奇怪的是打印出来i的结果是0,说简单点,i++是一个表达式,是有返回值的,返回的是自增 ...
- Python :编写条件分支代码的技巧
『Python 工匠』是什么? 我一直觉得编程某种意义是一门『手艺』,因为优雅而高效的代码,就如同完美的手工艺品一样让人赏心悦目. 在雕琢代码的过程中,有大工程:比如应该用什么架构.哪种设计模式.也有 ...
- PyCharm添加Selenium与Appium类库
PyCharm添加Selenium与Appium依赖, 不需要用pip去安装!
- Java开发工程师(Web方向) - 03.数据库开发 - 第2章.数据库连接池
第2章--数据库连接池 数据库连接池 一般而言,在实际开发中,往往不是直接使用JDBC访问后端数据库,而是使用数据库连接池的机制去管理数据库连接,来实现对后端数据库的访问. 建立Java应用程序到后端 ...
- leetcode-位1的个数(位与运算)
位1的个数 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量). 示例 : 输入: 11 输出: 3 解释: 整数 11 的二进制表示为 00000 ...
- 加密SecurityHelper
接下来给大家分享一下我用的加密helper,现在只用的md5加密的方法,网上很多方法找到的时候加密完了会变成乱码,这样对于密码这种字段保存的时候就会出错.其实只需要把加密完的byte字节转化成16位就 ...
- django request bug
bug描述:django请求request接收数据时,如果参数中包含分号时,会导致分号后面的消息丢失. 比如前台js调用代码 $.post('/get_params', { "A" ...