国科技核心期_J
光纤通道交换机软件系统的设计
王林罗志祥刘文琮
(华中科技大学激光技术与工程研究院武汉市430074)
摘要介绍了1Gb/s速率8×8光纤通道交换机的体系结构,在该结构的基础上,提出了一种光纤通道交换机的软件系统的结构框架,并从设计的角度对一些主要的功能模块进行了分析。
关键词光纤通道交换机路由表维护sNMP
中图分类号TN929.11文献标识码A
1引言
随着存储系统的容量和处理器速度的不断提高.以及人们对信息需求量的日益增加.实现网络存储的SAN(StorageAreaNetwork,存储区域网)技术越来越广泛地应用到各个领域。光纤通道交换机在SAN中处于核心的地位。它按照光纤通道交换拓扑结构连接服务器和存储设备,以提供高速数据传输和数据共享、无局域网数据备份和存储合并。因此.对光纤通道交换机的研发有着非常重要的意义。
本文在实验室自主设计的光纤通道交换机的硬件结构的基础上,讨论了该交换机软件系统的设计.对一些主要的功能模块进行了较详细的分析。
2系统介绍
设计方案参考了国内外高速IP路由器的设计思想,通过提供快速通道(数据流)和慢通道(控制流),实现了数据高速转发单元和控制管理单元的隔离。采用分布式交换结构,利用加速比和基于VOQ(VinualOutputQueuing,虚拟输出排队)的CIOQ(CombinedInput—OutputQueuing,组合输入输出排队)技术实现光纤通道帧的无阻塞高速交换。图l为端口速率为1Gb/s的8×8光纤通道交换机的系统结构图。
线卡和交换背板组成了光纤通道帧的高速转发单元。交换结构采用了VITESSE公司的串行收发器VSC870和基于16×16交叉开关结构的VSC882套片.冗余配置lGb/s的8×8交换。为简化设计.VSC882配置为自路由的包模式。线卡上采用了支持光纤通道协议的四通道PHY层芯片VSC7139.MAC层、转发引擎收稿日期:2005一03—15
作者简介:王林男。1983年生.硕士研究生
⑩.允氯话执书2005年第8期以及与VSC870的接口等功能通过FPGA实现。
线卡控制器和交换背板主控制器组成了交换机的控制管理单元。为了满足对线卡和交换背板实时监控和管理的要求.同时为了减少开发成本。线卡和交换背板控制器均采用相同的基于高性能ARM处理器的嵌入式平台.并移植了通信设备中广泛使用的优秀嵌入式实时操作系统VxWorks。本交换机中所有的软件程序都在该平台上开发.方便了软件模块的重用。控制单元和帧转发单元通过自定义40根总线信号进行信息的交互。交换背板主控制器和各线卡控制器之间通过百兆以太网进行通信.这种交换式独占带宽的通信方式不仅保证了较低的通信时延.还可以利用网络SOCKET(套接字)广播路由转发表。
光纤通道交换机的软件系统分为线卡控制器和交换背板主控制器两部分.在后面的两节分别进行阐述。
3线卡控制器软件部分
线卡控制器主要完成对本地线卡的状态监控、错误恢复、路由表更新以及和交换背板主控制器进行通信.向主控制器报告该线卡端口的工作状态,同时也负责接收和执行主控制器发送过来的修改线卡工作状态的控制命令。这些功能要求有较高的灵活性.又与硬件密切相关.采用C语言软件编程来实现。图2为线卡控制器软件部分的模块功能框图。
线卡
图1光纤通道交换机系统结构
万方数据骀酊团国固值
与交换背板主控制器网络套接字通信接口
线卡硬件(包括转发引擎)
图2线卡控制器软件模块功能框图
3.1特殊帧的处理
如图2所示.线卡控制器通过自定义总线从线卡转发引擎中的接收FIFO(FirstInFirst0ut,先进先出)缓存中提取出需要处理的帧。对于光纤通道帧中非常重要的注册帧.交由注册模块处理。而其它特殊帧交由特殊帧处理模块。对于一般的控制帧.根据光纤通道协议生成相应的响应帧.再在特定时序下写入发送FIFO。而对于错误帧简单丢弃,并将错误状态报告给线卡状态监控模块。
3.2线卡状态监控
线卡状态监控模块不仅要监控线卡硬件的工作状态。还要统计错误帧的信息。并将所有的状态及时通知给交换背板主控制器。该模块还需要定时响应交换背板主控制器的状态轮询.主要是考虑到线卡掉电或线卡控制器不能正常工作导致无法主动报告错误的极端情况.
3.3交换结构注册
交换结构注册和路由表更新是线卡控制器要完成的核心功能。光纤通道协议定义的注册服务分为交换结构注册和N端口注册.其中N端口注册决定N端口到N端口的操作参数.相对于光纤通道交换机来说是透明的。光纤通道交换机仅需要完成交换结构注册的功能,其发生在设备N端口和交换机的F端口之间,用来决定网络操作参数。
线卡控制器获取到N端口发送过来的扩展链路服务请求FLOGI之后.通过读取该序列特定的头部和净荷来获取所请求的服务信息.然后将本地线卡端口(F端口)的信息(包括支持的光纤通道服务类型,目前只支持Class2、3无连接服务)写到响应确认ACC中,如果检测到FLOGI有错误.则将错误信息填到拒绝服务请求LS—RJT中,然后将ACC(或LS—RJT)写入线卡转发引擎中的发送FIFO,发送给相连设备的N端口。当交换结构注册成功后.注册模块将注册信息通知交换背板主控制器。
光纤通道交换机软件系统的没引
3.4本地路由表更新
本地路由表更新是一个守护任务.它随时接收交换背板主控制器广播的最新全局路由转发表.并通过自定义总线写入到相应线卡转发引擎上的CAM(ContentAddressableMemorv,内容可寻址存储器)中实现高速硬件路由查找。交换结构注册和路由表更新的流程如图3。
4交换背板主控制器软件部分
交换背板主控制器(以下简称为主控制器)主要完成对交换芯片的工作状态监控.交换机各个线卡的状态信息搜集和记录.全局路由转发表的维护和下载.以及提供多种管理接口对整个交换机进行管理。图4为主控制器软件部分的模块功能框图。
要毳瓣莎
絮爱吵?
≤遵≯
检测帧的有效性≥,_一
\/
+是
窝迭注册信息l
收到主控制器的回
\/
●是
l接收广播路由l
I表并写入线卡{
cAM
生成LS—ACC
帧并向n踹口发
(兰查)
图3交换结构注册和本地路由表更新的流程
O总线至交挟芯H
图4交换背板主控制器上的软件结构
2005年第8期.允氡镭拽恭⑨
蜮一工一一
万方数据
踞舒融国囤值
光纤通道交换机软件系统的设计
GelseL
骺§㈢簇淤篆妒-
UDP套接字接口
161
与本地J乇es口onsI
响应包厂
、
黧刖掣司…包库
信息接口
一佰恩
ASNl组包编
一TrapUDP套接字接口
码模块
—
162
JraD包・二一TRAP信息生成)・
一信息\
/q部信息\/
图5
SNMP代理的模块结构
4.1交换芯片初始化和状态监控
系统上电后,首先设置交换芯片VSC882的芯片寄存器,进行各通道自检。若自检失败则报警.自检通过后进人工作状态。对于交换芯片的监控来说,VSC882通过中断告诉主控制器发生了工作异常,则
主控制器获取异常信息。进行相应的处理。VsC882异
常一般为链路同步丢失.当检测到链路同步丢失信息后,需要对VSC882进行重新同步。对于同步丢失频率过高的链路.则需要关闭这条链路.同时将其在路由表中标记为不可用。还把交换芯片和远程线卡的状态以文件的形式写入主控制器上的FLASH中以供随时访问。
4.2全局路由表的维护
主控制器必须实时地维护一张端口路由转发表.使得各个线卡能够做出正确统一的转发处理决定。路由转发表维护分两个阶段,第一是初始化阶段,第二是实时维护阶段。在初始化阶段。主控制器在收集到
各个线卡的注册信息以后.产生全局路由转发表。然
后再下载给各个线卡控制器。在实时维护阶段.如果线卡在工作的时候突然掉线且不可恢复或者线卡插上新的端口.则线卡控制器通知给主控制器.主控制器更新全局路由表.重新进行下载。与线卡状态监控模块对应的是.主控制器还必须有一个主动轮询的任务用于监测各个线卡是否发生掉电等严重错误。
交换机可扩展数个支持级联的E端口.则全局路由表维护部分还必须实现基于FSPF(FabricShortest
Path
First,交换结构最短路径优先)算法进行动态路径
选择的功能.在由多个交换机组成的大型交换结构网络中选择最合适的路由。4.3多种用户管理接口
对整个光纤通道交换机的管理是交换机软件系统中最重要的功能。从用户的角度来说,有五种配置和管理交换机的方式,分别是web方式、telnet方式、串行控制台方式、tftp服务和SNMP(Simple
Network
⑩兜窥话撬书2005年第8期
Management
Protocol,简单网络管理协议)代理。通过
在光纤通道交换机主控制器上建立SNMP代理.使得
NMS(NetworkManagementSenrer,网络管理服务器)能
够通过SNMP对整个交换机进行管理。这是一种最基
本的管理方式。关于SNMP代理的具体设计在4.4节
中讲述。
4.4
SNMP代理的设计
图5为SNMP代理的模块结构。其要求支持SN—
MP
v1/v2c标准,提供get、get—next、set和trap四种指
令。NMS通过UDP套接字的161端口与交换机上的SNMP代理进行通信,利用get、get—next指令获取和set指令设置交换机的状态变量。如果交换机产生端口
掉电、复位等错误.SNMP代理通过uDP套接字的162
端口主动发送相应的trap信息报告给NMS。NMS传输的信息遵循BER(BasicEncodingRules,基本编码规则),与程序内部可以识别的信息格式不同,图中的ASN.1编解码模块则按照ASN.1结构组织完成两种信息格式的相互转化。此外。SNMP代理还应支持光纤通道协议标准MIB—FA中制订的MIB(ManagementIn.
fo瑚ationBase,管理信息库),从而实现与其它光纤通
道标准设备的互操作性。
5结束语
光纤通道交换机软件系统是一个非常庞杂的系统.本文所涉及到的内容是建立在端口速率为1Gb/s的8×8光纤通道交换原型机的基础上.在模块化、移植性和可扩展性等方面都有待深入的研究。对于模块化.需要考虑对各个子功能模块进行合理的组织和功能的进一步细分:对于可移植性,需要考虑向更高速率交换机上的移植和模块的重用;对于可扩展性,需要考虑一些高级功能的实现比如支持分区(zoning)、交换机之间多条链路的聚合技术(ISLTmnking)。另外.因为硬件平台都是资源有限的嵌入式设备。实际编程中还应考虑程序代码的效率。(参考文献略)
万方数据
光纤通道交换机软件系统的设计
作者:王林, 罗志祥, , 刘文琮
作者单位:华中科技大学激光技术与工程研究院,武汉市,430074
刊名:
光通信技术
英文刊名:OPTICAL COMMUNICATION TECHNOLOGY
年,卷(期):2005,29(8)
被引用次数:0次
本文链接:http://d.g.wanfangdata.com.cn/Periodical_gtxjs200508018.aspx
授权使用:东南大学图书馆(wfdndx),授权号:d7d08f88-9307-401a-a4d6-9e8800985c9e
下载时间:2011年2月12日