将多个 Linux 网络端口绑定为一个, 可以提升网络的性能, 比如对于备份服务器, 需要在一个晚上备份几个 T 的数据, 如果使用单个的千兆网口将会是很严重的瓶颈其它的应用, 比如 ftp 服务器, 高负载的下载网站, 都有类似的问题因此使用 Linux teaming 或 bond 来绑定多个网卡作为一个逻辑网口, 配置单个的 IP 地址, 会大幅提升服务器的网络吞吐 (I/O) Linux 的多网卡绑定功能使用的是内核中的 "bonding" 模块, 关于此模块可以参考 Linux Ethernet Bonding Driver 文档, 但是目前发布各个 Linux 版本内核均已包含了此模块, 大多数情况下不需要重新编译内核 Linux 的 bonding 驱动提供了绑定 / 集成(bond) 多个网卡为一个虚拟逻辑网口的功能并请注意绑定的网口 (bonded) 有多种工作模式; 一般来说, 分为热后备(hot standby) 和负载均衡(load balancing). 在 Redhat/Fedora 和其它类 Redhat Linux 中是比较容易配置的
将多个 Linux 网络端口绑定为一个, 可以提升网络的性能, 比如对于备份服务器, 需要在一个晚上备份几个 T 的数据, 如果使用单个的千兆网口将会是很严重的瓶颈其它的应用, 比如 ftp 服务器, 高负载的下载网站, 都有类似的问题因此使用 Linux teaming 或 bond 来绑定多个网卡作为一个逻辑网口, 配置单个的 IP 地址, 会大幅提升服务器的网络吞吐(I/O)
Linux 的多网卡绑定功能使用的是内核中的 "bonding" 模块, 关于此模块可以参考 Linux Ethernet Bonding Driver 文档, 但是目前发布各个 Linux 版本内核均已包含了此模块, 大多数情况下不需要重新编译内核 Linux 的 bonding 驱动提供了绑定 / 集成 (bond) 多个网卡为一个虚拟逻辑网口的功能并请注意绑定的网口 (bonded) 有多种工作模式; 一般来说, 分为热后备(hot standby) 和负载均衡(load balancing). 在 Redhat/Fedora 和其它类 Redhat Linux 中是比较容易配置的
1. 创建 bond0 配置文件
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0 -- 物理设备名字
IPADDR=192.168.1.1 --IP 地址
NETMASK=255.255.255.0 -- 子网掩码
NETWORK=192.168.1.0 -- 所属子网
BROADCAST=192.168.1.255 -- 广播地址
GATEWAY=192.168.1.254 -- 网关
ONBOOT=yes -- 随机启动
BOOTPROTO=none
USERCTL=no -- 是否允许非 root 用户控制该设备
2. 修改被绑定的 eth0 和 eth1 的配置文件
- vi /etc/sysconfig/network-scripts/ifcfg-eth0
- DEVICE=eth0
- USERCTL=no
- ONBOOT=yes
- MASTER=bond0
- *** SLAVE=yes
- *** BOOTPROTO=none
- HWADDR=00:15:17:CC:FC:35
eth1 的配置文件与之相同, 只是 device 的值改为 eth1 即可
3. 装在 bond 模块驱动
编辑 / etc/modprobe.conf 或者 / etc/modules.conf 文件, 加入如下内容, 使系统启动时加载 bonding 模块驱动
- alias bond0 bonding
- option bond0 miimon=100 mode=1
说明:
1).miimon=100 用来进行链路监测的即每 100ms 监测一次链路状态 bonding 只监测主机与交换机之间链路如果交换机出去的链路出问题而本身没有问题, 那么 bonding 认为链路没有问题而继续使用
2).mode=1 表示提供冗余功能除此之外还可以为 023, 共四种模式 0 表示负载均衡
4. 在 / etc/rc.d/rc.local 文件中加入如下语句, 使得系统启动自动运行
- ifenslave bond0 eth0 eth1
- route add -net 192.168.1.254 netmask 255.255.255.0 bond0 # 如有需要才加该路由
5. 检测验证配置
首先执行命令装载 bonding 模块: modprobe bonding
重启网络服务, 并确认 bond0 正确启动: service network restart 确认设备已经正确加载: less /proc/net/bonding/bond0 列出所有网口: ifconfig
至此, bond 的设置就基本结束了
来源: http://www.bubuko.com/infodetail-2495266.html