龙空技术网

RedHat Linux下双网卡绑定实现负载均衡

程序猿研究中心 1900

前言:

当前你们对“linux冗余”可能比较珍视,看官们都想要分析一些“linux冗余”的相关文章。那么小编在网络上搜集了一些有关“linux冗余””的相关内容,希望看官们能喜欢,咱们一起来了解一下吧!

简介

Redhat中允许绑定多个网卡到一个通道,以实现负载均衡或者容错,也就是我们平时说的网卡绑定,linux在kenrnel 2.4.12以后就自带了bonding驱动。

我们现在有eth0、eth1两块网卡,为了实现负载均衡或失效保护需要绑定这两块网卡,具体操作如下:

操作步骤

第一步:创建一个ifcfg-bondX

# vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BONDING_OPTS="mode=0 miimon=100"

BOOTPROTO=none

ONBOOT=yes

BROADCAST=192.168.0.255

IPADDR=192.168.0.180

NETMASK=255.255.255.0

NETWORK=192.168.0.0

USERCTL=no

编辑ifcfg-bond0如上,其中:

DEVICE=bond0,指定设备名称为bond0

BONDING_OPTS="mode=0 miimon=100" ,mode有多种模式实现不同的功能,我们用的最多的是0、1两种模式:

mode=0表示可实现负载均衡功能,两个网卡同时工作,当其中一个网卡宕掉时另一个会继续工作;

mode=1表示提供冗余功能,只有一个网卡工作,当其中一个出问题时另一网卡才接管开始工作。

miimon是用来进行链路监测的,比如miimon=100,那么系统每100ms监测一次链路连接状态。

第二步:修改/etc/sysconfig/network-scripts /ifcfg-ethX

这里说的ethX指要加入绑定网卡的名称,本文档中是eth0、eth1。

# vi /etc/sysconfig/network-scripts /ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

# vi /etc/sysconfig/network-scripts /ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

第三步:配置/etc/modprobe.conf,添加alias bond0 bonding

# vi /etc/modprobe.conf

alias eth0 e1000e

alias eth1 e1000e

alias scsi_hostadapter mptbase

alias scsi_hostadapter1 mptspi

alias bond0 bonding

第四步:重启网络服务

#service network restart

通过以上四步配置,bond0便可以生效并正常工作了。查看端口是否正常可以用ifconfig命令查看,也可以通过查看/proc/net/bonding/bond0,查看当前是用什么mode,如果是主备的话,当前是哪个网卡工作。

# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)

Bonding Mode: fault-tolerance (active-backup)

Primary Slave: None

Currently Active Slave: eth0

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: eth0

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0c:29:01:4f:77

Slave Interface: eth1

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0c:29:01:4f:8b

标签: #linux冗余