Chinaunix首页 | 论坛 | 博客
  • 博客访问: 232052
  • 博文数量: 33
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 798
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-16 10:12
文章分类
文章存档

2011年(2)

2008年(31)

我的朋友

分类: 系统运维

2008-03-07 09:37:26

==================================================================================

Linux Ethernet Bonding Driver HOWTO

更新时间:2006年4月24日

发布者:Tomas Davis
修正,增加高可靠性:2000/10/03-15:
  - Willy Tarreau
  - Constantine Gavrilov
  - Chad N. Tindel
  - Janice Girouard
  - Jay Vosburgh

Jay Vosburgh于2005年2月重新组织并更新文档
增加Sysfs相关内容:2006/04/24
  - Mitch Williams

简介
=============================

  Linux bonding驱动提供了一种方法,用以把多个网络接口(network interface)组合成一个逻辑的"bonded"接口。Bonded接口的工作方式取决于驱动的模式:不同的模式提供了热备份或负载均衡等不同的服务。此外,驱动还会监控链路的可用性。

  Bonding驱动最早来自Donald Becker针对Linux 2.0内核的beowulf补丁。现在已经有了很多的变化,最早的来自beowulf网站的工具已经不能和现在的驱动一起使用。

  如果你希望得到最新的版本,或者最新的用户工具,或者寻求相关的帮助,请留意本文末尾的链接。

目录
============================

1. Bonding驱动简介

2. Bonding驱动选项

3. 配置Bonding驱动
3.1 通过Sysconfig配置Bonding
3.1.1  通过Sysconfig使用DHCP
3.1.2  通过Sysconfig配置多个Bond
3.2 通过Initscripts配置Bonding
3.2.1  通过Initscripts使用DHCP
3.2.2  通过Initscripts配置多个Bond
3.3 通过Ifenslave手工配置Bonding
3.3.1  手工配置多个Bond
3.4 通过Sysfs手工配置Bonding

4. 查询Bonding配置
4.1 Bonding配置
4.2 网络配置

5. Switch(交换机)配置

6. 802.1q VLAN

7.链路监控
7.1 ARP监控
7.2 配置多个ARP监控目标
7.3 MII监控

8. 可能的问题
8.1 Routing(路由)
8.2 Ethernet设备重命名
8.3 网速变慢或Mii监控无法发现出错的链接

9. SNMP代理

10. Promiscuous(混杂)模式

11. 配置Bonding用于高可靠性
11.1 单一Switch下的高可靠性
11.2 多Switch下的高可靠性
11.2.1  多Switch下的Bonding模式选择
11.2.1  多Switch下的链路监控

12. 配置Bonding用于大吞吐量
12.1 单一Switch下的大吞吐量网络配置
12.1.1  单一Switch下的Bonding模式选择
12.1.2  单一Switch下的链路监控
12.2 多Switch下的大吞吐量网络配置
12.2.1  多Switch下的Bonding模式选择
12.2.1  多Switch下的链路监控

13. Switch的问题
13.1 链路建立和Failover延时
13.2 Incoming包重复

14. 硬件相关
14.1 IBM刀片服务器

15. FAQ

16. 相关资源和链接


1. Bonding驱动简介
=================================
  大多数目前发布的Linux内核都以模块(module)方式带了bonding驱动,ifenslave工具也都已经安装好。如果你的Linux没有,或者你确实需要自己来编译bonding(比如要配置或安装自己的Linux内核),请参考如下步骤:

1.1 配置并编译支持bonding的内核
---------------------------------

  当前版本的bonding驱动位于Linux内核源码(从下载)的drivers/net/bonding子目录中。你可以在kerenl.org下载到最新版本的内核源码。

  通过"make menuconfig"(或"make xconfig" "make config")配置内核,在“Network device support”下选择“Bonding driver support”。建议你将bonding驱动配置为模块(module)方式,因为如果你要给驱动传递参数或者希望配置多个bonding驱动,只有通过模块方式。

  编译并安装新的内核和编译出的模块,然后参照下面的步骤安装ifenslave。

1.2 安装ifenslave控制工具
--------------------------------

  ifenslave控制工具也在内核源码中:Documentation/networking/ifenslave.c。一般建议最好使用和内核匹配的ifenslave(同一份源码中或同一个发布中),然而较老的内核中的ifenslave也应该能够正常工作(较新的一些功能将不能使用),不过更新的内核中的ifenslave将可能不能工作。

  参照如下步骤以安装ifenslave:

# gcc -Wall -O -I/usr/src/linux/include ifenslave.c -o ifenslave
# cp ifenslave /sbin/ifenslave

  如果你的内核源码不在“/usr/src/linux”下,请将上面的“/usr/src/linux/include”替换成相应的正确目录。

  如果希望备份现有的/sbin/ifenslave,或者只是试用一下,你可以把ifenslave文件名加上内核版本信息(比如,/sbin/ifenslave-2.6.10)

重要提示:

  如果你忽略了"-I"参数或者指定了一个不正确的目录,你可能会得到一个和内核不兼容的ifenslave。有些发布(比如Red Hat 7.1之前的版本)没有/usr/include/linux符号链接指向当前内核的include目录。

另一个重要提示:
  如果你打算使用sysfs来配置bonding,你不需要使用ifenslave。

2. Bonding驱动选项
=================================

  Bonding驱动的选项是通过在加载时指定参数来设定的。可以通过insmod或modprobe命令的命令行参数来指定,但通常在/etc/modules.conf或/etc/modprobe.conf配置文件中指定,或其他的配置文件中(下一节将会提及几个具体的细节)

  下面列出可用的bonding驱动参数。如果参数没有指定,驱动会使用缺省参数。刚开始配置bond的时候,建议在一个终端窗口中运行"tail -f /var/log/messages"来观察bonding驱动的错误信息【译注:/var/log/messages一般会打印内核中的调试信息】。

  有些参数必须要正确的设定,比如miimon、arp_interval和arp_ip_target,否则在链接故障时会导致严重的网络性能退化。很少的设备不支持miimon,因此没有任何理由不使用它们。

  有些选项不仅支持文本值的设定,出于兼容性的考虑,也支持数值的设定,比如,"mode=802.3ad"和"mode=4"效果是一样的。

  具体的参数列表:

arp_interval

  指定ARP链路监控频率,单位是毫秒(ms)。如果APR监控工作于以太兼容模式(模式0和模式2)下,需要把switch(交换机)配置为在所有链路上均匀的分发网络包。如果switch(交换机)被配置为以XOR方式分发网络
阅读(1383) | 评论(0) | 转发(0) |
0

上一篇:Netstat

下一篇:linux 压缩解压方法

给主人留下些什么吧!~~