FCoE在Linux下的部署

2016-11-26 11:27
网络安全和信息化 2016年6期
关键词:配置文件网卡以太网

引言: 本文简要介绍了FCoE的应用背景,同时介绍了FCoE协议的封装、映射关系、融合型增强以太网。重点以实例介绍聚合网络适配卡(CNA)和具有FCoE硬件卸载引擎的10Gb以太网卡在Linux下的具体部署设置。

FCoE(Fibre Channel over Ethernet)以太网光纤通道的出现,解决了LAN和SAN的融合问题,FCoE技术标准可以将光纤通道映射到以太网,可以将光纤通道信息插入以太网信息包内,从而让服务器-SAN存储设备的光纤通道请求和数据可以通过以太网连接来传输,而无需专门的光纤通道结构。

FCoE的部署

FCoE可以只部署在服务器网络接入层。目的是实现服务器I/O整合,简化服务器网络接入层的线缆设施。服务器安装支持FCoE的网卡,并连接到接入层FCoE交换机,接入层交换机再分别通过10GE链路和FC链路连接到现有的LAN和SAN;FCoE也可以整网端到端(接入—汇聚—核心)部署。FCoE技术的应用范围扩大到整网,除接入层交换机外,汇聚核心层交换机也支持FCoE功能;除服务器外,存储设备也需支持FCoE接口。由此实现了LAN与SAN的融合,简化了整网基础设施。虽然目前原生支持FCoE的存储设备很少,但除了连接原生FCoE存储设备外,用户仍可通过DCB/CEE交换机与FC交换机连接,让FCoE服务器端存取传统的FC存储设备,且能沿用原有的FC管理模式。

在FCoE的服务器端,适配卡可以有三种选择。

1)聚合网络适配卡(CNA)。CNA卡大都属于Emulex、Qlogic、Brocade等传统光纤通道厂商的产品,拥有完整的硬件卸载(Offload)引擎,既可处理封装在TCP/IP协议封包,也可处理FCoE帧(封装了FCP封包的以太网帧)。CNA卡的运用更具弹性,而且凭借完整的硬件卸载引擎,耗用的主机运算资源相对较少。

2)具有FCoE硬件卸载引擎的10Gb以太网卡。这类网卡是由传统的NIC厂商推出,具有不同程度的FCoE卸载功能,可以减轻主机处理FCoE的运算负担,但卸载功能不如CNA卡那样完整,仍须配合Initiator软件支持。

3)一般的10Gb以太网卡。仅具备一般LAN网络传输用的TCP卸载引擎,但不具备FCoE卸载功能,相关运算工作必须通过Initiator软件交由主机承担。

FCoE适配卡在Linux下配置

在Linux下使用使用不完全FCoE硬件卸载功能FCoE适配器主要用到三个组件:lldpad、dcbtool和fcoeadm,而具有完全的FCoE硬件卸载功能CNA卡主要使用fcoeadm配置工具。

下面针对具有完整FCoE硬件卸载功能和部分卸载功能的网卡的使用分别加以说明:

1、聚合网络适配卡(CNA)使用与配置

下面以Broadcom的CNA卡,操作系统为RHEL 6.4为例,介绍聚合网络适配卡(CNA)使用与配置(所有操作需要root用户权限):

1)在服务器PCIe插槽正确安装CNA卡,并确保CNA卡BIOS中启用FCoE完全卸载功能。安装Broadcom的Red Hat Enterprise Linux 6的多功能驱动程序。

2)在控制台使用ethtool命令识别出驱动好的网卡,本例中是eth2,其命令形式为:

#ethtool eth2

该命令会显示网卡的速率、端口类型等信息。

3)安装FCoE相关工具包,如果在安装操作系统时没有安装,可以在Redhat安装介质的packages文件夹中找到并手动安装,在RHEL 6.4 及以下,包的名字是fcoe,在 RHEL 6.5中变为fcoe-util,同时找到lldpad(链路层发现协议代理守护程序),使用rpm命令手动安装。

4)创建该网络适配器的FCoE 配置文件

#cp /etc/fcoe/cfgethx/etc/fcoe/cfg-eth2

将默认的 FCoE 配置文件复制到 /etc/fcoe/cfgeth2。这里网卡是处理FCoE的网卡,其编号会根据具体情况有所不同。

5)修改文件/etc/fcoe/cfg-eth2中"DCB_REQUIRED"为 "NO"。 由于CNA卡拥有完整的硬件卸载(Offload)引擎,不需要DCB服务,因而需要手动禁止。

如果需要启动时自动加载可以在相应配置文件,在相应配置文件中修改”ONBOOT=yes” 本例中的配置文件为/etc/sysconfig/networkscripts/ifcfg-eth2 .配置好IP和掩码等信息,当然这一步骤工作也可以通过终端和GUI下配置工具完成而无需手工修改配置文件。

6)手动禁止CNA接口上的 lldpad 守护进程

#lldptool set-lldp -i eth2 adminStatus=disabled

由于CNA卡拥有完整的硬件卸载(Offload)引擎,需要把Broadcom CNA卡上的lldpd关闭,以让其使用Broadcom的FCoE offload。

7)确保/var/lib/lldpad/lldpad.conf 文件中对应eth2的 "adminStatus"设置为 "0".

8)启动 LLDP 服务和FCoE

#service lldpad restart

#service fcoe restart

使用chkconfig 命令使lldpad和FCoE两个服务配置为启动时就自动开启

#chkconfig lldpad on

#chkconfig fcoe on

9)验证所有FCoE连接

#fcoeadm -i

10)设置 FCoE 发起程序磁盘的分区,磁盘上创建文件系统

使用 fdisk命令为FCoE 发起程序磁盘设置分区。

#fdisk /dev/sdc

使用mkfs命令在FCoE 发起程序磁盘上创建文件系统。

#mkfs /dev/sdc

2、FCoE硬件卸载引擎的10Gb以太网卡配置与使用

下面以RHEL 6.4和Intel Ethernet Converged Network Adapter X520 系列网卡为例,说明具有FCoE硬件卸载引擎的10Gb以太网卡配置与使用。

1)验证网卡驱动。以root用户的身份登录服务器。RHEL 6中已经包含了大部分10Gb以太网卡驱动,Intel 82599 10GbE网络控制芯片已经可以直接内置驱动,在控制台使用 ethtool命令识别网卡,本例中是eth2,其命令形式为:

#ethtool eth2

该命令会显示网卡的速率、端口类型等信息。

2)安装FCoE相关工具包,如果在安装操作系统是没有安装,可以在Redhat安装介质的packages文件夹中找到手动安装,在RHEL 6.4 及以下,包的名字是fcoe,在 RHEL 6.5 中变为fcoe-util,同时找到lldpad(链路层发现协议代理守护程序),使用rpm命令手动安装。

3)将默认的 FCoE 配置文件复制到 /etc/fcoe/cfg-eth2。

#cp /etc/fcoe/cfgethx/etc/fcoe/cfg-eth2

同时脚本里有一些重要配置选项需要加以确认:

fcoe_enable=yes//指示该端口运行FCoE服务

dcb_required=yes //指示该端口需要DCB服务

auto_vlan=yes//指示fcoemon处理被发现的VLAN信息

4)如果需要启动时自动加载可以在相应配置文件,在相应配置文件中修改”ONBOOT=yes”本例中的配置文件为/etc/sysconfig/networkscripts/ifcfg-eth2 .配置好IP和掩码等信息,

ONBOOT=yes//启动时自动加载配置

当然这一步骤工作也可以通过终端和GUI下配置工具完成而无需手工修改配置文件。

5)使用chkconfig 命令使lldpad和FCoE 两个服务配置为启动时就自动开启

#chkconfig lldpad on

# chkconfig fcoe on

启动服务:

#service fcoe start

开启LLDP服务,因为DCBX协商需要LLDP协议的支持,有些网卡会因为DCBX协商失败,就无法进行FCOE登录。

#service lldpd start

6)用 dcbtool sc 命令在指定的FCoE CNA卡上启用数据中心桥接,。

#dcbtool sc eth2 dcb on

系统将返回类似以下信息:

7)在指定的FCoE 适配卡启用数据中心桥接,以接受交换机的 FCoE 优先级设置。

“app”子类型参数可以是0或fcoe.其他的可选子类型如下:

8)(可选)启用并设置数据中心桥接的优先级流量控制 (PFC) 设置。

控制功能启用,a:<0|1>控制是否通过数据中心桥接交换协议向对等体推广功能。

w:<0|1>控制功能是否希望根据从对等体接收到的反馈来更改其操作配置。

9)验证配置。可以用如下命令验证配置是否正确:

在验证交换机和存储配置前,进行验证以确认FCoE 服务运行。注意:当使用创建了VLAN标记Intel网卡时,它会读到和使用交换机上的FCoE VLAN(110)。

#service fcoe status

系统将返回类似以下信息:

检 查FCOE状 态,检查FCOE状态主要使用fcoeadm 工具,fcoeadm 实用程序通过套接字接口将命令发送给正在运行的fcoemon 进程。其它功能请参见fcoemon手册页。

查看 FCoE 发起程序状态以获取 FC-ID 节点/端口号:

#fcoeadm -i eth2.110

系统将返回类似以下信息:

在这里可以看到WWN信息和状态信息,WWN信息会在设置存储设备时用到。通过 lldptool -tni eth2 可以查询到接收的交换机端口信息,包括交换机名和端口信息等:

查看 FCoE 目标以获取FC-ID 节点/端口号:

#fcoeadm -t eth2.110

系统将返回类似以下信息:

11)设置 FCoE 发起程序磁盘的分区,磁盘上创建文件系统。使用 fdisk命令为 FCoE 发起程序磁盘设置分区,用 mkfs命令在FCoE 发起程序磁盘上创建文件系统。

这样REDHAT下FCOE配置就完成了。这里要注意的是以上配置是OPEN-FCOE提供的。CNA网卡产商也会提供相应的FCOE查看工具。

FCoE交换机配置

虽然FCoE的物理层采用了10Gb以太网,但它实现上是基于CEE(Convergence Enhanced Ethernet)/DCB(Data Center Bridging)增强型以太网,而非一般IEEE 802.3ae 10Gb以太网。要解析封装在FCoE中的光纤通道协议(FCP)封包,仍须通过可支持FCoE的网络设备,而不能使用一般10GbE网络设备。在网络端,必须搭配支持FCoE与CEE/DCB的10Gb交换机,如Brocade的8000系列交换机、Cisco的Nexus 5000系列交换机,H3C 12000系列等。

交换机的FCoE端口上承载三类VLAN:服务器VLAN(承载普通以太网 报文)、存储 VLAN(承载 FCoE数据报文)、FIP VLAN(承载FCoE初始化协议报文)。服务器到FCoE交换机的报文中,FCoE数据报文采用TAG方式,FIP报文和普通以太网报文采用UNTAG方式。FCoE数据报文对应的VLAN ID,由FIP协议与FCoE交换机协商获得。在部署时,应将交换机的FCoE端口配置成Hybrid类型,允许存储VLAN报文以TAG方式通过,服务器VLAN报文和FIP报文以UNTAG方式通过,并将该端口的PVID设置为服务器VLAN的VID。当该端口收到除FIP协议以外的其它UNTAG报文时,将在服务器VLAN内转发该报文。这里将FIP VLAN配置成“协议VLAN模式”,是为保证服务器在获取存储VLAN的VID前,FIP协议能够通过“协议VLAN”完成FCoE初始化过程。接入层FCoE交换机在正常转发时,来自服务器的FCoE数据报文,通过存储VLAN(TAG方式)转发到交换机FC端口上行到FC SAN。而来自服务器的普通以太网报文则按正常流程转发,就接入层FCoE交换机而言,主要功能是将从服务器端接收的报文进行LAN业务与SAN业务分离。

对于Cisco Nexus 5000系列交换机平台,需要把虚拟的vfc端口绑定到特定以太网端口是实现FC转发。其配置样例如下:

vsandatabase//在vsan数据库中将相应的vfc接口关联到vsan3中,这里要注意服务器要获取到存储分配的lun,就需要把存储的接口也关联到这个vsan下。

zone default-zone permit vsan3//划分zone信息,vsan3内的信息要转发就需要划到相应的zone中。

通过sh fcns database detail 命令,在表项中可以看到CNA网卡的具体产商和一些注册信息。当然对于更为复杂的拓扑结构,还需要进一步配置,上述样例仅提供了最基本的配置思路,在实践中更细节的配置请参见交换机的说明文档。

猜你喜欢
配置文件网卡以太网
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
部署Linux虚拟机出现的网络故障
互不干涉混用Chromium Edge
Server 2016网卡组合模式
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
为View桌面准备父虚拟机
谈实时以太网EtherCAT技术在变电站自动化中的应用
挑战Killer网卡Realtek网游专用Dragon网卡
浅谈EPON与工业以太网在贵遵高速公路中的应用