CN102281263A - 一种建立iSCSI会话的方法和iSCSI发起方 - Google Patents

一种建立iSCSI会话的方法和iSCSI发起方 Download PDF

Info

Publication number
CN102281263A
CN102281263A CN2010102083369A CN201010208336A CN102281263A CN 102281263 A CN102281263 A CN 102281263A CN 2010102083369 A CN2010102083369 A CN 2010102083369A CN 201010208336 A CN201010208336 A CN 201010208336A CN 102281263 A CN102281263 A CN 102281263A
Authority
CN
China
Prior art keywords
iscsi
tcp
session
port
path
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
Application number
CN2010102083369A
Other languages
English (en)
Other versions
CN102281263B (zh
Inventor
陈乾业
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201010208336.9A priority Critical patent/CN102281263B/zh
Publication of CN102281263A publication Critical patent/CN102281263A/zh
Application granted granted Critical
Publication of CN102281263B publication Critical patent/CN102281263B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种建立Internet小型计算机***接口(iSCSI)会话的方法和iSCSI发起方,iSCSI发起方建立与iSCSI目标方的iSCSI会话时,判断当前所述iSCSI发起方与iSCSI目标方之间是否存在用于iSCSI会话的传输控制协议(TCP)连接,如果是,在已经存在的用于iSCSI会话的TCP连接上建立iSCSI会话;否则iSCSI发起方进行到iSCSI目标方的等价路径探测,在探测到的等价路径上分别建立用于iSCSI会话的TCP连接,并在TCP连接上建立iSCSI会话。通过本发明能够充分利用网络带宽,节约主机CPU资源。

Description

一种建立iSCSI会话的方法和iSCSI发起方
技术领域
本发明涉及网络通信技术领域,特别涉及一种建立iSCSI会话的方法和iSCSI发起方。
背景技术
Internet小型计算机***接口(iSCSI)是一种基于TCP/IP的传输协议,在客户端和存储***之间采用TCP/IP封装并可靠的传输SCSI命令,一个iSCSI协议的典型应用环境如图1所示。在客户端设置iSCSI发起方(Initiator),在存储***设置iSCSI目标方(Target),iSCSI发起方和iSCSI目标方之间首先建立TCP连接,然后在TCP连接上建立iSCSI会话(Session),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-1个业务端口用于后续TCP连接的建立。N为预设的最大等价路径数目,该N的值可以根据具体的网络结构设定,也可以设置为一个经验值。
在建立TCP连接后,iSCSI发起方会在本地建立和维护一个TCP连接信息表,该TCP连接信息表的表项内容可以如表1所示,包括:连接标识(CID)、源端口号、目的端口号、延时信息和连接状态。
表1
  CID   源端口号   目的端口号   延时信息   连接状态
  1   H:4023   S:3260   200   激活(Active)
  2   ...   ...   ...   ...
  3   ...   ...   ...   ...
在TCP连接上建立iSCSI会话的过程在后续进行详细描述。
步骤303:iSCSI发起方进行到iSCSI目标方所在存储设备的等价路径探测。
具体等价路径的探测过程将在后续进行具体描述。
步骤304:iSCSI发起方在探测到的M条等价路径中除了在步骤302已经建立TCP连接的路径之外的其他路径上分别与iSCSI目标方建立TCP连接。
TCP连接的具体建立过程在后续进行详细描述。
在建立了用于iSCSI会话的TCP连接后,将各TCP连接的信息记录在TCP连接信息表中,并为各TCP连接分配CID,可以如表2所示。
表2
  CID   源端口号   目的端口号   延时信息   连接状态
  1   H:4023   S:3260   200   激活(Active)
  2   H:4024   S:3260   230   激活(Active)
  3   H:4025   S:3260   180   激活(Active)
在表1和表2中所示的延时信息和连接状态的确定方式本发明并不做限定,可以由连接状态检测模块采用现有方式确定。iSCSI发起方根据连接状态检测模块检测出的路径延时和连接状态对上述TCP连接信息表进行维护。
步骤305:将运行的iSCSI会话添加建立在步骤304建立的M条TCP连接上,结束流程。
步骤306:在用于iSCSI会话的TCP连接上建立iSCSI会话,结束流程。
其中,上述步骤302、步骤305和步骤306中在TCP连接上建立iSCSI会话的过程可以如图4所示,包括以下步骤:
步骤401:iSCSI发起方通过建立的TCP连接向iSCSI目标方发送会话建立(Login)请求,其中该Login请求的CID字段中携带该TCP连接的CID值。
另外,可以在该Login请求的预留字段中标识该iSCSI会话使用已有的TCP连接。
与现有技术相同,Login请求中还会包含请求建立的iSCSI会话标识(SID)。
步骤402:iSCSI目标方接收到Login请求后,在本地将SID与CID进行绑定,回复会话建立响应(Login Response)。
iSCSI目标方如果确定该Login请求的预留字段中标识该iSCSI会话使用已有的TCP连接,则从Login请求中获取携带的SID和CID,将SID与已有的CID进行绑定。
步骤403:iSCSI发起方接收到Login Response后,将TCP连接信息表中的CID与建立的iSCSI会话的SID进行绑定,用于在该CID标识的TCP连接上进行绑定的SID标识的iSCSI会话。
至此,该TCP连接上的iSCSI会话的建立过程结束。在后续步骤305和306中,会出现在多个TCP连接上建立iSCSI会话,此时,仅需要逐一针对多个TCP连接执行图4所示的步骤,将多个TCP连接的CID分别与要建立的iSCSI会话的SID进行绑定。
上述步骤303中,具体的等价路径探测过程可以如图5所示,主要包括以下步骤:
步骤501:iSCSI发起方从预先指定的N个路径探测端口分别发送目的端口为存储设备的不可达端口的UDP报文,其中设置该UDP报文的TTL为1。
本步骤中指定的N个路径探测端口可以是iSCSI发起方所在网络设备上没有被使用的一系列端口,例如端口30000+1、端口30000+2、......、端口30000+N。
该UDP报文在网络中传输时,iSCSI发起方的下一跳路由器接收到该UDP报文后,由于TTL值为1,将UDP报文丢弃,并向iSCSI发起方返回ICMP超时报文。
在后续其他TTL值的UDP报文传输中,路由器接收到该UDP报文后,如果该TTL值不为1,则将TTL的值减1后继续转发给下一跳,如果TTL值为1,则返回ICMP超时报文。如果存储设备接收到该UDP报文,则返回ICMP端口不可达报文。假设存储设备的不可达端口为35000,则UDP报文的目的端口为35000,只有存储设备接收到该UDP报文后会返回ICMP端口不可达报文。
步骤502:iSCSI发起方判断接收到的是ICMP超时报文还是ICMP端口不可达报文,如果接收到ICMP超时报文,执行步骤503;如果接收到的是ICMP端口不可达报文,则执行步骤505。
步骤503:根据ICMP超时报文的源地址和接收该ICMP超时报文的路径探测端口,记录该路径探测端口对应的ICMP超时报文的返回路径。
步骤504:iSCSI发起方从接收到该IGMP超时报文的路径探测端口发送目的端口为存储设备的不可达端口的UDP报文,该UDP报文携带加1后的TTL值,转至步骤502。
另外,在本步骤中,iSCSI发起方将TTL值加1后,可以判断该TTL值是否达到预设的探测路由最大跳数(MaxHops),如果是,则结束接收到该IGMP超时报文的路径探测端口的UDP报文发送;否则继续从接收到该IGMP超时报文的路径探测端口发送UDP报文。
步骤505:根据ICMP端口不可达报文的源地址和接收该ICMP端口不可达报文的路径探测端口,记录该路径探测端口对应的IGMP端口不可达报文的返回路径,结束该路径探测端口的UDP报文发送。
待所有路径探测端口结束UDP报文发送后,将记录的各路径进行相同路径合并,确定出等价路径。
上述针对各路径探测端口的检测过程可以同时执行,也可以逐一执行。即可以同时从各路径探测端口发送UDP报文进行等价路径检测,也可以逐一从各路径探测端口发送UDP报文,在结束一个路径探测端口的UDP报文发送后开始下一路径探测端口的UDP报文发送。
图5所示上述流程的原理主要是:路由器根据UDP报文的源地址、源端口、目的地址和目的端口在不同路径上转发,因此,同一源端口号的报文始终走同一条路径,通过不断增加TTL的值,便可以获知从iSCSI发起方到存储设备的各路径。举一个例子,如图6所示,预设最大等价路径数目N为8,存储设备的不可达端口为35000,假设iSCSI发起方从端口30001、端口30002、端口30003、......、端口30008八个端口发送UDP报文。
以其中的端口30001为例。iSCSI发起方从端口30001发送目的端口为35000、TTL为1的UDP报文,到达路由器A后,路由器A返回源地址为路由器A地址的ICMP超时报文。iSCSI发起方记录端口30001的下一跳为路由器A,即路径为:主机H-路由器A。
iSCSI发起方再从端口30001发送目的端口为35000、TTL为2的UDP报文,到达路由器C后,路由器C返回源地址为路由器C地址的ICMP超时报文。iSCSI发起方记录端口30001的路径为:主机H-路由器A-路由器C。
iSCSI发起方从端口30001发送目的端口为35000、TTL为3的UDP报文,到达路由器G后,路由器G返回源地址为路由器G地址的ICMP超时报文。iSCSI发起方记录端口30001的路径为:主机H-路由器A-路由器C-路由器G。
iSCSI发起方从端口30001发送目的端口为35000、TTL为4的UDP报文,到达存储设备S后,存储设备S返回源地址为存储设备S地址的ICMP端口不可达报文。iSCSI发起方记录端口30001的路径为:主机H-路由器A-路由器C-路由器G-存储设备S。至此iSCSI发起方停止从端口30001发送UDP报文。
同样,从其他路径探测端口也会探测出到达存储设备的路径,将各端口探测出的相同的路径进行合并,并确定探测出的等价路径。假设探测出的等价路径为M条,M≤N。将探测出的M条等价路径的信息记录在路径信息表中,如表3所示,每个表项可以包含:路径编号、路径经由设备和路径状态。
表3
  路径编号 路径信息   路径状态
  1 H->A->B->C->G->S   激活(Active)
  2 H->A->B->D->G->S   激活(Active)
  3 H->A->E->F->G->S   激活(Active)
通过图3所示的流程,不同的iSCSI会话可以共享同一组TCP连接,且一个iSCSI会话可以建立在一个或两个以上TCP连接上。如果一个iSCSI会话建立在两个以上TCP连接上,则iSCSI发起方可以针对该iSCSI会话在两个以上TCP连接上进行流量均衡。
其中,流量均衡策略可以基于各TCP连接的延时状况,或者基于各TCP连接的业务量状况,或者延时状况和业务量状况的组合,也可以结合其他参考因素。例如,可以根据L=T×a1+R×a2+W×a3确定各TCP连接的流量均衡权重值L,其中,T为TCP连接的延时,R为该TCP连接的读业务量,W为该TCP连接的写业务量,a1、a2和a3分别是延时、读业务和写业务的权重值。根据确定的各TCP连接的流量均衡权重值来分配TCP连接的iSCSI会话流量,流量均衡权重值较大可以给该TCP连接分配较少的iSCSI会话流量,流量均衡权重值较小可以给该TCP连接分配较多的iSCSI会话流量。
如果iSCSI会话所在的其中一条路径出现故障,即路径信息表中该路径状态从激活(Active)转换为故障(Failed),则在该路径上的TCP连接的连接状态也随之转换为Failed。此时,可以重新进行iSCSI发起方到存储设备的等价路径探测,如果本次等价路径探测结果相对于之前的等价路径探测结果(即路径信息表中的等价路径)出现新增路径,则在新增的路径上建立TCP连接,将该TCP连接加入用于iSCSI会话的TCP连接,并将该TCP连接的信息记录在TCP连接信息表中。iSCSI发起方会将Failed状态的TCP连接上的iSCSI会话切换到新增的TCP连接上,该切换机制是iSCSI协议中已有的机制,不再具体赘述。
以上是对本发明所提供的方法进行的详细描述,下面对本发明所提供的iSCSI发起方进行详细描述。图7为本发明提供的iSCSI发起方的结构示意图,如图7所示,该iSCSI发起方包括:iSCSI会话建立单元700、连接判断单元710、路径探测单元720和连接建立单元730。
iSCSI会话建立单元700,用于在建立iSCSI发起方与iSCSI目标方的iSCSI会话时,向连接判断单元710发送判断通知;接收到第一建立通知后,在已经存在的用于iSCSI会话的TCP连接上建立iSCSI会话;接收到第二建立通知后,在连接建立单元730建立的TCP连接上建立iSCSI会话。
连接判断单元710,用于接收到判断通知后,判断当前iSCSI发起方与iSCSI目标方之间是否存在用于iSCSI会话的TCP连接,如果否,向路径探测单元720发送探测通知,如果是,向iSCSI会话建立单元700发送第一建立通知。
路径探测单元720,用于接收到探测通知后,进行iSCSI发起方到iSCSI目标方的等价路径探测。
连接建立单元730,用于在路径探测单元720探测到的等价路径上分别建立用于iSCSI会话的TCP连接,向iSCSI会话建立单元700发送第二建立通知。
另外,连接判断单元710,还可以用于在判断的结果为否时,向连接建立单元730发送初始建立通知。
连接建立单元730,还用于接收到初始建立通知后,选择一个业务端口与iSCSI目标方建立一条TCP连接,向iSCSI会话建立单元700发送第三建立通知。
iSCSI会话建立单元700,还用于接收到第三建立通知时,在连接建立单元730建立的一条TCP连接上建立iSCSI会话。
在上述实现中,连接建立单元730除了选择的一个业务端口之外预留N-1个业务端口;在路径探测单元720探测到的等价路径上分别建立用于iSCSI会话的TCP连接时,使用预留的N-1个业务端口中的M-1个业务端口。
其中N为预设的最大等价路径数目,M为路径探测单元探测到的等价路径数目,M≤N。
其中,上述连接建立单元730建立用于iSCSI会话的TCP连接后,将建立的TCP连接的信息记录在TCP连接信息表中。TCP连接的信息可以包括:为TCP连接分配的连接标识CID、TCP连接的源端口号、目的端口号、延时信息和连接状态。
具体地,iSCSI会话建立单元700可以包括:预处理子单元701、请求发送子单元702和会话绑定子单元703。
预处理子单元701,用于在建立iSCSI发起方与iSCSI目标方的iSCSI会话时,向连接判断单元710发送判断通知。
请求发送子单元702,用于接收到第一建立通知或第二建立通知后,通过已经建立的用于iSCSI会话的TCP连接向iSCSI目标方发送会话建立Login请求,其中该Login请求携带TCP连接的CID以及请求建立的iSCSI会话的标识SID。
会话绑定子单元703,用于接收到iSCSI目标方回复的Login Response后,在本地将CID与SID进行绑定,用于在该CID所标识的TCP连接上进行与该CID绑定的SID所标识的iSCSI会话。
更进一步地,路径探测单元720可以具体包括:路径探测子单元721和路径处理子单元722。
其中,路径探测子单元721包括:端口探测模块7211、报文收发模块7212、TTL值设置模块7213和路径记录模块7214。
端口探测模块7211,用于对预先指定的N个路径探测端口分别进行处理,将处理到的当前路径探测端口信息提供给报文收发模块7212,并触发报文收发模块7212发送UDP报文。
报文收发模块7212,用于受到触发后,从当前路径探测端口发送目的端口为iSCSI目标方所在存储设备的不可达端口的UDP报文;从当前路径探测端口接收IGMP超时报文或IGMP端口不可达报文。
TTL值设置模块7213,用于在报文收发模块7212从当前路径探测端口初始发送UDP报文时,将该UDP报文的TLL值设置为1,之后报文收发模块7212每从当前路径探测端口发送一次UDP报文,将UDP报文的TTL值加1。
路径记录模块7214,用于在报文收发模块7212接收到IGMP超时报文时,根据IGMP超时报文的源地址,记录当前路径探测端口对应的IGMP超时报文的返回路径,触发报文收发模块7212发送UDP报文;在报文收发模块7212接收到IGMP端口不可达报文时,根据IGMP端口不可达报文的源地址,记录当前路径探测端口对应的IGMP端口不可达报文的返回路径,触发报文收发模块7212结束从当前路径探测端口发送UDP报文。
路径处理子单元722,用于待报文收发模块7212结束所有路径探测端口的UDP报文发送后,将路径记录模块7214记录的各路径进行相同路径合并,确定出等价路径。
更优地,该iSCSI发起方还可以包括:流量均衡单元740,用于在iSCSI会话建立在两个以上TCP连接上时,根据两个以上TCP连接的延时状况和/或业务量状况,针对该iSCSI会话在两个以上TCP连接上进行流量均衡。
更进一步地,该iSCSI发起方还可以包括:会话维护单元750,用于当其中一条用于iSCSI会话的TCP连接出现故障时,向路径探测单元720发送探测通知;如果路径探测单元720的探测结果中出现新增路径,则触发连接建立单元730在新增路径上建立TCP连接,并将出现故障的TCP连接上的iSCSI会话切换到在新增路径上建立的TCP连接上。
由以上描述可以看出,本发明中iSCSI发起方在建立iSCSI会话时,如果已经存在用于iSCSI会话的TCP连接,则在已经存在的TCP连接上建立iSCSI会话,如果尚未存在用于iSCSI会话的TCP连接,则通过等价路径探测过程,在探测到的等价路径上建立用于iSCSI会话的TCP连接,在建立的TCP连接上建立iSCSI会话。即所有iSCSI会话通过共享同一组TCP连接的方式,减少iSCSI会话占用的TCP连接,从而节约网络带宽和主机因维护TCP连接而占用的主机CPU资源。另外,用于iSCSI会话的TCP连接数量的减少节约了物理链路,减少了物理链路的拥塞现象,提高传输效率。
图8为现有技术和本发明所提供的方法对应的各层的关系示意图,其中(a)为现有技术的各层关系示意图,不同的iSCSI会话占用不同的TCP连接组,(b)为本发明的各层关系示意图,所有的iSCSI会话共享同一组TCP连接。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (16)

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-1个业务端口;
所述步骤D中,选择预留的N-1个业务端口中的M-1个业务端口分别建立用于iSCSI会话的TCP连接;
其中N为预设的最大等价路径数目,M为步骤C中探测到的等价路径数目,M≤N。
4.根据权利要求1至3任一权项所述的方法,其特征在于,在建立用于iSCSI会话的TCP连接后,将建立的TCP连接的信息记录在TCP连接信息表中;
所述TCP连接的信息包括:为TCP连接分配的连接标识CID、TCP连接的源端口号、目的端口号、延时信息和连接状态。
5.根据权利要求1至3任一权项所述的方法,其特征在于,在TCP连接上建立iSCSI会话的过程具体包括:
S1、所述iSCSI发起方通过建立的TCP连接向iSCSI目标方发送会话建立Login请求,其中该Login请求携带所述建立的TCP连接的CID以及请求建立的iSCSI会话的标识SID;
S2、所述iSCSI目标方接收到Login请求后,在本地将所述Login请求携带的CID与SID进行绑定,并回复会话建立响应Login Response;
S3、所述iSCSI发起方接收到所述Login Response后,在本地将所述CID与所述SID进行绑定,用于在该CID所标识的TCP连接上进行与该CID绑定的SID所标识的iSCSI会话。
6.根据权利要求1至3任一权项所述的方法,其特征在于,所述步骤C具体包括:
C1、所述iSCSI发起方针对预先指定的N个路径探测端口分别执行步骤F1至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.一种Internet小型计算机***接口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-1个业务端口;在所述路径探测单元探测到的等价路径上分别建立用于iSCSI会话的TCP连接时,使用预留的N-1个业务端口中的M-1个业务端口;
其中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连接上。
CN201010208336.9A 2010-06-13 2010-06-13 一种建立iSCSI会话的方法和iSCSI发起方 Expired - Fee Related CN102281263B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010208336.9A CN102281263B (zh) 2010-06-13 2010-06-13 一种建立iSCSI会话的方法和iSCSI发起方

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010208336.9A CN102281263B (zh) 2010-06-13 2010-06-13 一种建立iSCSI会话的方法和iSCSI发起方

Publications (2)

Publication Number Publication Date
CN102281263A true CN102281263A (zh) 2011-12-14
CN102281263B CN102281263B (zh) 2014-10-22

Family

ID=45106441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010208336.9A Expired - Fee Related CN102281263B (zh) 2010-06-13 2010-06-13 一种建立iSCSI会话的方法和iSCSI发起方

Country Status (1)

Country Link
CN (1) CN102281263B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491024A (zh) * 2015-11-24 2016-04-13 北京邮电大学 一种udp端口的复用方法
CN106899510A (zh) * 2015-12-18 2017-06-27 华为技术有限公司 一种基于iSCSI协议的传输速率控制方法和装置
CN105450755B (zh) * 2015-12-01 2018-12-14 深圳市迪菲特科技股份有限公司 一种基于ipsan的均衡多主机网口性能的方法及装置
WO2018233447A1 (zh) * 2017-06-23 2018-12-27 中兴通讯股份有限公司 实现链路连接处理的方法、及装置及存储介质
CN110290067A (zh) * 2019-07-01 2019-09-27 北京云端智度科技有限公司 一种基于多次协议测试的端到端网络路径的发现方法
WO2022021853A1 (zh) * 2020-07-28 2022-02-03 苏州浪潮智能科技有限公司 一种iscsi多路径管理***、方法、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188558A (zh) * 2007-12-07 2008-05-28 杭州华三通信技术有限公司 访问控制方法、单元及网络设备
US7461140B2 (en) * 2003-12-19 2008-12-02 Lsi Corporation Method and apparatus for identifying IPsec security policy in iSCSI

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461140B2 (en) * 2003-12-19 2008-12-02 Lsi Corporation Method and apparatus for identifying IPsec security policy in iSCSI
CN101188558A (zh) * 2007-12-07 2008-05-28 杭州华三通信技术有限公司 访问控制方法、单元及网络设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491024A (zh) * 2015-11-24 2016-04-13 北京邮电大学 一种udp端口的复用方法
CN105450755B (zh) * 2015-12-01 2018-12-14 深圳市迪菲特科技股份有限公司 一种基于ipsan的均衡多主机网口性能的方法及装置
CN106899510A (zh) * 2015-12-18 2017-06-27 华为技术有限公司 一种基于iSCSI协议的传输速率控制方法和装置
CN106899510B (zh) * 2015-12-18 2020-04-03 华为技术有限公司 一种基于iSCSI协议的传输速率控制方法和装置
WO2018233447A1 (zh) * 2017-06-23 2018-12-27 中兴通讯股份有限公司 实现链路连接处理的方法、及装置及存储介质
CN109120578A (zh) * 2017-06-23 2019-01-01 中兴通讯股份有限公司 一种实现链路连接处理的方法及装置
CN109120578B (zh) * 2017-06-23 2022-10-11 中兴通讯股份有限公司 一种实现链路连接处理的方法及装置
CN110290067A (zh) * 2019-07-01 2019-09-27 北京云端智度科技有限公司 一种基于多次协议测试的端到端网络路径的发现方法
WO2022021853A1 (zh) * 2020-07-28 2022-02-03 苏州浪潮智能科技有限公司 一种iscsi多路径管理***、方法、设备及存储介质
US11909634B2 (en) 2020-07-28 2024-02-20 Inspur Suzhou Intelligent Technology Co., Ltd. ISCSI multipath management system and method, device, and storage medium

Also Published As

Publication number Publication date
CN102281263B (zh) 2014-10-22

Similar Documents

Publication Publication Date Title
CN101309185B (zh) 堆叠***中多主用设备的处理方法和堆叠成员设备
CN102281263B (zh) 一种建立iSCSI会话的方法和iSCSI发起方
EP3352431B1 (en) Network load balance processing system, method, and apparatus
CN100579034C (zh) 上报设备信息的方法、获取设备信息的***和设备
CN103493449B (zh) 分组交换网络中的有效电路
CN103259678B (zh) 主备切换方法、装置、设备及***
CN100586106C (zh) 报文处理方法、***和设备
US6816899B1 (en) Communications system
EP2493127A1 (en) Method for virtual link discovery control and system for fibre channel over ethernet protocol
CN102668467A (zh) 计算机***和监视计算机***的方法
CN101026589A (zh) 一种路由选择的方法和路由器
CN102025630A (zh) 负载均衡方法及负载均衡***
CN101977245A (zh) 一种ip地址冲突检测的方法、网络设备和***
CN103595638B (zh) 一种mac地址学习方法及装置
CN102195882A (zh) 根据数据流应用类型选路的方法及装置
CN102137109B (zh) 一种访问控制方法、接入设备及***
CN108833149A (zh) 一种快递柜网络可用性监控与自愈的方法及***
EP2466796A1 (en) User access method, system and access server, access device
CN114513467B (zh) 一种数据中心的网络流量负载均衡方法及装置
JPH06326713A (ja) データ伝送制御方法
US20150139244A1 (en) Transmitting a Packet from a Distributed Trunk Switch
CN101841424A (zh) 基于socks代理连接的ems网管***和方法
CN110601989A (zh) 一种网络流量均衡方法及装置
US9065669B2 (en) Method and apparatus for authorizing multicast forwarding states
CN103905383A (zh) 一种数据报文转发方法、装置和***

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: Huasan Communication Technology Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141022

Termination date: 20200613