Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1743015
  • 博文数量: 391
  • 博客积分: 8464
  • 博客等级: 中将
  • 技术积分: 4589
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-13 15:12
个人简介

狮子的雄心,骆驼的耐力,孩子的执著!

文章分类

全部博文(391)

文章存档

2023年(4)

2018年(9)

2017年(13)

2016年(18)

2014年(7)

2013年(29)

2012年(61)

2011年(49)

2010年(84)

2009年(95)

2008年(22)

分类: 系统运维

2009-05-26 16:09:32

所谓bonding,就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。Kernels 2.4.12及以后的版本均提供bonding模块,以前的版本可以通过patch实现。
一、
1.确认你目前使用的网卡,检查/etc/sysconfig/network-scripts目录下以ifcfg-开头的文件,应该为eth0, eth1...

2. 配置虚拟网卡bond0
可以使用DHCP,也可以配置static IP,最好通过vi编辑配置文件
引用
[root@server1 ~]# cd /etc/sysconfig/network-scripts
[root@server1 network-scripts]# cat ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=192.168.0.0
NETMASK=255.255.255.0
IPADDR=192.168.0.10
USERCTL=no
GATEWAY=192.168.0.254
TYPE=Ethernet


3. 修改eth0, eth1配置文件
引用
[root@server1 network-scripts]# ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=yes
[root@server1 network-scripts]# ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=yes


4. 将新添加的bond0设备加入modprobe.conf中,以便kernel识别。加入设置参数,miimon值表示两块网卡相互监测的时间,以ms为单位。mode值为工作模式,可设置为高可用还是负载均衡,0为高可用(默认值),1为负载均衡,另外还有一种XOR模式。
引用
alias bond0 bonding
options bond0 miimon=100 mode=1
 
5. 修改/etc/rc.d/rc.local,加入下面一行

    /sbin/ifenslave bond0 eth0 eth1

二、
1.cd /etc/sysconfig/network-scripts/;touch ifcfg-bond0
2.cd /etc/sysconfig/network-scripts/;cat ifcfg-eth0 ifcfg-bond0
3.vi ifcfg-bond0 修改结果如下
DEVICE=bond0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.10
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
4.vi /etc/modprobe.conf  增加如下两行
alias bond0 bonding
options bond0 miimon=100 mode=1

说明:miimon是用来进行链路监测的。比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有01,2,3四种模式,常用的为0,1两种。

mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。

mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式

也就是说默认情况下只有一块网卡工作,另一块做备份.

bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用
5.编辑 /etc/rc.d/rc.local文件,加入两行

ifenslave bond0 eth0 eth1

route add -net 192.168.0.0 netmask 255.255.255.0 bond0

6.reboot,重启后执行ifconfig命令查看网卡的信息,发现bondeth0.eth1MAC是同一个MAC,并且获得了eth0IP地址,说明绑定成功。
7.cat /proc/net/bonding/bond0 #查看绑定结果
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)
Bonding Mode: fault-tolerance (active-backup)  #绑定模式
Primary Slave: None
Currently Active Slave: eth1
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: 1 #断链次数
Permanent HW addr: f4:ce:46:b0:49:46
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: f4:ce:46:b0:49:52


关于Linux使用bonding的详细信息可以参考官方文档http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/bonding.txt
 
阅读(1103) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~