虚拟储存网络交换器的封包转送装置与方法

文档序号:7682261阅读:229来源:国知局
专利名称:虚拟储存网络交换器的封包转送装置与方法
技术领域
本发明是关于 一 种虚拟储存网络交换器
(virtualization switch)的封包转送装置与方法,可应用于网际网络小型计算器系统接口 ( InternetSmall Computer System Interface, iSCSI) 连线所建立的交换器(switch)环境中。
背景技术
储存装置的网络化是网际网络发展的趋势之一,iSCSI传输协议为 一 新兴起的网络储存技术标准。储存局域网络(Storage Area Network, SAN)是特指连结储存设备与服务器的网络,是以网络串联储存设备。相较于独立磁盘冗余阵歹U ( Redundant Array ofIndependent Disks, RAID)及小型计算器系统接口(Small Computer System Interface, SCSI) 等将月艮务器与储存设备直接连结的技术,网络储存技术除了具有高速传输能力,也不会因服务器本身而限制储存
9设备的扩充与备份,因此扩充性与可靠性佳。
由于极高的频宽需求,光纤信道(fiber channel ) 是目前常用的储存网络连结技术。另一个新兴起的储 存网络技术,就是刚完成标准制定的iSCSI的传输协 议。iSCSI传输协议主要的功能是将SCSI的命令及数 据,通过iSCSI的协议数据单元(ProtocalDataUnit, PDU)在IP网络上传送,由iSCSI协议,使IP网络也 可以成为储存网络。对客户端而言,以IP网络作为储 存网络只需将其服务器及储存设备换成iSCSI接口, 使用原有的IP网络的交换设备,就可建置出储存网络。
图1是iSCSI虚拟储存网络的一般的一个实施范 例示意图。如图1所示,客户端1 0 2安装 iSCSI启 始(initiator) 1 1 0的马区动程序(driver)与虚拟 月艮务器(virtualization server) 1 0 1连结。{诸存 端l 0 3安装 iSCSI目标(target) 1 2 0的驱动程 序与虚拟服务器l 0 l连结。虚拟服务器l 0 l除了 安装iSCSI启始与目标的驱动程序外,再加上虚拟化 软件层1 4 0 。
基于此虚拟化软件层1 4 0的设定,以iSCSI封 包数据流的角度来观察iSCSI封包栏位的变化。 一开 始由虚拟服务器1 0 3中交换器的iSCSI目标 (target) 1 2 0接收到 iSCSI封包并解开此封包,
10传递给SCS I层130来读取命令,呼叫虚拟化软件层
1 4 O转换真实存取位置,产生SCSI存取命令格式, 最后将SCSI命令封装成iSCSI封包传送出去。在这一 系列的转换过程中,iSCSI由最初输入(input)的封 包格式,除去表头(header )部分,撷取负载量
(payload)的SCSI命令(CDB), 存取SCSI层,经过 虚拟化软件层对映(mapping )找到数据实际存取
(access)位置,又重新产生SCSI命令,最后再加上 iSCSI header传送。
从输入(input)的iSCSI封包至U最后输出(output) 的iSCSI封包,在外观上,两者都是同样协议的iSCSI 封包,但是从虚拟化交换器(virtualization switch) 内部观察,却需要经过多层的软件协助,才能完成此 基于iSCSI连线架构的虚拟化网络储存。最终要送出 的iSCSI封包也重复经过多余的数据搬移动作,包括 一开始的拆解,最后又回到产生等动作。
在既有的技术中,使用iSCSI协议作为连线方式 的虚拟化网络储存技术可归纳为以下几类。
第 一 类如图2所示,以iSCSI交换器2 0 1与 iSCSI使用者主机(host)端2 0 2关系来看,管理储 存配置的代理机制(agent),分散在数据路径(data path)之外,传输的数据不经过储存服务器的交换器,可以直接到达网络储存装置2 0 3上。数据在离开使
用者端后,就马上传送到储存装置2 D 3上,数据路
径上没有多余的协议处理与数据复制。然而,在使用
者端与储存装置端需要安装iSCSI代理机制(agent),
如标号210与2 2 0所示,来与储存服务器交换存
取"f曰息 。
例如,美国专禾U US6,8 4 5,4 0 3的文献中,
将iSCSI协议的存取封包区分为控制类别与数据类别。
控制类别的封包由使用者端传送到 一 个存取管理服务
器上,服务器接着传递此命令到真实储存装置,数据
类别则通过使用者端与真实储存装置端预先建立好的
iSCSI连线直接传送数据,如此可达成最直接的数据传 输路径。但使用者端必需安装特殊的iSCSI driver才 能与管理服务器有功能上的互动,且当储存装置数量 递增,在使用者端与储存装置的iSCSI连线也要跟着 递增。
第二类如图3所示,使用者主机端3 0 2与储存 端3 0 3 —样需要i SCSI代理机制,如标号3 2 0与
3 1 0所示,协助,数据通过交换路由器(switch router ) 3 0 1来传递数据至U储存端(storage )。路
由器以IP层3 1 l简单快速的查表方式,决定数据封 包传送到设定的储存端3 0 3中。所以,数据路径只有IP位置的转换,然而,使用者端需要安装iSCSI代
理机制3 2 0 ,并且存取信息的同步也困难。
例如,美国专利US 6 , 9 3 4,7 9 9的文献中, 使用者端在SCS I命令发出同时,搜寻在使用者端特有 的虚拟IP对应表,找出iSCSI封包传送的IP与TCP 位置,此封包被传送到转化网间连接器(virtualization gateway),再把封包传送到真实的网络存取位置上。 存取的负载(loading)分散在使用者端与真实存取位 置上,保留数据路径上的每个封包传递,只有单纯的 IP位置替换。如此,当更动实体储存装置时,只需在 数据网间连接器(virtualization gateway) 上更改虚
拟IP与实体IP对应,并且传送的封包在数据路径上 只需改变IP与TCP位置的栏位,数据封包没有任何多 余的复制动作。
然而,使用者端需要在iSCSI driver上层实作一 个存取控制模组,才能加入网关的虚拟存取系统。网 关管理虚拟与真实硬盘之间操作容易,但是每个使用 者端存取表上的区块范围(block range)与虚拟TCP 栏位对应关系的修改过程复杂,比较难达成统 一 管理。
第三类如图4所示,iSCSI交换器4 0 1介于使用 者端4 0 2与真实储存装置4 0 3的数据路经之中, 以独立作业(stand alone)方式完成虚拟化网络储存的设计,使用者端安装 iSCSI驱动程序(driver)就可以通过交换器4 0 l存取数据。使用者端4 0二 八
需拥有般的iSCSI启始者(Initiator) 4 1 0就可
存取父换器40 1提供的网络储存。然而,数据封包
在交换器4 01传递过程,需经过多层的协议处理与
数据复制动作,因此会降低存取效能。
例如,美国专利公开号US2 0 0 5/0 1 1 44 6
4的文献中,使用一般iSCSI协议加上虚拟化软件层
达到虚拟化储存网络。在接收到的虚拟位置存取与真
实储存装置间,找出虚拟与实际存取的对应关系,做
数据路径的最佳化,并且可以连结使用者端与储存网
络A山 顿两个不同的传输协议,达到协议转换。然而,在
协议转换的过程中,对传输数据的缓冲没有揭露特殊
的处理方式。以一般的数据缓冲方式会增加多余的数
据复制动作,降低存取效能。
既有的技术实现虚拟化主要有频带内(in-band)和频帀外(out一of—band) 两禾中方式。out—of—ban'd方
式中,虚拟设备是坐落于数据路径之外,可以提供客
户一山 顿与存取装置之间 一 个高效能的数据传输路径。然
而当变动存取装置的配置后,虚拟设备的更新与使
用者之间的沟通会比较费时,并且客户端也需安装与
虚拟装置沟通的软件接口 ,比较不符合对储存装置可
14直接存取的方便性in-band方式中,虚拟设备安置在
使用者与储存装置的数据存取路径之中,虽然储存装
置群在变动后,管理上比较方便,并且可以提供客户
一山 顺对储存装置直接存取的便利性,然而客户A山 顺对虚拟
设备的数据询问等数据量,会与真实数据传输路径共
同一频宽,如此会降低数据传输效率。
上述两种方法中, 用 in_band 方式来达成虚拟化
存取,数据路径上的储存服务器通常独自完成虚拟与
实体存取地址转换的工作,而 out_of_band方式是将
虚拟存取工作量分散(distributed) 在储存服务器与
使用者一山 乂而上的代理机制。

发明内容
本揭露的实施范例中,可提供一种虚拟储存网络
、-父换器中封包转送装置与方法,可应用iSCSI连线所
建的交换器环境中。本揭露的实施范例中,在iSCSI协议连线的两端,即客户端与储存端,使用iSCSI会
议session) 连线査表对应方式,封包于会议
S 6ssion)连线的两端间直接转送,完成客户端与储
存上山 顺的数据交换。
在一实施范例中,本揭露是关于一种虚拟储存网
络交换器中封包转送装置,此虚拟储存网络交换器中,前端的 一 目标模组与至少 一 使用者端建立连线,后端 的 一 启始者模组与至少 一 个网络储存端建立连线,此
封包转送装置可包含 一个标头撷取器(Header Extractor)、 一个分发器(D i s p a t c h e r )、以及一个转 送单元(Fordwarding Unit), 标头撷取器。当 iSCSI session连线完成系统认证后,标头撷取器接管iSCSI 连线上至少 一 个封包,并撷取此 头数据;分发器决定这些被接管 单元在已建立连线的前端与后端 的动作,包括将分发器接收来的 地址的动作、建立客户端接口 ( client-side interface) 与储存端接PI (storage- side interface) 的对应关系的对应关系,以及传递连线上夹带的负载 数据的动作。
在另一实施范例中,本揭露是关于一种虚拟储存 网络交换器的封包转送方法,此方法可包含从iSCSI 会议(session)所使用的TCP连线中接收的至少 一 个 iSCSI封包里,只撷取每个iSCSI封包的表头;对于每 个iSCSI封包,查看该封包的格式是否为合格转送的 类型;对合格转送的封包,检査是否为iSCSI命令 (Cmnd)类型的封包;若是,将此iSCSI命令(Cmnd) 类型的封包的相对应的虚拟存取地址信息转换成真实
至少—■个个封包的表
的封包的流向转送
之间作封包直接转送
虚拟地址转换成真实地址,并加入新的对应关系于动态会议连线对照表
DSMT )中从动态会议连线对照表(DSMT)中找
出对应的巨的一山 顿会议识别码(session ID)与启始者
工作标签i ni tiator task tag, ITT)栏位;根据此
巨的丄山 顺会议的连线状态现况,修改iSCSI封包表头,
并传送修改后的iSCSI表头与来源TCP连线的iSCSI负载数据
本揭露的封包转送机制除了可在具有TCP协议功
能的操作系统下实施外,也可以实现在多处理器架构
的系统


以下配合下列附图及实施例的详细说明,将上述
及本发明的它目的与优点详述于后,其中
图1是iSCSI虚拟储存网络的 一 般实施的一个范
意图
图2是一个概要示意图,说明另一种达成虚拟化
网络储存的技术
图3是个概要示意图,说明另一种达成虚拟化
网络储存的技术。
图4是个概要示意图,说明另 一 种达成虚拟化
网络储存的技术
17图5是SCSI协议数据单元从使用者端到储存端
的封包直接转送的处理流程的一个示意图,并且与本
揭露中某胜实施范例 一 致。
图6是一范例示意图,说明虚拟储存网络交换器
的封包转送装置的结构,并且与本揭露中某些实施范
例致。
图7是范例示意图,说明封包转送装置中各模
组的细部动作,并且与本揭露中某些实施范例一致。
图8是动态会议连线对照表中各元素的内容及建
过程的个范例示意图,并且与本揭露中某些实施
范例致
图9说明个虚拟地址存取要求对应到真实的储
存位置为多个不同装置的一个范例示意图,并且与本
揭露中某些实施范例 一 致。
图10说明会议连线对照表中各元素后面被设定
个指不位的个范例示意图,并且与本揭露中某些
实施范例致
图11说明PDU复制接管模组在封包的流向上,
扮演封包重制和整合的角色,并且与本揭露中某些实
施范例致
图12是范例流程图,说明当客户端发出REA[
人 口卩令的要求动作时,PDU复制接管模组如何实现,并且与本揭露中某些实施范例 一 致。
图13是一范例流程图,说明当客户端发出WRITE命令的要求动作时,PDU复制接管模组如何实现,并且
与本揭露中某胜实施范例 一 致。
图14是一范例示意图,进 一 步说明地址转换器
接口输入与输出的参数,并且与本揭露中某些实施范
例 一 致
图15是范例流程示意图,说明虚拟储存网络
交换器的封包转送装置的方法,并且与本揭露中某些
实施范伊J致
图16A是单一处理器系统上,iSCSI、封包转送
机制和核心单元的关系的范例示意图。
图16B是多处理器系统上,iSCSI、封包转送机
制和核心单元的关系的范例示意图。
图17是多处理器系统上,封包转送装置的几个
模组分散在独力..的微处理器上执行的范例示意图,
具体实施例方式
本揭露的实施范例中,是在 一 网络协议,例如
iSCSI网络协议,连线所建立的交换器环境中,提供一个封包直接转送(forward)的桥梁,iSCSI封包从使
19用者端至储存端的处理流程中不需要经过多余的封包表头的拆解、读取、转址、表头建立等繁复的动作。图5是i SCS I协议数据单元从客户端到储存端的封包直接转送的处理流程的一个示意图,并且与本揭露中某些实施范例 一 致。
参考图5 ,如标号5 1 0所示,i SCS I协议数据单元在客户端5 0 2到储存端5 0 3的处理流程中,只接收封包表头来处理。接着如标号5 2 0所示,通过直接转送机制,找出对应的iSCSI连线信息。如标号
5 3 0所示,再将封包表头直接传送到储存端5 0 3 。从储存端5 0 3回送到客户端5 0 2的i SCS I协议数据单元一样在接收表头后,如标号51l所示,通过直接转送5 2 0机制找到要求此数据的客户端5 0 2连线,接着回传封包表头到客户端5 0 2 ,如标号5
3 1所示。
换句话说,本揭露在使用者端与网络储存装置端之间,提供 一 个衔接的桥梁。衔接的对象是使用i SCS I网络协议为连线方式的iSCSI session连线。衔接的方法是以建表的方式来产生使用者与储存装置两端的一对一连线对应关系。
对应关系建立之后,连线上的所有i SCS I协议封包的表头经过栏位修改后,连同夹带的数据,直接转送(forward)到网络储存装置端,从网络储存装置端
响应的数据,以同样的查表方式找到使用者端对应的
iSCSI连线,直接将封包传送到使用者端。搭配既有的虚拟化交换器的软件层做法,本揭露的实施范例在封包转送过程依然可以提供使用者虚拟化的储存效果。并且本揭露的封包直接转送单元(Forwarding Unit)独立化以后,可以在具有多处理器的平台上得到更好的执行效能。
图6是 一 范例示意图,说明虚拟储存网络交换器
(virtualization switch)的封包转送装置的结构,并且与本揭露中某些实施范例一致。参考图6,在此虚拟化交换器的环境中,前端的一目标模组(targetmodule),例如iSCSI目标6 2 0,可与至少一使用者端6 0 2建立iSCSI会议(session)连线,后端的一启始者模组(Initiator Module),例如iSCSI启始者
6 1 0 , 可与至少 一 个网络储存端6 0 3建立 iSCSIsession连线。本揭露的封包转送装置的范例结构6 0
0中,包含一个标头撷取器6 6 1、 一个分发器6 6
2、以及一个转送单元6 6 3。
当 iSCSI session连线完成系统认证后,标头撷取器6 6 1接收i SCS I连线上至少 一 个封包,并撷取此至少一个个封包的表头数据。分发器6 6 2决定这
21些被接管的封包的流向。转送单元6 6 3在两已建立iSCSI连线的前端与后端之间作封包直接转送的动作,
包括将分发器6 6 2接收的封包的虚拟存取地址转换成真实地址的动作、建立客户端接口与储存端接口的对应关系,例如在 一 动态会议连线对照表(DynamicSessionMappingTable, DSMT)中建立lt匕对应的关系,以及传递 iSCSI连线上夹带的 iSCSI负载数据(payload) 的动作。
标头撷取器6 6 1可以针对连线上多个iSCSI封包进行数据控制,将iSCSI的表头与数据分离,让整个封包转送过程里只有协议数据单元里表头栏位的数据处理,而不涉及协议数据单元里数据域位的数据搬移动作。
转送单元6 6 3可再包括一个地址转换器(Address Translator, AT)、一个动态会议连线对照表(DSMT)、 一个PDU复制接管模组(PDU DuplicationHandler, PDH)、 一个表头调适器(Header Adaptor)、以及一个数据搬移器(Data Mover)。而封包转送装置的范例结构600中也可包括 一 描述子队列(descriptor queue)。图7说明封包转送装置中这些模组的细部动作,并且与本揭露中某些实施范例一致。参考图7,标头撷取器6 6 l在 iSCSI连线系统
22上认证完成后,双连线的信息中可找出此连线ID记
为Conn)与虚拟存取ID (记为VIun)的信息,将这些
数据组合成个存取描述子(descriptor), 纪录到描
述子队列7 11中,等待下 一 个处理程序进行。描述
子队歹U 71 1是要把接收表头的工作与分析表头的工
作分开,让此两个工作有机会同时进行,并且可以解
决多个连线同时需要要求分发器6 6 2处理的相血 兄问

当描述子队列71l有数据进入,分发器662
会从描述子队列71 1中取出一笔存取描述子,从描
述子信息中可得知收到封包的类型,例如iSCSI命令
iSCSICmn d)、SCSI数据输出 (iSCSI DataOut)、
iSCSI数据输入(iSCSI Dataln)、 iSCSI回复(iSCSI Rsp)、 iSCSI准备传送(iSCSI R2T)等封包的类型,
并决定被接到的封包是否为合格转送类型的封包。若 是命令(Cmnd )类型的封包,则分发器6 6 2会传送
此封包的数据表头至下一单元继续处理。若是命令 (Cmnd )类型以外的其它封包,则分发器6 6 2会将 此封包的表头和夹带的数据一并送回系统上的iSCSI Target做处理;分发器6 6 2可以判断此封包是否直 接交给转送单元6 6 3,让转送单元6 6 3直接转送 到网络储存端6 0 3上。地址转换器7 6 3a的功能在于虚拟存取与真实 位置之间的转换。当地址转换器7 6 3 a接收到虚拟存 取点(Vlun)、存取地址(block)与存取长度(length) 后,就可以找出真实的存取位置,与存取位置所属的 会议(session)的连线。也就是说,地址转换器7 6 3 a可以从虚拟存取点与存取位置中找出真实的存取 地址与会议(session)连线ID的对应关系。
从分发器6 6 2接收过来的iSCSI封包,存取地 址经过地址转换器7 6 3 a的转换后,得知真实存取位 置的会议(session)连线ID与此存取的真实储存装 置数目。PDU复制接管模组(PDH) 7 6 3 b决定来源 封包与转送封包的对应关系,并且在动态会议连线对 照表(DSMT) 7 6 3c中建立此对应的关系。
PDU复制接管模组(PDH) 7 6 3 b在动态会议连 线对照表(DSMT) 7 6 3 c中填入对应元素(entry) 的内容。动态会议连线对照表(DSMT) 7 6 3 c中每个 元素的内容将于图7中说明。在动态会议连线对照表 (DSMT) 7 6 3 c填上对应关系后,PDU复制接管模组 (PDH) 7 6 3b传送封包表头至表头调适器7 6 3d。 表头调适器7 6 3d处理iSCSI表头的栏位修改与传送 动作。若此表头有夹带负载数据(payload),则使用 数据搬移器7 6 3 e直接把接收端的TCP层当作传送数据,在储存端的TCP连线上传送出去。
PDU复制接管模组(PDH) 7 6 3 b可以解决虚拟 与实体对应中 一 对多的对应情况,让使用者在引发一 个虚拟对象的存取时可以拓展出多个真实对象的存 取。表头调适器7 6 3 d可以从动态会议连线对照表 (DSMT) 7 6 3 c中得知i SCS I表头栏位取代的值,接 着将此表头在iSCSI会议(session)隶属的TCP连线 上传送出去。数据搬移器7 6 3 e可以将停留在TCP连 线上的iSCSI负载数据直接当作iSCSI传送的数据, 传送出去。
如此,将使用者对目标端(target)的存取权限 与虚拟化储存装置的设定集中在交换器上做管理,让 使用者可以安装 一 般容易获得的iSCSI启始者
i ni ti a t o r )连结软件,直接把交换器当作是1SCSI
百标者t ar get )做存取:,在交换器上以iSCSI协议
所连结的真实储存装置可以用虚拟化的配置方式7 通
过帐号密码确认提供给使用者存取,使用者端不必安
装任何额外的存取控制软件。数据的接收保留在下层
网络层,通过数据搬移器直接决定数据传送的位置,
减少多余的数据复制次数
图8是动态会议连线对照表(DSMT )中每个元素
的内容及建立过程的 一 个范例示意图,并且与本揭露中某些实施范例 一 致。参考图8 ,动态会议连线对照
表(DSMT) 7 6 3c中每个元素主要有三个栏位,亦即 客户端接口 (Client Side Interface) 8 3 1、 储存 端接口 (Storage Side Interface) 8 3 2、 以及有 效位8 3 3 ,分别记录使用者端的会议连线(s e s s i on ) ID(记为src一sess)禾口启始者工作禾示签(initiator task tag)(记为src_ITT)、储存端的会议连线(session) ID(记为dst —sess )禾口启使者工作丰示签(记为dst_ITT)、 以及对应于同 一 个虚拟存取的存取顺序关系。有效位 可以方便于PDU复制接管模组(PDH) 7 6 3 b来管理 从储存端回传的iSCSI封包。
动态会议连线对照表(DSMT) 7 6 3c中每个元素 的生命期开始于转送单元6 6 3接收到客户端的 iSCSI 命令协议数据单元(Cmd PDU),结束在转送单 元6 6 3接收到储存端的iSCSI 响应协议数据单元
(Rsp PDU)为止。元素存在的期间,从客户端端接收 的协议数据单元(PDU )可用 一 对 一 或是 一 对多个会议
(session)的方式传送到目的端的i S C S I储存装置。 从储存装置回传的数据封包, 一样会经过转送单元6
6 3查表的方式找出要求数据的客户端。
建立元素的过程,从客户端来到转换单元的第一 个iSCSI命令协议数据单元(Cmd PDU)通过地址转换
26器7 6 3 a的协助,可以得知储存端的会议(session) 栏位dst —sess与ITT栏位dst —ITT的数据,同日寸在元 素的有效位栏位中记录此对应是否为 一 对多个会议 (session)的对应关系,从此之后,同一个iSCSI工 作(Task)的协议数据单元(PDU)在进入转送单元6 6 3时,都会以协议数据单元(PDU)的会议(session) 与ITT栏位搜寻动态会议连线对照表(DSMT) 7 6 3 c 中是否有对应的元素,找出目的端的会议(session) ID与ITT栏位,直到从储存端回传最后一个iSCSI响 应(Rsp)封包,才结束此元素的对应关系。
当转送单元6 6 3从客户端接收一 个iSCSI命令 协议数据单元(Cmd PDU),在通过地址转换器7 6 3 a 存取后,得知此虚拟存取的数据量分散在多个实体的 网络储存装置上时,转送单元6 6 3除了执行封包直 接导向的工作以外,还需针对多个涉及此存取命令所 涵盖的网络储存装置,传送存取的iSCSI封包。
例如,假定 一 个使用者发出的存取要求的虚拟地 址 (Request Virtual Address, Request VA) 9 1 0 对应到真实的储存位置(Physical Address, PA)为 两个不同储存装置的PA 1与PA 2 ,如图9所示。当转 送单元6 6 3从地址转换器7 6 3 a得知此存取目标 为分散的两个网络装置,此时转送单元6 6 3中的PDU复制接管模组(PDH ) 7 63 b会依照地址转换器7 6
3 a所提供的目标端数目信息,在动态会议连线对照表 (DSMT) 7 6 3 c中建立多个元素,每个元素代表转送 单元6 6 3需要跟储存端单独完成的工作(Task)的 工作量。
如图1 0所示,PDU复制接管模组(PDH) 7 6 3 b 在建立元素的同时,会在各个元素后面的有效位
(Vbit)作标记,让从储存端回传的iSCSI封包 得知是不是多工作(multi-task)存取中的最后 工作存取。例如,V代表不是最后 一 个工作存取, 表是最后一个工作存取。
图1 1进 一 步说明PDU复制接管模组(PDH) 包的流向上,不仅扮演封包重制也扮演封包整合 色。如图1 1所示,例如,当客户端的使用者发 笔虚拟存取请求,而实体存取数据量(block)为 的封包时,其中数据量A是目标(Target)A上的数据, 数据量B是在目标B上的数据,此时在转送单元6 6
3当中会对储存端的目标A与目标B产生个别的存取 封包,从储存端回传的iSCSI数据协议数据单元(Data PDU )经过修改查表后,会回传到客户端的使用者,而 iSCSI响应协议数据单元(Rsp PDU)则不会传回客户 端的使用者,直到此存取所涉及的最后 一 个目标数据
28存取传输完毕以后(由动态会议连线对照表(DSMT) 7 6 3 c的元素的有效位Vb i t得知),PDU复制接管模 组(PDH) 7 6 3 b才会回传 一 个iSCSI响应协议数据 单元(Rsp PDU)给客户端的使用者。从客户端的使用 者发出的虚拟存取封包要求,经过回传的数据封包, 到最后接收的响应协议数据单元,客户端的使用者完 全感觉不出与一笔只存取一个储存端目标者(Storage
Target)的反应有任何的差异。所以,转送单元66
3中的PDU复制接管模组(PDH) 7 6 3b实际上可扮
演封包重制与整合的角色。
图1 2与图1 3的范例流程图分别说明当客户A山 顺
发出 READ/WRITE命令的要求时,PDU复制接管模组
CPDH ) 7 6 3 b如何实现,并且与本揭露中某扭实施
范例 一 致。
当客户端发出READ命令的要求时,转送单元66
3接收的i SCS I封包通过地址转换器7 6 3 a后,得知 此iSCSI封包真实的读取对象有几个,PDU复制接管模 组(PDH) 7 6 3 b在动态会议连线对照表(DSMT) 7 6 3c中建立对应的元素数目。从地址转换器7 6 3a 对此封包转换后的描述子可得知数据分散在储存端的 情况。随即如图1 2所示,在步骤1 2 0 1中,PDU复 制接管模组(PDH) 7 6 3 b产生数据读取的iSCSI封包至第一个储存端,并等待储存端响应iSCSI Dataln PDU。收至U此卩向应 iSCSI Dataln PDU后,修改栏位后 直接导回使用者端,如步骤1 2 Q 2所示。重复接收 Dataln PDU与导回使用者动作直到储存端响应iSCSI RspPDU为止,结束对此储存端的数据要求,如步骤l 2 0 3所示。接着产生下一个储存端的数据要求,重 复上述的接收步骤,完成动态会议连线对照表(DSMT) 7 6 3c中每个元素对应的接收项目,如步骤l 2 0 4 所示。直至对应的元素中有效位栏位显示出最后一笔 储存端的对应,才将iSCSI Rsp PDU回传给使用者端, 如步骤1 2 0 5所示。
当客户端发出WRITE命令的要求时,PDU复制接管 模组(PDH) 7 6 3 b的动作类似于图1 2中READ的实 现,不同的地方在于使用者发出WRITE的动作之后, 要等待储存端卩向应准备传送(Ready to Transfer, R
2 T)的iSCSI封包,PDU复制接管模组(PDH) 7 6 3 b才可以开始发送iSCSI DataOut PDU到储存装置端。 PDU复制接管模组(PDH ) 7 6 3 b详细的实现动作如
图1 3所示。
PDU复制接管模组(PDH) 7 6 3 b从使用者端接 收横跨多个储存装置WRITE的命令要求后,通过地址 转换器7 6 3 a的指示,在动态会议连线对照表(DSMT )
307 6 3 c中填上数个储存端的项目,如步骤1 3 0 1所 示。再发出对第一个储存端的数据要求并等待接收回 传的iSCSI R 2 T PDU,导回使用者端,如步骤1 3 0 2所示。转送单元6 6 3开始接收iSCSIDataOutPDU, PDU复制接管模组(PDH) 7 6 3 b把接收的iSCSI封 包依照动态会议连线对照表(DSMT ) 7 6 3 c中所列的 储存项目逐一导向真实的储存装置,如步骤l 3 0 3 所示。直到此笔WRITE命令所牵涉的储存装置都写入 后,PDU复制接管牛莫组(PDH) 7 6 3 b才响应 一 个iSCSI Rsp PDU到使用者端,如步骤1 3 0 4所示。
图1 4是 一 范例示意图,进 一 步说明地址转换器 接口输入与输出的参数,并且与本揭露中某些实施范 例 一 致。此范例中,地址转换器7 6 3 a可从输入的虚 拟存取信息,例如虚拟存取点(virtual disk ID)、 虚拟存取地址(virtual block address)与存取数据 长度(access length)等信息,转换出对应此虚拟存 取所包含的实体储存装置数目(physical disk number ),与每个对应的实体储存装置的实体存取点 (physical disk ID)、实体存取地址(physical block address)、 数据存取长度 (access length )、 实体储 存装置所建立的iSCSI会议连线(iSCSI session) ID 等。若对应的实体储存装置数目大于一个,则会有多组同样的实体存取参数。
承上述,在虚拟储存网络交换器中,封包,如iSCSI 封包,从使用者端转送到网络储存端的处理流程,可
以用图1 5的范例流程来说明,并且与本揭露中某些 实施范例 一 致。图1 5的范例中,网络连线方式和封 包转送分别是以iSCSI session所使用的TCP连线和 iSCSI封包转送来说明。
参考图1 5 ,如步骤1 5 1 0所示,从 iSCSI session所使用的TCP连线中接收的至少 一 个iSCSI封 包里,撷取每个iSCSI封包的表头。如步骤l 5 2 0 所示,对于每个 iSCSI封包,查看该封包的格式是否 为合格转送的类型,例如iSCSI Cmnd、 i S CS I Da t aOu t 、 iSCSI Dataln、 iSCSI Rsp、 iSCSI R2T等封包类型, 以决定此封包的流向。如步骤1 5 3 0所示,对合格 转送的封包,检査是否为iSCSI命令(Cmnd)类型的 封包。若是,如步骤1 5 4 0所示,将此i SCS I命令 (Cmnd )类型的封包的相对应的虚拟存取地址信息转 换成真实地址,并加入 一 新的对应关系于动态会议连 线对照表(DSMT)中。例如,可从 iSCSI session所 使用的TCP连线中的信息得知此类型的封包的相对应 的虚拟存取地址信息(如存取点、地址、长度等),将 此虚拟存取地址信息转换成真实存取位置,并且加入
32如第八图的动态会议连线对照表(DSMT)。然后继续进 行步骤1 5 5 0 。
若是iSCSI Cmnd以外的其它合格转送类型的封 包,则如步骤1 5 5 0所示,从动态会议连线对照表
(DSMT)中,找出对应的目的端会议(session) ID 与ITT栏位。例如,从动态会议连线对照表(DSMT ) 中,可以用来源封包的session ID与ITT栏位来找出 对应的目的端会议(session) ID与ITT栏位。
在步骤l 5 6 O中,根据此目的端会议(session) 的连线状态现况,修改iSCSI封包表头,并传送修改 后的iSCSI表头与来源端TCP连线的iSCSI负载数据
(pay load )。例如,可以根据此目的端会议(s e s s i o n ) 的连线状态现况,取代此封包的ITT栏位、CmdSN等栏 位,再将修改过后的iSCSI封包表头连同停留在来源 端TCP连线的iSCSI负载数据,依照目的端session 所使用的TCP连线,将数据传送至目的端。
如此,从交换器目标者(Switch Target)所接收 到的iSCSI封包,至交换器启始者(Switch Initiator ) 要传送的iSCSI封包比较上来看,目标者(Target) 所接收到的 iSCSI 封包格式,就会在启始者 (Initiator)产生同样的i S C S I封包格式传送到目的 端,也就是说,两者的iSCSI表头都具有相同的运算
33码(opcode),除了接收封包的目的地不同,不同的 iSCSI session连线在iSCSI 表头栏位上有些许的差 异之外,其它在表头中描述数据的栏位都不会改变。
因为交换器所接收到的数据经过虚拟化软件层找 出真实网络存取位置后,数据会被完整的传送到目的
端,所以从输入(i甲t) iSCSI封包至输出(output) iSCSI封包来看,本揭露前述的实施范例中,可以成功 地从目标(Target)接收到的iSCSI封包,取代对应 的栏位,产生适合于启始者(Initiator)传送的iSCSI 封包,所以,可免去众多软件层之间多余的封包拆解 与转换的动作。
本揭露的封包转送机制可以实现在单一处理器或 是多处理器架构的系统。图l 6A与图1 6B分别是单 一 处 理 器(s i n g 1 e-pr o c e s s or )与 多 处 理 器 (multi-processor )系统上,iSCSI、封包转送机制 和核心单元(Kernel)的关系的范例示意图。
参考图l 6 A,在单一处理器系统上,此范例是 将i SCS I与封包转送机制置于主机软件层中来执行。 参图l 6B,在多处理器系统上,此范例是由主处理器 用来运作核心单元与i SCS I软件层,而封包转送机制 的部分,是由主处理器以外的微处理器(MicroEngine, ME)来执行,通过特殊的沟通接口 (Core Component)让此微处理器上执行的程序可以跟主处理器上的程序 达到数据交换。
多处理器系统上的范例中, 一种实施的方式是, 可将本揭露的图7实施范例的封包转送装置的几个模 组分散在独立的微处理器上执行,如图17的范例所
示。每 一 个独立的微处理器有自己本地的(local)变
量存取空间,也有共享的静态随机存取内存(SRAM)
存取位置,同时也有自己的程序计数器(program
counter ),让每一个微处理器可以在同一时间同时运
作。不同微处理器之间提供特殊的沟通管道,可由硬 件架构特有的储存空间来达到微处理器之间数据的传
递或信息通知。每 一 个模组独立化的好处是,可以实 施在多处理器的系统架构上,让多个模组有同时运作 的可能,并且减少主处理器的负载,可大幅提升iSCSI 协议数据单元(PDU)在虚拟交换器(virtualization switch)上的传输效率。
所以,本揭露的封包转送机制可以有多种的实现
方式,例如以软件实现、硬件实现、含单一处理器或
多处理器的平台上实现等。
惟,以上所述的,仅为发明的实施例而已,当不
能依此限定本发明实施的范围。即凡是依本发明权利
要求范围所作的均等变化与修饰,皆应仍属本发明专
35利涵盖的范围内
权利要求
1、一种虚拟储存网络交换器的封包转送装置,该虚拟储存网络交换器中,前端的一目标与至少一使用者端建立连线,后端的一启始者与至少一个网络储存端建立连线,其特征在于,该封包转送装置包含一标头撷取器,接收建立于前端的该连线上至少一个封包,并撷取该至少一个封包的表头数据;一个分发器,决定该被接收的封包的流向;以及一个转送单元,在该已建立连线的前端与后端之间作封包直接转送的动作,包括将该分发器接收来的封包的虚拟存取地址转换成真实地址的动作、建立客户端接口与储存端接口的对应关系,以及传递该连线上夹带的负载数据的动作。
2、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中于该前端建立的连线与该后端建立的连线是 一 种使用网际网络小型计算器系统接口的传输协议的网际网络小型计算器系统接口会议的连线,该目标是 一 网际网络小型计算器系统接口目标,该启始者是 一 网际网络小型计算器系统接口启始
3、如权利要求1所述的虚拟储存网络交换器的封包转送装置特征在于,其中该转送单元还包括一个地址转换器,将该分发器接收来的封包的虚拟存取地址转换成真实地址;个动态会议连线对照表,包括多个描述该来源封包与转送封包的对应关系的元素,每个元素至少有客户一山 乂而接、储存端接口 、以及有效位三个栏位;—个协议数据单元复制接管模组,在该动态会议连线对昭表中填入对应元素的内容后,传送出该分发器接收来的封包的表头个表头调适器,处理封包表头的栏位修改与传送以及个数据搬移器,将停留在连线上的负载数据当作传送的数据,传送出去。
4、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中该客户端接口、储存上山 顿接□、以及有效位三个栏位分别记录使用者端的会议连线识别码和启始工作标签、储存端的会议连线和启使者工作标签、以及对应于同一个虚拟存取的存取川页序关系
5、'加1/ 、利求1所述的虚拟储存网络交换器封包转送装置特征在于,其中该标头撷取器产生该至少-个封包表头的存取描述子,每一存取描述子包含相对应连线识别码与虚拟存取点的信息。
6、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中该分发器从该封包的表头得知收到封包的类型,并决定收到的封包是否为合格转送类型的封包。
7、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中该收到封包的类型是命令、数据输出、数据输入、回复、以及准备传送的中种封包类型。
8、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中该封包转送装置是以软件实现、硬件实现、含单一处理器或是多处理器的平台上实现的前述其中一种方式来实现。
9、一种虚拟储存网络交换器的封包转送方法,该虚拟储存网络交换器中,前端的一目标者与至少一使用者端建立连线,后端的 一 启始者与至少一个网络储存A山 顺建立连线,其特征在于,该封包转送方法包含从建立于前端的该连线中接收的至少一个封包里,撷取每一该封包的表头;査看每一该封包的格式是否为合格的类型:对合格类型的封包,检査是否为命令类型的封包; 是的话,将该命令类型的封包的相对应的虚拟存取地址信息转换成真实地址, 并加入一新的对应关系于动态会议连线对照表中:从该动态会议连线对照表中,找出合格类型的每该封包对应的巨的端会议识别码与启始者工作标签栏位:以及修改合格类型的每 一 该封包的表头,并传送出修改后的表头与来源顺连线上的负载数据'
10、如权利要求9所述的虚拟储存网络交换器的封包转送方法,特征在于,其中该新的对应关系包括使用者端的会议连线识别码和启始者工作标签、储存一山 乂而的会议连线和启使者工作标签、以及对应于同一个虚拟存取的存取顺序关系的信息。
11、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中当该命令类型的封包是一数据读取的封包时,该封包转送方法还包括产生数据读取的封包至第 一 个储存l山 顿,并等待第个储存一山 顺响应数据输入协议数据单元收到此响应数据输入协议数据单元后,修改栏位后直接导回—相对应的使用者端;重复接收数据输入协议数据单元与该导回使用者丄山 顿的动作直至lJ第一-个储存端的回复协议数据单元为止,结束对第一个储存端的数据要求;产生下一个储存端的数据要求,重复上述的接收 步骤,完成动态会议连线对照表中每一元素对应的接 收项目;以及直至对应的元素中有效位栏位显示出最后一笔储 存端的对应,才将该最后 一 笔储存端的回复协议数据 单元回传给该相对应的使用者端。
12、如权利要求9所述的虚拟储存网络交换器 的封包转送方法,其特征在于,其中当该命令类型的封包是 一 数据写入的封包时,该封包转送方法还包括通过地址转换,在该动态会议连线对照表中填上至少 一 个储存端的项目;发出对第一个储存端的数据要求并等待接收回传 的准备传送协议数据单元,导回 一 相对应的使用者端;把接收的封包依照该动态会议连线对照表中所列 的储存项目逐一导向至少一个真实的储存装置;以及直到该写入命令所牵涉的储存装置都写入后,才 响应 一 个回复协议数据单元到该相对应的使用者端。
13、如权利要求9所述的虚拟储存网络交换器 >的封包转送方法,其特征在于,其中该虚拟存取地址 信息转换成真实地址至少包括从输入的虚拟存取点、 虚拟存取地址与存取数据长度信息,转换出对应此虚拟存取所包含的实体储存装置数目,与每-'对应的实体储存装置的实体存取占 / 、v、、实体存取地址、数据存取长度、实体储存装置所建立的会议连线识别码
14、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于, 其中该前端建的连线与该后丄山 顺建立的连线是一种使用网际网络小型计算器系统接□的传输协议的网际网络小型计算器系统接□会议的连线,该巨标是一网际网络小型计算器系统接□巨标,该启始者是网际网络小型计算器系统接启始者。
15、如权利要求14所述的虚拟储存网络交换班 益的封包转送方法,特征在于,其中该动态会议连线对照表至少包括一元素,每一该元素的生命期开始于接收到客户端的网际网络小型计算器系统接□命令协议数据单元,结束在接收到储存端的网际网络小型计算器系统接□响应协议数据单元为止。
16、如权利要求15所述的虚拟储存网络交换器的封包转送方法,特征在于,其中每该元素存在的期间,从客户一山 顿上山 顺接收的协议数据单元是用对一或是—对多个会议的方式传送到目的端的网际网络小型计算器系统接储存装置
17.如权利要求9所述的虚拟储存网络交换器 的封包转送方法,其特征在于中该合格类型的封包是命令、数据输出、数据输入、回复、以及准备传送的中种类型的封包。
18、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,中是根据该巨的一山 顿会议的连线状态现况,来修改合格类型的每一该封包的表头
19、如权利要求9所述的虚拟储存网络-、-父换器的封包转送方法,特征在于,其中每一该封包的表头备有相对应的存取描述子,每一该存取描述子包含相对应连线识别码与虚拟存:取点的信息<
20、如权利要求9所述的虚拟储存网络 、-父换器的封包转送方法,其特征在于,其中该封包转送方法是由单处理器上的主机软件层中来执行,
21、如权利要求9所述的虚拟储存网络交换器的封包转送方法,特征在于苴 z 、中该封包转送方法的步骤是分散在一多处理器上的主处理器以外的至少个微处理器中来执行。
全文摘要
一种虚拟储存网络交换器的封包转送装置与方法,可应用于iSCSI连线所建立的交换器环境中。此封包转送装置包含一个标头撷取器、一个分发器、以及一个转送单元。当iSCSI会议连线完成系统认证后,标头撷取器接收iSCSI连线上至少一个封包,并撷取此至少一个封包的表头数据;分发器决定被接收的封包的流向;转送单元在已建立连线的前端与后端之间作封包直接转送的动作,包括将分发器接收来的虚拟地址转换成真实地址的动作、建立客户端接口与储存端接口的对应关系,以及传递连线上夹带的负载数据的动作。
文档编号H04L29/08GK101483662SQ200810001359
公开日2009年7月15日 申请日期2008年1月9日 优先权日2008年1月9日
发明者李晓晖, 江彦宏, 钟逸呈, 陈启钧 申请人:财团法人工业技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1