中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 硬件维修 > 综合技术
Teaming
作者:未知 时间:2005-09-13 20:14 出处:ChinaUnix.net 责编:chinaitpower
              摘要:Teaming

有不少朋友问,两个网卡怎么做Load balancing。正好有台X445,做个实验。


1、什么是Teaming
      简单来讲,Teaming 就是把同一台服务器上的多个物理网卡(注1)通过软件绑定成一个虚拟的网卡,也就是说,对于外部网络而言,这台服务器只有一个可见的网卡。对于任何应用程序,以及本服务器所在的网络,这台服务器只有一个网络链接或者说只有一个可以访问的IP地址(注2)。
    之所以要利用Teaming 技术,除了利用多网卡同时工作来提高网络速度以外,还有可以通过Teaming 实现不同网卡之间的负载均衡(Load balancing)和网卡冗余(Fault tolerance)。

 秋意正浓 回复于:2004-10-23 16:55:38
2. Teaming 种类(注3)
2.1. Broadcom Teaming 包含有一下三种实现方式
Smart Load Balancing, 
Link Aggregation(802.3ad), 
Generic Link Aggregation(Trunking) 
2.1.1. Smart Load Balancing (SLB)

SLB 可以实现负载均衡,以及网卡冗余,而且与交换机的型号无关(适用于大多数品牌的交换机),具体的说,就是所有在服务器上的物理网卡都有单独的MAC(注4)地址,通过SLB程序来控制进入和发出的数据包,一旦控制程序检测到有一个物理网卡损坏,会自动把流量分散到其他的正在工作的网卡,这样就保证了网络工作的连续性,对于外部,通过网络访问服务器的程序是透明的。
另外,此种模式下不同的物理网卡可以连接不同的交换机,从而实现交换机的冗余
以下是此种模式下不同操作系统对于负载均衡的支持






 秋意正浓 回复于:2004-10-23 17:02:19
以下是此种模式下不同操作系统对于网卡冗余的支持






 秋意正浓 回复于:2004-10-23 17:05:57
2.1.2. Link Aggregation(802.3ad)
此种模式是通过Link Aggregation Control Protocol(LACP) 协议来控制的,分为动态和静态两种配置方式(在交换机上设置),这种模式中 虚拟的网络链接只用一个Mac 地址(Teaming 中的第一个物理网卡的Mac地址)接收数据包。
另外,此种模式下,Teaming 程序只负责对发出的数据包进行负载均衡,而进入的数据包负载均衡由与之相联的交换机负责,因此要求与服务器相联的交换机要支持IEEE 802.3ad 标准。Teaming 程序与交换机共同负责监控链路状态,如果发现有某个链路有问题,便自动进行切换。

以下是此种模式下不同操作系统对于负载均衡的支持






 秋意正浓 回复于:2004-10-23 17:11:48
以下是此种模式下不同操作系统对于网卡冗余的支持






 秋意正浓 回复于:2004-10-23 17:12:33
2.1.3. Generic Link Aggregation (Trunking)
此种模式是第二种模式的一个延伸,不同的公司对Link Aggregation 进行了本地化,如Cisco’s Fast EtherChannel (FEC) ,Cisco’s Gigabit EtherChannel (GEC) ,都是Trunk 协议。
在应用中,管理员必须为交换机的某些端口进行静态化配置(注5),同样这里由Teaming 程序和交换机共同监控链路状态。

以下是此种模式下不同操作系统对于负载均衡的支持






 秋意正浓 回复于:2004-10-23 17:14:36
以下是此种模式下不同操作系统对于网卡冗余的支持






 秋意正浓 回复于:2004-10-23 17:15:56
2.1.4. 三种模式的比较
详细参见以下列表






 秋意正浓 回复于:2004-10-23 17:17:01
2.1.5. Teaming网络拓扑结构示意






 秋意正浓 回复于:2004-10-23 17:31:43
:P











 秋意正浓 回复于:2004-10-23 17:32:40
:P






 秋意正浓 回复于:2004-10-23 17:34:32
2.2. Intel Nic teaming 分类

Intel 网卡分类一共包含5类

网卡冗余
交换机冗余
网卡负载均衡
Link Aggregation(FEC)
Link Aggregation(GEC)
IEEE 802.3ad

2.2.1. 网卡冗余Adapter Fault Tolerance (AFT)

此种方式如果一个网卡出问题,Teaming中的其他网卡就会自动顶上去,支持2-8个网卡,没有负载均衡的功能,另外,此种模式对于交换机没有特殊限制,只是要求只接同一个交换机即可。
2.2.2. 交换机冗余Switch Fault Tolerance (SFT) -
支持两个网卡分别链接到不同的交换机,从而实现链路冗余,这里要注意交换机需要启动生成树协议(STP)来防止循环,此种模式对于交换机没有限制。
SFT 只运行于 Windows NT 4.0, Windows 2000, 和 Windows Server 2003
2.2.3. 负载均衡Adaptive Load Balancing (ALB)
此种模式实现负载均衡和冗余,在windows操作系统下,同时可以对teaming进行实时控制,如关闭进入数据的负载均衡,此中模式对于交换机没有限制。

2.2.4. Fast EtherChannel*/Link Aggregation (FEC)
此种模式提供2-8个网卡,通过100M的速度链接到交换机,实现负载均衡和冗余,但是要求交换机支持相应协议,如Cisco 交换机

2.2.5. Link Aggregation(GEC)
此种模式是FEC的扩展,不通的是工作于1000M,而起交换机端口需要配置静态模式(static)

2.2.6. IEEE 802.3ad

此种模式中,网卡可以工作于不同的速度,就是说可以用不通速度的网卡建立teaming, 但同样要求交换机完全支持IEEE 802.3ad 标准

 秋意正浓 回复于:2004-10-23 17:36:45
3. 实现 Teaming实例
以Windows 2000 和Redhat为例,其他操作系统请参见Broadcom/intel cdrom附带光盘的用户手册目录
3.1. Window 2000
3.1.1. Broadcom 网卡
1. 在Broadcom 光盘中找到MgmtApps目录,运行其中的setup 文件,开始安装 The Broadcom Advanced Server Program (BASP) 
如图






 秋意正浓 回复于:2004-10-23 17:38:25
2. 点击下一步,选取所有协议






 秋意正浓 回复于:2004-10-23 17:39:42
3. 点击下一步,进行安装,完成后在控制面板中会出现如下图标






 秋意正浓 回复于:2004-10-23 17:41:47
4. 果需要卸载,可以通过控制面板中的添加删除程序来完成


5. 击broadcom图标,进入管理界面,可以看到各个物理网卡的状态






 秋意正浓 回复于:2004-10-23 17:42:54
6. 在负载均衡标签里面可以进行teaming 的配置






 秋意正浓 回复于:2004-10-23 17:44:07
7通过Create Team 按钮创建新teaming






 秋意正浓 回复于:2004-10-23 17:46:22
8、通过网上邻居的属性,定义网络参数






 秋意正浓 回复于:2004-10-23 17:47:14
9.定义网络参数完成配置






 秋意正浓 回复于:2004-10-23 17:48:48
3.1.2. Intel网卡

把Intel 网卡光盘放到cdrom中,运行,在菜单中选择网卡软件安装,完成安装,之后,控制面板中就会出现类似的一个配置工具,运行可以进行teaming配置,具体方法与Broadcom网卡配置方法基本相同。






 秋意正浓 回复于:2004-10-23 17:52:39
3.2. Linux
3.2.1. Broadcom 网卡
1. 先正确安装Broadcom 网卡
2. 在光盘中间linux目录下找到安装程序,复制到 redhad 下
3. 执行命令
rpm -i basplnx-{version}.src.{arch}.rpm
4. 编译驱动(8.0以上用rpmbuild命令)
% cd /usr/src/{redhat or packages}
% rpm -bb SPECS/basplnx.spec or rpmbuild -bb SPECS/basplnx.spec
5.安装新的RPM包 
% rpm -i RPMS/i386/basplnx-{version}.{arch}.rpm
5. 加载驱动,完成安装
% insmod basp
6. 配置之前请确认/etc/sysconfig/network-scripts目录下每个网卡都有如下属性,文件为ifcfg-eth(*)
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
7.拷贝例子配置文件"/etc/basp/samples" 目录到 "/etc/basp" 目录
修改配置文件确定teaming 类型
TEAM_ID:   this number uniquely identifies a team
TEAM_TYPE:  0 = SLB, 1 = Generic Trunking/GEC/FEC, 2 = 802.3ad
TEAM_NAME:  ascii name of the team
TEAM_PAx_NAME: ascii name of the physical interface x, where x can be 0 to 7
TEAM_PAx_ROLE: role of the physical interface x 0 = Primary, 1 = Hot-standby.This field must be 0 for Generic Trunking/GEC/FEC team. 
TEAM_VAx_NAME:  ascii name of the virtual interface x, where x can be 0 to 63
TEAM_VAx_VLAN: 802.1Q VLAN ID of the virtual interface x.For untagged virtual interface, i.e., without VLAN enable, set it to 0. The valid VLAN ID can be 0 to 4094.
TEAM_VAx_IP: IP address of the virtual interface x. The format should be aa.bb.cc.dd. 
TEAM_VAx_NETMASK: Subnet mask of the virtual interface x. The format should mm.nn.oo.pp

8.启动teaming 程序
% /etc/init.d/basp start

 秋意正浓 回复于:2004-10-23 17:58:29
3.2.2. Intel 网卡

1. 以 root身份登陆 
2. Copy  iANS-x.x.x.tar.gz 一个目录下(本文件可以在光盘中linux目录下找到)
3. tar xzf iANS-x.x.x.tar.gz 解压缩 
4. 进入 iANS-x.x.x/src 目录
5. 运行make编译文件
6. 运行make install 完成安装
7. 运行ianstool来配置teaming,出现菜单如下

1) Adding a team
2) Deleting an existing team
3) Viewing an existing team’s status
4) Configuring an existing team’s topology
5) Saving the current topology 
或者可以通过以下方法手动配置teaming
用ifconfig 把所有网卡down掉 #ifconfig ethx down
调用模块#insmod ians
用ianscfg 命令配置teaming,具体命令格式参考man
#man ianscfg
激活teaming 
#ifconfig <vadapter_name> <IPaddr> [netmask <NETMASK>] [broadcast <BROADCAST>]
用ianscfg命令保存teaming配置
如果想每一次重新起动都自动运行,用如下命令,调用上一部保存的配置文件
ianscfg –b [-f <file name>]
编辑 /etc/sysconfig/network-scripts里面的网络文件ifcfg-<vadapter_name >
使得文件中包含如下内容
DEVICE="<vadapter_name>"
BOOTPROTO="none"
ONBOOT="yes"
IPADDR="<IP_address>"
NETMASK="<netmask>" 

配置实例
modules.conf
#alias eth0 eepro100
#alias eth1 eepro100
#alias eth2 eepro100
alias eth0 e100
alias eth1 e100
alias eth2 e100
alias parport_lowlevel parport_pc
alias scsi_hostadapter aic7xxx 
Script for Setting up AFT Mode with VLANs: (two PRO/100 adapters)
insmod e100
insmod ians
ianscfg -a -t team1 -M AFT -V
ianscfg -at team1 -m eth0 -p primary
ianscfg -at team1 -m eth1 -p secondary
ianscfg -at team1 -v vadapt1 -i 10 
ianscfg -at team1 -v vadapt2 -i 15
ianscfg -c team1
ianscfg -s
ifconfig vadapt1 192.168.1.1 netmask 255.255.255.0
ifconfig vadapt2 192.168.2.1 netmask 255.255.255.0

 秋意正浓 回复于:2004-10-23 17:59:13
4. 相关资源
1. 从哪里可以得到broadcom的光盘
ftp://ftp.software.ibm.com/pc/pccbbs/options/v678-cd.exe
2. 从哪里可以得到Intel nic 的光盘
ftp://ftp.software.ibm.com/pc/pccbbs/options/v82-cd.exe
4. 访问Broadcom网址
http://www.broadcom.com
5. 访问Intel 网址
http://www.intel.com



5. 注释
1, 可以是服务器集成的和后添加的网卡,也可以是不通生产商生产的网卡
2, 有关IP地址的说明请参考TCP/IP协议有关解释
3, 本文档如果没有特殊说明都是针对Broadcom网卡的配置
4, 网卡的物理地址,可以通过ipconfig /all (windows) 或者ifconfig –a (linux)查看
5, 通过交换机内部的操作系统来配置,如Cisco 的IOS系统,可以通过串口线,或者网络telnet命令登陆交换机的操作系统

 han_xu 回复于:2004-10-24 00:34:13
好东东,以前只知道有这个东东,现在好了看如此的详细说明,就差没有实物了!

 cnriver 回复于:2004-10-25 20:03:04
千兆电口很普及,目前很多笔记本就是千兆的。
而且网卡 做冗余,意义也不大!
个人意见,仅供参考。

 秋意正浓 回复于:2004-10-26 00:04:46
[quote:09cc5ec9b8="cnriver"]千兆电口很普及,目前很多笔记本就是千兆的。
而且网卡 做冗余,意义也不大!
个人意见,仅供参考。[/quote:09cc5ec9b8]


网卡冗余主要是用于服务器上,PC和笔记本就没有必要了。

 cnriver 回复于:2004-10-26 12:57:29
服务器吗,都会用成熟、稳定的产品,一般都做cluster的。

 秋意正浓 回复于:2004-10-26 17:19:55
[quote:3dc6a09e78="cnriver"]服务器吗,都会用成熟、稳定的产品,一般都做cluster的。[/quote:3dc6a09e78]

cluster不会起到负载均衡的作用。

而且在一台服务器上双网卡做冗余或者负载均衡,在本地又起了一层保护。 :em03:

 狼寅 回复于:2004-10-28 11:18:15
有搞头,有机会我也练练!!!
谢了

 zhangyan_ou 回复于:2004-10-31 18:14:21
Novell下配置网络(intel)
load ce1000 slot=1 frame=ethernet_802.2 name=ce1000_1_e82
load ce1000 slot=2 frame=ethernet_802.2 name=ce1000_2_e82
load ians frame=ethernet_802.2 name=ans_e82
bind ians ce1000_1_e82
bind ians ce1000_2_e82
load ians commit probes=on mode=aft
bind ipx ans_e82 net=1

 ghg123456 回复于:2005-01-06 20:25:49
老大那个程序目前ibm不提供了,我们那里下载啊

 dindy 回复于:2005-01-06 21:17:09
对我是新事物,学习中

 nopalh 回复于:2005-01-06 22:12:31
很实用

 shimu 回复于:2005-01-07 08:52:01
[quote:dc98a39075="cnriver"]服务器吗,都会用成熟、稳定的产品,一般都做cluster的。[/quote:dc98a39075]
一般的cluster象sun cluster ,ibm hacmp都要做类teaming的 :)

 ghhbswhszx 回复于:2005-02-12 05:02:01
不错~!~~!支持~!
先收

 河外星系 回复于:2005-03-21 14:34:53
ibm基于broadcom NetXtreme 网卡的软件CD
其中有broadcom advanced control suite2!!
地址:http://www-900.ibm.com/cn/support/download/driver/detail?DocId=FROG-66K67V

 keyinwind 回复于:2005-04-05 13:44:09
我就是在我们的刀片服务器上每个服务刀片上用team功能,只为了增大带宽,在windows下使用basp的team很容易,下了那个软件安装后建立team后,就显示只有一个NIC了,且是1st NIC的MAC address,但是在linux下也按照readme上说的make then install ,然后按照configure的说明配置了那个script file,就是用的samples里的team-gec文件,根据实际我将eth0和eth1外加一个sw0的虚拟if做成一个team, finally /etc/init.d/basp start了,lsmod也看到basp了,ifconfig也确实看到eth0和eth1都变成了同一个MAC地址,这时只有一个接口可用了,另一个显示未连接,连接的那个的IP是以前eth0的那个,以为这样就成功,但是却发现根本ping 不通啊......

之后只能stop掉basp,此时两个接口都显示未连接,于是重新连接,后还是恢复以前的样子,但是再尝试做team还是一样,显示确实共用一个MAC地址,却怎么也ping不通,望楼主指教,急啊,拜谢!

 biejia 回复于:2005-04-08 16:17:12
本人也在Linux下也碰到了楼上同样的问题,请高手指教

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有