CN101483662A - 虚拟储存网络交换器的封包转送装置与方法 - Google Patents
虚拟储存网络交换器的封包转送装置与方法 Download PDFInfo
- Publication number
- CN101483662A CN101483662A CN 200810001359 CN200810001359A CN101483662A CN 101483662 A CN101483662 A CN 101483662A CN 200810001359 CN200810001359 CN 200810001359 CN 200810001359 A CN200810001359 A CN 200810001359A CN 101483662 A CN101483662 A CN 101483662A
- Authority
- CN
- China
- Prior art keywords
- package
- line
- data
- network switch
- iscsi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000009471 action Effects 0.000 claims abstract description 31
- 238000012546 transfer Methods 0.000 claims description 28
- 230000005540 biological transmission Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 abstract description 2
- 238000012856 packing Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 19
- 230000007246 mechanism Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 9
- 239000003999 initiator Substances 0.000 description 9
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000027455 binding Effects 0.000 description 2
- 238000009739 binding Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000002834 transmittance Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种虚拟储存网络交换器的封包转送装置与方法,可应用于iSCSI连线所建立的交换器环境中。此封包转送装置包含一个标头撷取器、一个分发器、以及一个转送单元。当iSCSI会议连线完成***认证后,标头撷取器接收iSCSI连线上至少一个封包,并撷取此至少一个封包的表头数据;分发器决定被接收的封包的流向;转送单元在已建立连线的前端与后端之间作封包直接转送的动作,包括将分发器接收来的虚拟地址转换成真实地址的动作、建立客户端接口与储存端接口的对应关系,以及传递连线上夹带的负载数据的动作。
Description
技术领域
本发明是关于一种虚拟储存网络交换器(virtualization switch)的封包转送装置与方法,可应用于网际网络小型计算器***接口(InternetSmall Computer System Interface,iSCSI)连线所建立的交换器(switch)环境中。
背景技术
储存装置的网络化是网际网络发展的趋势之一,iSCSI传输协议为一新兴起的网络储存技术标准。储存局域网络(Storage Area Network,SAN)是特指连结储存设备与服务器的网络,是以网络串联储存设备。相较于独立磁盘冗余阵列(Redundant Array ofIndependent Disks,RAID)及小型计算器***接口(Small Computer System Interface,SCSI)等将服务器与储存设备直接连结的技术,网络储存技术除了具有高速传输能力,也不会因服务器本身而限制储存设备的扩充与备份,因此扩充性与可靠性佳。
由于极高的频宽需求,光纤信道(fiber channel)是目前常用的储存网络连结技术。另一个新兴起的储存网络技术,就是刚完成标准制定的iSCSI的传输协议。iSCSI传输协议主要的功能是将SCSI的命令及数据,通过iSCSI的协议数据单元(Protocal Data Unit,PDU)在IP网络上传送,由iSCSI协议,使IP网络也可以成为储存网络。对客户端而言,以IP网络作为储存网络只需将其服务器及储存设备换成iSCSI接口,使用原有的IP网络的交换设备,就可建置出储存网络。
图1是iSCSI虚拟储存网络的一般的一个实施范例示意图。如图1所示,客户端102安装iSCSI启始(initiator)110的驱动程序(driver)与虚拟服务器(virtualization server)101连结。储存端103安装iSCSI目标(target)120的驱动程序与虚拟服务器101连结。虚拟服务器101除了安装iSCSI启始与目标的驱动程序外,再加上虚拟化软件层140。
基于此虚拟化软件层140的设定,以iSCSI封包数据流的角度来观察iSCSI封包栏位的变化。一开始由虚拟服务器103中交换器的iSCSI目标(target)120接收到iSCSI封包并解开此封包,传递给SCSI层130来读取命令,呼叫虚拟化软件层140转换真实存取位置,产生SCSI存取命令格式,最后将SCSI命令封装成iSCSI封包传送出去。在这一系列的转换过程中,iSCSI由最初输入(input)的封包格式,除去表头(header)部分,撷取负载量(payload)的SCSI命令(CDB),存取SCSI层,经过虚拟化软件层对映(mapping)找到数据实际存取(access)位置,又重新产生SCSI命令,最后再加上iSCSI header传送。
从输入(input)的iSCSI封包到最后输出(output)的iSCSI封包,在外观上,两者都是同样协议的iSCSI封包,但是从虚拟化交换器(virtualization switch)内部观察,却需要经过多层的软件协助,才能完成此基于iSCSI连线架构的虚拟化网络储存。最终要送出的iSCSI封包也重复经过多余的数据搬移动作,包括一开始的拆解,最后又回到产生等动作。
在既有的技术中,使用iSCSI协议作为连线方式的虚拟化网络储存技术可归纳为以下几类。
第一类如图2所示,以iSCSI交换器201与iSCSI使用者主机(host)端202关系来看,管理储存配置的代理机制(agent),分散在数据路径(datapath)之外,传输的数据不经过储存服务器的交换器,可以直接到达网络储存装置203上。数据在离开使用者端后,就马上传送到储存装置203上,数据路径上没有多余的协议处理与数据复制。然而,在使用者端与储存装置端需要安装iSCSI代理机制(agent),如标号210与220所示,来与储存服务器交换存取信息。
例如,美国专利US 6,845,403的文献中,将iSCSI协议的存取封包区分为控制类别与数据类别。控制类别的封包由使用者端传送到一个存取管理服务器上,服务器接着传递此命令到真实储存装置,数据类别则通过使用者端与真实储存装置端预先建立好的iSCSI连线直接传送数据,如此可达成最直接的数据传输路径。但使用者端必需安装特殊的iSCSI driver才能与管理服务器有功能上的互动,且当储存装置数量递增,在使用者端与储存装置的iSCSI连线也要跟着递增。
第二类如图3所示,使用者主机端302与储存端303一样需要iSCSI代理机制,如标号320与310所示,协助,数据通过交换路由器(switchrouter)301来传递数据到储存端(storage)。路由器以IP层311简单快速的查表方式,决定数据封包传送到设定的储存端303中。所以,数据路径只有IP位置的转换,然而,使用者端需要安装iSCSI代理机制320,并且存取信息的同步也困难。
例如,美国专利US 6,934,799的文献中,使用者端在SCSI命令发出同时,搜寻在使用者端特有的虚拟IP对应表,找出iSCSI封包传送的IP与TCP位置,此封包被传送到转化网间连接器(virtualizationgateway),再把封包传送到真实的网络存取位置上。存取的负载(loading)分散在使用者端与真实存取位置上,保留数据路径上的每个封包传递,只有单纯的IP位置替换。如此,当更动实体储存装置时,只需在数据网间连接器(virtualization gateway)上更改虚拟IP与实体IP对应,并且传送的封包在数据路径上只需改变IP与TCP位置的栏位,数据封包没有任何多余的复制动作。
然而,使用者端需要在iSCSI driver上层实作一个存取控制模组,才能加入网关的虚拟存取***。网关管理虚拟与真实硬盘之间操作容易,但是每个使用者端存取表上的区块范围(block range)与虚拟TCP栏位对应关系的修改过程复杂,比较难达成统一管理。
第三类如图4所示,iSCSI交换器401介于使用者端402与真实储存装置403的数据路经之中,以独立作业(stand alone)方式完成虚拟化网络储存的设计,使用者端安装iSCSI驱动程序(driver)就可以通过交换器401存取数据。使用者端402只需拥有一般的iSCSI启始者(Initiator)410就可存取交换器401提供的网络储存。然而,数据封包在交换器401传递过程,需经过多层的协议处理与数据复制动作,因此会降低存取效能。
例如,美国专利公开号US 2005/0114464的文献中,使用一般iSCSI协议加上虚拟化软件层达到虚拟化储存网络。在接收到的虚拟位置存取与真实储存装置间,找出虚拟与实际存取的对应关系,做数据路径的最佳化,并且可以连结使用者端与储存网络端两个不同的传输协议,达到协议转换。然而,在协议转换的过程中,对传输数据的缓冲没有揭露特殊的处理方式。以一般的数据缓冲方式会增加多余的数据复制动作,降低存取效能。
既有的技术实现虚拟化主要有频带内(in-band)和频带外(out-of-band)两种方式。out-of-band方式中,虚拟设备是坐落于数据路径之外,可以提供客户端与存取装置之间一个高效能的数据传输路径。然而,当变动存取装置的配置后,虚拟设备的更新与使用者之间的沟通会比较费时,并且客户端也需安装与虚拟装置沟通的软件接口,比较不符合对储存装置可直接存取的方便性。in-band方式中,虚拟设备安置在使用者与储存装置的数据存取路径之中,虽然储存装置群在变动后,管理上比较方便,并且可以提供客户端对储存装置直接存取的便利性,然而客户端对虚拟设备的数据询问等数据量,会与真实数据传输路径共享同一频宽,如此会降低数据传输效率。
上述两种方法中,用in-band方式来达成虚拟化存取,数据路径上的储存服务器通常独自完成虚拟与实体存取地址转换的工作,而out-of-band方式是将虚拟存取工作量分散(distributed)在储存服务器与使用者端上的代理机制。
发明内容
本揭露的实施范例中,可提供一种虚拟储存网络交换器中封包转送装置与方法,可应用iSCSI连线所建立的交换器环境中。本揭露的实施范例中,在iSCSI协议连线的两端,即客户端与储存端,使用iSCSI会议(session)连线查表对应方式,封包于会议(session)连线的两端间直接转送,完成客户端与储存端的数据交换。
在一实施范例中,本揭露是关于一种虚拟储存网络交换器中封包转送装置,此虚拟储存网络交换器中,前端的一目标模组与至少一使用者端建立连线,后端的一启始者模组与至少一个网络储存端建立连线,此封包转送装置可包含:一个标头撷取器(HeaderExtractor)、一个分发器(Dispatcher)、以及一个转送单元(Fordwarding Unit),标头撷取器。当iSCSIsession连线完成***认证后,标头撷取器接管iSCSI连线上至少一个封包,并撷取此至少一个个封包的表头数据;分发器决定这些被接管的封包的流向;转送单元在已建立连线的前端与后端之间作封包直接转送的动作,包括将分发器接收来的虚拟地址转换成真实地址的动作、建立客户端接口(client-sideinterface)与储存端接口(storage-side interface)的对应关系的对应关系,以及传递连线上夹带的负载数据的动作。
在另一实施范例中,本揭露是关于一种虚拟储存网络交换器的封包转送方法,此方法可包含:从iSCSI会议(session)所使用的TCP连线中接收的至少一个iSCSI封包里,只撷取每个iSCSI封包的表头;对于每个iSCSI封包,查看该封包的格式是否为合格转送的类型;对合格转送的封包,检查是否为iSCSI命令(Cmnd)类型的封包;若是,将此iSCSI命令(Cmnd)类型的封包的相对应的虚拟存取地址信息转换成真实地址,并加入一新的对应关系于动态会议连线对照表(DSMT)中;从动态会议连线对照表(DSMT)中,找出对应的目的端会议识别码(session ID)与启始者工作标签(initiator task tag,ITT)栏位;根据此目的端会议的连线状态现况,修改iSCSI封包表头,并传送修改后的iSCSI表头与来源TCP连线的iSCSI负载数据。
本揭露的封包转送机制除了可在具有TCP协议功能的操作***下实施外,也可以实现在多处理器架构的***。
附图说明
以下配合下列附图及实施例的详细说明,将上述及本发明的其它目的与优点详述于后,其中:
图1是iSCSI虚拟储存网络的一般实施的一个范意图。
图2是一个概要示意图,说明另一种达成虚拟化网络储存的技术。
图3是一个概要示意图,说明另一种达成虚拟化网络储存的技术。
图4是一个概要示意图,说明另一种达成虚拟化网络储存的技术。
图5是iSCSI协议数据单元从使用者端到储存端的封包直接转送的处理流程的一个示意图,并且与本揭露中某些实施范例一致。
图6是一范例示意图,说明虚拟储存网络交换器的封包转送装置的结构,并且与本揭露中某些实施范例一致。
图7是一范例示意图,说明封包转送装置中各模组的细部动作,并且与本揭露中某些实施范例一致。
图8是动态会议连线对照表中各元素的内容及建立过程的一个范例示意图,并且与本揭露中某些实施范例一致。
图9说明一个虚拟地址存取要求对应到真实的储存位置为多个不同装置的一个范例示意图,并且与本揭露中某些实施范例一致。
图10说明会议连线对照表中各元素后面被设定一个指示位的一个范例示意图,并且与本揭露中某些实施范例一致。
图11说明PDU复制接管模组在封包的流向上,扮演封包重制和整合的角色,并且与本揭露中某些实施范例一致。
图12是一范例流程图,说明当客户端发出READ命令的要求动作时,PDU复制接管模组如何实现,并且与本揭露中某些实施范例一致。
图13是一范例流程图,说明当客户端发出WRITE命令的要求动作时,PDU复制接管模组如何实现,并且与本揭露中某些实施范例一致。
图14是一范例示意图,进一步说明地址转换器接口输入与输出的参数,并且与本揭露中某些实施范例一致。
图15是一范例流程示意图,说明虚拟储存网络交换器的封包转送装置的方法,并且与本揭露中某些实施范例一致。
图16A是单一处理器***上,iSCSI、封包转送机制和核心单元的关系的范例示意图。
图16B是多处理器***上,iSCSI、封包转送机制和核心单元的关系的范例示意图。
图17是多处理器***上,封包转送装置的几个模组分散在独立的微处理器上执行的范例示意图。
具体实施方式
本揭露的实施范例中,是在一网络协议,例如iSCSI网络协议,连线所建立的交换器环境中,提供一个封包直接转送(forward)的桥梁,iSCSI封包从使用者端至储存端的处理流程中不需要经过多余的封包表头的拆解、读取、转址、表头建立等繁复的动作。图5是iSCSI协议数据单元从客户端到储存端的封包直接转送的处理流程的一个示意图,并且与本揭露中某些实施范例一致。
参考图5,如标号510所示,iSCSI协议数据单元在客户端502到储存端503的处理流程中,只接收封包表头来处理。接着如标号520所示,通过直接转送机制,找出对应的iSCSI连线信息。如标号530所示,再将封包表头直接传送到储存端503。从储存端503回送到客户端502的iSCSI协议数据单元一样在接收表头后,如标号511所示,通过直接转送520机制找到要求此数据的客户端502连线,接着回传封包表头到客户端502,如标号531所示。
换句话说,本揭露在使用者端与网络储存装置端之间,提供一个衔接的桥梁。衔接的对象是使用iSCSI网络协议为连线方式的iSCSI session连线。衔接的方法是以建表的方式来产生使用者与储存装置两端的一对一连线对应关系。
对应关系建立之后,连线上的所有iSCSI协议封包的表头经过栏位修改后,连同夹带的数据,直接转送(forward)到网络储存装置端,从网络储存装置端响应的数据,以同样的查表方式找到使用者端对应的iSCSI连线,直接将封包传送到使用者端。搭配既有的虚拟化交换器的软件层做法,本揭露的实施范例在封包转送过程依然可以提供使用者虚拟化的储存效果。并且本揭露的封包直接转送单元(Forwarding Unit)独立化以后,可以在具有多处理器的平台上得到更好的执行效能。
图6是一范例示意图,说明虚拟储存网络交换器(virtualization switch)的封包转送装置的结构,并且与本揭露中某些实施范例一致。参考图6,在此虚拟化交换器的环境中,前端的一目标模组(targetmodule),例如iSCSI目标620,可与至少一使用者端602建立iSCSI会议(session)连线,后端的一启始者模组(Initiator Module),例如iSCSI启始者610,可与至少一个网络储存端603建立iSCSIsession连线。本揭露的封包转送装置的范例结构600中,包含一个标头撷取器661、一个分发器662、以及一个转送单元663。
当iSCSI session连线完成***认证后,标头撷取器661接收iSCSI连线上至少一个封包,并撷取此至少一个个封包的表头数据。分发器662决定这些被接管的封包的流向。转送单元663在两已建立iSCSI连线的前端与后端之间作封包直接转送的动作,包括将分发器662接收的封包的虚拟存取地址转换成真实地址的动作、建立客户端接口与储存端接口的对应关系,例如在一动态会议连线对照表(DynamicSession Mapping Table,DSMT)中建立此对应的关系,以及传递iSCSI连线上夹带的iSCSI负载数据(payload)的动作。
标头撷取器661可以针对连线上多个iSCSI封包进行数据控制,将iSCSI的表头与数据分离,让整个封包转送过程里只有协议数据单元里表头栏位的数据处理,而不涉及协议数据单元里数据域位的数据搬移动作。
转送单元663可再包括一个地址转换器(Address Translator,AT)、一个动态会议连线对照表(DSMT)、一个PDU复制接管模组(PDU DuplicationHandler,PDH)、一个表头调适器(Header Adaptor)、以及一个数据搬移器(Data Mover)。而封包转送装置的范例结构600中也可包括一描述子队列(descriptor queue)。图7说明封包转送装置中这些模组的细部动作,并且与本揭露中某些实施范例一致。
参考图7,标头撷取器661在iSCSI连线***上认证完成后,从连线的信息中可找出此连线ID(记为Conn)与虚拟存取ID(记为VIun)的信息,将这些数据组合成一个存取描述子(descriptor),纪录到描述子队列711中,等待下一个处理程序进行。描述子队列711是要把接收表头的工作与分析表头的工作分开,让此两个工作有机会同时进行,并且可以解决多个连线同时需要要求分发器662处理的相竞问题。
当描述子队列711有数据进入,分发器662会从描述子队列711中取出一笔存取描述子,从描述子信息中可得知收到封包的类型,例如iSCSI命令(iSCSI Cmnd)、iSCSI数据输出(iSCSI DataOut)、iSCSI数据输入(iSCSI DataIn)、iSCSI回复(iSCSIRsp)、iSCSI准备传送(iSCSI R2T)等封包的类型,并决定被接到的封包是否为合格转送类型的封包。若是命令(Cmnd)类型的封包,则分发器662会传送此封包的数据表头至下一单元继续处理。若是命令(Cmnd)类型以外的其它封包,则分发器662会将此封包的表头和夹带的数据一并送回***上的iSCSITarget做处理;分发器662可以判断此封包是否直接交给转送单元663,让转送单元663直接转送到网络储存端603上。
地址转换器763a的功能在于虚拟存取与真实位置之间的转换。当地址转换器763a接收到虚拟存取点(Vlun)、存取地址(block)与存取长度(length)后,就可以找出真实的存取位置,与存取位置所属的会议(session)的连线。也就是说,地址转换器763a可以从虚拟存取点与存取位置中找出真实的存取地址与会议(session)连线ID的对应关系。
从分发器662接收过来的iSCSI封包,存取地址经过地址转换器763a的转换后,得知真实存取位置的会议(session)连线ID与此存取的真实储存装置数目。PDU复制接管模组(PDH)763b决定来源封包与转送封包的对应关系,并且在动态会议连线对照表(DSMT)763c中建立此对应的关系。
PDU复制接管模组(PDH)763b在动态会议连线对照表(DSMT)763c中填入对应元素(entry)的内容。动态会议连线对照表(DSMT)763c中每个元素的内容将于图7中说明。在动态会议连线对照表(DSMT)763c填上对应关系后,PDU复制接管模组(PDH)763b传送封包表头至表头调适器763d。表头调适器763d处理iSCSI表头的栏位修改与传送动作。若此表头有夹带负载数据(payload),则使用数据搬移器763e直接把接收端的TCP层当作传送数据,在储存端的TCP连线上传送出去。
PDU复制接管模组(PDH)763b可以解决虚拟与实体对应中一对多的对应情况,让使用者在引发一个虚拟对象的存取时可以拓展出多个真实对象的存取。表头调适器763d可以从动态会议连线对照表(DSMT)763c中得知iSCSI表头栏位取代的值,接着将此表头在iSCSI会议(session)隶属的TCP连线上传送出去。数据搬移器763e可以将停留在TCP连线上的iSCSI负载数据直接当作iSCSI传送的数据,传送出去。
如此,将使用者对目标端(target)的存取权限与虚拟化储存装置的设定集中在交换器上做管理,让使用者可以安装一般容易获得的iSCSI启始者(initiator)连结软件,直接把交换器当作是iSCSI目标者(target)做存取,在交换器上以iSCSI协议所连结的真实储存装置可以用虚拟化的配置方式,通过帐号密码确认提供给使用者存取,使用者端不必安装任何额外的存取控制软件。数据的接收保留在下层网络层,通过数据搬移器直接决定数据传送的位置,减少多余的数据复制次数。
图8是动态会议连线对照表(DSMT)中每个元素的内容及建立过程的一个范例示意图,并且与本揭露中某些实施范例一致。参考图8,动态会议连线对照表(DSMT)763c中每个元素主要有三个栏位,亦即客户端接口(Client Side Interface)831、储存端接口(Storage Side Interface)832、以及有效位833,分别记录使用者端的会议连线(session)ID(记为src_sess)和启始者工作标签(initiator tasktag)(记为src_ITT)、储存端的会议连线(session)ID(记为dst_sess)和启使者工作标签(记为dst_ITT)、以及对应于同一个虚拟存取的存取顺序关系。有效位可以方便于PDU复制接管模组(PDH)763b来管理从储存端回传的iSCSI封包。
动态会议连线对照表(DSMT)763c中每个元素的生命期开始于转送单元663接收到客户端的iSCSI命令协议数据单元(Cmd PDU),结束在转送单元663接收到储存端的iSCSI响应协议数据单元(Rsp PDU)为止。元素存在的期间,从客户端端接收的协议数据单元(PDU)可用一对一或是一对多个会议(session)的方式传送到目的端的iSCSI储存装置。从储存装置回传的数据封包,一样会经过转送单元663查表的方式找出要求数据的客户端。
建立元素的过程,从客户端来到转换单元的第一个iSCSI命令协议数据单元(Cmd PDU)通过地址转换器763a的协助,可以得知储存端的会议(session)栏位dst_sess与ITT栏位dst_ITT的数据,同时在元素的有效位栏位中记录此对应是否为一对多个会议(session)的对应关系,从此之后,同一个iSCSI工作(Task)的协议数据单元(PDU)在进入转送单元663时,都会以协议数据单元(PDU)的会议(session)与ITT栏位搜寻动态会议连线对照表(DSMT)763c中是否有对应的元素,找出目的端的会议(session)ID与ITT栏位,直到从储存端回传最后一个iSCSI响应(Rsp)封包,才结束此元素的对应关系。
当转送单元663从客户端接收一个iSCSI命令协议数据单元(Cmd PDU),在通过地址转换器763a存取后,得知此虚拟存取的数据量分散在多个实体的网络储存装置上时,转送单元663除了执行封包直接导向的工作以外,还需针对多个涉及此存取命令所涵盖的网络储存装置,传送存取的iSCSI封包。
例如,假定一个使用者发出的存取要求的虚拟地址(Request Virtual Address,Request VA)910对应到真实的储存位置(Physical Address,PA)为两个不同储存装置的PA1与PA2,如图9所示。当转送单元663从地址转换器763a得知此存取目标为分散的两个网络装置,此时转送单元663中的PDU复制接管模组(PDH)763b会依照地址转换器763a所提供的目标端数目信息,在动态会议连线对照表(DSMT)763c中建立多个元素,每个元素代表转送单元663需要跟储存端单独完成的工作(Task)的工作量。
如图10所示,PDU复制接管模组(PDH)763b在建立元素的同时,会在各个元素后面的有效位(Vbit)作标记,让从储存端回传的iSCSI封包可以得知是不是多工作(multi-task)存取中的最后一个工作存取。例如,V代表不是最后一个工作存取,X代表是最后一个工作存取。
图11进一步说明PDU复制接管模组(PDH)在封包的流向上,不仅扮演封包重制也扮演封包整合的角色。如图11所示,例如,当客户端的使用者发出一笔虚拟存取请求,而实体存取数据量(block)为A+B的封包时,其中数据量A是目标(Target)A上的数据,数据量B是在目标B上的数据,此时在转送单元663当中会对储存端的目标A与目标B产生个别的存取封包,从储存端回传的iSCSI数据协议数据单元(DataPDU)经过修改查表后,会回传到客户端的使用者,而iSCSI响应协议数据单元(Rsp PDU)则不会传回客户端的使用者,直到此存取所涉及的最后一个目标数据存取传输完毕以后(由动态会议连线对照表(DSMT)763c的元素的有效位Vbit得知),PDU复制接管模组(PDH)763b才会回传一个iSCSI响应协议数据单元(Rsp PDU)给客户端的使用者。从客户端的使用者发出的虚拟存取封包要求,经过回传的数据封包,到最后接收的响应协议数据单元,客户端的使用者完全感觉不出与一笔只存取一个储存端目标者(StorageTarget)的反应有任何的差异。所以,转送单元663中的PDU复制接管模组(PDH)763b实际上可扮演封包重制与整合的角色。
图12与图13的范例流程图分别说明当客户端发出READ/WRITE命令的要求时,PDU复制接管模组(PDH)763b如何实现,并且与本揭露中某些实施范例一致。
当客户端发出READ命令的要求时,转送单元663接收的iSCSI封包通过地址转换器763a后,得知此iSCSI封包真实的读取对象有几个,PDU复制接管模组(PDH)763b在动态会议连线对照表(DSMT)763c中建立对应的元素数目。从地址转换器763a对此封包转换后的描述子可得知数据分散在储存端的情况。随即如图12所示,在步骤1201中,PDU复制接管模组(PDH)763b产生数据读取的iSCSI封包至第一个储存端,并等待储存端响应iSCSI DataInPDU。收到此响应iSCSI DataIn PDU后,修改栏位后直接导回使用者端,如步骤1202所示。重复接收DataIn PDU与导回使用者动作直到储存端响应iSCSIRsp PDU为止,结束对此储存端的数据要求,如步骤1203所示。接着产生下一个储存端的数据要求,重复上述的接收步骤,完成动态会议连线对照表(DSMT)763c中每个元素对应的接收项目,如步骤1204所示。直至对应的元素中有效位栏位显示出最后一笔储存端的对应,才将iSCSI Rsp PDU回传给使用者端,如步骤1205所示。
当客户端发出WRITE命令的要求时,PDU复制接管模组(PDH)763b的动作类似于图12中READ的实现,不同的地方在于使用者发出WRITE的动作之后,要等待储存端响应准备传送(Ready to Transfer,R2T)的iSCSI封包,PDU复制接管模组(PDH)763b才可以开始发送iSCSI DataOut PDU到储存装置端。PDU复制接管模组(PDH)763b详细的实现动作如图13所示。
PDU复制接管模组(PDH)763b从使用者端接收横跨多个储存装置WRITE的命令要求后,通过地址转换器763a的指示,在动态会议连线对照表(DSMT)763c中填上数个储存端的项目,如步骤1301所示。再发出对第一个储存端的数据要求并等待接收回传的iSCSI R2T PDU,导回使用者端,如步骤1302所示。转送单元663开始接收iSCSI DataOut PDU,PDU复制接管模组(PDH)763b把接收的iSCSI封包依照动态会议连线对照表(DSMT)763c中所列的储存项目逐一导向真实的储存装置,如步骤1303所示。直到此笔WRITE命令所牵涉的储存装置都写入后,PDU复制接管模组(PDH)763b才响应一个iSCSIRsp PDU到使用者端,如步骤1304所示。
图14是一范例示意图,进一步说明地址转换器接口输入与输出的参数,并且与本揭露中某些实施范例一致。此范例中,地址转换器763a可从输入的虚拟存取信息,例如虚拟存取点(virtual disk ID)、虚拟存取地址(virtual block address)与存取数据长度(access length)等信息,转换出对应此虚拟存取所包含的实体储存装置数目(physical disknumber),与每个对应的实体储存装置的实体存取点(physical disk ID)、实体存取地址(physical blockaddress)、数据存取长度(access length)、实体储存装置所建立的iSCSI会议连线(iSCSI session)ID等。若对应的实体储存装置数目大于一个,则会有多组同样的实体存取参数。
承上述,在虚拟储存网络交换器中,封包,如iSCSI封包,从使用者端转送到网络储存端的处理流程,可以用图15的范例流程来说明,并且与本揭露中某些实施范例一致。图15的范例中,网络连线方式和封包转送分别是以iSCSI session所使用的TCP连线和iSCSI封包转送来说明。
参考图15,如步骤1510所示,从iSCSIsession所使用的TCP连线中接收的至少一个iSCSI封包里,撷取每个iSCSI封包的表头。如步骤1520所示,对于每个iSCSI封包,查看该封包的格式是否为合格转送的类型,例如iSCSI Cmnd、iSCSI DataOut、iSCSI DataIn、iSCSI Rsp、iSCSI R2T等封包类型,以决定此封包的流向。如步骤1530所示,对合格转送的封包,检查是否为iSCSI命令(Cmnd)类型的封包。若是,如步骤1540所示,将此iSCSI命令(Cmnd)类型的封包的相对应的虚拟存取地址信息转换成真实地址,并加入一新的对应关系于动态会议连线对照表(DSMT)中。例如,可从iSCSI session所使用的TCP连线中的信息得知此类型的封包的相对应的虚拟存取地址信息(如存取点、地址、长度等),将此虚拟存取地址信息转换成真实存取位置,并且加入如第八图的动态会议连线对照表(DSMT)。然后继续进行步骤1550。
若是iSCSI Cmnd以外的其它合格转送类型的封包,则如步骤1550所示,从动态会议连线对照表(DSMT)中,找出对应的目的端会议(session)ID与ITT栏位。例如,从动态会议连线对照表(DSMT)中,可以用来源封包的session ID与ITT栏位来找出对应的目的端会议(session)ID与ITT栏位。
在步骤1560中,根据此目的端会议(session)的连线状态现况,修改iSCSI封包表头,并传送修改后的iSCSI表头与来源端TCP连线的iSCSI负载数据(payload)。例如,可以根据此目的端会议(session)的连线状态现况,取代此封包的ITT栏位、CmdSN等栏位,再将修改过后的iSCSI封包表头连同停留在来源端TCP连线的iSCSI负载数据,依照目的端session所使用的TCP连线,将数据传送至目的端。
如此,从交换器目标者(Switch Target)所接收到的iSCSI封包,至交换器启始者(Switch Initiator)要传送的iSCSI封包比较上来看,目标者(Target)所接收到的iSCSI封包格式,就会在启始者(Initiator)产生同样的iSCSI封包格式传送到目的端,也就是说,两者的iSCSI表头都具有相同的运算码(opcode),除了接收封包的目的地不同,不同的iSCS Isession连线在iSCSI表头栏位上有些许的差异之外,其它在表头中描述数据的栏位都不会改变。
因为交换器所接收到的数据经过虚拟化软件层找出真实网络存取位置后,数据会被完整的传送到目的端,所以从输入(input)iSCSI封包至输出(output)iSCSI封包来看,本揭露前述的实施范例中,可以成功地从目标(Target)接收到的iSCSI封包,取代对应的栏位,产生适合于启始者(Initiator)传送的iSCSI封包,所以,可免去众多软件层之间多余的封包拆解与转换的动作。
本揭露的封包转送机制可以实现在单一处理器或是多处理器架构的***。图16A与图16B分别是单一处理器(single-processor)与多处理器(multi-processor)***上,iSCSI、封包转送机制和核心单元(Kernel)的关系的范例示意图。
参考图16A,在单一处理器***上,此范例是将iSCSI与封包转送机制置于主机软件层中来执行。参图16B,在多处理器***上,此范例是由主处理器用来运作核心单元与iSCSI软件层,而封包转送机制的部分,是由主处理器以外的微处理器(MicroEngine,ME)来执行,通过特殊的沟通接口(Core Component)让此微处理器上执行的程序可以跟主处理器上的程序达到数据交换。
多处理器***上的范例中,一种实施的方式是,可将本揭露的图7实施范例的封包转送装置的几个模组分散在独立的微处理器上执行,如图17的范例所示。每一个独立的微处理器有自己本地的(local)变量存取空间,也有共享的静态随机存取内存(SRAM)存取位置,同时也有自己的程序计数器(programcounter),让每一个微处理器可以在同一时间同时运作。不同微处理器之间提供特殊的沟通管道,可由硬件架构特有的储存空间来达到微处理器之间数据的传递或信息通知。每一个模组独立化的好处是,可以实施在多处理器的***架构上,让多个模组有同时运作的可能,并且减少主处理器的负载,可大幅提升iSCSI协议数据单元(PDU)在虚拟交换器(virtualizationswitch)上的传输效率。
所以,本揭露的封包转送机制可以有多种的实现方式,例如以软件实现、硬件实现、含单一处理器或多处理器的平台上实现等。
惟,以上所述的,仅为发明的实施例而已,当不能依此限定本发明实施的范围。即凡是依本发明权利要求范围所作的均等变化与修饰,皆应仍属本发明专利涵盖的范围内。
Claims (21)
1、一种虚拟储存网络交换器的封包转送装置,该虚拟储存网络交换器中,前端的一目标与至少一使用者端建立连线,后端的一启始者与至少一个网络储存端建立连线,其特征在于,该封包转送装置包含:
一标头撷取器,接收建立于前端的该连线上至少一个封包,并撷取该至少一个封包的表头数据;
一个分发器,决定该被接收的封包的流向;以及
一个转送单元,在该已建立连线的前端与后端之间作封包直接转送的动作,包括将该分发器接收来的封包的虚拟存取地址转换成真实地址的动作、建立客户端接口与储存端接口的对应关系,以及传递该连线上夹带的负载数据的动作。
2、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中于该前端建立的连线与该后端建立的连线是一种使用网际网络小型计算器***接口的传输协议的网际网络小型计算器***接口会议的连线,该目标是一网际网络小型计算器***接口目标,该启始者是一网际网络小型计算器***接口启始。
3、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中该转送单元还包括:
一个地址转换器,将该分发器接收来的封包的虚拟存取地址转换成真实地址;
一个动态会议连线对照表,包括多个描述该来源封包与转送封包的对应关系的元素,每个元素至少有客户端接口、储存端接口、以及有效位三个栏位;
一个协议数据单元复制接管模组,在该动态会议连线对照表中填入对应元素的内容后,传送出该分发器接收来的封包的表头;
一个表头调适器,处理封包表头的栏位修改与传送;以及
一个数据搬移器,将停留在连线上的负载数据当作传送的数据,传送出去。
4、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中该客户端接口、储存端接口、以及有效位三个栏位分别记录使用者端的会议连线识别码和启始工作标签、储存端的会议连线和启使者工作标签、以及对应于同一个虚拟存取的存取顺序关系。
5、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中该标头撷取器产生该至少一个封包表头的存取描述子,每一存取描述子包含相对应连线识别码与虚拟存取点的信息。
6、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中该分发器从该封包的表头得知收到封包的类型,并决定收到的封包是否为合格转送类型的封包。
7、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中该收到封包的类型是命令、数据输出、数据输入、回复、以及准备传送的其中一种封包类型。
8、如权利要求1所述的虚拟储存网络交换器的封包转送装置,其特征在于,其中该封包转送装置是以软件实现、硬件实现、含单一处理器或是多处理器的平台上实现的前述其中一种方式来实现。
9、一种虚拟储存网络交换器的封包转送方法,该虚拟储存网络交换器中,前端的一目标者与至少一使用者端建立连线,后端的一启始者与至少一个网络储存端建立连线,其特征在于,该封包转送方法包含:
从建立于前端的该连线中接收的至少一个封包里,撷取每一该封包的表头;
查看每一该封包的格式是否为合格的类型;
对合格类型的封包,检查是否为命令类型的封包;
是的话,将该命令类型的封包的相对应的虚拟存取地址信息转换成真实地址,并加入一新的对应关系于一动态会议连线对照表中:
从该动态会议连线对照表中,找出合格类型的每一该封包对应的目的端会议识别码与启始者工作标签栏位:以及
修改合格类型的每一该封包的表头,并传送出修改后的表头与来源端连线上的负载数据。
10、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中该新的对应关系包括使用者端的会议连线识别码和启始者工作标签、储存端的会议连线和启使者工作标签、以及对应于同一个虚拟存取的存取顺序关系的信息。
11、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中当该命令类型的封包是一数据读取的封包时,该封包转送方法还包括:
产生数据读取的封包至第一个储存端,并等待第一个储存端响应数据输入协议数据单元;
收到此响应数据输入协议数据单元后,修改栏位后直接导回一相对应的使用者端;
重复接收数据输入协议数据单元与该导回使用者端的动作直到第一个储存端的回复协议数据单元为止,结束对第一个储存端的数据要求;
产生下一个储存端的数据要求,重复上述的接收步骤,完成动态会议连线对照表中每一元素对应的接收项目;以及
直至对应的元素中有效位栏位显示出最后一笔储存端的对应,才将该最后一笔储存端的回复协议数据单元回传给该相对应的使用者端。
12、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中当该命令类型的封包是一数据写入的封包时,该封包转送方法还包括:
通过地址转换,在该动态会议连线对照表中填上至少一个储存端的项目;
发出对第一个储存端的数据要求并等待接收回传的准备传送协议数据单元,导回一相对应的使用者端;
把接收的封包依照该动态会议连线对照表中所列的储存项目逐一导向至少一个真实的储存装置;以及
直到该写入命令所牵涉的储存装置都写入后,才响应一个回复协议数据单元到该相对应的使用者端。
13、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中该虚拟存取地址信息转换成真实地址至少包括从输入的虚拟存取点、虚拟存取地址与存取数据长度信息,转换出对应此虚拟存取所包含的实体储存装置数目,与每一对应的实体储存装置的实体存取点、实体存取地址、数据存取长度、实体储存装置所建立的会议连线识别码。
14、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中该前端建立的连线与该后端建立的连线是一种使用网际网络小型计算器***接口的传输协议的网际网络小型计算器***接口会议的连线,该目标是一网际网络小型计算器***接口目标,该启始者是一网际网络小型计算器***接口启始者。
15、如权利要求14所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中该动态会议连线对照表至少包括一元素,每一该元素的生命期开始于接收到客户端的网际网络小型计算器***接口命令协议数据单元,结束在接收到储存端的网际网络小型计算器***接口响应协议数据单元为止。
16、如权利要求15所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中每一该元素存在的期间,从客户端端接收的协议数据单元是用一对一或是一对多个会议的方式传送到目的端的网际网络小型计算器***接口储存装置。
17、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中该合格类型的封包是命令、数据输出、数据输入、回复、以及准备传送的其中一种类型的封包。
18、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中是根据该目的端会议的连线状态现况,来修改合格类型的每一该封包的表头。
19、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中每一该封包的表头备有一相对应的存取描述子,每一该存取描述子包含相对应连线识别码与虚拟存取点的信息。
20、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中该封包转送方法是由一单一处理器上的主机软件层中来执行。
21、如权利要求9所述的虚拟储存网络交换器的封包转送方法,其特征在于,其中该封包转送方法的步骤是分散在一多处理器上的主处理器以外的至少一个微处理器中来执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810001359 CN101483662B (zh) | 2008-01-09 | 2008-01-09 | 虚拟储存网络交换器的封包转送装置与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810001359 CN101483662B (zh) | 2008-01-09 | 2008-01-09 | 虚拟储存网络交换器的封包转送装置与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101483662A true CN101483662A (zh) | 2009-07-15 |
CN101483662B CN101483662B (zh) | 2013-01-16 |
Family
ID=40880589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810001359 Expired - Fee Related CN101483662B (zh) | 2008-01-09 | 2008-01-09 | 虚拟储存网络交换器的封包转送装置与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101483662B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752366A (zh) * | 2012-05-30 | 2012-10-24 | 浪潮电子信息产业股份有限公司 | 一种iscsi客户端存储加速模块 |
CN108400968A (zh) * | 2018-01-16 | 2018-08-14 | 杭州电子科技大学 | 一种高效的实现拟态防御模型分发器的方法 |
-
2008
- 2008-01-09 CN CN 200810001359 patent/CN101483662B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752366A (zh) * | 2012-05-30 | 2012-10-24 | 浪潮电子信息产业股份有限公司 | 一种iscsi客户端存储加速模块 |
CN102752366B (zh) * | 2012-05-30 | 2016-11-23 | 浪潮电子信息产业股份有限公司 | 一种iscsi客户端存储加速模块 |
CN108400968A (zh) * | 2018-01-16 | 2018-08-14 | 杭州电子科技大学 | 一种高效的实现拟态防御模型分发器的方法 |
CN108400968B (zh) * | 2018-01-16 | 2019-12-24 | 杭州电子科技大学 | 一种实现拟态防御模型分发器的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101483662B (zh) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104052789B (zh) | 用于虚拟联网***的负载平衡的方法和*** | |
CN109361532B (zh) | 网络数据分析的高可用***和方法及计算机可读存储介质 | |
Liu et al. | A real-time network simulation infrastructure based on OpenVPN | |
CN104205080B (zh) | 为联网设备虚拟化卸载分组处理 | |
US8983822B2 (en) | Operating a storage server on a virtual machine | |
CN101276258B (zh) | 存储设备及其控制方法 | |
US7808996B2 (en) | Packet forwarding apparatus and method for virtualization switch | |
US9983813B2 (en) | Maintenance of a fabric priority during synchronous copy operations | |
CN102143218B (zh) | web接入云体系结构及接入方法 | |
CN1429365A (zh) | 具有软实时响应和连续可用性的分布式计算***簇模型 | |
CN103229172B (zh) | 复制数据 | |
CA2621249A1 (en) | Application of virtual servers to high availability and disaster recovery solutions | |
CN103927216B (zh) | 用于管理虚拟装置的方法和*** | |
US11704206B2 (en) | Generation of host requests to a storage controller for read diagnostic parameters for a data mirroring configuration | |
TW200817924A (en) | External network management interface proxy addressing of data storage drives | |
CN109828843A (zh) | 一种计算节点间数据传输的方法、***及电子设备 | |
CN101188624A (zh) | 基于虚拟机的网格中间件*** | |
CN108604163A (zh) | 针对文件访问协议存储的同步复制 | |
CN101404657B (zh) | 一种基于iSCSI协议的网络存储***中的文件完整性检查方法 | |
Silva et al. | Environment for integration of distributed heterogeneous computing systems | |
CN101483662B (zh) | 虚拟储存网络交换器的封包转送装置与方法 | |
US7131108B1 (en) | Software development system having particular adaptability to financial payment switches | |
CN101567890A (zh) | 元数据传输方法、客户端设备及服务器设备 | |
US20050281286A1 (en) | Storage structure and method utilizing multiple protocol processor units | |
US9715477B2 (en) | Shared-bandwidth multiple target remote copy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130116 |
|
CF01 | Termination of patent right due to non-payment of annual fee |