linux7多网卡负载均衡,Linux下实现双网卡负载均衡

Linux下实现双网卡负载均衡系统环境:RHEL5

硬件环境:IBM X3650

一、建立虚拟网络接口ifcfg-bond0文件

[root@yangwenjun ~]# cd /etc/sysconfig/network-scripts/

[root@yangwenjun network-scripts]# cp ifcfg-eth0 ifcfg-bond0

其内容为:

[root@yangwenjun network-scripts]# more ifcfg-bond0

# Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet

DEVICE=bond0

BROADCAST=192.168.1.255

IPADDR=192.168.1.3

NETMASK=255.255.255.0

NETWORK=192.168.1.0

MTU=1500

GATEWAY=192.168.1.1

[root@yangwenjun network-scripts]#

二、编辑原有网卡eth0和eth信息文件

使其内容为:

[root@yangwenjun network-scripts]# more ifcfg-eth0

# Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

MASTER=bond0

slave=yes

[root@yangwenjun network-scripts]# more ifcfg-eth1

# Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

MASTER=bond0

slave=yes

[root@yangwenjun network-scripts]#

三、编辑/etc/modprobe.conf加入下面两行

[root@yangwenjun network-scripts]# vi /etc/modprobe.conf

alias bond0 bonding

options bond0 miimon=100 mode=1

加入后我的modprobe.conf内容为:

[root@yangwenjun network-scripts]# more /etc/modprobe.conf

alias eth0 bnx2

alias eth1 bnx2

alias scsi_hostadapter aacraid

alias scsi_hostadapter1 ata_piix

alias peth0 bnx2

alias bond0 bonding

options bond0 miimon=100 mode=1

四、编辑/etc/rc.d/rc.local文件,加入

ifenslave bond0 eth0 eth1

重新启动后,负载均衡就能正常工作了,可以用ifconfig查看具体信息

[root@yangwenjun network-scripts]# ifconfig

bond0     Link encap:Ethernet   HWaddr 00:1A:64:6A:55:98

inet addr:192.168.1.3   Bcast:192.168.1.255   Mask:255.255.255.0

inet6 addr: fe80::21a:64ff:fe6a:5598/64 Scope:Link

UP BROADCAST RUNNING MASTER MULTICAST   MTU:1500   Metric:1

RX packets:985369 errors:0 dropped:0 overruns:0 frame:0

TX packets:804306 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:148943796 (142.0 MiB)   TX bytes:2097755332 (1.9 GiB)

eth0    Link encap:Ethernet   HWaddr 00:1A:64:6A:55:98

inet6 addr: fe80::21a:64ff:fe6a:5598/64 Scope:Link

UP BROADCAST RUNNING SLAVE MULTICAST   MTU:1500   Metric:1

RX packets:984133 errors:0 dropped:0 overruns:0 frame:0

TX packets:804292 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:148805154 (141.9 MiB)   TX bytes:2097751381 (1.9 GiB)

eth1    Link encap:Ethernet   HWaddr 00:1A:64:6A:55:98

inet6 addr: fe80::21a:64ff:fe6a:5598/64 Scope:Link

UP BROADCAST RUNNING SLAVE MULTICAST   MTU:1500   Metric:1

RX packets:1236 errors:0 dropped:0 overruns:0 frame:0

TX packets:16 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:138642 (135.3 KiB)   TX bytes:4275 (4.1 KiB)

Interrupt:16 Memory:ca000000-ca011100

lo        Link encap:Local Loopback

inet addr:127.0.0.1   Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING   MTU:16436   Metric:1

RX packets:24 errors:0 dropped:0 overruns:0 frame:0

TX packets:24 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:1680 (1.6 KiB)   TX bytes:1680 (1.6 KiB)

peth0     Link encap:Ethernet   HWaddr FE:FF:FF:FF:FF:FF

inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link

UP BROADCAST RUNNING NOARP   MTU:1500   Metric:1

RX packets:984026 errors:0 dropped:0 overruns:0 frame:0

TX packets:1657683 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:152730203 (145.6 MiB)   TX bytes:2150908601 (2.0 GiB)

Interrupt:21 Memory:ce000000-ce011100

vif0.0 Link encap:Ethernet   HWaddr FE:FF:FF:FF:FF:FF

inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link

UP BROADCAST RUNNING NOARP   MTU:1500   Metric:1

RX packets:804296 errors:0 dropped:0 overruns:0 frame:0

TX packets:984134 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:2097747314 (1.9 GiB)   TX bytes:148805214 (141.9 MiB)

xenbr0 Link encap:Ethernet   HWaddr FE:FF:FF:FF:FF:FF

UP BROADCAST RUNNING NOARP   MTU:1500   Metric:1

RX packets:1532 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:132808 (129.6 KiB)   TX bytes:0 (0.0 b)

我补充一下:

ifenslave是一个在linux下做负载均衡的工具。需要安装这个包之后上面的方案才能使用。最新的稳定版大概是ifenslave-2.6

工作原理很简单,我举个例子,不一定成功,但能说明原理:

建一个组,把eth0和eth1加进去

#ifenslave bond0 eth0

#ifenslave bond0 eth1

#ifconfig bond0 [ip] [submark]

这个时候会新建一个bond0虚拟设备,使用我设置的IP地址,这个时候eth0和eth1工作模式变成了混杂模式,什么数据都收。但数据过来之后由ifenslave的底层驱动来作负载均衡,决定哪些数据规组里面的哪个成员(eth0,eth1)处理。

大家在注意这个解决方案的配置文件,其中有一句:

options bond0 miimon=100 mode=1

如果达到负载均衡的目的,应该是0,1是热备状态。

miimon是毫秒数,每100毫秒触发检测线路稳定性的事件。

mode= 是ifenslave的工作状态。

一共有7种方式:

=0: (balance-rr) Round-robin policy: (平衡抡循环策略):传输数据包顺序是依次传输,直到最后一个传输完毕, 此模式提供负载平衡和容错能力。

=1: (active-backup) Active-backup policy:(主-备份策略):只有一个设备处于活动状态。 一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。 此模式提供了容错能力。

=2:(balance-xor) XOR policy:(广播策略):将所有数据包传输给所有接口。 此模式提供了容错能力。

=3:(balance-xor) XOR policy:   (平衡 策略): 传输根据原地址布尔值选择传输设备。 此模式提供负载平衡和容错能力。

=4:(802.3ad) IEEE 802.3ad Dynamic link aggregation.   IEEE 802.3ad 动态链接聚合:创建共享相同的速度和双工设置的聚合组。(我不是太懂。)

=5:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡):没有特殊策略,第一个设备传不通就用另一个设备接管第一个设备正在处理的mac地址,帮助上一个传。

=6:(balance-alb) Adaptive load balancing: (适配器传输负载均衡):大致意思是包括mode5,bonding驱动程序截获 ARP 在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。(我没太看明白)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值