首页 > 代码库 > Linux下bonding的设置

Linux下bonding的设置

Linux下bonding的设置

bonding简介

   Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余。  

1、网络负载均衡  

对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding   

2、网络冗余  

对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。bonding也能为网卡提供冗余的支持。把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份


实例


# 第一步
# 检查内核是否已经支持bonding
# 显示如下,说明默认内核安装后就已经支持bonding模块了
[root@localhost ~]# modprobe -l bond* 
kernel/drivers/net/bonding/bonding.ko
[root@localhost ~]# modinfo bonding    
filename:       /lib/modules/2.6.32-573.el6.x86_64/kernel/drivers/net/bonding/bonding.ko
author:         Thomas Davis, tadavis@lbl.gov and many others
description:    Ethernet Channel Bonding Driver, v3.7.1
version:        3.7.1
license:        GPL
alias:          rtnl-link-bond
srcversion:     4E0AE4BD567D42DFB061C63
depends:        
vermagic:       2.6.32-573.el6.x86_64 SMP mod_unload modversions 
parm:           max_bonds:Max number of bonded devices (int)
parm:           tx_queues:Max number of transmit queues (default = 16) (int)
......


# 检查Linux下有没有负载均衡的执行文件(负载均衡工具也就是bonding),执行如下命令
[root@localhost ~]# which ifenslave
/sbin/ifenslave
[root@localhost ~]# 


# 第二步
# 创建bonding驱动设备配置文件
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-bond0
[root@localhost network-scripts]# vi ifcfg-bond0 
修改如下
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
USERCTL=no           #表明该设备只能由root用戶來控制
BOOTPROTO=static
IPADDR=192.168.41.129
NETMASK=255.255.255.0
BROADCAST=192.168.41.255
GATEWAY=192.168.41.2
NETWORK=192.168.41.0

# 修改网卡eth0 eth1 配置文件
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改如下:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth1
[root@localhost network-scripts]# vi ifcfg-eth1 
将DEVICE=eth0 改为DEVICE=eth1即可


# 第三步
# 编辑/etc/modprobe.d/bonding.conf文件
[root@localhost network-scripts]# vi /etc/modprobe.d/bonding.conf   
添加如下:
alias bond0 bonding
options bond0 miimon=80 mode=0


# 加入/etc/rc.d/rc.local 启动项
[root@localhost network-scripts]# echo "ifenslave bond0 eth0 eth1" >> /etc/rc.d/rc.local 
[root@localhost network-scripts]# 

# 最后重启网卡就可以了


本文出自 “恪守本心” 博客,请务必保留此出处http://lbmain.blog.51cto.com/6531182/1955138

Linux下bonding的设置