保持服务器的高可用性 接的高可用性。网卡(NIC 能。 | 是企业级 IT 环境的重要因素。 )绑定技术有助于保证高可用性 | 其中最重要的一点是服务器网络连 特性并提供其它优势以提高网络性 |
我们在这介绍的Linux 来的设备看起来是一个单独 行链接聚合成一个逻辑链路 Etherchannel技术,在Linu 术的最早应用是在集群—— 讨论一下bonding 的原理, ,在正常情况下,网卡只接 数据帧都滤掉,以减轻驱动 ,可以接收网络上所有的帧 个模式下,而且修改了驱动 定mac的数据帧。然后把相 | 双网卡绑定实现就是使用两块网 的以太网接口设备,通俗点讲就 工作。其实这项技术在Sun和Cis x的2.4.x的内核中也采用这这种 beowulf上,为了提高集群节点 什么是bonding需要从网卡的混 收目的硬件地址(MAC Address) 程序的负担。但是网卡也支持另 ,比如说tcpdump,就是运行在 程序中的mac地址,将两块网卡 应的数据帧传送给bond驱动程序 | 卡虚拟成为一块网卡,这个聚合起 是两块网卡具有相同的IP地址而并 co中早已存在,被称为Trunking和 技术,被称为bonding。bonding技 间的数据传输而设计的。下面我们 杂(promisc)模式说起。我们知道 是自身Mac的以太网帧,对于别的 外一种被称为混杂promisc的模式 这个模式下。bonding也运行在这 的Mac地址改成相同,可以接收特 处理。 |
说了半天理论,其实配置很简单,一共四个步骤: |
实验的操作系统是Redhat Linux Enterprise 3.0 |
绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片 |
1.编辑虚拟网络接口配置文件,指定网卡IP |
vi /etc/sysconfig/ n | etwork-scripts/ ifcfg-bond0 |
[root@rhas-13 root]# cp /etc/sys | config/network-scripts/ifcfg-eth0 ifcfg-bond0 |
2 #vi ifcfg-bond0 |
将第一行改成 DEVICE=bond0 |
# cat ifcfg-bond0 |
DEVICE=bond0 |
BOOTPROTO=static |
IPADDR=172.31.0.13 |
NETMASK=255.255.252.0 |
BROADCAST=172.31.3.254 |
ONBOOT=yes |
TYPE=Ethernet |
这里要主意,不要指定单个网卡的IP 适配器(bonding)中即可。 | 地址、子网掩码或网卡 ID。将上述信息指定到虚拟 |
[root@rhas-13 networ | k-scripts]# cat ifcfg-eth0 |
DEVICE=eth0 |
ONBOOT=yes |
BOOTPROTO=dhcp |
[root@rhas-13 network-scripts]# | cat ifcfg-eth1 |
DEVICE=eth0 |
ONBOOT=yes |
BOOTPROTO=dhcp |
3 # vi /etc/modules.conf |
编辑 /etc/modules.co 块,对外虚拟网络接口设备 | nf 文件,加入如下一行内容, 为 bond0 | 以使系统在启动时加载bonding模 |
加入下列两行 |
alias bond0 bonding |
options bond0 miimon=100 mode=1 |
说明:miimon是用来进 路连接状态,如果有一条线 1,2,3四种模式,常用的为0 | 行链路监测的。 比如:miimon=1 路不通就转入另一条线路;mode ,1两种。 | 00,那么系统每100ms监测一次链 的值表示工作模式,他共有0, |
mode=0表示load balan | cing (round-robin)为负载均衡 | 方式,两块网卡都工作。 |
mode=1表示fault-tolerance (activ 式,也就是说默认情况下只有一块网卡工 | e-backup)提供冗余功能,工作方式是主备的工作方 作,另一块做备份. |
bonding只能提供链路监测,即从主 链路down掉了,而交换机本身并没有故障 | 机到交换机的链路是否接通。如果只是交换机对外的 ,那么bonding会认为链路没有问题而继续使用 |
4 # vi /etc/rc.d/rc.local |
加入两行 |
ifenslave bond0 eth0 eth1 |
route add -net 172.3 | 1.3.254 netmask 255.255.255. | 0 bond0 |
到这时已经配置完毕重新启动机器. |
重启会看见以下信息就表示配置成功了 |
................ |
Bringing up interface bond0 OK |
Bringing up interface eth0 OK |
Bringing up interface eth1 OK |
................ |
下面我们讨论以下mode分别为0,1时的情况 |
mode=1工作在主备模式下,这时eth1作为备份网卡是no arp的 |
[root@rhas-13 networ | k-scripts]# ifconfig 验证网 | 卡的配置信息 |
bond0 Link encap:Ethernet HWaddr | 00:0E:7F:25:D9:8B |
inet addr:172.31.0.1 | 3 Bcast:172.31.3.255 Mask:25 | 5.255.252.0 |
UP BROADCAST RUNNING | MASTER MULTICAST MTU:1500 M | etric:1 |
RX packets:18495 errors:0 droppe | d:0 overruns:0 frame:0 |
TX packets:480 error | s:0 dropped:0 overruns:0 car | rier:0 |
collisions:0 txqueuelen:0 |
RX bytes:1587253 (1.5 Mb) TX byt | es:89642 (87.5 Kb) |
eth0 Link encap:Ethe | rnet HWaddr 00:0E:7F:25:D9:8 | B |
inet addr:172.31.0.1 | 3 Bcast:172.31.3.255 Mask:25 | 5.255.252.0 |
UP BROADCAST RUNNING SLAVE MULTI | CAST MTU:1500 Metric:1 |
RX packets:9572 erro | rs:0 dropped:0 overruns:0 fr | ame:0 |
TX packets:480 errors:0 dropped: | 0 overruns:0 carrier:0 |
collisions:0 txqueuelen:1000 |
RX bytes:833514 (813.9 Kb) TX by | tes:89642 (87.5 Kb) |
Interrupt:11 |
eth1 Link encap:Ethe | rnet HWaddr 00:0E:7F:25:D9:8 | B |
inet addr:172.31.0.1 | 3 Bcast:172.31.3.255 Mask:25 | 5.255.252.0 |
UP BROADCAST RUNNING NOARP SLAVE | MULTICAST MTU:1500 Metric:1 |
RX packets:8923 errors:0 dropped | :0 overruns:0 frame:0 |
TX packets:0 errors: | 0 dropped:0 overruns:0 carri | er:0 |
collisions:0 txqueuelen:1000 |
RX bytes:753739 (736 | .0 Kb) TX bytes:0 (0.0 b) |
Interrupt:15 |
那也就是说在主备模式 断,系统会按照cat /etc/rc 效保护的功能. | 下,当一个网络接口失效时(例如 .d/rc.local里指定网卡的顺序 | 主交换机掉电等),不回出现网络中 工作,机器仍能对外服务,起到了失 |
在mode=0 负载均衡工 | 作模式,他能提供两倍的带宽,下 | 我们来看一下网卡的配置信息 |
[root@rhas-13 root]# ifconfig |
bond0 Link encap:Eth | ernet HWaddr 00:0E:7F:25:D9: | 8B |
inet addr:172.31.0.13 Bcast:172. | 31.3.255 Mask:255.255.252.0 |
UP BROADCAST RUNNING | MASTER MULTICAST MTU:1500 M | etric:1 |
RX packets:2817 erro | rs:0 dropped:0 overruns:0 fr | ame:0 |
TX packets:95 errors:0 dropped:0 | overruns:0 carrier:0 |
collisions:0 txqueuelen:0 |
RX bytes:226957 (221 | .6 Kb) TX bytes:15266 (14.9 | Kb) |
eth0 Link encap:Ethernet HWaddr | 00:0E:7F:25:D9:8B |
inet addr:172.31.0.1 | 3 Bcast:172.31.3.255 Mask:25 | 5.255.252.0 |
UP BROADCAST RUNNING | SLAVE MULTICAST MTU:1500 Me | tric:1 |
RX packets:1406 errors:0 dropped | :0 overruns:0 frame:0 |
TX packets:48 errors | :0 dropped:0 overruns:0 carr | ier:0 |
collisions:0 txqueuelen:1000 |
RX bytes:113967 (111.2 Kb) TX by | tes:7268 (7.0 Kb) |
Interrupt:11 |
eth1 Link encap:Ethernet HWaddr | 00:0E:7F:25:D9:8B |
inet addr:172.31.0.1 | 3 Bcast:172.31.3.255 Mask:25 | 5.255.252.0 |
UP BROADCAST RUNNING SLAVE MULTI | CAST MTU:1500 Metric:1 |
RX packets:1411 errors:0 dropped | :0 overruns:0 frame:0 |
TX packets:47 errors:0 dropped:0 | overruns:0 carrier:0 |
collisions:0 txqueuelen:1000 |
RX bytes:112990 (110.3 Kb) TX by | tes:7998 (7.8 Kb) |
Interrupt:15 |
在这种情况下出现一块网卡失效,仅 | 仅会是服务器出口带宽下降,也不会影响网络使用. |
通过查看bond0的工作状态查询能详细的掌握bonding的工作状态 |
[root@rhas-13 bondin | g]# cat /proc/net/bonding/bo | nd0 |
bonding.c:v2.4.1 (September 15, 2003) |
Bonding Mode: load b | alancing (round-robin) |
MII Status: up |
MII Polling Interval (ms): 0 |
Up Delay (ms): 0 |
Down Delay (ms): 0 |
Multicast Mode: all slaves |
Slave Interface: eth1 |
MII Status: up |
Link Failure Count: 0 |
Permanent HW addr: 00:0e:7f:25:d9:8a |
Slave Interface: eth0 |
MII Status: up |
Link Failure Count: 0 |
Permanent HW addr: 00:0e:7f:25:d9:8b |