Linux下网卡绑定指导书v1010118.docx
《Linux下网卡绑定指导书v1010118.docx》由会员分享,可在线阅读,更多相关《Linux下网卡绑定指导书v1010118.docx(24页珍藏版)》请在冰豆网上搜索。
Linux下网卡绑定指导书v1010118
产品名称Productname
文档密级Confidentialitylevel
外部公开
产品版本Productversion
Total26pages共26页
网卡绑定操作指导书
(仅供内部使用)
Forinternaluseonly
华为技术有限公司
HuaweiTechnologiesCo.,Ltd.
版权所有XX
Allrightsreserved
修订记录Revisionrecord
日期
Date
修订版本Revisionversion
修改描述
changeDescription
作者
Author
2010-12-13
1.00
初稿完成initialtransmittal
2011-1-18
1.01
增加FAQ、附件章节,添加资料的获取路径,增加配置多个Bonds操作说明。
目录TableofContents
1概述7
2环境准备7
2.1软硬件环境7
2.2组网环境8
3Server端网口绑定设置8
3.1SUSE网口绑定设置8
3.1.1操作步骤8
3.1.2驱动确认8
3.1.3创建网口的配置文件8
3.1.4创建bond0配置文件9
3.1.5验证绑定是否成功10
3.2RedHat网口绑定设置12
3.2.1操作步骤12
3.2.2驱动确认12
3.2.3创建网口配置文件12
3.2.4创建bond0配置文件14
3.2.5验证绑定是否成功14
4Switch设置17
5验证负载平衡和冗余19
6参考信息20
6.1网口绑定工作模式20
图目录ListofFigures
图1负载平衡组网图8
网口绑定操作指导书
关键词Keywords:
bonding
摘要Abstract:
本文将介绍如何在linux、如何实现网口邦定的详细操作步骤
缩略语清单Listofabbreviations:
Abbreviations缩略语
Fullspelling英文全名
Chineseexplanation中文解释
SLES
SuseLinuxEnterpriseservers
RHELS
RedHatEnterpriseLinuxServers
1
概述
保持服务器的高可用性是企业级IT环境的重要因素。
其中最重要的一点是服务器网络连接的高可用性。
网卡绑定(bonding)技术有助于保证网络的高可用性特性并提供其它优势以提高网络性能。
网卡绑定能够实现两大功能:
一、冗余备份
Linux网卡主备冗余绑定实现就是使用两块或多块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,并提供同一个Mac地址和IP地址,应用过程种如果出现主用网卡失效后,备用网口升主并接替网络服务,这样可以防止网络中出现单点故障。
二、负载平衡
负载均衡首先是基于提高网络的高可用性和带宽而提出来的。
现在的服务器端要提供的服务越来越多,负荷越来越重,对网络流量和高可靠性的要求也越来越大,而通过增加服务器网卡数量对成本和管理都带来不便。
网卡的负载均衡绑定技术是实现网口的高可靠性和高带宽的简便易行的好方法。
我们将需要做网卡绑定的主机叫Server端,那么进行网卡绑定操作步骤主要分两大步骤:
1、Server端配置
2、Switch配置
其中Server端的配置根据OS的不同而不同,这里分别介绍SUSE、Redhat。
2环境准备
2.1软硬件环境
●Suse或Redhat系统盘(Suse版本SLES10SP1以上版本,RHELS4.7以上版本)
●Netperf网卡测试工具
●服务器单板T6000一块、Client端主机两台
●S5328C交换机一个
●光驱一个及网线若干
2.2组网环境
图1负载平衡组网图
上述组网具体的连接操作如下:
●T6000板载两个网口外出两根网线接到S5328C交换机上
●连接到S5328C交换机的两个端口做汇聚操作
●S5328C交换机的另外一端连接至少两个客户端,用于对T6000网口的绑定验证测试
3Server端网口绑定设置
当Server端OS为suse时请参照SUSE网口绑定设置,当Server端OS为RedHat时,请参照RedHat网口绑定设置。
3.1SUSE网口绑定设置
以SLES11SP1系统下进行网口绑定为例,其它版本的suse亦可参照以下步骤。
3.1.1操作步骤
3.1.2驱动确认
默认网口绑定的驱动(bondingdriver)在系统中已经作为模块形式存在,但是没有自动加载。
可以通过modprobebonding加载。
3.1.3创建网口的配置文件
以RH2285板载网口为例,这里系统识别到两个网口分别为eth0、eth1,我们使用yast(yastNetworkDevicesNetworkSettings)工具将两个网口配置成DHCP启动,保存后退出。
切换到目录/etc/sysconfig/network/下,可以看到ifcfg-eth×形式(在suse10sp3系统上为ifcfg-id-xx:
xx:
xx:
xx:
xx:
xx)的网口配置文件,ifcfg-eth0内容如下:
修改其中的:
BOOTPROTO='none'
STARTMODE='off'
(suse的不同版本的网卡配置文件包含的选项不同,但以上两项保证修改就可以了)
然后保存,修改后如图:
同理,eth1的配置文件ifcfg-eth1也做同样修改。
3.1.4创建bond0配置文件
在/etc/sysconfig/network路径下,创建文件“ifcfg-bond0”,内容如下:
其中BROADCAST,IPADDR,NETMASKandNETWORK根据自身具体情况配置。
这里网口绑定工作模式选择了负载均衡模式:
mode=2(balance-xor),要使用备份冗余功能则选择:
mode=1(active-backup),绑定工作模式的具体介绍请查看参考信息。
以上步骤完成后,重启网络使之生效:
#/etc/init.d/networkrestart
备注:
1、STARTMODE:
规定网口绑定的何时启动,参数包括:
onboot:
系统启动时,网口绑定自动生效
manual:
网口绑定不自动生效,需使用ifup命令人工使之生效
hotplug:
当有热插拔事件发生时生效
offorignore:
网卡绑定不生效,绑定配置文件将不起作用
2、BONDING_MODULE_OPTS参数:
miimon进行链路检测,比如miimon=100,那么系统每100ms检测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值指定工作模式,模式包括0~6,7种模式,“mode=2”与“mode=balance-xor”效果是一样的,详细介绍见参考信息。
3、BONDING_SLAVEn,指定主备网口
可以使用网口设备名,类似eth0、eth1、eth×…或别的形式的设备名,也可以使用总线号形式,如bus-pci-0000:
06:
08.1,采用总线号形式指定主备网口会比直接使用eth×效果更可靠,因为网口的总线号一般是不变的。
n的值随网口绑定的个数相应递增。
4、可创建多少个bonding设备,例如bond0、bond1……,详情参见参考信息配置多个Bonds。
3.1.5验证绑定是否成功
1.在命令行输入“Ifconfig”命令
如下所示,可以看到bond0的MAC地址与eth0、eth1的MAC地址相同,并且bond0、eth0、eth1共用一个IP地址192.168.18.10。
2.在命令行下输入cat/proc/net/bonding/bond0,查看bond0状态。
备注:
删除网口绑定只需要卸载绑定的驱动,然后删除绑定配置文件,重启网络即可。
3.2RedHat网口绑定设置
本文以在RHELS5.3系统下进行网口绑定为例,其它版本的RedHat亦可参照以下步骤。
3.2.1操作步骤
3.2.2驱动确认
默认网口绑定的驱动(bondingdriver)在系统中已经作为模块形式存在,但是没有自动加载。
可以通过modprobebonding加载。
备注:
如果需要系统开机启动绑定,则在/etc/modprobe.conf中添加一行:
aliasbondXbonding
“X”即为第几个绑定,如配置ifcfg-bond0,则这里添加:
aliasbond0bonding
3.2.3创建网口配置文件
命令行下输入system-config-network,将eth0和eth1配置为DHCP启动,然后保存配置后退出。
切换到目录/etc/sysconfig/network-scripts下,查看eth0(eth1)的配置文件ifcfg-eth0(ifcfg-eth1),如下图所示:
修改其中的
BOOTPROTO=none
增加内容:
MASTER=bond0
SLAVE=yes
保存退出,修改后如下图所示
同理,另一网口eth1的配置文件ifcfg-eth1也做同样修改:
3.2.4创建bond0配置文件
在/etc/sysconfig/network-scripts路径下,创建文件“ifcfg-bond0”,内容如下:
其中BROADCAST,IPADDR,NETMASKandNETWORK根据自身具体情况配置。
备注:
对于老版本的Redhat,例如REHLS4.7,不支持“BONDING_OPTS”选项,则需要在文件/etc/modprobe.conf文件末尾增加如下两行命令:
aliasbond0bonding
optionsbond0mode=0miimon=100
对于绑定配置文件支持“BONDING_OPTS”,不需要修改/etc/modprobe.conf文件
这里网口绑定工作模式选择了负载均衡模式:
mode=2(balance-xor),要使用备份冗余功能则选择:
mode=1(active-backup),绑定工作模式的具体介绍请查看参考信息。
以上步骤完成后,重启网络使之生效:
#/etc/init.d/networkrestart
3.2.5验证绑定是否成功
1.在命令行输入“Ifconfig”命令
如下所示,可以看到bond0的MAC地址与eth0、eth1的MAC地址相同,并且bond0、eth0、eth1共用一个IP地址192.168.18.11。
2.在命令行下输入cat/proc/net/bonding/bond0,查看bond0状态
备注:
删除网口绑定的步骤为先卸载绑定驱动,然后删除绑定配置文件ifcfg-bond0和eth0、eth1的网口配置文件,重启网络。
4Switch设置
对于网卡绑定的备份冗余功能,Switch不需要进行特别的设置。
而负载平衡需要Switch进行端口汇聚的设置,如下以S5328C交换机为例进行Switch配置:
system-view
Entersystemview,returnuserviewwithCtrl+Z.
[S-switch]interfaceEth-Trunk1//创建Eth-Trunk,trunk-id为1,默认为手工负载分担模式
[S-switch-Eth-Trunk1]q
[S-switch]interfaceGigabitEthernet0/0/9
[S-switch-GigabitEthernet0/0/9]eth-trunk1//向Eth-Trunk加入成员
Oct1200820:
04:
02S-switch%%01TRUNK/4/TRUNKUP(l):
InterfaceEth-Trunk1turns
intoUPstate.
[S-switch-GigabitEthernet0/0/9]q
[S-switch]interfaceGigabitEthernet0/0/10
[S-switch-GigabitEthernet0/0/10]eth-trunk1
[S-switch-GigabitEthernet0/0/10]q
[S-switch]diseth-trunk1//检查配置结果
Eth-Trunk1'sstateinformationis:
WorkingMode:
NORMALHasharithmetic:
AccordingtoMAC
LeastActive-linknumber:
1MaxBandwidth-affected-linknumber:
8
Operatestatus:
upNumberOfUpPortInTrunk:
2
--------------------------------------------------------------------------------
PortNameStatusWeight
GigabitEthernet0/0/9Up1
GigabitEthernet0/0/10Up1
[S-switch]
[S-switch]displaytrunkmembershipeth-trunk1
TrunkID:
1
usedstatus:
VALID
TYPE:
ethernet
WorkingMode:
Normal
WorkingState:
Normal
NumberOfPortsinTrunk=2
NumberOfUPPortsinTrunk=2
operatestatus:
up
InterfaceGigabitEthernet0/0/9,valid,selected,operateup,weight=1,
standbyinterfaceNULL
InterfaceGigabitEthernet0/0/10,valid,selected,operateup,weight=1,
standbyinterfaceNULL
[S-switch]
[S-switch]q
save//保存设置
Thecurrentconfigurationwillbewrittentothedevice.
Areyousuretocontinue?
[Y/N]y
Nowsavingthecurrentconfigurationtothedevice.
Oct1200822:
48:
25S-switch%%01CFM/4/SAVE(l):
Whendecidingwhethertosavec
onfigurationtothedevice,theuserchoseY................................
Info:
Thecurrentconfigurationwassavedtothedevicesuccessfully.
注意:
1、命令中提到的9和10号端口是指后出的两网口连在S5328C交换机上的端口
2、以上命令属于QuidwayS5300系列交换机的配置命令,其它型号的交换机请参考对应的配置手册,查找端口汇聚或搜索“aggregation”关键字,查询端口汇聚操作的相应命令。
3、当把接口加入Eth-Trunk时,需确保该接口上不存在任何配置(可以配置接口的网线类型、双工模式、速率),如果提示:
“Theporthasconfiguration,pleaseclearthemfirst.”,则存在配置,可以通过在该接口上执行命令displaythis查看哪些配置,从而执行相应undo命令删除配置,然后再将该接口加入Eth-Trunk。
4、执行命令displayeth-trunk查看Eth-Trunk的负载分担方式。
配置正确的情况下,负载分担方式应该显示为“NORMAL”;
如果配置正确,执行命令displaytrunkmembershipeth-trunk能够看到Eth-Trunk的工
作模式显示为“Normal”、成员接口数量,成员接口UP的数量以及成员接口的信息。
备注:
在网口的绑定的工作模式中active-backup、balance-tlb和balance-alb模式不需要对交换机做任何的配置。
802.3ad模式需要交换机有对应的配置为802.3ad聚合的端口,具体的配置方法因交换机类型而异,比如,Cisco3550系列交换机要求对应的端口首先必须被分组在一个单独的etherchannel实例,然后这个etherchannel设置为"lacp"模式已启用802.3ad(取代标准EtherChannel)。
balance-rr、balance-xor和broadcast模式通常需要交换机对应的端口被分组在一起,不同的交换机对分组有着不同的命名,可能会被叫做“etherchannel”(比如上文的Cisco示例),或者叫做“trunkgroup”,或者其他类似的命令。
对于这些模式,每个交换机也会有它自己的针对到bond的传输策略的配置选项。
典型的选择包括对每个MAC地址或者IP地址进行XOR操作,两端的传输策略不一定完全一致。
对这三种模式,bonding模式会针对一个EtherChannel组选择一种传输策略;所有这三种模式都会和另一个EtherChannel组进行互操作。
5验证负载平衡和冗余
1)冗余备份测试:
Client端配置同一网段IP,例如192.168.18.11。
对192.168.18.10作ping测
●默认eth0、eth1网线都在位情况下,能够ping通
●拔掉eth0网线,能够ping通
●接上eth0网线,拔掉eth1网线,能够ping通
●客户端查询ARP,192.168.18.10对应唯一MAC地址为“00:
10:
e0:
fc:
f4:
68”
2)负载平衡测试:
Server端开启netserver,客户端1、客户端2分别使用netperf工具对Server端性能测试
客户端1:
netperf–H192.168.18.10–l30
客户端2:
netpert–H192.168.18.10–l30
Server端使用工具“sar”查看网口每秒收包数(rxpck/s)情况,此时发现eth0和eth1都有收包,且两者之和等于bond0每秒收包数,如下图所示:
测试结束可以发现:
客户端1的平均带宽:
客户端2的平均带宽:
由此即Sever端的总带宽即增加了一倍。
如果在Server端使用命令ifconfigeth0down,则被测端eth0出现不能收到包的情况,只有eth1能够收到包,此时eth1每秒收包数等于bond0每秒收包数,如下图所示:
由此说明负载平衡下关闭任意一个网口只会影响网络带宽,不会影响网络的连通性。
6参考信息
6.1网口绑定工作模式
Bonding驱动一共提供了7种负载均衡模式,它们分别是:
balance-rr、active-backup、balance-xor、broadcast、802.3ad、balance-tlb、balance-alb,其中最常用的是balance-xor和balance-alb,本文选择balancle-xor方式进行测试
●balance-rror0:
轮询模式,提供负载平衡和容错。
该模式下两个网口都工作
●active-backupor1:
主备倒换模式,提供冗余功能,该模式下只有一个网口工作,另一个做备份。
●balance-xoror2:
基于HASH算法的负载均衡模式,网卡的分流按照xmit_hash_policy的TCP协议层设置来进行HASH计算分流,使各种不同处理来源的访问都尽量在同一个网卡上进行处理。
●broadcastor3:
广播模式,所有被绑定的网卡都将得到相同的数据,一般用于十分特殊的网络需求。
●802.3ador4:
802.3ad模式,要求交换机也支持802.3ad模式,理论上服务器及交换机都支持此模式时,网卡带宽最高可以翻倍(如从1Gbps翻到2Gbps)。
●balance-tlbor5:
适配器输出负载均衡模式,输出的数据会通过所有被绑定的网卡输出,接收数据时则只选定其中一块网卡。
如果正在用于接收数据的网卡发生故障,则由其他网卡接管,要求所用的网卡及网卡驱动可通过ethtool命令得到speed信息。
●balance-albor6:
适配器输入/输出负载均衡模式,在"模式5"的基础上,在接收数据的同时实现负载均衡,除要求ethtool命令可得到speed信息外,还要求支持对网卡MAC地址的动态修改功能。
xmit_hash_policy参数(此参数对mode参数中的2、4模式有影响,缺省设置是layer2):
layer2-使用硬件MAC地址的XOR来生成hash。
公式为:
(源MAC地址XOR目的MAC地址)%slave数目
该算法会将某个网络对(networkpeer)上所有的流量全部分配到同一个slave上。
layer3+4-通过TCP及UDP端口及其IP地址进行HASH计算。
计算公式:
((portsrc⊕portdest)⊕(IPsrc⊕IPdest))%Nslave
mode参数中的0、2、3、4模式要求交换机支持"portsgroup"功能并能进行相应的设置,例如在Cisco中要将所连接的端口设为"trunkgroup"。
在基本的balance模式(balance-rr或者balance-xor)下,bonding可以在任何支持etherchannel(也称为trunking)的系统运行。
大多数目前的可管理交换机都有支持,很多不可管理的交换机也有支持。
高级balance模式(balance-tlb和balance-alb)没有特别的交换机需求,但需要设备驱动支持特定功能(在上文的模块参数一节里有描述)。
在802.3ad模式,bonding可以和支持IEEE802.3ad动态连接聚合(DynamicLinkAggregation)的系统一起工作,大多数可管理交换机和很多不可管理交换机都支持802.3ad。
active-backup模式可以和任何二层(Layer-II)交换机一起工作。
6.2配置多个bonds
6.2.1SUSE系统下配置多个Bonds
对于SUSE系统下,即