(通信与信息系统专业论文)光纤通道hba卡的研究与实现.pdf_第1页
(通信与信息系统专业论文)光纤通道hba卡的研究与实现.pdf_第2页
(通信与信息系统专业论文)光纤通道hba卡的研究与实现.pdf_第3页
(通信与信息系统专业论文)光纤通道hba卡的研究与实现.pdf_第4页
(通信与信息系统专业论文)光纤通道hba卡的研究与实现.pdf_第5页
已阅读5页,还剩84页未读 继续免费阅读

(通信与信息系统专业论文)光纤通道hba卡的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 今天,随着信息技术的突飞猛进,在商业运转和学术研究中产生了越来越多 的海量数据。随着存储区域网络( s a n ) 的应运而生,它已成为人们解决存储带 宽、容量和管理问题的首选方案。s a n 是一种将远方存储设备( 如磁盘阵列、磁 带库、光盘库) 连接到服务器,并且能够使服务器上的客户应用将其作为本地存 储设备进行访问的网络体系。f cs a n 是出现最早、应用最广的一种s a n ,其网 络基于光纤通道技术,高效、稳定、安全是其主要优势。 光纤通道h b a 卡是将主机接入f cs a n 必不可少的设备。它通常插在服务 器主板的p c i x 或p c ie x p r e s s 插槽中,为服务器提供到存储设备的物理连接。 它的核心协议是f c p 协议。该协议位于f c 协议族的f c - 4 层,实现了s c s i 到光 纤通道的映射。 本文的目的就是设计并实现一块h b a 卡。技术核心和难点就是如何用硬件 和软件实现h b a 卡的核心协议一- - f c p 协议,因为不同的实现方案会对h b a 卡 的i o 性能产生决定性的影响。 本文的主要工作就是设计了一套f c p 硬件辅助处理的方案,将f c p 协议中 大量重复性的简单工作交给硬件完成( 如s c s i 数据的分割与重组) 。驱动将不再 以f c 帧为单位进行处理,只需要在s c s ii o 操作的开始和结束时进行交换管理 即可。这极大地减少了中断的次数、降低了c p u 的负担。设计的硬件开发环境是 x i l i n xf p g a 开发板m 1 5 0 6 ,通过v e r i l o gh d l 实现了f c p 辅助处理的硬件逻辑。 并在2 6 1 8 内核版本的r e d h a tl i n u x 环境下开发了驱动程序。 本文首先对h b a 卡的相关协议( 主要是f c p 协议) 进行了介绍,包括f c p i o 操作流程、f c p 信息单元等。而后描述了f c p 硬件辅助处理方案,并大致介 绍了该方案下的软硬件接口、硬件的模块功能划分以及驱动的结构和处理流程。 接着就对硬件各个模块的实现进行了详细阐述,并描述了软件的数据结构和重要 函数。最后,我们搭建了测试环境,并对测试结果进行分析,还对目前系统的不 足提出改进的方向。 关键词:h b a 卡,f c p 协议,d m a 引擎 l a b s l 轧c t a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y , b u s i n e s sr u n n i n ga n d a c a d e m i cr e s e a r c hg e n e r a t ea ni n c r e a s i n gn u m b e ro fm a s s i v ed a t a s t o r a g ea r e a n e t w o r k ( s a n ) h a sb e c o m et h eb e s ts o l u t i o nt ot h ep r o b l e m so fs t o r a g eb a n d w i d t h , c a p a c i t ya n dm a n a g e m e n t s a ni s a l la r c h i t e c t u r et oa t t a c hr e m o t es t o r a g ed e v i c e s ( s u c ha sd i s ka r r a y s ,t a p el i b r a r i e s ,a n do p t i c a lj u k e b o x e s ) t os e r v e r si ns u c haw a y t h a t t h ed e v i c e sa p p e a ra sl o c a l l ya t t a c h e dt ot h e o p e r a t i n gs y s t e m f cs a ni s t h e e a r l i e s t e m e r g e da n dw i d e s t - a d o p t e dt y p eo fs a n ,w h i c hi sb a s e do nf i b r ec h a n n e l t e c h n o l o g y h i g he f f i c i e n c y , s t a b i l i t ya n ds e c u r i t ya r et h em a i na d v a n t a g e so ff cs a n f ch b ac a r di st h en e c e s s a r yd e v i c ea c c e s s i n gf cs a n i ti su s u a l l yi n s e r t e di n t h ep c i xo rp c ie x p r e s ss l o to fas e r v e r sm o t h e r b o a r da n do f f e r sp h y s i c a l c o n n e c t i v i t yb e t w e e nas e r v e ra n das t o r a g ed e v i c e f i b r ec h a n n e lp r o t o c o l ( f c p ) f o r s c s ii st h ee s s e n t i a lp r o t o c o lo fh b a i ti sl o c a t e di nf c - 4l a y e ro ff i b r ec h a n n e l s t a n d a r d sh i e r a r c h ya n dd e f i n e st h em a p p i n go fs c s io v e rf i b r ec h a n n e l t h ep u r p o s eo ft h i sp a p e ri st od e s i g na n di m p l e m e n tah b ac a r d t h ef o c a la n d d i f f i c u l tp o i n to ft h ew o r ki sh o wt oi m p l e m e n th b ac a r d sk e yp r o t o c o l ,f c pi n h a r d w a r ea n ds o f t w a r e ,s i n c et h ed e s i g nw o u l dm a k ead e c i s i v ei m p a c to nh b ac a r d s i op e r f o r m a n c e t h em a jo rw o r ko ft h i sp a p e ri st op r o v i d eas o l u t i o no fh a r d w a r e - a s s i s t e df c p i m p l e m e n t a t i o n ,w h i c hl e a v e sal a r g en u m b e ro fr e p e t i t i v ea n ds i m p l ef c pt a s k s 谢廿l t h eh a r d w a r e ( s u c ha s 也es e g m e n t a t i o na n da s s e m b l yo fs c s id a t a ) t h eh b ad r i v e r n ol o n g e rp r o c e s s e dd a t ai nt h eu n i to ff cf l a m e i to n l yn e e d e dt od om a n a g e m e n to f e x c h a n g e si nt h eb e g i n n i n go ra tt h ee n do fi oo p e r a t i o n t h i sg r e a t l yr e d u c e dt h e n u m b e ro fi n t e r r u p t sa n dt h eb u r d e no fc p u x i l i n xf p g ad e v e l o p m e n tb o a r d ( m 1 5 0 6 ) w a su s e da sd e v e l o p m e n te n v i r o n m e n to fh a r d w a r e ,a n dt h ef c p a s s i s t e dl o g i cw a s d e s i g n e di nv e r i l o gh d l b e s i d e s ,t h ed r i v e rw a sd e v e l o p e di nr e d h a tl i n u xo f 2 6 18 k e m e lv e r s i o n 1 1 a b s t r a c t t h i sp a p e rf i r s ti n t r o d u c e dt h er e l a t e dp r o t o c o l st of ch b a c a r d ( e s p e c i a l l yf c p p r o t o c 0 1 ) ,i n c l u d i n gt h ef c p i oo p e r a t i o np r o c e d u r e ,f c pi n f o r m a t i o nu n i t sa n ds o0 1 1 s e c o n d l y , i td e s c r i b e dt h es o l u t i o no f h a r d w a r e a s s i s t e df c pi m p l e m e n t a t i o n t h e ni t g a v ea l lo v e r v i e wo ft h ei n t e r f a c eb e t w e e nh a r d w a r ea n ds o f t w a r e ,t h ef u n c t i o n a l d i v i s i o no fh a r d w a r em o d u l e s ,s t r u c t u r ea n dp r o c e s s i n gp r o c e d u r eo fh b ad r i v e r a f t e r 廿l 心t h ep a p e re l a b o r a t e do ne a c hh a r d w a r em o d u l ei nd e t a i l ,a n dd e s c r i b e dt h ek e y d a t as t r u c t u r e sa n df u n c t i o n so fs o f t w a r e a tl a s t , w es e tu pt h et e s t i n ge n v i r o n m e n t t h e nt h i sp a p e ra n a l y z e dt h et e s tr e s u l ta n dg a v et h ed i r e c t i o no fh o wt oi m p r o v et h i s s y s t e m k e y w o r d s :h o s tb u sa d a p t e r , f i b r ec h a n n e lp r o t o c o lf o rs c s i ,d m ae n g i n e i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: j 杰拄 日期:趵口年石月2 日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 址一 导师签名: 日期:加f o 年月2 - 日 第一章引言 1 1 存储区域网络 第一章引言 存储区域网络( s t o r a g ea r e an e t w o r k ,s a n ) 是一种将远方存储设备( 如磁 盘阵列、磁带库、光盘库) 连接到服务器,并且能够使服务器上的客户应用将其 作为本地存储设备进行访问的网络体系。一个典型的s a n 将存储设备组成专用网 络,普通设备不能通过通用网络( 如d 网) 看到s a n 的内部结构。由于在2 0 0 0 年后,存储区域网络的建设成本和复杂性得到降低,从而在大型企业和中型公司 中得到大规模采用【l 】。 终端 终端终端 图1 - 1 存储区域网络的应用 s a n 的最主要优点就是数据共享。在过去,数据中心先将s c s i 磁盘阵列作 为存储“岛 ,通过直接连接存储( d i r e c t a t t a c h e ds t o r a g e ) 方式,为特定的应用 服务。一个s a n ,在本质上就是将若干存储“岛 用高速网络连接起来。在此基 础上,s a n 能够帮助增加存储利用率,因为它将每个服务器的私有存储空间改为 电子科技大学硕士学位论文 了公用的磁盘阵列【2 1 。 s a n 本身不能提供文件操作,只能基于块操作。文件系统是建于s a n 之上 的。s a n 的常见应用就是为一些设备如e m a i l 服务器、数据库、高效文件系统提 供高速的块级数据接入。 从效果上看,s a n 使存储管理得到简化并增加了灵活性,譬如线缆和存储设 备不需要在一个服务器到另一个服务器间进行物理上的移动。对于容灾处理来说, s a n 同样提高了效率。传统的s c s i 物理层只能支持几米远的距离,在灾难中根 本无法保证数据的安全。通过s a n 的远距离连接,存储阵列能够放在安全的地方 以保证在灾难中不被破坏【3 】。 大部分存储网络用s c s i 协议在服务器和硬盘驱动器之间通信。s a n 中存在 一个映射层将s c s i 协议映射到其它物理网络。常见的s a n 类型有: 光纤通道( f i b r ec h a n n e l ) 协议,最主要的s a n 网络,将s c s i 映射到 光纤通道; f c o e ( f i b r ec h a n n e lo v e re t h e m e t ) ; f i c o n ( e s c o no v e rf i b r ec h a n n e l ) ,主要用于大型机; h y p e r s c s i ,将s c s i 映射到以太网; i s c s i ,将s c s i 映射到t c p i p 协议栈。 1 2 光纤通道h b a 卡介绍 主机总线适配器( h o s tb u sa d a p t e r , h b a ) 是连接主机和s a n 的接口卡。它 为操作系统提供i o 接口、为服务器提供到存储设备的物理连接。这里提到的存 储设备主要包括s c s i 设备、光纤通道设备和e s a t a 设备。最近,i s c s i 和f c o e 设备的出现带来了以太网h b a 卡,但它和以太网接口卡( n i c ) 不同,这种板卡 上有t c p 卸载引擎。 目前在大部分情况下,h b a 卡特指光纤通道接口卡。光纤通道h b a 卡适用 于所有主要的开放系统、计算机构架和总线( 如p c i 、s b u s ) 。每个h b a 卡都有 全球唯一的w w n ( w 矾dw i d e n a m e ) ,类似于以太网的m a c 地址。w w n 有8 字节长,并有两种类型:节点型w w n ( h b a 卡上的所有端口共享一个w w n ) 、 端口型w w n ( 不同端口有唯一的w w n ) 。h b a 卡也拥有不同的速率:1 g b p s 、 2 g b p s 、4 g b p s 、8 g b p s 、1 0 g b p s 和2 0 g b p s ,大部分h b a 卡的速率是自适应的, 2 第章引言 可以和远端存储设备的端口进行协商以选择共同接受的速率。 h b a 卡通常插在服务器主板的p c i x 或p c ie x p r e s s 插槽中。个h b a 卡 可以拥有一个、两个或四个铜线缆或者光纤接口。目前典型的光纤通道h b a 卡 一般支持4 g b p s 的光纤通道1 2 1 ,并能和2 g b p s 、1 g b p s 的设备后向兼容( 速率自 适应) 。常见的h b a 卡应用如图。 服务器i - i b a 卡 磁盘阵列 + o 嘲疆夔蓟 h b a 卡 f c 交换机或 路由器 磁盘阵列 图1 2i - i b a 卡的应用 为了提高h b a 卡的性能,现今的h b a 卡已经具有一定的智能和数据优化处 理能力。譬如,很多h b a 卡将必须实现的f c p 协议中大量简单重复性的工作由 硬件来完成,这极大地减轻了服务器c p u 的负担。f c p 协议的硬件辅助处理就是 本设计的核心内容。 1 3 国内外研究进展 光纤通道h b a 卡的主要生产商是q l o g i c 和e m u l e x 。到2 0 0 9 年中期,这两个 生产商占据了全球市场份额的9 0 。其他的生产商还有a g i l e n t 、a t t o 、b r o c a d e 和l s i 。但是国内在光纤通道h b a 卡上还是空白。 q l o g i c 进入光纤通道h b a 卡市场已经有了1 0 年的历史。该公司对普通服务 器推出的最新产品是q l e 2 5 6 0 系列。其中q l e 2 5 6 0 是p c ie x p r e s s 接口、单个光 接口、支持下一代8a b p s 光纤通道技术的h b a 卡。其技术特点有:8 4 2g b p s 速率自适应;支持光纤通道第二类和第三类服务;支持f c ,a l 、点到点、交换网 等拓扑结构;支持f c p 3 协议:2 g b p s 速率支持线缆距离最远5 0 0 米、4 g b p s 速 3 9 9 电子科技大学硕士学位论文 率支持线缆距离最远3 8 0 米、8 g b p s 速率支持线缆距离最远1 5 0 米;8 通道p c i e x p r e s s 接口,支持2 0 版本的p c ie x p r e s s 基本规范;l c 头的s f p 光口;支持的 操作系统有w i n d o w s 、s o l a r i s 、r e ah a tl i n u x 、v l v l w a r es e r v e r 、n e t w a r e 等1 4 j 。 该系列还有多端口的h b a 卡,其中q l e 2 5 6 2 支持双光1 3 、q l e 2 5 6 4 支持四光口。 e m u l e x 的光纤通道h b a 卡以性能卓越著称,同款产品中e m u l e x 往往具有 更大的数据吞吐量和更高效的c p u 利用率。相对于q l e 2 5 6 0 ,e m u l e x 的同款产 品是l p e l 2 0 0 0 。该产品的一些性能优化技术如下:帧级的多路技术以及失序帧的 重组技术以保证h b a 卡f c 链路的效率;通过奇偶性、c r c 、e c c 等差错校验 与恢复技术保证端到端的数据安全;通用导入能力保证对于所有给定硬件能够自 动选择合适的导入环境;实时事件的记录与跟踪能够对s a n 问题进行快速诊断。 传统的h b a 卡硬件只进行光纤通道的f c 0 、f c 1 、f c 2 相关协议的处理, 通过总线交给驱动的依旧是f c 帧;驱动完全实现f c p 映射,将f c 帧转换为s c s i 命令以及数据交给操作系统,但是这种处理方式非常低效。 f c p 硬件辅助处理将部分f c p 协议功能移交给硬件完成,硬件交给驱动的是 s c s i 命令以及数据,驱动只在一次i o 操作结束后进行相关处理,这极大地降低 了服务器c p u 的负担。现今大部分的h b a 卡产品都拥有f c p 硬件辅助处理功能, 这种辅助处理没有固定的方案可寻,不同产品拥有不同的解决方案,因此它们的 性能也有较大差异。 1 4 本课题的研究目的与意义 今天,随着信息技术的突飞猛进,商业运转和学术研究中产生了越来越多的 海量数据。存储区域网络已成为人们解决存储带宽、容量和管理问题的首选方案。 现今s a n 主要包括f cs a n 和i ps a n 两种。f cs a n 的物理网络为光纤通道, 高效、稳定、安全是其主要优势;i ps a n 则基于十分成熟的i p 网络,最主要的 实现技术为i s c s i ,具有管理维护简单、成本低的特点。 光纤通道h b a 卡是将服务器接入f cs a n 必不可少的接入设备。它将服务 器系统的s c s i 命令转换为f c 帧通过f c 交换网络传送到对应的储存设备中。整 个h b a 卡涉及到f c 协议的实现和f c p 映射协议的实现。f c 处理部分( 包括f 端口、n 端口登录) 由同项目组的其它同学完成,本课题的研究目的是f c p 协议 如何通过硬件和软件联合实现并且达到较高的处理性能。 4 第一章引言 目前国内在光纤通道h b a 卡上还是空白,国内市场完全被美国的几家公司垄 断。本文通过对f c p 协议进行分析,建立了光纤通道h b a 卡硬件以及驱动的构 架模型。本文第二章对f c 协议和f c p 协议进行了简要分析,第三章详细描述了 f c p 协议硬件辅助处理的设计方案,并对h b a 卡的硬件和软件给出了构架模型, 第四章描述了h b a 卡硬件模块的设计与实现,第五章对h b a 卡驱动进行详细描 述,第六章对样机的测试与结果进行了介绍。 电子科技大学硕士学位论文 第二章h b a 卡相关协议分析 2 1 光纤通道( f i b r ec h a n n e l ) 协议 光纤通道是一种双向、点到点、串行的数据通道,用于数据的高速传输。该 协议可拥有三种拓扑结构:两个n 端口通过点到点链路的连接;若干n 端口通过 交换网络( 在f c 协议中称为f a b r i c ) 的连接;若干l 端口通过环形拓扑( 在f c 协议中称之为a r b i t r a t e dl o o p ) 的连接。 从功能上,光纤通道可以看作某些协议通用的传输通道,那些协议被称之为 上层协议( u p p e r l e v e lp r o t o c o l ,u l p ) ,例如s c s i 协议、口协议等等。 光纤通道协议栈的层次结构如下图【5 】。 f c - 4 映射 f c 3 服务 f c - 2 协议 f c 1 编码 图2 - 1 光纤通道协议栈的层次结构 物理接口( f c o ) 包括传输介质、发送器、接收器和其它接口。光纤、同轴 电缆和双绞线都可以作为传输介质。该层协议主要定义了各种物理介质及相关驱 动器、接收器在不同速度下的各种规范。 f c 1 层作为光纤通道的传输协议,主要包括了串行编码、串行解码、错误控 制等。 f c 2 层,主要定义了端到端传输数据块的相关机制与规则,包括多种服务等 级、帧格式定义、序列的分解与组装、交换管理、地址分配、多播管理等等。 6 第二章h b a 卡相关协议分析 f c 3 层提供了多个n 端口之间的服务集,包括链路服务和搜索组协议。其中 链路服务是必须具备的。 f c - 4 是光纤通道协议栈的最高层,它定义了低层f c 协议与u l p 之间的映射 规则。如果u l p 是s c s i 命令,那么该层协议就是f c p 。 2 1 1 光纤通道数据层次 光纤通道对数据的传输定义了专用的层次结构:交换( e x c h a n g e ) 、序列 ( s e q u e n c e ) 、帧( f r a m e ) 。 交换,数据传输结构的最高层,定义了两个节点之间的一次对话( 信息交互) 。 所有的数据传输都是一次交换的一部分。一个交换由一个或多个相关序列构成。 这些序列的方向可能相同或相反,但必定不会同时发生。如果与上层协议进行映 射后,相当于一次设备的i o 操作。 序列,在网络体系结构中相当于一个数据报或分组。一个序列由一个或多个 帧组成,这些帧拥有相同的序列d 。同一序列中的所有帧必定都是同向的。一个 序列的长度任意,但是必须要满足多种时序和复杂性的约束。一个节点可能无法 一次将整个序列完整发出,因此序列还需要划分为帧结构。 帧,两个节点信息交互的最小单元,同样面临很多严格的约束。各种f a b r i c 和节点都会有各自的强制约定,节点会发出不同长度的帧以满足这些规定。一个 f c 帧的结构如下图。 字段名称 长度( b y t c ) s o f 帧载荷 e o f 定界符 帧报头 c r c 网络报头关联报头设鲁报头 定界符 ( 可选)( 葡选)( 可选) 教据 1 63 2l 洲 42 444 o 2 1 1 2 图2 - 2f c 帧的结构 协议中支持的数据载荷长度可以达到2 1 1 2 字节,但为了方便操作实际上大部 分设备只能支持到2 0 4 8 字节。 2 1 2 光纤通道协议封装 光纤通道支持多种著名的网络协议。这是因为协议栈中定义了f c - 4 层,描 述了上层协议( u l p s ) 与f c 低层协议( f c 0 、f c 1 、f c 2 、f c ,3 层) 的映射机 电子科技大学硕士学位论文 制。通过f c 4 的映射,u l p 数据转换为f c 的数据格式进行传输。 为了方便理解,这里对f c 协议的操作进行一次概念性的描述。 网络数据分组相当于光纤通道的序列; 为了发送一个序列,发起端节点( o r i g i n a t o r n o d e ) 将序列分割成帧; u l p 数据分组写入各个光纤通道帧的数据载荷中; 给每个帧加上s o f 、帧头、c r c 和e o f 等信息; 发起端节点将这些封装好的帧通过f cf a b r i c 或仲裁环发送到相应节点 ( r e s p o n d e rn o d e ) ; 。 相应节点接收并组装序列; 当数据传输完毕后,u l p 对接收到的数据进行处理。 在本设计中,u l p 是s c s i 协议,那么f c 4 层就是f c p 协议。由上面的分 析可以看到对s c s i 数据块的分割与组装以及f c 帧的封装操作成为f c p 协议的 主要处理工作。如果交给软件去做,会极大地增加c p u 的负载。但是这些操作的 复杂性不高,如果交给硬件来完成,会极大地提高h b a 卡的效率和性能。因此 本设计的核心就是f c p 协议部分卸载的实现。 2 2f c p ( f i b r ec h a n n e lp r o t o c o lf o rs c s i ) 协议 f c p - 4 协议是a n s it 1 0 制定的f c p 映射协议的第四版。本协议主要描述如 何将s c s i 协议的命令、数据、状态映射成能够在f c 协议栈中传输的信息单元 ( i u ) 。 2 2 1s c s i 与f c 协议的映射关系 下表将s c s i 协议和f c 协议之间对应的一些术语进行比照【6 1 。 第二章h b a 卡相关协议分析 表2 1s c s i 协议与f c 协议的术语比较 每个s c s ii o 传输映射为一次独立的光纤通道交换。对于f c p ,交换分为三 个不同的阶段:命令阶段( t h ec o m m a n dp h a s e ) 、数据阶段( t h ed a t ap h a s e ) 、响 应阶段( t h er e s p o n s ep h a s e ) 。每个阶段会传送或接收一个或多个光纤通道序列。 命令阶段。f c p 初始器在命令阶段向f c p 目标器通告执行一次f o 传输 的意图。命令阶段为一个单帧s c s i 命令序列( f c pc 厦n d ) ,包含了传送方向、 传送长度和s c s i 地址等信息。在目标器处理了s c s i 命令序列后,传送进入数据 阶段。如果数据阶段不存在,那么直接进入响应阶段。 数据阶段。写i o 操作的数据阶段分为两步:目标器发送一个传送准备 ( f c px f e rr d y ) 序列告知初始器已经准备好了接收传送数据,当初始器接收 至u f c px f e rr d y ,进入第二步;目标器通过数据序列( f c pd a r a ) 发送或接 收数据。传送的方向由最初的命令序列来定义。数据序列由一个或多个帧构成。 响应阶段。当最后一个f c pd a t a 结束后,进入响应阶段。在该阶段,目 标器发送一个单帧s c s i 状态序列( f c pr s p ) ,描述了命令的处理状况。一旦初始 器处理了该序列,本次s c s if o 传输结束。 9 电子科技大学硕士学位论文 2 2 2f c p 信息单元( f c pi u ) f c p 的每个i l j 都被包含在一个帧序列中。从初始器端口到目标器端口传送的信 息单元有f c pc m n d 和f c pd a t a ;从目标器端口返回到初始器端口的信息单元 有f c px f e rr d y 、f c pd a t a 、f c pr s p 7 1 。 f c p c m n d i u f c pc m n di u 承载的可以是一个s c s i 命令,或是一个任务管理请求。如果 f c pc m n di u 中出现了无效的字段组合,目标器将会应答一个r s pc o d e 字段为 0 2 h 的f c pr s pi u 。f c pc m n di u 的字段定义如下图示。 b y t e0 b y t e7 b y t e8 b y t e 9 b y t e l 0 b y t e l l b y t e l 2 b y t e 2 7 b y t e 2 8 b y t en b y t e n + 1 b y t e n + 2 b y t e n + 3 b y t e n + 4 b y t e n + 5 b y t e f 嘶 b y m i 冲7 b y t e n + g f c pl u n c o h h 哇a 1 、i dr e f e r e n c en u e r r e s e r v e dp 刚0 砌t yt a s ka t t l u b u t e t a s k i a n a g e 正n tf l a g s a d d i t i o n a lf c pc d bl e n g t hr d d a t w i a t f c p _ c d b a d d i t i o n a lf c pc d b ( i f a n y ) f c pd l f c p _ b i d i r e c t i o n a lr e a d _ d l ( i f a n y ) 图2 - 3f c p c m n di u 的格式 ( 1 ) 逻辑单元号( f c p l u n ) f c p 逻辑单元号字段指明t s c s i 目标设备中逻辑单元的地址。 每个目标器的f c p 端口必须接受地址为l u n0 的i n q u i r y 命令。如果目标器能 够支持非o 的l u n ,目标地址为l u no 的r e p o r tl u n s 命令将会获得各个逻辑单 1 0 第二章h b a 卡相关协议分析 元的信息。 ( 2 ) 命令参数号( c r n ) c r n 字段是一个由初始器端口定义的号码,用于对命令进行精确传送检查 ( p r e c i s ed e l i v e r yc h e c k i n g ) 。如果允许精确传送功能,非o 的c r n 字段表示从特定 初始器端口发送到特定设备逻辑单元的命令参数号,以确定命令传递顺序。如果 不允许命令的精确传递,那么该字段将被忽略。若f c pc m n di u 承载的是任务管 理请求,该字段作为保留字段并设置为o 。 ( 3 ) 优先权( p r i o t y ) p r i o r i t y 字段用于确定任务集中任务之间的调度先后关系。如果t a s k a t t r i b u t e 字段的内容是不是“s i m p l e ,该字段将作为保留字段。 ( 4 ) 任务属性( t a s ka t t r m u t e ) 任务属性字段的数值确定了与c d b 相关的任务属性。 ( 5 ) 任务管理标识( t a s km a n a g e m e n tf l a g s ) 该字段中的任务管理标识请求进行任务管理功能。如果字段中有任一个比特 为1 ,则f c pc m n d 中的f c pc d b 字段、f c pd l 字段、t a s k a t t r j b u t e 字段、r d d a t a 比特、w r d a t a 比特将被忽略。 ( 6 ) r d d a t a 和w r d a t a 比特 如果r d d a t a 比特为l ,那么初始器f c p 端口将会从目标器f c p 端口接收 到f c pd 触f a m 。如果w r d a r a 比特为1 ,那么初始器f c p 端口将会向目标器 f c p 端1 2 1 发送f c p d a t a i u 。 ( 7 ) f c pc d b 字段 f c pc d b 字段包含发向指定逻辑单元的c d b 。c d b 的最大长度为1 6 字节。 如果a d d i t i o n a lf c pc d bl e n g t h 字段为非0 时,c d b 长度超过16 字节, a d d i t i o n a lf c pc d b 字段将会有效。 ( 8 ) f c pd l 字段 对于s c s i 读操作,该字段定义了f c pd a t a 砌载荷中传给应用客户缓存的 数据长度。对于s c s i 写操作,该字段定义了f c pd a t ai u 载荷中从应用客户缓 电子科技大学硕士学位论文 存中发送数据的长度。 - f c 譬e r r d y i u f c px f e rr d yi u 代表目标器f c p 端1 2 准备好了接收写操作的部分或全部 数据。f c px f e rr d yi u 含有初始器f c p 端口请求的数据传输服务参数,如 f c pd a t ai u 的数据长度和偏移量。其格式如下图所示。 b y t e0 b y t e3 b y t e 4 b y t e7 b y t e8 b y t e l l - - - - - - - - - - - f c p _ d a t a _ r o - _ - - _ _ _ _ _ _ - _ _ f c pb u r s t - l e n - - - - - - - - - - - - - r e s e r v e d - - - - - - - - - - - - 图2 - 4f c p x f e r r d yi u 的格式 ( 1 ) f c p d a t 6 幔o f c pd a t ar o 字段表示f c pd a t ai u 中第一个数据字节的相对偏移。 ( 2 ) f c p b u r s t l e n f c pb u r s tl e n 字段表示目标器f c p 端1 3 用于接收下一个f c pd a t ai u 数据的缓存大小,同时也是初始器f c p 端1 2 1 将要发送的下一个f c p d a l 队的 数据长度。 f c p d a t a i u 与f c pi o 操作有关的数据是和f c pc m n di u 在同一个交换中传送的。对 于一个f c p c m n di u ,可以通过一个或多个f c p d a t a i u 传输s c s i 数据。如 果s c s i 数据由多个f c p d a r a 来传送,f c 帧头参数字段中的相对偏移值可 以确保s c s i 数据能够按照正确顺序重组。 对于单向读写操作,在数据传送前,初始器都将申请一个f c p _ c m n di u 中f c pd l 字段定义大小的缓存。如果是写i o 操作,缓存中含有将要传送到目标 器的数据。如果是读i o 操作,缓存用来接收目标器发送来的数据。目标器f c p 端 1 2 1 不应请求传送( 写i o 操作) 或者传送( 读i o 操作) 超过f c p _ d l 字段定义大小 的数据。 1 2 第二章h b a 卡相关协议分析 本设计不考虑双向读写操作。 f c pr s pi u f c pr s pi u 提供f c pi o 操作的完成信息。这些信息包括:s c s i 状态、协议检 验和自检感应数据。如果f c pc m n di u 请求的是任务管理功能,目标器f c p 端口 在相应f c pr s pi u 的r s pc o d e 字段中反馈任务管理的完成状态。 该信息单元的字节1 0 和字节l l 归纳了f c pi o 操作的完成状态,并指示了其它 字段的含义和有效性。当一个f c pi o 操作成功完成时,f c pr s pi u 的字节l o 和字 节1 1 应为全0 ,表明该i u 没有提供其它信息。如果字节1 0 或字节1 1 不全为0 ,那么 应用客户需要检测f c pr s pi u 的其它字段,以确定究竟该i o 操作是失败了、处于 可重试的暂时情况还是有一个预料到的响应发生。 2 2 3f c pi o 操作流程 ( 1 ) s c s if c p 读操作 带有单个数据的典型s c s if c p 读操作的流程如图。 初始器f c p - p o r t 功能l i t目标器f c t p o r t 功能 命令请求逍f c pc m 墨n 兰d u - - - _ - 一 回一f c p d a t a i u _ _ _ _ f c p 初始器 【指示命令结束】 图2 - 5s c s i f c p 读操作 ( 2 ) s c s if c p 写操作 带有三个数据m 的典型s c s if c p 写操作如图。 1 3 【准备数据传输】 发送数据行为 【准备响应消息】 响应 电子科技大学硕士学位论文 初始m f c i p o r t 功能i u 目标器f l p o r t 功能 命令请求 第一次数据传输行为 第二次数据传输行为 第三次数据传输行为 【指示命令结束】 f c p 初始器 命令阶段 巡 数据阶段 图2 - 6s c s i f c p 写操作 ( 3 ) s c s if c p 无数据传送或c h e c kc o n d i t i o n 操作 【准备接收数据缓冲区】 第一次数据传输请求 第二次数据传输请求 f c p 目标器第三次数据传输请求 【准备响应消息】 响应 一个无数据传输的典型s c s if c p 操作如图( 原因可能是错误或者本来就不需 要传送数据) 。 初始器f c pp o r t 功能 i u 目标器f c p - - p o r | 功能 命令阶段 避竺 响应阶段 f c l r s 步 - f c p 目标器 【执行命令】 响应 图2 7s c s if c p 无数据传送或c h e c kc o n d i t i o n 操作 ( 4 ) s c s if c p 多数据单元读操作 一个带有多个f c pd a t ai u 的典型s c s i 读操作如图。 1 4 p, 旬器 束 求 结 请 令 令 命 命 示旨 时 第二章h b a 卡相关协议分析 画 目标器f c p _ - p o r t 功能 图2 - 8s c s if c p 多数据单元读操作 【准备数据传输】 发送数据行为 发送数据行为 发送数据行为 【准备响应消息】 响应 篙国 酞, 斟 ! 篓望一国尚亍爹1 2 3 本章小结 图2 - 9s c s if c p 任务管理操作 本章对h b a 卡的两大协议一一光纤通道协议和f c p 协议进行了分析。首先 介绍了光纤通道协议族的构架,并从报文的数据层次和协议封装两个角度分析了 该协议。然后详细介绍了f c p 协议,特别是对f c p 信息单元和i o 操作流程进行 了详细分析。 1 5 电子科技大学硕士学位论文 3 1h b a 卡功能描述 第三章h b a 卡设计 本设计的目标是一个拥有单通道p c ie x p r e s s 接口、2 g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论