一种建立iSCSI会话的方法和iSCSI发起方的制作方法

文档序号:7752227阅读:264来源:国知局
专利名称:一种建立iSCSI会话的方法和iSCSI发起方的制作方法
技术领域
本发明涉及网络通信技术领域,特别涉及一种建立iSCSI会话的方法和iSCSI发起方。
背景技术
Internet小型计算机系统接口(iSCSI)是一种基于TCP/IP的传输协议,在客户端和存储系统之间采用TCP/IP封装并可靠的传输SCSI命令,一个iSCSI协议的典型应用环境如图ι所示。在客户端设置iSCSI发起方(Initiator),在存储系统设置iSCSI目标方(Target),iSCSI发起方和iSCSI目标方之间首先建立TCP连接,然后在TCP连接上建立iSCSI会话Cession),SCSI报文交互是在TCP连接上建立的iSCSI会话上进行的。其中,在iSCSI协议中规定的iSCSI会话有两种发现会话(Discovery Session)和普通会话(Normal Session), Discovery Session 用于 iSCSI 发起方发现 iSCSI 目标方,Normal Session用于iSCSI发起方和iSCSI目标方之间处理SCSI命令与数据,这两种会话的建立过程是相同的。在现有技术中,建立iSCSI会话之前首先要针对该iSCSI会话建立TCP连接,之后该iSCSI会话独占这些TCP连接,也就是说,每次建立iSCSI会话时都需要建立TCP连接, 不同的iSCSI会话需要占用不同的TCP连接。然而,由于一个iSCSI会话常常需要独占一个或多个TCP连接,当iSCSI发起方需要同iSCSI目标方建立多个iSCSI会话时,就需要建立很多TCP连接,iSCSI会话的数据越大,TCP连接的数目也相应越大。这样,TCP/IP的网络数据传输需要占用大量的带宽和主机 CPU资源,导致服务器的大部分资源都用于处理TCP连接。另外,iSCSI发起方与存储系统之间的物理链路只有有限条,这些有限条物理链路被大量TCP连接占用,容易导致链路拥塞,影响传输效率。

发明内容
本发明提供了一种建立iSCSI会话的方法和装置,以便于节约带宽和主机CPU资源。一种建立iSCSI会话的方法,该方法包括A、iSCSI发起方建立与iSCSI目标方的iSCSI会话时,判断当前所述iSCSI发起方与iSCSI目标方之间是否存在用于iSCSI会话的传输控制协议TCP连接,如果是,执行步骤B;如果否,执行步骤C;B、在已经存在的用于iSCSI会话的TCP连接上建立iSCSI会话,结束流程;C、iSCSI发起方进行iSCSI发起方到iSCSI目标方的等价路径探测;D、在探测到的等价路径上分别建立用于iSCSI会话的TCP连接;E、在步骤D建立的TCP连接上建立iSCSI会话。一种iSCSI发起方,该iSCSI发起方包括iSCSI会话建立单元、连接判断单元、路径探测单元和连接建立单元;所述iSCSI会话建立单元,用于在建立所述iSCSI发起方与iSCSI目标方的iSCSI 会话时,向所述连接判断单元发送判断通知;接收到第一建立通知后,在已经存在的用于 iSCSI会话的传输控制协议TCP连接上建立iSCSI会话;接收到第二建立通知后,在所述连接建立单元建立的TCP连接上建立iSCSI会话;所述连接判断单元,用于接收到所述判断通知后,判断当前所述iSCSI发起方与 iSCSI目标方之间是否存在用于iSCSI会话的TCP连接,如果否,向所述路径探测单元发送探测通知,如果是,向所述iSCSI会话建立单元发送第一建立通知;所述路径探测单元,用于接收到探测通知后,进行所述iSCSI发起方到所述iSCSI 目标方的等价路径探测;所述连接建立单元,用于在所述路径探测单元探测到的等价路径上分别建立用于 iSCSI会话的TCP连接,向所述iSCSI会话建立单元发送第二建立通知。由以上技术方案可以看出,本发明中iSCSI发起方在建立iSCSI会话时,如果已经存在用于iSCSI会话的TCP连接,则在已经存在的TCP连接上建立iSCSI会话,如果尚未存在用于iSCSI会话的TCP连接,则通过等价路径探测过程,在探测到的等价路径上建立用于 iSCSI会话的TCP连接,在建立的TCP连接上建立iSCSI会话。即所有iSCSI会话通过共享同一组TCP连接的方式,减少iSCSI会话占用的TCP连接,从而充分利用网络带宽,节约主机因维护TCP连接而占用的主机CPU资源。另外,用于iSCSI会话的TCP连接数量的减少节约了物理链路,减少了物理链路的拥塞现象,提高传输效率。


图1为iSCSI协议的典型应用环境示意图;图2为本发明提供的主要方法流程图;图3为本发明实施例提供的详细方法流程图;图4为本发明实施例提供的建立iSCSI会话的流程图;图5为本发明实施例提供的等价路径探测流程图;图6为本发明实施例提供的一个组网示意图;图7为本发明提供的iSCSI发起方的结构示意图;图8为现有技术和本发明中各层的关系示意图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明提供的主要方法如图2所示,可以包括以下步骤步骤201 :iSCSI发起方建立iSCSI会话时,判断当前是否存在用于iSCSI会话的 TCP连接,如果是,执行步骤202 ;否则,执行步骤203。步骤202 在已经存在的用于iSCSI会话的TCP连接上建立iSCSI会话,结束流程。步骤203 :iSCSI发起方进行iSCSI发起方到iSCSI目标方的等价路径探测;步骤204 在探测到的等价路径上分别建立用于iSCSI会话的TCP连接。
步骤205 在建立的TCP连接上建立iSCSI会话。下面结合具体实施例对上述方法进行详细描述。图3为本发明实施例提供的详细方法流程图,如图3所示,该方法可以包括以下步骤步骤301 :iSCSI发起方建立iSCSI会话时,判断当前是否存在用于iSCSI会话的 TCP连接,如果否,执行步骤302 ;如果是,执行步骤306。本步骤中,iSCSI发起方在建立iSCSI会话之前,首先判断是否已经存在共享的 TCP连接可用于建立iSCSI会话,如果已经存在,则将要建立的iSCSI会话直接建立在已经存在的用于iSCSI会话的TCP连接上,即执行步骤306,而不必重新建立独占的TCP连接。 如果不存在,则执行步骤302。步骤302 :iSCSI发起方选择一个业务端口与iSCSI目标方建立一条TCP连接,并在该TCP连接上建立iSCSI会话。在本发明中,如果不存在用于iSCSI会话的TCP连接,可以直接开始等价路径探测过程,并在探测到的等价路径上建立用于iSCSI会话的TCP连接,然后在TCP连接上建立 iSCSI会话。但更优地,为了保证iSCSI会话能够及时建立,在本发明初始建立iSCSI会话时,iSCSI发起方可以按照步骤302中所述,首先选择一个业务端口与iSCSI目标方建立一条TCP连接,从而保证iSCSI会话的运行。在iSCSI会话运行期间,可以在后台同时执行以下步骤,即进行等价路径探测和TCP连接组建立的过程。其中,上述选择的业务端口可以是预设的业务端口,也可以是当前未被使用的任一业务端口。在选择该业务端口时,可以同时预留该业务端口之后的N-I个业务端口用于后续TCP连接的建立。N为预设的最大等价路径数目,该N的值可以根据具体的网络结构设定,也可以设置为一个经验值。在建立TCP连接后,iSCSI发起方会在本地建立和维护一个TCP连接信息表,该 TCP连接信息表的表项内容可以如表1所示,包括连接标识(CID)、源端口号、目的端口号、 延时信息和连接状态。表 权利要求
1.一种建立Internet讨小型计算机系统接口 iSCSI会话的方法,其特征在于,该方法包括A、iSCSI发起方建立与iSCSI目标方的iSCSI会话时,判断当前所述iSCSI发起方与 iSCSI目标方之间是否存在用于iSCSI会话的传输控制协议TCP连接,如果是,执行步骤B ; 如果否,执行步骤C;B、在已经存在的用于iSCSI会话的TCP连接上建立iSCSI会话,结束流程;C、iSCSI发起方进行iSCSI发起方到iSCSI目标方的等价路径探测;D、在探测到的等价路径上分别建立用于iSCSI会话的TCP连接;E、在步骤D建立的TCP连接上建立iSCSI会话。
2.根据权利要求1所述的方法,其特征在于,在所述步骤A的判断结果为否,且在执行步骤C之前,该方法还包括所述iSCSI发起方选择一个业务端口与所述iSCSI目标方建立一条TCP连接,并在该一条TCP连接上建立iSCSI会话;在所述一条TCP连接上运行iSCSI会话的同时,执行所述步骤C ; 所述步骤D为在探测到的等价路径中除了所述一条TCP连接所在的路径之外的其他路径上分别建立用于iSCSI会话的TCP连接。
3.根据权利要求2所述的方法,其特征在于,除了所述选择的一个业务端口之外,所述 iSCSI发起方预留N-I个业务端口 ;所述步骤D中,选择预留的N-I个业务端口中的M-I个业务端口分别建立用于iSCSI 会话的TCP连接;其中N为预设的最大等价路径数目,M为步骤C中探测到的等价路径数目,M < N。
4.根据权利要求1至3任一权项所述的方法,其特征在于,在建立用于iSCSI会话的 TCP连接后,将建立的TCP连接的信息记录在TCP连接信息表中;所述TCP连接的信息包括为TCP连接分配的连接标识CID、TCP连接的源端口号、目的端口号、延时信息和连接状态。
5.根据权利要求1至3任一权项所述的方法,其特征在于,在TCP连接上建立iSCSI会话的过程具体包括51、所述iSCSI发起方通过建立的TCP连接向iSCSI目标方发送会话建立Login请求, 其中该Login请求携带所述建立的TCP连接的CID以及请求建立的iSCSI会话的标识SID ;52、所述iSCSI目标方接收到Login请求后,在本地将所述Login请求携带的CID与 SID进行绑定,并回复会话建立响应Login Response ;53、所述iSCSI发起方接收到所述LoginResponse后,在本地将所述CID与所述SID 进行绑定,用于在该CID所标识的TCP连接上进行与该CID绑定的SID所标识的iSCSI会话。
6.根据权利要求1至3任一权项所述的方法,其特征在于,所述步骤C具体包括 Cl、所述iSCSI发起方针对预先指定的N个路径探测端口分别执行步骤Fl至F5 ;其中N为预设的最大等价路径数目;F1、从当前路径探测端口发送目的端口为所述iSCSI目标方所在存储设备的不可达端口的UDP报文,其中,该UDP报文的TTL值设置为1 ;F2、所述iSCSI发起方判断接收到的是ICMP超时报文还是ICMP端口不可达报文,如果接收到ICMP超时报文,执行步骤F3 ;如果接收到的是ICMP端口不可达报文,则执行步骤 F5 ;F3、根据所述ICMP超时报文的源地址,记录所述当前路径探测端口对应的ICMP超时报文的返回路径;F4、所述iSCSI发起方从所述当前路径探测端口发送目的端口为所述存储设备不可达端口的UDP报文,该UDP报文携带加1后的TTL值,转至步骤C2 ;F5、根据所述ICMP端口不可达报文的源地址,记录所述当前路径探测端口对应的IGMP 端口不可达报文的返回路径,结束所述当前路径探测端口的UDP报文发送;C2、待所有路径探测端口结束UDP报文发送后,将记录的各路径进行相同路径合并,确定出等价路径。
7.根据权利要求1至3任一权项所述的方法,其特征在于,当iSCSI会话建立在两个以上TCP连接上时,所述iSCSI发起方根据所述两个以上TCP连接的延时状况和/或业务量状况,针对该iSCSI会话在所述两个以上TCP连接上进行流量均衡。
8.根据权利要求1至3任一权项所述的方法,其特征在于,当其中一条用于iSCSI会话的TCP连接出现故障,则所述iSCSI发起方重新进行iSCSI发起方到iSCSI目标方的等价路径探测,如果探测结果出现新增路径,则在该新增路径上建立TCP连接,并将出现故障的 TCP连接上的iSCSI会话切换到在新增路径上建立的TCP连接上。
9.一种hternet小型计算机系统接口 iSCSI发起方,其特征在于,该iSCSI发起方包括iSCSI会话建立单元、连接判断单元、路径探测单元和连接建立单元;所述iSCSI会话建立单元,用于在建立所述iSCSI发起方与iSCSI目标方的iSCSI会话时,向所述连接判断单元发送判断通知;接收到第一建立通知后,在已经存在的用于iSCSI 会话的传输控制协议TCP连接上建立iSCSI会话;接收到第二建立通知后,在所述连接建立单元建立的TCP连接上建立iSCSI会话;所述连接判断单元,用于接收到所述判断通知后,判断当前所述iSCSI发起方与iSCSI 目标方之间是否存在用于iSCSI会话的TCP连接,如果否,向所述路径探测单元发送探测通知,如果是,向所述iSCSI会话建立单元发送第一建立通知;所述路径探测单元,用于接收到探测通知后,进行所述iSCSI发起方到所述iSCSI目标方的等价路径探测;所述连接建立单元,用于在所述路径探测单元探测到的等价路径上分别建立用于 iSCSI会话的TCP连接,向所述iSCSI会话建立单元发送第二建立通知。
10.根据权利要求9所述的iSCSI发起方,其特征在于,所述连接判断单元,还用于在所述判断的结果为否时,向所述连接建立单元发送初始建立通知;所述连接建立单元,还用于接收到初始建立通知后,选择一个业务端口与所述iSCSI 目标方建立一条TCP连接,向所述iSCSI会话建立单元发送第三建立通知;所述iSCSI会话建立单元,还用于接收到第三建立通知时,在所述连接建立单元建立的所述一条TCP连接上建立iSCSI会话。
11.根据权利要求10所述的iSCSI发起方,其特征在于,所述连接建立单元除了所述选择的一个业务端口之外预留N-I个业务端口 ;在所述路径探测单元探测到的等价路径上分别建立用于iSCSI会话的TCP连接时,使用预留的N-I个业务端口中的M-I个业务端口 ;其中N为预设的最大等价路径数目,M为所述路径探测单元探测到的等价路径数目, M < N。
12.根据权利要求9至11任一权项所述的iSCSI发起方,其特征在于,所述连接建立单元建立用于iSCSI会话的TCP连接后,将建立的TCP连接的信息记录在TCP连接信息表中;所述TCP连接的信息包括为TCP连接分配的连接标识CID、TCP连接的源端口号、目的端口号、延时信息和连接状态。
13.根据权利要求9至11任一权项所述的iSCSI发起方,其特征在于,所述iSCSI会话建立单元具体包括预处理子单元,用于在建立所述iSCSI发起方与iSCSI目标方的iSCSI会话时,向所述连接判断单元发送判断通知;请求发送子单元,用于接收到第一建立通知或第二建立通知后,通过已经建立的用于 iSCSI会话的TCP连接向iSCSI目标方发送会话建立Login请求,其中该Login请求携带 TCP连接的CID以及请求建立的iSCSI会话的标识SID ;会话绑定子单元,用于接收到iSCSI目标方回复的Login Response后,在本地将所述 CID与所述SID进行绑定,用于在该CID所标识的TCP连接上进行与该CID绑定的SID所标识的iSCSI会话。
14.根据权利要求9至11任一权项所述的iSCSI发起方,其特征在于,所述路径探测单元具体包括路径探测子单元和路径处理子单元;其中,所述路径探测子单元包括端口探测模块、报文收发模块、TTL值设置模块和路径记录模块;所述端口探测模块,用于对预先指定的N个路径探测端口分别进行处理,将处理到的当前路径探测端口信息提供给报文收发模块,并触发所述报文收发模块发送UDP报文;其中N为预设的最大等价路径数目;所述报文收发模块,用于受到触发后,从所述当前路径探测端口发送目的端口为所述 iSCSI目标方所在存储设备的不可达端口的UDP报文;从所述当前路径探测端口接收IGMP 超时报文或IGMP端口不可达报文;所述TTL值设置模块,用于在所述报文收发模块从所述当前路径探测端口初始发送 UDP报文时,将该UDP报文的TLL值设置为1,之后所述报文收发模块每从所述当前路径探测端口发送一次UDP报文,将UDP报文的TTL值加1 ;所述路径记录模块,用于在所述报文收发模块接收到IGMP超时报文时,根据所述IGMP 超时报文的源地址,记录所述当前路径探测端口对应的IGMP超时报文的返回路径,触发所述报文收发模块发送UDP报文;在所述报文收发模块接收到IGMP端口不可达报文时,根据所述IGMP端口不可达报文的源地址,记录所述当前路径探测端口对应的IGMP端口不可达报文的返回路径,触发所述报文收发模块结束从所述当前路径探测端口发送UDP报文;所述路径处理子单元,用于待所述报文收发模块结束所有路径探测端口的UDP报文发送后,将所述路径记录模块记录的各路径进行相同路径合并,确定出等价路径。
15.根据权利要求9至11任一权项所述的iSCSI发起方,其特征在于,该iSCSI发起方还包括流量均衡单元,用于在iSCSI会话建立在两个以上TCP连接上时,根据所述两个以上TCP连接的延时状况和/或业务量状况,针对该iSCSI会话在所述两个以上TCP连接上进行流量均衡。
16.根据权利要求9至11任一权项所述的iSCSI发起方,其特征在于,会话维护单元, 用于当其中一条用于iSCSI会话的TCP连接出现故障时,向所述路径探测单元发送探测通知;如果所述路径探测单元的探测结果中出现新增路径,则触发所述连接建立单元在所述新增路径上建立TCP连接,并将出现故障的TCP连接上的iSCSI会话切换到在新增路径上建立的TCP连接上。
全文摘要
本发明提供了一种建立Internet小型计算机系统接口(iSCSI)会话的方法和iSCSI发起方,iSCSI发起方建立与iSCSI目标方的iSCSI会话时,判断当前所述iSCSI发起方与iSCSI目标方之间是否存在用于iSCSI会话的传输控制协议(TCP)连接,如果是,在已经存在的用于iSCSI会话的TCP连接上建立iSCSI会话;否则iSCSI发起方进行到iSCSI目标方的等价路径探测,在探测到的等价路径上分别建立用于iSCSI会话的TCP连接,并在TCP连接上建立iSCSI会话。通过本发明能够充分利用网络带宽,节约主机CPU资源。
文档编号H04L29/06GK102281263SQ20101020833
公开日2011年12月14日 申请日期2010年6月13日 优先权日2010年6月13日
发明者陈乾业 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1