- 论坛徽章:
- 0
|
如何在 SLES 下配置 Bonding
Novell TID: 3929220
注意:本文档结尾除含有免责条款。
软件环境
Novell SUSE Linux Enterprise Server 9
Novell SUSE Linux Enterprise Server 10
需求
你想要把几个物理网卡虚拟成一个逻辑上的网卡。 这篇文章并非针对 bonding 所有选项和特性的详细介绍,而是关于如何在 SLES 上配置 bonding 的简单介绍。关于 bonding 的更多资料请参阅内核文件 /usr/src/linux/Documentation/networking/bonding.txt 或访问 bonding 项目的主页。
配置方法
注意:开始配置之前,请参阅下面的 additional notes 小节里的配置前需了解的信息。
在这里我们假设如下的配置脚本,共有两块网卡,它们会被绑定成一块逻辑网卡,这块逻辑网卡工作在 mode=1 (主-从) 方式。目前,YaST2 无法配置 bonding 设备,
因此,我们必须手工编辑 YaST2 所创建的配置文件来生成所需的配置文件。在将来也许会有 YaST2 模块协助我们创建 bonding 相关的配置。
1- 使用 YaST2 配置物理网络设备,配置设备使用DHCP,这样可以少输入一些内容。
2- 编辑已创建的配置文件 /etc/sysconfig/network/ifcfg-eth-id-xx:xx:xx:xx:xx:xx, 并作如下修改:
BOOTPROTO='none'
STARTMODE='off'
留意这些配置文件里的 pci-ids . pci-ids 在配置文件里的表现形式为:
_nm_name+'bus-pci-0000:06:08.1'
3- 为绑定设备在 /etc/sysconfig/network 下创建新的配置文件。将配置文件命名为 ifcfg-bond0。此配置文件应依据实际的用户环境作出相应修改。以下仅是一个例子:
BOOTPROTO='static'
BROADCAST='192.168.1.255'
IPADDR='192.168.1.1'
NETMASK='255.255.255.0'
NETWORK='192.168.1.0'
STARTMODE='onboot'
BONDING_MASTER='yes' ###Note: the line BONDING_MASTER='yes' indicates that the device is a bonding master device.
BONDING_MODULE_OPTS='mode=1 miimon=100 use_carrier=0'
BONDING_SLAVE0='bus-pci-0000:06:08.1'
BONDING_SLAVE1='bus-pci-0000:06:09.1'
BONDING_MODULE_OPTS 是本实例的 bonding 模块参数。可在此传递绑定类型,链路监控等参数。上面的例子里使用 MII 链路检测方法。其它检测方法包括:
netif_carrier 方法
BONDING_MODULE_OPTS='miimon=100 mode=1 use_carrier=1'
ARP monitoring 方法
BONDING_MODULE_OPTS='arp_interval=2500 arp_ip_target=192.168.1.1 mode=1'
为每个从设备准备一个 BONDING_SLAVEn='slave_device' 变量赋值。 'slave_device' 既可为接口名,如: 'eth0',也可为网络设备描述符。 设备名很容易使用,但是这个名字由于是逻辑名因此并非持久命名。它会因网络驱动的加载顺序而改变。设备描述符 'bus-pci-0000:06:08.1' 指向特定的物理网络设备,除非设备在总线上的位置发生变化(在机器里更换插槽)否则是不会因驱动加载顺序而改变的。
4- 重启网络服务。
rcnetwork restart
检查配置是否生效,执行如下命令:
1- 打开终端,执行命令监控系统日志文件:
tail -f /var/log/messages
2- 打开另外一个终端,ping 绑定接口的 ip 地址:
ping 192.168.1.1
3- 拔掉工作在主模式下的网卡接口的网线
如果配置正确,你会看到 ping 会继续,无论哪个接口处于连接状态。在日志里,会有一个接口链路断掉,另外一个接口被设为主设备的消息。重复插拔网线(也测试另外一根网线)观察日志信息以了解发生的状态转化。
需注意的方面
additional notes
为避免错误发生,建议所有的网卡用相同驱动来驱动。如果使用不同驱动,请考虑如下条件:
* 共有三个驱动相关的选项可用于监测网卡链路状态:MII 链路状态检测,驱动中的 netif_carrier 寄存器和 ARP 监控。
注意使用所有驱动都支持的同种链路监测手段,如果实际情况下不具备这种条件,唯一的解决方案是使用另外的网卡替换现有的网卡。
要想了解所使用的驱动支持哪种监测方法,请参照以下步骤:
MII 链路状态可以由工具 mii-tool 或 ethtool 的输出来判断。
驱动对 netif_carrier 和 ARP 监控方式的支持需要通过访问源代码才能了解。因此需要安装内核源代码。
* 想了解驱动是否支持 netif_carrier,在驱动源代码里搜索关键字:grep netif_carrier $driver_name.c
* 想了解驱动是否支持 ARP 监控方式,驱动必须支持 last_rx 或 trans_start 两个寄存器之一。在驱动源代码里搜索关键字:grep "last_rx\|trans_start" $driver_name.c
在确认过这些信息之后才能开始配置工作。
Linux 绑定驱动提供将多个网络接口绑定聚合成为一个逻辑绑定设备的方法。逻辑绑定设备的行为依赖于其工作模式。简单来讲,可供选择的工作模式包括主-从模式和负载均衡模式。此外,链路完整性检测方法同时应该指明。
绑定可以作哪些工作?通过绑定,可以主要做以下两件工作:
* 将两个或多个网络设备聚合并在虚拟设备上实现负载均衡。有多种均衡算法可对网络流量进行负载均衡。
* 配置两个或多个网络设备当设备失效时在设备间进行切换 (主-从)。
绑定设备从用户的角度来看,与其它常规的网络设备并无区别。例如,可以:
* 在绑定设备上设置 802.1q VLANs。
* sniff 网络通信。
* 等等...
绑定无法胜任哪些任务?绑定在工作时基于对失效链路的检测,如果无法检测出所有出现的网络失效。例如,如下情况发生,绑定将无法执行正常的功能:
* 链路检测无法正常工作。
* 网卡驱动有 bug 或停止工作。
* 交换机功能在链路出问题的情况下错误的报告链路状态正常。
* 所使用的服务 out of order。
* 路由存在问题。
有时会遇到系统重启之后,不是所有的网络接口都被激活的情况。为避免这种情况发生,在重启的过程中,需要在启动初期即加载所需的模块。如下的手段可用于此种目的:
1. 编辑文件 /etc/sysconfig/kernel 并添加行:MODULES_LOADED_ON_BOOT="$driver_name"。
2. 重启服务器并用 lspci 和 ifconfig 命令检查所有网络设备的状态。
3. 如果这种方法不工作,编辑 /etc/sysconfig/kernel 文件并删除第一步插入的行。修改包含 INITRD_MODULES 语句的行; 添加 driver_name 到此变量赋值中。 如下为此行的例子:INITRD_MODULES="cdrom scsi_mod ide-cd ehci-hcd reiserfs driver_name".
4. 调用 mkinitrd 命令。
5. 重启机器并作检查。
另外一种方法是延迟网络接口的激活时间,一直等到模块被正确加载:
1. 编辑 /etc/sysconfig/network/config 文件并修改变量 WAIT_FOR_INTERFACES 为需要延迟的时间(单位为秒)。要延迟3秒,输入:WAIT_FOR_INTERFACES="3"。
2. 重启服务器检查延迟是否生效。
文档
文档 ID: 3929220
创建日期: 2006-09-12 13:26:45.0
修改日期: 2006-09-12 13:25:34.0
适用Novell产品: SUSE Linux Enterprise Server
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/5724/showart_217582.html |
|