手册下载
H3C UniServer B16000刀箱 网络管理技术白皮书
Copyright © 2020 -2025新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文档中的信息可能变动,恕不另行通知。
H3C UniServer B16000刀箱服务器(以下简称刀箱)是H3C自主研发的新一代塑合IT基础设施平台,集计算、存储、交换、管理、多业务扩展功能于一体,专为数据中心、云计算、虚拟化、高性能计算HPC等场景而设计。
刀片机箱支持安装的互联模块分为两类:交换模块和直通模块。
· 交换模块:作为刀片机箱内部的交换控制模块,为机箱前部各服务器槽位提供数据交换功能,并集中对外提供数据端口,实现刀片服务器与外部网络的通信。
· 直通模块:实现机箱前部刀片服务器的Mezz网卡端口对外直出,为机箱前部的刀片服务器提供对外数据接口。
· 互联模块安装数量和槽位:
¡ 对于SAS交换模块以外的互联模块,刀箱最多可以安装6个互联模块,安装槽位如图2-2所示。
¡ 对于SAS交换模块,刀箱最多安装2个SAS交换模块,安装槽位为图2-2中的3号和6号槽位。
· 互联模块和Mezz网卡的安装位置,必须满足两者的内部连接关系,参见图2-3和图2-4。
· 6个互联模块槽位,可分为3对,对应3个交换平面。其中,1和4,2和5,3和6互为3个交换平面的主备槽位。
(1)~(6):ICM1~ICM6 |
当Mezz网卡安装在2路半宽或2路全宽刀片服务器上时,内部组网的连接关系如图2-3所示。
· 板载网卡连接到主用和备用OM模块。
· Mezz1位置的网卡连接到1、4槽位的互联模块(ICM)
· Mezz2位置的网卡连接到2、5槽位的互联模块(ICM)
· Mezz3位置的网卡连接到3、6槽位的互联模块(ICM)
图2-3 2路半宽和2路全宽刀片服务器Mezz卡槽位与互联模块的连接关系
当Mezz网卡安装在4路全宽刀片服务器上时,内部组网的连接关系如图2-4所示。
· Mezz1和Mezz4位置的网卡连接到1、4槽位的互联模块(ICM)
· Mezz2和Mezz5位置的网卡连接到2、5槽位的互联模块(ICM)
· Mezz3和Mezz6位置的网卡连接到3、6槽位的互联模块(ICM)
图2-4 4路全宽刀片服务器Mezz卡槽位与互联模块的连接关系
刀片服务器上的Mezz网卡与互联模块通过刀箱中置背板相连。如图2-5和图2-6所示,用户可以使用组网查询工具,查看Mezz网卡与互联模块的端口连接关系,明确具体的端口号,以便配置。
各款互联模块(交换模块)具体支持的网络技术,请参见对应的配置指导和命令参考手册。
本节介绍刀箱互联模块常用的网络技术。
以太网链路聚合通过将多条以太网物理链路捆绑在一起形成一条以太网逻辑链路,实现增加链路带宽的目的,同时这些捆绑在一起的链路通过相互动态备份,可以有效地提高链路的可靠性。
如图3-1所示,链路聚合可以在交换模块外部端口上配置,提高上行链路的可靠性,此时需要对端交换机也部署相关配置;也可以在内部端口上配置,提高交换模块与刀片服务器之间的链路可靠性,此时还需要在刀片服务器的网卡上配置端口分担功能。
链路捆绑是通过接口捆绑实现的,多个以太网接口捆绑在一起后形成一个聚合组,而这些被捆绑在一起的以太网接口就称为该聚合组的成员端口。每个聚合组唯一对应着一个逻辑接口,称为聚合接口。聚合组与聚合接口的编号是相同的,例如聚合组1对应于聚合接口1。
二层聚合组的成员端口全部为二层以太网接口,其对应的聚合接口称为二层聚合接口。
聚合接口的速率和双工模式取决于对应聚合组内的选中端口:聚合接口的速率等于所有选中端口的最大速率之和,聚合接口的双工模式则与选中端口的双工模式相同。
聚合组内的成员端口具有以下三种状态:
· 选中(Selected)状态:此状态下的成员端口可以参与数据的转发,处于此状态的成员端口称为“选中端口”。
· 非选中(Unselected)状态:此状态下的成员端口不能参与数据的转发,处于此状态的成员端口称为“非选中端口”。
· 独立(Individual)状态:此状态下的成员端口可以作为普通物理口参与数据的转发。满足以下条件时,如果成员端口在经过LACP(Link Aggregation Control Protocol,链路聚合控制协议)超时时间之后未收到LACP报文,则该成员端口会被置为该状态:
¡ 聚合接口配置为边缘端口。
¡ 处于选中/非选中状态的成员端口经过一次down、up后,该成员端口将被置为独立状态。
操作Key是系统在进行链路聚合时用来表征成员端口聚合能力的一个数值,它是根据成员端口上的一些信息(包括该端口的速率、双工模式等)的组合自动计算生成的,这个信息组合中任何一项的变化都会引起操作Key的重新计算。在同一聚合组中,所有的选中端口都必须具有相同的操作Key。
根据对成员端口状态的影响不同,成员端口上的配置可以分为以下两类:属性类配置和协议类配置。
· 属性类配置:属性类配置包含的配置内容如表3-1所示。在聚合组中,只有与对应聚合接口的属性类配置完全相同的成员端口才能够成为选中端口。
表3-1 属性类配置的内容
配置项 |
内容 |
端口隔离 |
端口是否加入隔离组、端口所属的端口隔离组 |
QinQ配置 |
端口的QinQ功能开启/关闭状态、VLAN Tag的TPID值、透传的VLAN |
VLAN映射 |
端口上配置的各种VLAN映射关系 |
VLAN配置 |
端口上允许通过的VLAN、端口缺省VLAN、端口的链路类型(即Trunk、Hybrid、Access类型)、端口的工作模式(即promiscuous、trunk promiscuous、host、trunk secondary模式)、基于IP子网的VLAN配置、基于协议的VLAN配置、VLAN报文是否带Tag配置 |
· 协议类配置:协议类配置是相对于属性类配置而言的,包含的配置内容有MAC地址学习、生成树等。在聚合组中,即使某成员端口与对应聚合接口的协议配置存在不同,也不会影响该成员端口成为选中端口。
根据用户不同的使用场景,灵活修改聚合组最大和最小选中端口数,来满足不同需求。
通过采用不同的聚合负载分担类型,可以实现灵活地对聚合组内流量进行负载分担。聚合负载分担的类型可以归为以下类型,默认为逐流负载分担,基本能满足刀箱业务应用场景:
· 逐流负载分担:按照报文的源/目的MAC地址、VLAN标签、源/目的服务端口、入端口、源/目的IP地址、IP协议类型或MPLS标签中的一种或某几种的组合区分流,使属于同一数据流的报文从同一条成员链路上通过。
· 逐包负载分担:不区分数据流,而是以报文为单位,将流量分担到不同的成员链路上进行传输。
· 按照报文类型(如二层协议报文、IPv4报文、IPv6报文、MPLS报文等)自动选择所采用的聚合负载分担类型。
· 弹性负载分担:在链路增加或减少时,尽量少的切换链路上的流量,只有部分流量进行链路切换。例如,有一个聚合组中包含3条成员链路,根据聚合负载分担进行数据转发,其中一条链路故障无法转发数据时,未采用弹性负载分担情况下另外两条链路会重新分配流量。如果采用了弹性负载分担,另外两条链路上之前分配的流量不会发生变化,只是将故障链路上的流量大致均匀地分配到这两条链路上,这样对业务造成的影响较小。当故障链路恢复后,会从这两条链路卸载一部分流量到故障恢复的这条链路上,各链路的流量分配和故障前流量分配也不会完全一致。采用弹性负载分担后,如果链路没有增加或减少,则根据聚合缺省的负载分担方式对流量进行负载分担。
链路聚合分为静态聚合和动态聚合两种模式,它们各自的优点如下所示:
· 静态聚合模式:一旦配置好后,端口的选中/非选中状态就不会受网络环境的影响,比较稳定。
· 动态聚合模式:通过LACP协议实现,能够根据对端和本端的信息调整端口的选中/非选中状态,比较灵活。
处于静态聚合模式下的聚合组称为静态聚合组,处于动态聚合模式下的聚合组称为动态聚合组。
· 刀片服务器中安装以太Mezz网卡;互联模块选用以太/融合交换模块;刀箱外部连接以太交换机。
· 通过配置,在互联模块的上行端口实现链路聚合,从而确保上行链路的高带宽和高可靠性。
交换模块配置聚合后,外部Switch的下行端口也需要配置聚合,配置步骤略。
(1) 创建二层聚合接口,并进入二层聚合接口视图。
[H3C] interface bridge-aggregation 1
(2) 将GigabitEthernet1/1/1和GigabitEthernet2/1/1加入聚合组1中。
[H3C] interface ten-gigabitethernet 1/1/1
[H3C-GigabitEthernet1/1/1] port link-aggregation group 1
[H3C] interface ten-gigabitethernet 2/1/1
[H3C-GigabitEthernet2/1/1] port link-aggregation group 1
VLAN(Virtual Local Area Network,虚拟局域网)技术把一个物理LAN划分成多个逻辑的LAN——VLAN,处于同一VLAN的主机能直接互通,而处于不同VLAN的主机则不能直接互通,从而增强了局域网的安全性。划分VLAN后,广播报文被限制在同一个VLAN内,即每个VLAN是一个广播域,有效地限制了广播域的范围。在刀箱环境中,同一刀片服务器上的不同虚拟机可以划分到不同的VLAN,同一VLAN的虚拟机可以位于不同的刀片服务器。VLAN使刀箱内部的网络构建和维护更方便灵活。
VLAN根据划分方式不同可以分为不同类型,下面列出了几种最常见的VLAN类型:
· 基于端口的VLAN
· 基于MAC地址的VLAN
· 基于IP子网的VLAN
· 基于协议的VLAN
如果某个接口下同时使能以上四种VLAN,则缺省情况下VLAN的匹配将按照MAC VLAN、IP子网VLAN、协议VLAN、端口VLAN的先后顺序进行。
基于端口划分VLAN是最简单、最有效的VLAN划分方法。它按照设备端口来定义VLAN成员,将指定端口加入到指定VLAN中之后,该端口就可以转发该VLAN的报文。
· 端口的链路类型
端口的链路类型分为三种,端口的链路类型决定了端口能否加入多个VLAN。不同链路类型的端口在转发报文时对VLAN Tag的处理方式不同:
¡ Access:端口只能发送一个VLAN的报文,发出去的报文不带VLAN Tag。一般用于和不能识别VLAN Tag的用户终端设备相连,或者不需要区分不同VLAN成员时使用。
¡ Trunk:端口能发送多个VLAN的报文,发出去的端口缺省VLAN的报文不带VLAN Tag,其他VLAN的报文都必须带VLAN Tag。通常用于网络传输设备之间的互连。
¡ Hybrid:端口能发送多个VLAN的报文,端口发出去的报文可根据需要配置某些VLAN的报文带VLAN Tag,某些VLAN的报文不带VLAN Tag。在一些应用场景下,需要使用Hybrid端口的功能。
· 端口缺省VLAN
端口缺省VLAN简称为PVID(Port VLAN ID)。当端口收到Untagged报文时,会认为该报文所属的VLAN为PVID。
Access端口的PVID就是它所在的VLAN。
Trunk端口和Hybrid端口可以允许多个VLAN通过,能够配置端口PVID。
· 端口对报文的处理方式
端口对报文的接收和发送的处理有几种不同情况,具体情况请参看表3-2。
端口类型 |
对接收报文的处理 |
对发送报文的处理 |
|
当接收到的报文不带Tag时 |
当接收到的报文带有Tag时 |
||
Access端口 |
为报文添加端口PVID的Tag |
当报文的VLAN ID与端口的PVID相同时,接收该报文 当报文的VLAN ID与端口的PVID不同时,丢弃该报文 |
去掉Tag,发送该报文 |
Trunk端口 |
当端口的PVID在端口允许通过的VLAN ID列表里时,接收该报文,给报文添加PVID的Tag 当端口的PVID不在端口允许通过的VLAN ID列表里时,丢弃该报文 |
当报文的VLAN ID在端口允许通过的VLAN ID列表里时,接收该报文 当报文的VLAN ID不在端口允许通过的VLAN ID列表里时,丢弃该报文 |
当报文的VLAN ID与端口的PVID相同,且是该端口允许通过的VLAN ID时:去掉Tag,发送该报文 当报文的VLAN ID与端口的PVID不同,且是该端口允许通过的VLAN ID时:保持原有Tag,发送该报文 |
Hybrid端口 |
当报文的VLAN ID是端口允许通过的VLAN ID时,发送该报文,并可以配置端口在发送该VLAN的报文时是否携带Tag |
基于MAC的VLAN是根据报文的源MAC地址来划分VLAN。设备维护的MAC VLAN表记录了MAC地址和VLAN的对应关系。这种划分方法的最大优点就是当用户物理位置发生变化,VLAN不用重新配置。所以这种根据MAC地址的划分方法也称为基于用户的VLAN。
· 手动配置静态MAC VLAN
手动配置静态MAC VLAN常用于VLAN中用户相对较少的网络环境。在该方式下,用户需要手动配置MAC VLAN表项,开启基于MAC地址的VLAN功能,并将端口加入MAC VLAN。
· 动态触发端口加入静态MAC VLAN
手动配置静态MAC VLAN时,如果不能确定从哪些端口收到指定VLAN的报文,就不能把相应端口加入到MAC VLAN。此时可以采用动态触发端口加入静态MAC VLAN的方式。在该方式下,配置MAC VLAN表项后,需要在端口上开启基于MAC的VLAN功能和MAC VLAN的动态触发功能,不需要手动把端口加入MAC VLAN。
· 动态MAC VLAN
动态MAC VLAN是由接入认证过程来动态决定接入用户报文所属的VLAN。该功能需要和接入认证功能(比如端口接入控制方式为MAC-based的802.1X)配合使用,以实现终端的安全、灵活接入。在设备上配置动态MAC VLAN功能以后,还需要在接入认证服务器上配置用户名和VLAN的绑定关系。
基于IP子网的VLAN(简称子网VLAN)是根据报文源IP地址及子网掩码来进行划分的。设备从端口收到Untagged报文后,会根据报文的源IP地址来确定报文所属的VLAN,然后将报文自动划分到指定VLAN中传输。
此特性主要用于将指定网段或IP地址的报文划分到指定的VLAN中传送。
基于协议的VLAN(简称协议VLAN)是根据端口接收到的报文所属的协议(族)类型以及封装格式来给报文分配不同的VLAN ID。可用来划分VLAN的协议有IP、IPX、AT(AppleTalk,Apple计算机网络协议)等,封装格式有Ethernet II、802.3 raw、802.2 LLC、802.2 SNAP等。
此特性主要应用于将网络中提供的服务类型与VLAN相关联,方便管理和维护。
不同VLAN间的主机不能直接通信,通过在设备上创建并配置VLAN接口,可以实现VLAN间的三层互通。
VLAN接口是一种三层的虚拟接口,它不作为物理实体存在于设备上。每个VLAN对应一个VLAN接口,在为VLAN接口配置了IP地址后,该IP地址即可作为本VLAN内网络设备的网关地址,此时该VLAN接口能对需要跨网段的报文进行三层转发。
QinQ是802.1Q in 802.1Q的简称,是基于IEEE 802.1Q技术的一种比较简单的二层VPN(Virtual Private Network,虚拟专用网络)协议。QinQ通过将一层VLAN Tag封装到私网报文上,使其携带两层VLAN Tag穿越运营商的骨干网络(又称公网),从而使运营商能够利用一个VLAN为包含多个VLAN的用户网络提供服务。QinQ最多可以提供4094×4094个VLAN,满足了城域网对VLAN数量的需求。
QinQ具备以下优点:
· 缓解公网VLAN资源日益紧缺的问题。
· 用户可以规划自己的私网VLAN,不会导致与公网VLAN冲突。
· 为用户提供了一种简单、灵活的二层VPN解决方案。
· 当运营商进行VLAN规划时,用户网络不必更改原有配置,使用户网络具有了较强的独立性。
· 在图3-2所示的组网中,刀片服务器中安装以太Mezz网卡,互联模块选用以太/融合交换模块,刀箱外部连接以太交换机。
· 通过配置,实现刀片服务器上的操作系统访问外网时,为流量打上VLAN 10的标签,以便与其他业务隔离。
图3-2 VLAN配置举例组网图
本节以Redhat 7.5上的配置步骤举例。
(1) 执行“nmtui”命令启动系统自带的网卡配置工具。
[root@localhost]# nmtui
(2) 选择“编辑连接”,如图3-3所示。
(3) 选择<添加>添加一个新的网络连接,并选择网卡类型为“VLAN参数”,然后选择<创建>,如图3-4所示。
(4) 如图3-5所示,设置VLAN参数和IP地址,VLAN标识即VLAN ID,选择确定完成配置。
(1) 创建VLAN 10。
[H3C] vlan10
[H3C-vlan10]quit
(2) 配置端口Ten-GigabitEthernet 1/0/1为Trunk端口,允许VLAN 10通过。
[H3C] interface Ten-GigabitEthernet 1/0/1
[H3C-Ten-GigabitEthernet1/0/1] port link-type trunk
[H3C-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[H3C-Ten-GigabitEthernet1/0/1] undo port trunk permit vlan 1
[H3C-Ten-GigabitEthernet1/0/1] undo stp enable
[H3C-Ten-GigabitEthernet1/0/1] quit
(3) #配置端口Ten-GigabitEthernet 1/1/1为Trunk端口,允许VLAN 10通过。
[H3C] interface Ten-GigabitEthernet 1/1/1
[H3C-Ten-GigabitEthernet1/1/1] port link-type trunk
[H3C-Ten-GigabitEthernet1/1/1] port trunk permit vlan 10
[H3C-Ten-GigabitEthernet1/1/1] undo port trunk permit vlan 1
[H3C-Ten-GigabitEthernet1/1/1] quit
FC(Fibre Channel,光纤通道)协议是SAN(Storage Area Networks,存储区域网络)网络中使用的一种数据传输协议。FC SAN通过FC协议族为服务器提供专用的外部存储环境,满足对大容量、高可靠数据的存储、访问和备份等需求。
图3-6 FC组网示意图
Fabric网络为服务器和磁盘设备提供数据传输服务。通过Fabric网络传输数据之前,必须为Fabric网络中的每台FCF交换机分配域ID、为Fabric网络连接的每个节点设备分配FC地址。
在交换式架构中,即通过FC交换机将大量的服务器和磁盘设备组织在一个FC SAN网络中,服务器和磁盘设备都被称之为节点设备(Node),是数据发送和接收的实体。ENode是支持在以太网上传输FC协议的节点设备,包括服务器和磁盘设备。
WWN(World Wide Name,全球名字)是一个64位的地址,用来标识Fabric网络和FC SAN中的实体(实体包括FC交换机、节点设备以及其上的接口)。FC的上层协议通过WWN进行通信。
FC SAN中每个实体的WWN在设备出厂前就已分配好了。
在FC SAN中,FC协议通过FC地址访问FC SAN中各个通讯实体,FC地址通常也称为FC_ID。
FC地址机构如下图,长度24比特,分为Domain_ID、Area_ID和Port_ID这三个字段,每个字段长度为8比特:
图3-7 FC地址的结构
一个FC地址可以唯一标识一台节点设备上的一个N_Port,同一个节点设备上不同的N_Port的FC地址不同。
一个域ID可以唯一标识一台FC交换机,同一个Fabric网络中不同的FC交换机的域不同。在报文传输过程中,FC交换机之间的路由和转发使用的都是域ID。
图3-8 FC接口模式
· N_Port:节点设备上的接口类型。
· E_Port:FC交换模块和FC交换机的接口类型,用来连接其他FC交换机的E_Port
· F_Port:FC交换模块和FC交换机的接口类型,用来连接节点设备的N_Port以及存储设备的N_Port
· G_Port:可以与对端协商自动成为E_Port或F_Port,如果对端为E_Port,则协商结果为E_Port;如果对端为N_Port,则协商结果为F_Port;如果两端都为G_Port,则协商结果为E_Port;如果对端为F_Port,则协商失败。
多台交换机通过E_Port互连组成一个Fabric,通过F_Port将节点设备接入到Fabric中来。
在实际应用中,若是所有用户的数据都在同一个FC SAN网络中进行转发,则不利于数据安全。用户可以根据实际需要将物理上连通的FC SAN网络划分为多个VSAN(Virtual Storage Area Network,虚拟存储区域网络,类似于以太链路中的VLAN的概念),每个VSAN相互隔离,类似于以太网中的VLAN,如图3-18所示,并独立提供服务,增强了网络的适应性和安全性,使其能够为用户提供更有效的服务。
图3-9 FC VSAN组网图
VSAN的划分实现了将一个物理连通的SAN分割成多个逻辑上的虚拟SAN,但仅通过VSAN却不能对接入Fabric网络的服务器及存储设备(即N_Port)进行访问控制。相同VSAN内的N_Port,只要注册了名称服务就可以相互访问,即一台服务器可以访问VSAN内的任意磁盘,这样给数据安全带来隐患。所以在刀箱环境中,VSAN使用得不多。
Zone特性可以有效解决上述问题,其原理是:在VSAN内进一步划分区域(Zone),在Zone内根据不同的目的添加不同的N_Port成员。使不同Zone内的N_Port成员之间相互隔离,以达到访问控制的目的。如图3-10所示,用户可以通过配置Zone,实现:
· 刀片服务器A不访问存储设备,但以后有可能添加访问存储设备需求。
· 刀片服务器B能访问磁盘存储设备A、存储设备B和存储设备C的数据。
· 刀片服务器C只能访问磁盘存储设备C的数据。
· 刀片服务器A、B、C之间不能相互访问。
FC接口是物理接口,可以接收和发送FC报文。当对端设备使用FC接口时,本端设备也要使用FC接口与之相连。FC交换模块的外部FC接口既可以连接FC存储设备,又可以连接FC交换机;FC交换模块的内部FC接口则需要连接FC Mezz网卡。
图3-11 FC SAN通信过程
简单介绍一下FC SAN中的通信过程,如图3-11所示:
(2) 刀片服务器和存储设备通过FLOGI(Fabric Login)协议向FC交换机/FC交换模块进行注册,注册报文中会携带Port WWN、Node WWN、期望得到的FC地址等信息,FC交换机/FC交换模块为与之直连的每个节点设备分配FC地址。
(3) 刀片服务器和存储设备向其直连的FC交换机/FC交换模块发送名称服务注册请求,注册其名称服务信息。最终,Fabric网络中的每台FC交换机/FC交换模块上都保存着所有节点设备的名称服务信息。
(4) 当刀片服务器要访问存储设备时,刀片服务器要向其直连的FC交换模块发送名称服务查询请求,获取Fabric网络中存在的存储设备列表,以及这些存储设备的WWN、FC地址等信息。
(5) 刀片服务器获取到存储设备的FC地址后,就可以将FC报文发送给就近的FC交换模块。FC报文的目的FC地址就是存储设备的FC地址。
(6) FC交换机/FC交换模块收到服务器发送来的FC报文后,根据报文中的目的FC地址查找转发表(该转发表是FC交换机/FC交换模块根据FC路由协议或配置的静态路由信息计算后生成的),选择数据转发路径,将报文转发到下一跳FC交换机。下一跳FC交换机同样对FC报文进行转发,直到最后一跳FC交换机将FC报文转发给目的存储设备。
如图3-12所示,FC链路聚合通过将多条物理FC链路聚合在一起形成一条逻辑的FC聚合链路,来实现带宽聚合、负载分担以及链路备份的目的。
图3-12 FC聚合组网图
FC链路聚合的作用如下:
· 增加带宽:FC聚合接口的带宽是各选中成员接口带宽的总和。
· 流量负载分担:出/入流量可以在多个成员接口之间进行分担。
· 提高连接可靠性:当某个成员接口出现故障时,流量会自动切换到其它可用的成员接口上,从而提高整个聚合链路的连接可靠性。
FC聚合接口的速率为所有选中成员接口的速率之和。
· 在图3-13所示的组网中,刀片服务器中安装FC Mezz网卡,互联模块选用FC交换模块,刀箱外部连接FC交换机和FC存储设备。
· 通过配置,实现刀片服务器访问外部FC存储设备。
图3-13 FC配置举例组网图
# 配置交换机的FCoE模式为NPV模式。
[H3C] fcoe-mode npv
# 创建VSAN,本例中创建VSAN 1,确保和博科交换机位于同一个VSAN。
[H3C] vsan 1
[H3C-vsan1] quit
# 创建VLAN用于映射VSAN。本例中创建VLAN 10,并在VLAN 10内开启FCoE功能,将该VLAN与VSAN 1相映射。
[H3C] vlan 10
[H3C-vlan10] fcoe enable vsan 1
[H3C-vlan10] quit
# 配置和博科交换机连接的端口工作在NP模式。
[H3C] interface fc1/1/1
[H3C-Fc1/1/1] fc mode np
[H3C-Fc1/1/1] quit
采用FC SAN技术的数据中心一般包括独立的LAN(Local Area Network,局域网)网络和SAN网络。LAN网络应用于传统的以太网/IP业务,SAN网络应用于网络存储。
为了同时为LAN网络提供服务并通过SAN网络完成存储功能,服务器需要使用独立的以太网卡和FC网卡,且以太网交换机和FC交换机及其对应网络连接线也是独立的。这就使得网络需要使用较多的交换机、网卡及线缆,对应的设备投资及维护工作量都比较大,可扩展性比较差。
FCoE协议可以很好的解决上述问题。FCoE是将FC协议承载在以太网上的一种协议。在FCoE解决方案中,服务器只要使用支持FCoE协议的以太网卡即可,而支持FCoE协议的FCF(FCoE Forwarder,FCoE转发器)交换机可以同时替换传统以太网交换机和FC交换机,实现I/O整合(I/O Consolidation),使网卡、交换机和连接线缆的数量大为减少,同时减轻网络运行的维护工作量,降低总体成本。
FCoE的典型应用如图3-14所示。刀片服务器和融合交换模块之间的以太网链路可以同时收发以太网报文和FC报文。在以太网链路上收发FC报文就是通过FCoE协议实现的。
图3-14 FCoE典型组网图
支持FC和FCoE协议的交换机,称为FCF(FCoE Forwarder,FCoE交换机)。
支持FCoE协议的节点设备(服务器或存储)称为ENode。
FCoE协议的主要目的是将FC报文封装成以太网报文在以太网链路上传输,在FC报文进入以太网时,将FC报文封装成以太网报文;在FC报文传出以太网时,将以太网报文解封装成FC报文继续转发,这个封装/解封装的过程称为FCM(FC Mapping,FC封装)。
FCM进行报文封装时,ENode设备MAC地址使用FPMA(Fabric Provided MAC Address,网络映射MAC地址)方式获得。
图3-15 FPMA地址映射示意图
它是根据FC-MAP和ENode接口FC地址映射得到,映射方法为FC-MAP为高24位,FC-ID为低24位。其中,FC-MAP的作用就是用来生成FPMA地址,可以通过命令行进行配置,取值范围为0x0EFC00~0x0EFCFF,默认值为0x0EFC00。FC-ID是ENode进行FLOGI时交换机分配的FC地址。
VFC接口可以和ENode相连,也可以和交换机相连。
VFC接口是手工创建的虚拟逻辑口,它虚拟实现物理FC接口的功能,必须将VFC接口和以太网接口进行绑定,VFC接口才能正常工作。VFC接口绑定以太网接口后,交换机将VFC接口上的FC报文封装成FCoE报文在以太网链路上传输。
VFC接口的支持三种模式(E模式、F模式和NP模式,其接口分别称为E_Port、F_Port和NP_Port),其默认为F模式。
FCF交换机的VFC接口只支持E模式和F模式。
NPV交换机的VFC接口只支持F模式和NP模式。
FCF-NPV交换机的VFC接口支持E模式、F模式和NP模式。
VN接口是ENode上的虚拟逻辑口,它虚拟实现物理FC接口的功能。
FIP(FCoE Initialization Protocol,FCoE初始化协议)是一个建立和维护虚链路的协议。
FCF交换机和ENode(或FCF交换机)之间通过FIP协议在VFC接口和VN接口(或VFC接口)之间建立一条虚链路,为FC报文在以太网上承载提供物理传输的基础。
DCE(Data Center Ethernet,数据中心以太网)也称为CEE(Converged Enhanced Ethernet,汇聚增强型以太网),是针对以太网在数据中心的应用,对传统以太网的增强和扩展。DCBX(Data Center Bridging Exchange Protocol,数据中心桥能力交换协议)是DCE的一个组成部分,用于DCE中各网络单元进行桥能力协商以及远程配置。
DCBX的主要功能包括:
· 发现对端设备的能力,并由此决定两端设备是否要支持相应的能力。
· 发现对端设备的配置错误。
· 在对端设备接受的前提下,可以对对端设备进行配置。
图3-16 DCBX应用场景示意图
用于数据中心网络的以太网必须是无损以太网,即网络中传输的报文不允许出现丢包,DCBX就是实现无损以太网的关键手段之一。DCBX主要应用于基于FCoE(Fibre Channel over Ethernet,基于以太网的光纤通道)的数据中心网络,一般工作在接入层交换机(交换模块)上,以实现交换机(交换模块)对刀片服务器服务器的控制,从而达到简化配置以及保证配置一致性的目的。
作为LLDP协议的一种扩展应用,DCBX使用IEEE 802.1组织定义的TLV(即DCBX TLV)来传递各种参数信息。H3C交换模块只能向支持FCoE的刀片服务器Mezz网卡发布这些参数,而不能接受这些参数。
PFC(Priority-based Flow Control,基于优先级的流控)用来在以太网中为FCoE流量和其他流量划分优先级,对FCoE流量实行流控,保证不丢包,其他流量不进行流控。
ETS(Enhanced Transmission Selection,增强带宽选择)是基于轮转算法的带宽调度,用以保证FCoE流量和其他流量在共享以太网链路上的带宽分配。
FC报文需要封装在以太网报文中,才能在以太网链路上传输。封装以太网头的FC报文就是FCoE报文。
FCoE报文采用Ethernet II类型的以太网封装,以太网头中主要字段的内容如下:
· 以太网报文类型:0x8906。
· 目的MAC地址/源MAC地址:对于交换机,使用的是交换机的FCoE MAC地址(可以通过display fcoe命令查看)。对于节点设备,使用的是节点设备的FPMA(Fabric Provided MAC Address,Fabric提供的MAC地址)。FPMA由FC-MAP和VN接口的FC地址映射得到,映射方法为FC-MAP为高24位,FC地址为低24位,如图3-17所示。其中,FC-MAP采用直连交换机的FC-MAP值,该值默认为0x0efc00,可以在交换机上通过fcoe fcmap命令修改。
图3-17 FPMA地址映射
下面将详细介绍FCoE协议的工作机制。
图3-18 ENode和FCF交换机的内部框图
FC报文在以太网上的发送和接收过程如下:
· 在发送FC报文之前,FCF交换机和ENode(或FCF交换机)之间先通过FIP协议在VFC接口和VN接口(或VFC接口)之间建立一条虚链路。在虚链路建立起来之后,FCF交换机将FC报文封装成FCoE报文发送出去。
· FCF交换机在接收到FCoE报文之后,剥离FCoE报文的以太网头,将还原后的FC报文送给上层进行处理。
FIP协议用来建立和维护VFC接口和VN接口(或VFC接口)之间的虚链路。
FIP协议中用到两类报文:发现请求报文和发现通告报文。其中,发现通告报文又分为两种:
· 请求发现通告报文:用来回应发现请求报文。
· 非请求发现通告报文:周期性发送,用来通告自己的存在或维护建立的虚链路。
下面以FCF交换机和ENode之间建立虚链路的过程为例,介绍一下FIP协议的工作机制。
图3-19 FIP协议工作机制
如图3-19所示,虚链路的建立过程为:
(2) ENode向外发送发现请求报文,开始建立虚链路。发现请求报文中携带着自己的FCoE MAC地址。
(3) FCF交换机收到发现请求报文后,根据VFC接口是否绑定FCoE MAC地址做不同的处理:
¡ 如果VFC接口没有配置绑定FCoE MAC地址,则学习FCoE MAC,即保存该报文中携带的FCoE MAC地址,并回应请求发现通告报文。请求发现通告报文的fcf priority字段中携带了VFC接口的FCF优先级。
¡ 如果VFC接口配置了绑定FCoE MAC地址,则检查FCoE MAC,如果该报文中携带的FCoE MAC地址与配置的绑定FCoE MAC地址一致,则回应请求发现通告报文(请求发现通告报文的fcf priority字段中携带了VFC接口的FCF优先级);否则,丢弃该报文,不继续做其它处理。
(4) FCF交换机周期性向外发送非请求发现通告报文(发送周期可以通过fcoe fka-adv-period命令配置,缺省值为8秒)。非请求发现通告报文的fcf priority字段中携带了系统的FCF优先级。
(5) ENode收到发现通告报文后,根据发现通告报文中的fcf priority字段选择优先级最高的FCF,并向该FCF发送FLOGI报文,进行注册。
(6) FCF交换机接收到FLOGI报文后,根据绑定的或者学习到的FCoE MAC地址做检查。如果检查通过则回应FLOGI LS_ACC,此时虚链路完成建立;如果检查没有通过则丢弃该报文,不继续做其它处理。
(7) FCF交换机周期性发送非请求发现通告报文来维护建立的虚链路。如果ENode在2.5倍的fka-adv-period间隔内没有接收到非请求发现通告报文,则删除该虚链路。
一台具备FC和FCoE能力的交换机,既可工作在非FCoE模式下,也可工作在FCoE模式下。
FCoE模式又分为FCF模式、NPV(N_Port Virtualization,N端口虚拟化)模式、FCF-NPV模式和Transit模式。
工作在本模式的交换机称为FCF交换机,其接口支持E模式和F模式,分别称为E_Port和F_Port。FCF交换机可通过E_Port连接其它交换机的E_Port,或者通过F_Port连接节点设备的N_Port或其它交换机的NP_Port。
FCF交换机利用以太帧封装FC报文的方式,实现了用FCoE虚链路替代物理的FC链路,从而可在无损以太网中提供标准Fibre Channel交换机的能力和特性。
图3-20 FCF交换机应用组网
FCF交换机的应用组网如图3-20所示,不同于单纯的FC网络,在FCoE环境下,FCF交换机可以通过以太网接口连接以太网交换机,通过FC接口连接FC交换机,通过VFC接口连接ENode或FCF交换机。FCF交换机通过VFC接口连接对端设备时,首先在两台设备之间的以太网接口上建立了FCoE虚链路,通过FCoE虚链路在无损以太网上进行通信。FCoE虚链路可以连接VFC接口到VN接口,或者连接VFC接口到VFC接口。
与FC交换机相同,每台FCF交换机都会被分配一个域ID,而每个FC SAN最多支持239个域ID,因此也就限制了一个FC SAN中最多只能有239台交换机。
工作在本模式的交换机称为NPV交换机,其接口支持F模式和NP模式,分别称为F_Port和NP_Port。NPV交换机可通过F_Port连接节点设备的N_Port或其它交换机的NP_Port,或着通过NP_Port连接其它交换机的F_Port。
在FC SAN中,对于直接连接节点设备的边缘交换机的需求量很大,为了使边缘交换机可以突破一个FC SAN中239台最大交换机数目的限制,NPV模式应运而生。
图3-21 NPV交换机应用组网
NPV交换机的应用组网如图3-21所示。NPV交换机位于Fabric网络边缘,在节点设备与核心交换机之间。核心交换机是FCF交换机。NPV交换机通过F_Port和节点设备的N_Port相连,通过NP_Port和核心交换机的F_Port相连。最终,节点设备通过NPV交换机接入到Fabric网络中,NPV交换机将所有节点设备的流量转发到核心交换机。
对于节点设备来说,NPV交换机相当于一台FCF交换机,接口呈现为F模式;对于核心交换机来说,NPV交换机相当于一台节点设备,接口呈现为N模式。
FCF-NPV模式又称混合模式,工作在本模式的交换机称为FCF-NPV交换机。FCF-NPV交换机在VSAN中的工作模式又可分为以下两种:
· FCF模式:工作在本模式下的VSAN,相当于一台独立的FCF交换机。有关FCF交换机的应用场景,请参见“1. FCF模式”。
· NPV模式:工作在本模式下的VSAN,相当于一台独立的NPV交换机。有关NPV交换机的应用场景,请参见“2. NPV模式”。
工作在本模式的交换机称为Transit交换机,其以太网接口可工作在ENode模式或FCF模式。与ENode相连的以太网接口需要配置为ENode模式;与FCF交换机相连的以太网接口需要配置为FCF模式。通过配置不同接口模式,以限制接口只能接收来自ENode或FCF交换机的流量。
FCoE协议支持在无损以太网中构建FC SAN,增加了FC SAN的组网灵活性,FCF交换机与节点设备之间可以增加Transit交换机。如图3-22所示,ENode通过Transit交换机接入FCF交换机。
图3-22 Transit应用组网
Transit交换机级联时需保证以太网接口模式的正确性。如图3-23上的模式配置,ENode 2仅能通过FCF交换机2进行注册,不能通过FCF交换机1进行注册。如果ENode 2有向FCF交换机1进行注册的需求,则需要修改Transit交换机间的模式配置。
图3-23 Transit交换机级联组网
图3-24所示为NPV交换机和Transit交换机的正确组网,NPV交换机的位置在FCF交换机和Transit交换机之间,Transit交换机下游接入ENode。
图3-24 NPV和Transit交换机组网
相较于FCF交换机和NPV交换机,Transit交换机对FCoE协议报文的处理更为简单,其主要功能是过滤和转发。但不同于普通以太网交换机的是,Transit交换机具有识别FCoE协议报文、控制网络中FCoE协议相关报文流量以及保障网络安全的能力。
· 在图3-25所示的组网中,刀片服务器中安装支持FCoE协议的Mezz网卡,互联模块选用融合交换模块,刀箱外部连接FC交换机和FC存储设备。
· 通过配置,实现刀片服务器访问外部FC存储设备。
图3-25 FCoE配置举例组网图
(1) 配置ens5f0端口的FCoE功能
a. 在/etc/fcoe目录下,执行“cp cfg-ethX cfg-ens5f0”命令拷贝并创建FCoE端口配置文件。
[root@localhost]# cd /etc/fcoe/
[root@localhost fcoe]# ls
cfg-ethx
[root@localhost fcoe]# cp cfg-ethx cfg-ens5f0
b. 执行“vi cfg-eth0”命令,编辑并保存FCoE端口配置文件,确保“FCOE_ENABLE=yes”,“DCB_REQUIRED=no”,如图3-26所示。
[root@localhost fcoe]# vi cfg-ens5f0
图3-26 编辑FCoE端口的配置文件
执行“lldptool set-lldp -i eth0 adminStatus=disabled”命令,将该端口的lldp管理状态设为禁用。然后查看/var/lib/lldpad/lldpad.conf配置文件中eth0的adminStatus配置值,若为0,则命令执行成功;若命令执行失败,则可手动在配置文件中“lldp”下的“ethM”条目中添加一行“adminStatus = 0”,如图3-27所示。
[root@localhost fcoe]# lldptool set-lldp –i ens5f0 adminStatus=disabled
图3-27 禁用lldp管理状态
c. 执行“service fcoe restart”和“service lldpad restart”命令,重启FCoE和LLDP服务。
[root@localhost fcoe]# service lldpad restart
[root@localhost fcoe]# service fcoe restart
d. 执行“chkconfig fcoe on”和“chkconfig lldpad on”命令使FCoE和LLDP服务在boot阶段自动加载。
[root@localhost fcoe]# chkconfig fcoe on
[root@localhost fcoe]# chkconfig lldpad on
(1) # 配置交换机的FCoE模式为NPV模式。
[H3C] fcoe-mode npv
# 在1号槽位的互联模块上创建VSAN,本例中创建VSAN 1。
[H3C] vsan 1
[H3C-vsan1] quit
# 在1号槽位的互联模块上创建VLAN 10用于映射VSAN 1,并在VLAN 10内开启FCoE功能。
[H3C] vlan 10
[H3C-vlan10] fcoe enable vsan 1
[H3C-vlan10] quit
# 在1号槽位的互联模块上创建VFC口,并绑定到内部端口XGE1/0/23。
[H3C] interface vfc 1
[H3C-Vfc1] bind interface Ten-GigabitEthernet1/0/23
[H3C-Vfc1] port trunk vsan 1
[H3C-Vfc1] quit
# 在1号槽位的互联模块上将内部物理口配置成trunk模式,并允许vlan10通过。
[H3C] interface Ten-GigabitEthernet1/0/23
[H3C-Ten-GigabitEthernet1/0/23] port link-type trunk
[H3C-Ten-GigabitEthernet1/0/23] port trunk permit vlan 10
[H3C-Ten-GigabitEthernet1/0/23] undo stp enable
[H3C-Ten-GigabitEthernet1/0/23] quit
# 在4号槽位的互联模块创建VSAN,本例中创建VSAN 2。
[H3C] vsan 2
[H3C-vsan2] quit
# 在4号槽位的互联模块创建VLAN 20用于映射VSAN 2,并在VLAN 20内开启FCoE功能。
[H3C] vlan 20
[H3C-vlan20] fcoe enable vsan 2
[H3C-vlan20] quit
# 在4号槽位的互联模块上创建VFC口,并绑定到内部端口XGE1/0/23。
[H3C] interface vfc 2
[H3C-Vfc2] bind interface Ten-GigabitEthernet1/0/23
[H3C-Vfc2] port trunk vsan 2
[H3C-Vfc2] quit
# 在4号槽位的互联模块上将内部物理口配置成trunk模式,并允许vlan20通过。
[H3C] interface Ten-GigabitEthernet1/0/23
[H3C-Ten-GigabitEthernet1/0/23] port link-type trunk
[H3C-Ten-GigabitEthernet1/0/23] port trunk permit vlan 20
[H3C-Ten-GigabitEthernet1/0/23] undo stp enable
[H3C-Ten-GigabitEthernet1/0/23] quit
部署DCBX
# 全局开启LLDP功能。
[H3C] lldp global enable
# 创建名为DCBX的二层ACL,并为其创建规则来匹配FCoE报文(协议号为0x8906)和FIP报文(协议号为0x8914)。
[H3C] acl mac name DCBX
[H3C-acl-mac-DCBX] rule 0 permit type 8906 ffff
[H3C-acl-mac-DCBX] rule 5 permit type 8914 ffff
[H3C-acl-mac-DCBX] quit
# 定义名为DCBX的类,其下各规则间的关系为逻辑或,并定义其匹配名为DCBX的ACL。
[H3C] traffic classifier DCBX operator or
[H3C-classifier-DCBX] if-match acl mac name DCBX
[H3C-classifier-DCBX] quit
# 定义名为DCBX的流行为,并配置标记报文的802.1p优先级为3。
[H3C] traffic behavior DCBX
[H3C-behavior-DCBX] remark dot1p 3
[H3C-behavior-DCBX] quit
# 定义名为DCBX的QoS策略,为类DCBX指定采用的流行为是DCBX,并指定该策略为DCBX模式。
[H3C] qos policy DCBX
[H3C-qospolicy-DCBX] classifier DCBX behavior DCBX mode dcbx
[H3C-qospolicy-DCBX] quit
#在聚合口上开启LLDP功能,同时在其绑定的物理接口上配置允许该接口发送LLDP报文时携带DCBX TLV字段。
[H3C] interface Ten-GigabitEthernet 1/0/23
[H3C-Ten-GigabitEthernet1/0/23] lldp tlv-enable dot1-tlv dcbx
[H3C-Ten-GigabitEthernet1/0/23] qos apply policy DCBX outbound
[H3C-Ten-GigabitEthernet1/0/23] quit
部署PFC
# 在物理口上配置与服务器自动协商是否开启PFC功能,且设置对802.1p优先级3开启PFC功能,并配置信任报文自带的802.1p优先级。
[H3C] interface Ten-GigabitEthernet 1/0/23
[H3C-Ten-GigabitEthernet1/0/23] priority-flow-control auto
[H3C-Ten-GigabitEthernet1/0/23] priority-flow-control no-drop dot1p 3
[H3C-Ten-GigabitEthernet1/0/23] qos trust dot1p
[H3C-Ten-GigabitEthernet1/0/23] quit
部署ETS
# 配置802.1p优先级到本地优先级的映射,将802.1p优先级3映射到本地优先级1,配置其它的802.1p优先级映射到本地优先级0。
[H3C] qos map-table dot1p-lp
[H3C-maptbl-dot1p-lp] import 3 export 1
[H3C-maptbl-dot1p-lp] import 0 export 0
[H3C-maptbl-dot1p-lp] import 1 export 0
[H3C-maptbl-dot1p-lp] import 2 export 0
[H3C-maptbl-dot1p-lp] import 4 export 0
[H3C-maptbl-dot1p-lp] import 5 export 0
[H3C-maptbl-dot1p-lp] import 6 export 0
[H3C-maptbl-dot1p-lp] import 7 export 0
[H3C-maptbl-dot1p-lp] quit
# 在聚合口绑定的物理口上配置其它的队列为SP调度方式。
[H3C] interface Ten-GigabitEthernet 1/0/23
[H3C-Ten-GigabitEthernet1/0/23] qos wrr af2 group sp
[H3C-Ten-GigabitEthernet1/0/23] qos wrr af3 group sp
[H3C-Ten-GigabitEthernet1/0/23] qos wrr af4 group sp
[H3C-Ten-GigabitEthernet1/0/23] qos wrr ef group sp
[H3C-Ten-GigabitEthernet1/0/23] qos wrr cs6 group sp
[H3C-Ten-GigabitEthernet1/0/23] qos wrr cs7 group sp
[H3C-Ten-GigabitEthernet1/0/23] quit
# 将外部端口XGE1/1/1切换成FC端口。
[H3C] interface Ten-GigabitEthernet 1/1/1
[H3C-Ten-GigabitEthernet1/1/1] port-type fc
# 在1号槽位的互联模块上配置接口FC1/1/1允许VSAN 1通过。
[H3C-Fc1/1/1] port access vsan 1
[H3C-Fc1/1/1] fc mode np
Smart Link用于双上行组网中实现主备链路的冗余备份,并提供亚秒级的快速链路切换。如图3-28所示,在ICM-1和ICM-4上配置Smart Link功能,可以实现主用上行链路故障时,将流量快速切换到备用上行链路。
图3-28 Smart Link应用场景示意图
Smart Link组网中,设备分为以下角色:
· Smart Link设备:具有双上行链路的设备,在刀箱组网中一般为互联模块,如ICM-1和ICM-4。Smart Link设备要求支持Smart Link功能、且配置了Smart Link组和从指定控制VLAN发送Flush报文功能。
· 相关设备:Smart Link设备连接的上行设备,在刀箱组网中一般为外部交换机,如SwitchA和SwitchB。相关设备要求支持Smart Link功能、在实际应用中为配合Smart Link设备而需开启从指定控制VLAN接收Flush报文功能。当上行链路切换后,相关设备会根据接收到的Flush报文刷新MAC地址转发表项和ARP/ND表项。
Smart Link组也叫灵活链路组,每个组内只包含两个成员端口——主端口和从端口。正常情况下,只有一个端口处于转发(ACTIVE)状态,另一个端口被阻塞,处于待命(STANDBY)状态。当处于转发状态的端口出现链路故障(包括端口down、以太网OAM检测到的单向链路等)时,Smart Link组会自动将该端口阻塞,并将原阻塞的处于待命状态的端口切换到转发状态。
如图3-28所示,ICM-1上的端口Port1和Port2组成了一个Smart Link组,其中Port1处于转发状态,而Port2处于待命状态;ICM-4上的端口Port4和Port3组成了一个Smart Link组,其中Port4处于转发状态,而Port3处于待命状态。
主端口和从端口是Smart Link组中的两种成员端口。当Smart Link组中的两个端口都处于up状态时,主端口将优先进入转发状态,而从端口将保持待命状态。当主端口所在链路发生故障时,从端口将切换为转发状态。
如图3-28所示,ICM-1和ICM-4上的端口Port1和Port4为主端口,Port2和Port3为从端口。
我们把主端口所在的链路称为主链路,从端口所在的链路称为从链路。
当Smart Link组发生链路切换时,原有的MAC地址转发表项和ARP/ND表项将不适用于新的拓扑网络,需要更新网络中的所有设备。这时,Smart Link组通过发送Flush报文通知其它设备进行MAC地址转发表项和ARP/ND表项的刷新操作。Flush报文是普通的组播数据报文,会被阻塞的接收端口丢弃。
保护VLAN就是Smart Link组要保护的那些VLAN,同一端口上不同的Smart Link组保护不同的VLAN。端口在保护VLAN上的转发状态由端口在其所属Smart Link组内的状态决定。
发送控制VLAN是用于发送Flush报文的VLAN。当发生链路切换时,设备(如图3-28中的ICM-1和ICM-4)会在发送控制VLAN内发送Flush报文。
接收控制VLAN是用于接收并处理Flush报文的VLAN。当发生链路切换时,设备(如图3-28中的SwitchA和SwitchB)接收并处理属于接收控制VLAN的Flush报文,进行MAC地址转发表项和ARP/ND表项的刷新操作。
在图3-28所示的组网中,ICM-1的端口Port1所在的链路是主链路,Port2所在的链路是从链路。正常情况下,Port1处于转发状态,Port2处于待命状态。当主链路出现故障时,Port1将自动阻塞并切换到待命状态,Port2将切换到转发状态。当端口切换到转发状态时,系统会输出日志信息通知用户。
当Smart Link发生链路切换时,网络中各设备上的MAC地址转发表项和ARP/ND表项可能已经不是最新状态。为了保证报文的正确发送,需要由Smart Link设备在新的链路上发送Flush报文,且要求上行的设备识别Smart Link的Flush报文并进行更新MAC地址转发表项和ARP/ND表项的处理。
在图3-28所示的组网中,ICM-1的端口Port1所在的链路是主链路,Port2所在的链路是从链路。当主链路出现故障时,Port1将自动阻塞并切换到待命状态,Port2则从待命状态切换到转发状态。当主链路恢复后:
· 在非抢占模式下,Port1仍将维持在阻塞状态,不进行链路状态切换,从而保持流量稳定。只有等下一次链路切换时,该端口才会重新切换回转发状态。
· 在抢占模式下,当符合抢占条件时,Port2将自动阻塞并切换到待命状态,而Port1则切换回转发状态。
在同一个环网中,可能同时存在多个VLAN的数据流量,Smart Link可以实现流量的负载分担,即不同VLAN的流量沿不同Smart Link组所确定的路径进行转发。
通过把一个端口配置为多个Smart Link组的成员端口(每个Smart Link组的保护VLAN不同),并使该端口在不同Smart Link组中的转发状态不同,这样就能实现不同VLAN的数据流量的转发路径不同,从而达到负载分担的目的。
每个Smart Link组的保护VLAN是通过引用MSTI(Multiple Spanning Tree Instance,多生成树实例)来实现的。
当上游设备的上行链路发生故障以及故障恢复时,下游设备上的Smart Link无法感知到这个变化。Monitor Link则可以通过监控上游设备的上行端口,根据其up/down状态的变化来触发下行端口up/down状态的变化,从而触发下游设备上的Smart Link进行链路切换。有关Monitor Link的详细介绍,请参见3.6 Monitor Link。
当上行链路上的中间传输设备或传输链路发生故障(如光纤链路发生单通、错纤、丢包等故障)以及故障排除时,Smart Link本身无法感知到这个变化,Smart Link组的成员端口需要通过专门的链路检测协议来检测端口的链路状态,当链路检测协议检测到故障发生或故障恢复时就通知Smart Link进行链路切换。
Smart Link组的成员端口通过Track项与链路检测协议进行联动,目前仅支持与CFD(Connectivity Fault Detection,连通错误检测)的连续性检测功能联动。当端口与CFD连续性检测功能联动时,CFD按照检测VLAN和检测端口来通知故障检测事件,只有当端口所在Smart Link组的控制VLAN与检测VLAN一致时,才响应此事件。
在同一个双上行链路组网中,可能同时存在多个VLAN的数据流量,Smart Link可以实现流量的负载分担,即不同VLAN的流量沿不同的路径进行转发。通过把上行链路的端口分别配置为两个Smart Link组的成员(每个Smart Link组的保护VLAN不同),且端口在不同组中的转发状态不同,这样就能实现不同Smart Link组保护VLAN的流量转发路径不同,从而达到负载分担的目的。
在实现负载分担时,建议将Smart Link组配置为角色抢占模式或速率抢占模式,否则无法保证流量按照用户的想法一直在两条链路上进行分担。因为,如果配置为非抢占模式,刚开始可以实现流量分流,但链路故障后所有流量将集中在同一条链路上传输,链路恢复后流量继续在同一条链路上传输,这样就无法达到负载分担的目的。
如图3-29所示,在互联模块上创建两个Smart Link组,每个Smart Link组保护的VLAN不同,但均配置为角色抢占模式。Smart Link组1的主端口为Port1,从端口为Port2,保护VLAN为VLAN 1~10;Smart Link组2的主端口为Port2,从端口为Port1,保护VLAN为VLAN 11~20。两个Smart Link组中的主端口均处于转发状态。这样,VLAN 1~10的流量将沿着绿色线条所表示的链路进行传输,VLAN 11~20的流量将沿着蓝色线条所表示的链路进行传输,从而实现VLAN流量的负载分担。
图3-29 Smart Link运行机制示意图
请勿将一个端口同时加入聚合组和Smart Link组,否则该端口在Smart Link组中将不会生效,也无法使用display smart-link group命令查看到。
如果欲配置某端口为Smart Link组的成员端口(主端口或从端口):
· 请先手工关闭该端口,并待Smart Link组配置完成后再开启该端口,以避免形成环路,导致广播风暴;
· 请关闭该端口的生成树协议、RRPP功能和ERPS功能。
· 在图3-30所示的组网中,ICM-1和ICM-4是互联模块。它们通过各自的XGE1/1/1和XGE1/1/2端口,VLAN 1~30的流量分别双上行到Core-Switch,XGE1/1/1作为主端口,XGE1/1/2作为从端口。
· 通过配置,ICM-1和ICM-4实现双上行链路的灵活备份,当主用上行链路故障时,将流量快速切换到备用上行链路。
图3-30 Smart Link配置举例组网图
本节以配置ICM-1举例,ICM-4与ICM-1配置相似。
(1) 创建VLAN 1~30,将这些VLAN都映射到MSTI 1上,并激活MST域的配置。
<ICM1> system-view
[ICM1] vlan 1 to 30
[ICM1] stp region-configuration
[ICM1-mst-region] instance 1 vlan 1 to 30
[ICM1-mst-region] active region-configuration
[ICM1-mst-region] quit
(2) 分别关闭端口Ten-GigabitEthernet1/1/1和Ten-GigabitEthernet1/1/2,在这两个端口上分别关闭生成树协议,并将端口配置为Trunk端口且允许VLAN 1~30通过。
[ICM1] interface ten-gigabitethernet 1/1/1
[ICM1-Ten-GigabitEthernet1/1/1] shutdown
[ICM1-Ten-GigabitEthernet1/1/1] undo stp enable
[ICM1-Ten-GigabitEthernet1/1/1] port link-type trunk
[ICM1-Ten-GigabitEthernet1/1/1] port trunk permit vlan 1 to 30
[ICM1-Ten-GigabitEthernet1/1/1] quit
[ICM1] interface ten-gigabitethernet 1/1/2
[ICM1-Ten-GigabitEthernet1/1/2] shutdown
[ICM1-Ten-GigabitEthernet1/1/2] undo stp enable
[ICM1-Ten-GigabitEthernet1/1/2] port link-type trunk
[ICM1-Ten-GigabitEthernet1/1/2] port trunk permit vlan 1 to 30
[ICM1-Ten-GigabitEthernet1/1/2] quit
(3) 创建Smart Link组1,并配置其保护VLAN为MSTI 1所映射的VLAN。
[ICM1] smart-link group 1
[ICM1-smlk-group1] protected-vlan reference-instance 1
(4) 配置Smart Link组1的主端口为Ten-GigabitEthernet1/1/1,从端口为Ten-GigabitEthernet1/1/2。
[ICM1-smlk-group1] port ten-gigabitethernet 1/1/1 primary
[ICM1-smlk-group1] port ten-gigabitethernet 1/1/2 secondary
(5) 重新开启端口Ten-GigabitEthernet1/1/1和Ten-GigabitEthernet1/1/2。
[ICM1] interface ten-gigabitethernet 1/1/1
[ICM1-Ten-GigabitEthernet1/1/1] undo shutdown
[ICM1-Ten-GigabitEthernet1/1/1] quit
[ICM1] interface ten-gigabitethernet 1/1/2
[ICM1-Ten-GigabitEthernet1/1/2] undo shutdown
[ICM1-Ten-GigabitEthernet1/1/2] quit
Monitor Link是一种接口联动方案,通过监控互联模块的上行接口,根据其up/down状态的变化来触发下行接口up/down状态的变化,从而触发刀片服务器进行链路的切换。
图3-31 Monitor Link应用场景示意图
每个Monitor Link组都由上行接口和下行接口这两种成员接口组成,一个Monitor Link组可以有多个上行接口或下行接口,但一个接口只能属于一个Monitor Link组。
· 上行接口是被监控的接口,其所在链路被称为上行链路。
· 下行接口是监控接口,其所在链路被称为下行链路。
如图3-31所示,ICM-1的接口Port1和Port2组成了一个Monitor Link组,其中Port1为上行接口,该接口所在的链路为上行链路;Port2为下行接口,该接口所在的链路为下行链路。ICM-4上的情形也与ICM-1类似。
每个Monitor Link组独立进行上行接口的监控和下行接口的联动。当Monitor Link组中状态为up的上行接口个数低于上行接口阈值时,Monitor Link组就处于down状态,并将强制使其所有下行接口的状态都变为down;而状态为up的上行接口个数大于或等于上行接口阈值时,Monitor Link组的状态就恢复为up,并使其所有下行接口的状态都恢复为up。
Monitor Link组都由上行接口和下行接口这两种成员接口组成,一个Monitor Link组可以有多个上行接口或下行接口,但一个接口只能属于一个Monitor Link组。
每个Monitor Link组独立进行上行接口的监控和下行接口的联动。当Monitor Link组中状态为up的上行接口个数低于上行接口阈值时,Monitor Link组就处于down状态,并将强制使其所有下行接口的状态都变为down;而状态为up的上行接口个数大于或等于上行接口阈值时,Monitor Link组的状态就恢复为up,并使其所有下行接口的状态都恢复为up
默认配置下阈值为1。
Monitor Link组下行接口的回切延时,即上行接口up后,下行接口需要等待一定回切延时才能恢复为up状态。
默认配置下回切延时为0,即下行口立马恢复UP。
· 请勿通过接口开关命令来干预Monitor Link组中下行接口的状态。
· 通过延时回切机制可以避免由于Monitor Link组上行链路震荡而导致的下行链路频繁切换。当Monitor Link组的上行接口恢复为up状态并维持了一段时间之后,下行接口才恢复为up状态,这段时间就称为Monitor Link组下行接口的回切延时。
· 全局开启Monitor Link协议后,Monitor Link组才会生效;全局关闭Monitor Link协议后,所有Monitor Link组失效,之前由Monitor Link协议联动触发更改状态为down的下行接口将恢复联动触发前的状态。
· 一个接口只能属于一个Monitor Link组。
· 如果已将一个接口的主接口配置为Monitor Link组的下行接口,请勿再将该接口的子接口配置为任何Monitor Link组的上行接口,否则将影响Monitor Link协议的正常运行。
· 由于同一接口的主接口和子接口的up/down状态本身是联动的,因此请勿将它们加入同一个Monitor Link组中,否则将影响该Monitor Link组的性能。
· 如果已将一个聚合组的选中端口配置为Monitor Link组的下行接口,请勿再将该聚合组的非选中端口配置为该Monitor Link组的上行接口。
· 不允许将一个聚合接口及其所对应聚合组的成员端口加入同一个Monitor Link组中。
· 在图3-32所示的组网中,ICM-1和ICM-4是互联模块,通过各自的XGE1/0/1端口连接刀片服务器,通过各自的XGE1/1/1端口连接上行交换机。
· 通过配置,实现双上行链路的灵活备份,并且当ICM-1或ICM-4的上行链路故障时,刀片服务器能够感知到这个故障并完成其上行链路的切换。
图3-32 Monitor Link配置举例组网图
本节以配置ICM-1举例,ICM-4与ICM-1配置相似。
(1) 全局开启Monitor Link协议
<ICM1> system-view
[ICM1] undo monitor-link disable
(2) # 创建Monitor Link组1,并配置该组的上行接口为Ten-GigabitEthernet1/1/1,下行接口为Ten-GigabitEthernet1/0/1。
[ICM1] monitor-link group 1
[ICM1-mtlk-group1] port ten-gigabitethernet 1/1/1 uplink
[ICM1-mtlk-group1] port ten-gigabitethernet 1/0/1 downlink
[ICM1-mtlk-group1] quit
本节介绍刀箱上常见的4种冗余技术,他们的使用场景如表4-1所示。
冗余技术 |
操作系统 |
使用说明 |
Bonding |
Linux |
端口分担技术,将刀片服务器Mezz网卡的多个物理端口绑定成一个虚拟端口。端口绑定后,如图4-2所示,在互联模块看来,刀片服务器只有一个上行端口。本技术可以提升主机的吞吐量和端口的可靠性,需要与互联模块的链路聚合功能配合使用。 |
NIC Teaming |
Windows |
|
多链路 |
Linux |
链路冗余技术。如图4-3所示,区别于端口分担技术,配置链路冗余后,在互联模块看来,刀片服务器仍然有多个上行端口对应多条上行链路,这些上行链路根据配置实现负载分担或者冗余备份。 |
多路径 |
Windows |
Bonding技术是网卡驱动程序之上、数据链路层之下实现的一个虚拟层,通过这种技术,刀片服务器的Mezz网卡上连接互联模块的多个网卡接口被绑定为一个虚拟接口,这些网卡接口不仅共用一个IP地址,MAC地址也被设定为同一个。工作站向服务器请求数据,服务器上的网卡接到请求后,网卡根据指定模式下的智能算法决定由哪个物理接口来传输数据。Bonding技术可以提高主机的网络吞吐量和可用性。
Bonding包括如下7种模式,其中常用的有mode=0、mode=1和mode=6三种:
· mode=0,即:(balance-rr)Round-robin policy(平衡轮循环策略),数据包在两个SLAVE之间顺序依次传输;
· mode=1,即:(active-backup)Active-backup policy(主-备策略)。只有主设备处于活动状态,当主设备宕机后备设备转换为主设备;
· mode=2,即:(balance-xor)XOR policy(平衡策略),基于指定的传输HASH策略传输数据包;
· mode=3,即:broadcast(广播策略),在每个SLAVE接口上传输每个数据包,此模式提供了容错能力;
· mode=4,即:(802.3ad)IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad动态链路聚合),创建一个聚合组,它们共享同样的额速率和双工设定,外出流量的SLAVE选择是基于传输hash策略的。此模式需要交换机支持IEEE 802.3ad,且要经过特定的配置;
· mode=5,即:(balance-tlb)Adaptive transmit load balancing(适配器传输负载均衡)。不需要任何特别的交换机支持,在每个SLAVE上根据当前的负载(根据速度计算)分配外出流量,如果正在接受流量的SLAVE故障,另一个SLAVE接管失败SLAVE的MAC地址;
· mode=6,即:(balance-alb)Adaptive load balancing(适配器适应性负载均衡)。该模式包含了balance-tlb模式,同时加上针对IPv4流量的接收负载均衡,通过ARP协商实现,不需要交换机支持。BONDING驱动截获本机发送的ARP应答,并把源硬件地址改为BOND中某个SLAVE的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。
Mezz网卡开启NPAR功能或者SR-IOV虚拟化功能时,不建议同时配置Bonding功能。
本文以在RHEL7.5系统下配置mode=6为例介绍操作步骤。
(1) 如图4-4所示,在“/etc/sysconfig/network-scripts/”目录下,执行“vi ifcfg-bond0”命令创建bond0配置文件并添加以下内容:
BOOTPROTO=static
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
ONBOOT=yes
IPADDR=192.168.50.88//设置bond0接口地址
PREFIX=24//设置子网掩码
GATEWAY=
DNS=
BONDING_OPTS=”miimon=100 mode=6”//设置每100ms检测一次链路,Bonding模式为mode=6
(2) 编辑SLAVE接口的配置文件。如图4-5所示,执行“vi ifcfg-ethX”命令,并在配置文件中写入如下内容:
ONBOOT=yes
MASTER=bond0
SLAVE=yes
对于其他要加入bond0的SLAVE接口,也进行相同编辑。
图4-5 编辑SALVE接口配置文件
(3) 如图4-6所示,执行“service network restart”命令,重启网络服务,使bond0生效。
(4) 如图4-7所示,执行“cat /proc/net/bonding/bond0”命令查看bond0和网卡信息。可以看到bond0以及两个SLAVE接口已经UP。
图4-8 查看网卡信息(一)
图4-9 查看网卡信息(二)
Microsoft NIC Teaming,也称为负载平衡/故障转移(LBFO)。通过这种技术,多个Mezz网卡上的端口组合成一个NIC Teaming,这样做可以带来带宽聚合、解决网络失败过程中的故障转移等好处。该功能在Windows Server 2012以及之后所有版本中支持。
以集成在Windows Server 2012 R2中的Teaming解决方案为例,一般的NIC Teaming模式有三种:
· 静态成组(Static Teaming):是一种依赖于交换机(Switch-dependent)的组合方式,要求交换机的支持,并且成员网卡不能分散到不同的交换机上。
· 交换机独立(Switch Independent):网卡组合不需要交换机的参与,这样网卡可以连接到不同的交换机上,而且在连接不同交换机时采用的是主备模式,只有连接在同一交换机时才可以实现负载均衡聚合。
· LACP:类似静态成组,需要先在交换机中启用LACP,会把多块网卡合并成一个逻辑的线路,这种组合方式的速度是最快的。
除了Teaming模式需要配置之外,还需要配置负载均衡的模式,模式也有三种:
· 地址哈希(Address Hash):启用后,数据包到达Teaming后,会根据目的地址信息(MAC地址,IP地址和端口号)执行哈希算法,通过算法结果,NIC Team决定由哪块物理网卡发送数据包。这种方式无法控制流量的走向,如果有大量数据是流向一个目标地址的,那么只会通过一块物理网卡来发送。
· Hyper-V端口:正如名字显示的,用于Hyper-V的模式,与无法控制的地址哈希相比,这种方式效率更高,数据会通过绑定虚拟网卡的不同物理网卡传输,同时这种绑定是基于每个虚拟网卡,而不是每台虚拟机的。如果是使用Hyper-V外部虚拟机交换机建议选择这种方式。
· 动态:这种方式是最优化的方式,从Windows Server 2012 R2中新引入,数据会被平分到所有网卡上,最大效率的利用带宽。
Mezz网卡开启NPAR功能或者SR-IOV虚拟化功能时,不建议同时配置NIC Teaming功能。
(1) 如图4-10所示,单击“Server Manager / Local Server / NIC Teaming”的“Disabled”,打开NIC Teaming配置界面。
(2) 如图4-11所示,单击“TASKS / NEW Team”,创建Team。
(3) 如图4-12所示,设置Team名称并勾选要加入Team的网络适配器,然后在“Additional properties”中设置相应的属性,最后单击“OK”创建Team。
“Switch Independent”模式的Team创建较缓慢,请耐心等待。
(4) 如图4-13所示,完成创建后,可以在 “Network Connections”界面查看到新增的“One Team”网络适配器。
Linux系统下的多链路又称为multi-path,双活链路。多链路的主要功能就是配合存储设备的磁盘虚拟化功能一起使用,实现I/O流量的负载分担和链路故障的切换与恢复。
本文以Redhat7.5系统下FC 680i网卡配置FC SAN多路径为例介绍操作步骤。
Redhat7.5系统全包安装时,默认安装DM-multipath软件,如果未安装,请在操作系统中光盘中找到对应的软件包,然后执行命令rpm –vih packagename进行安装。
(1) 如图4-14所示,在操作系统下执行下面的命令查看DM-multipath多路径是否安装。
图4-14 查看DM-multipath多路径软件
(2) 如图4-15所示,在操作系统下查看multipath服务为开启状态。
(3) 如果未显示enable,可以执行systemctl enable multipathd.service命令。
(4) 如图4-16所示,配置FC SAN,对接的网板为FC网板,配置FC协议
图4-16 FC链路配置信息
(5) 如图4-17所示,配置存储侧host,将2张网卡的端口均添加到此host中,管理同一块磁盘。
图4-17 host与磁盘关联信息
(6) 如图4-18所示,系统下执行磁盘扫描命令可看到映射的磁盘
(7) 如图4-19所示,系统下配置多路径命令。
(8) 执行multipath –ll,确认双路径配置成功。
Windows系统下多路径又叫MPIO(MultiPath I/O),刀片服务器通过Mezz网卡上的2个端口连接到互联模块,来实现刀片服务器与互联模块之间双链路连接,互为备份,负载均衡,当任一链路或互联模块发生故障时,服务不中断。
MPIO模式有6种,其中最常用的为round robin和round robin with subset 两种:
· Fail Over Only:即故障转移模式,当一条链路down时,另一条路径马上接替;
· Round Robin:即负载均衡模式,两条链路均会读写I/O数据;
· Round Robin With Subset:即有负载分担和故障转移的功能,提高服务器性能,当主的链路down时,备的会接替继续工作。
· Least queue depth:即最小队列深度模式,沿着当前未完成的I/O请求最少的路径发送I/O的负载平衡策略;
· Weighted path:即加权路径模式,沿着当前处理的数据块最少的路径发送I/O的负载平衡策略。
Windows操作系统上的多路径功能默认是关闭的,可以通过下面的步骤将其安装并启用。Windows上各个版本的操作系统上多路径的配置方法都是相似的,这里以Windows Server 2016 R2为例描述其配置过程。
(1) 如图4-20所示,打开Server Manager->选择Add roles and features。在Windows操作系统上,打开CMD命令行,然后输入servermanager,就可以打开服务器管理工具。
(2) 如图4-21所示,选择安装类型和服务器类型,默认安装即可。
(3) 如图4-22所示,选择MPIO属性进行安装,安装好重启生效。
(4) 如图4-23所示,Windows系统下映射3par存储服务器上设置的磁盘。
(5) 如图4-24所示,执行mpclaim -e命令查看多路径存储信息。
(6) 如图4-25所示,执行命令使存储被MPIO管理。
(7) 如图4-26所示,设置MPIO模式,以及将Path Verify Enabled勾选,执行后重启。
(8) 如图4-27所示,查看多路径设置成功。
缩略语 |
英文全称 |
中文解释 |
C |
||
CEE |
Converged Enhanced Ethernet |
汇聚增强型以太网 |
CFD |
Connectivity Fault Detection |
连通错误检测 |
D |
||
DCBX |
Data Center Bridging Exchange Protocol |
数据中心桥能力交换协议 |
DCE |
Data Center Ethernet |
数据中心以太网 |
E |
||
ETS |
Enhanced Transmission Selection |
增强带宽选择 |
F |
||
FC |
Fibre Channel |
光纤通道 |
FCF |
FCoE Forwarder |
FCoE转发器 |
FCM |
FC Mapping |
FC封装 |
FCoE |
Fibre Channel over Ethernet |
基于以太网的光纤通道 |
FIP |
FCoE Initialization Protocol |
FCoE初始化协议 |
FPMA |
Fabric Provided MAC Address |
网络映射MAC地址 |
I |
||
ICM |
Interconnect module |
互联模块 |
L |
||
LACP |
Link Aggregation Control Protocol |
链路聚合控制协议 |
LAN |
Local Area Network |
局域网 |
LBFO |
Load Balancing and Failover |
负载均衡和故障转移 |
M |
||
MAD |
Multi-Active Detection |
多Active检测 |
MPIO |
MultiPath I/O |
多路径输入/输出 |
MPLS |
Multi-Protocol Label Switching |
多协议标签交换 |
MSTI |
Multiple Spanning Tree Instance |
多生成树实例 |
N |
||
NIC |
Network Interface Controller |
网络接口控制器 |
NPAR |
NIC Partitioning |
网卡分区 |
NPV |
N_Port Virtualization |
N端口虚拟化 |
P |
||
PFC |
Priority-based Flow Control |
基于优先级的流控 |
PVID |
Port-base VLAN ID |
基于端口的VLAN ID |
S |
||
SAN |
Storage Area Network |
存储区域网络 |
T |
||
TPID |
Tag Protocol Identifier |
标签协议标识 |
V |
||
VFC |
Virtual Fibre Channel |
虚拟的光纤通道 |
VLAN |
Virtual Local Area Network |
虚拟局域网 |
VSAN |
Virtual Storage Area Network |
虚拟存储区域网络 |
W |
||
WWN |
World Wide Name |
全球唯一名字 |