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)
[root@yangwenjun network-scripts]#a
--------------------next---------------------
大家在注意这个解决方案的配置文件,其中有一句:
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 在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。(我没太看明白)
[ 本帖最后由 依刚 于 2008-8-7 17:50 编辑 ]
--------------------next---------------------
阅读(371) | 评论(0) | 转发(0) |