CN102281263B - 一种建立iSCSI会话的方法和iSCSI发起方 - Google Patents
一种建立iSCSI会话的方法和iSCSI发起方 Download PDFInfo
- Publication number
- CN102281263B CN102281263B CN201010208336.9A CN201010208336A CN102281263B CN 102281263 B CN102281263 B CN 102281263B CN 201010208336 A CN201010208336 A CN 201010208336A CN 102281263 B CN102281263 B CN 102281263B
- Authority
- CN
- China
- Prior art keywords
- iscsi
- tcp
- session
- port
- connection
- 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.)
- Expired - Fee Related
Links
Abstract
本发明提供了一种建立Internet小型计算机系统接口(iSCSI)会话的方法和iSCSI发起方,iSCSI发起方建立与iSCSI目标方的iSCSI会话时,判断当前所述iSCSI发起方与iSCSI目标方之间是否存在用于iSCSI会话的传输控制协议(TCP)连接,如果是,在在已经存在的用于iSCSI会话的TCP连接上建立iSCSI会话;否则iSCSI发起方进行到iSCSI目标方的等价路径探测,在探测到的等价路径上分别建立用于iSCSI会话的TCP连接,并在TCP连接上建立iSCSI会话。通过本发明能够充分利用网络带宽,节约主机CPU资源。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及一种建立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 (14)
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会话;
其中,所述步骤C具体包括:步骤C1和C2;
C1、所述iSCSI发起方针对预先指定的N个路径探测端口分别执行步骤F1至F5;其中N为预设的最大等价路径数目;
F1、从当前路径探测端口发送目的端口为所述iSCSI目标方所在存储设备的不可达端口的UDP报文,其中,该UDP报文的TTL值设置为1;之后执行步骤F2;
F2、所述iSCSI发起方判断接收到的是ICMP超时报文还是ICMP端口不可达报文,如果接收到ICMP超时报文,执行步骤F3;如果接收到的是ICMP端口不可达报文,则执行步骤F5;
F3、根据所述ICMP超时报文的源地址,记录所述当前路径探测端口对应的ICMP超时报文的返回路径;之后执行步骤F4;
F4、所述iSCSI发起方从所述当前路径探测端口发送目的端口为所述存储设备不可达端口的UDP报文,该UDP报文携带加1后的TTL值,之后转至步骤F2;
F5、根据所述ICMP端口不可达报文的源地址,记录所述当前路径探测端口对应的IGMP端口不可达报文的返回路径,结束所述当前路径探测端口的UDP报文发送;
C2、待所有路径探测端口结束UDP报文发送后,将记录的各路径进行相同路径合并,确定出等价路径。
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任一权项所述的方法,其特征在于,当iSCSI会话建立在两个以上TCP连接上时,所述iSCSI发起方根据所述两个以上TCP连接的延时状况和/或业务量状况,针对该iSCSI会话在所述两个以上TCP连接上进行流量均衡。
7.根据权利要求1至3任一权项所述的方法,其特征在于,当其中一条用于iSCSI会话的TCP连接出现故障,则所述iSCSI发起方重新进行iSCSI发起方到iSCSI目标方的等价路径探测,如果探测结果出现新增路径,则在该新增路径上建立TCP连接,并将出现故障的TCP连接上的iSCSI会话切换到在新增路径上建立的TCP连接上。
8.一种Internet小型计算机系统接口iSCSI发起方设备,其特征在于,该iSCSI发起方设备包括:iSCSI会话建立单元、连接判断单元、路径探测单元和连接建立单元;
所述iSCSI会话建立单元,用于在建立所述iSCSI发起方设备与iSCSI目标方设备的iSCSI会话时,向所述连接判断单元发送判断通知;接收到第一建立通知后,在已经存在的用于iSCSI会话的传输控制协议TCP连接上建立iSCSI会话;接收到第二建立通知后,在所述连接建立单元建立的TCP连接上建立iSCSI会话;
所述连接判断单元,用于接收到所述判断通知后,判断当前所述iSCSI发起方设备与iSCSI目标方设备之间是否存在用于iSCSI会话的TCP连接,如果否,向所述路径探测单元发送探测通知,如果是,向所述iSCSI会话建立单元发送第一建立通知;
所述路径探测单元,用于接收到探测通知后,进行所述iSCSI发起方设备到所述iSCSI目标方设备的等价路径探测;
所述连接建立单元,用于在所述路径探测单元探测到的等价路径上分别建立用于iSCSI会话的TCP连接,向所述iSCSI会话建立单元发送第二建立通知;
其中,所述路径探测单元具体包括:用于针对预先指定的N个路径探测端口分别执行步骤F1至F5的单元,以及用于待所有路径探测端口结束UDP报文发送后,将记录的各路径进行相同路径合并,确定出等价路径的单元;其中,N为预设的最大等价路径数目;
F1、从当前路径探测端口发送目的端口为所述iSCSI目标方设备所在存储设备的不可达端口的UDP报文,其中,该UDP报文的TTL值设置为1;之后执行步骤F2;
F2、判断接收到的是ICMP超时报文还是ICMP端口不可达报文,如果接收到的是ICMP超时报文,则执行步骤F3;如果接收到的是ICMP端口不可达报文,则执行步骤F5;
F3、根据所述ICMP超时报文的源地址,记录所述当前路径探测端口对应的ICMP超时报文的返回路径;之后执行步骤F4;
F4、从所述当前路径探测端口发送目的端口为所述存储设备不可达端口的UDP报文,该UDP报文携带加1后的TTL值,之后转至步骤F2;
F5、根据所述ICMP端口不可达报文的源地址,记录所述当前路径探测端口对应的IGMP端口不可达报文的返回路径,结束所述当前路径探测端口的UDP报文发送。
9.根据权利要求8所述的iSCSI发起方设备,其特征在于,所述连接判断单元,还用于在所述判断的结果为否时,向所述连接建立单元发送初始建立通知;
所述连接建立单元,还用于接收到初始建立通知后,选择一个业务端口与所述iSCSI目标方设备建立一条TCP连接,向所述iSCSI会话建立单元发送第三建立通知;
所述iSCSI会话建立单元,还用于接收到第三建立通知时,在所述连接建立单元建立的所述一条TCP连接上建立iSCSI会话。
10.根据权利要求9所述的iSCSI发起方设备,其特征在于,所述连接建立单元除了所述选择的一个业务端口之外预留N-1个业务端口;在所述路径探测单元探测到的等价路径上分别建立用于iSCSI会话的TCP连接时,使用预留的N-1个业务端口中的M-1个业务端口;
其中N为预设的最大等价路径数目,M为所述路径探测单元探测到的等价路径数目,M≤N。
11.根据权利要求8至10任一权项所述的iSCSI发起方设备,其特征在于,所述连接建立单元建立用于iSCSI会话的TCP连接后,将建立的TCP连接的信息记录在TCP连接信息表中;
所述TCP连接的信息包括:为TCP连接分配的连接标识CID、TCP连接的源端口号、目的端口号、延时信息和连接状态。
12.根据权利要求8至10任一权项所述的iSCSI发起方设备,其特征在于,所述iSCSI会话建立单元具体包括:
预处理子单元,用于在建立所述iSCSI发起方设备与iSCSI目标方设备的iSCSI会话时,向所述连接判断单元发送判断通知;
请求发送子单元,用于接收到第一建立通知或第二建立通知后,通过已经建立的用于iSCSI会话的TCP连接向iSCSI目标方设备发送会话建立Login请求,其中该Login请求携带TCP连接的CID以及请求建立的iSCSI会话的标识SID;
会话绑定子单元,用于接收到iSCSI目标方设备回复的Login Response后,在本地将所述CID与所述SID进行绑定,用于在该CID所标识的TCP连接上进行与该CID绑定的SID所标识的iSCSI会话。
13.根据权利要求8至10任一权项所述的iSCSI发起方设备,其特征在于,该iSCSI发起方设备还包括:流量均衡单元,用于在iSCSI会话建立在两个以上TCP连接上时,根据所述两个以上TCP连接的延时状况和/或业务量状况,针对该iSCSI会话在所述两个以上TCP连接上进行流量均衡。
14.根据权利要求8至10任一权项所述的iSCSI发起方设备,其特征在于,会话维护单元,用于当其中一条用于iSCSI会话的TCP连接出现故障时,向所述路径探测单元发送探测通知;如果所述路径探测单元的探测结果中出现新增路径,则触发所述连接建立单元在所述新增路径上建立TCP连接,并将出现故障的TCP连接上的iSCSI会话切换到在新增路径上建立的TCP连接上。
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 CN102281263A (zh) | 2011-12-14 |
CN102281263B true 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) |
Families Citing this family (6)
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的均衡多主机网口性能的方法及装置 |
CN106899510B (zh) * | 2015-12-18 | 2020-04-03 | 华为技术有限公司 | 一种基于iSCSI协议的传输速率控制方法和装置 |
CN109120578B (zh) * | 2017-06-23 | 2022-10-11 | 中兴通讯股份有限公司 | 一种实现链路连接处理的方法及装置 |
CN110290067A (zh) * | 2019-07-01 | 2019-09-27 | 北京云端智度科技有限公司 | 一种基于多次协议测试的端到端网络路径的发现方法 |
CN111901245B (zh) | 2020-07-28 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种iscsi多路径管理系统、方法、设备及存储介质 |
Citations (2)
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 |
-
2010
- 2010-06-13 CN CN201010208336.9A patent/CN102281263B/zh not_active Expired - Fee Related
Patent Citations (2)
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 | 杭州华三通信技术有限公司 | 访问控制方法、单元及网络设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102281263A (zh) | 2011-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102281263B (zh) | 一种建立iSCSI会话的方法和iSCSI发起方 | |
US20090232152A1 (en) | Method and apparatus for aggregating ports | |
US8929368B2 (en) | Control method of virtual link discovery and system for fibre channel over ethernet protocol | |
EP3352431B1 (en) | Network load balance processing system, method, and apparatus | |
US6816899B1 (en) | Communications system | |
CN101977245A (zh) | 一种ip地址冲突检测的方法、网络设备和系统 | |
CN101026589A (zh) | 一种路由选择的方法和路由器 | |
CN106302322B (zh) | 一种虚拟机数据流管理方法和系统 | |
CN102571729A (zh) | Ipv6网络接入认证方法、装置及系统 | |
EP2466796B1 (en) | User access method, system and access server, access device | |
CN107872368B (zh) | 一种网络节点集群中网关可达性的检测方法、装置及终端 | |
CN102195882A (zh) | 根据数据流应用类型选路的方法及装置 | |
CN102137109B (zh) | 一种访问控制方法、接入设备及系统 | |
CN102045379B (zh) | 一种进行ip存储的方法、系统和存储设备 | |
CN101179515A (zh) | 一种抑制黑洞路由的方法和装置 | |
CN102006268A (zh) | 主备接口切换方法、设备及系统 | |
CN107659436A (zh) | 一种防止业务中断的方法及装置 | |
CN111385324A (zh) | 一种数据通信方法、装置、设备和存储介质 | |
CN112468363B (zh) | 一种链路连通性检测的方法及装置 | |
CN101227378B (zh) | 基于网络存储的通信业务建立方法及存储设备 | |
CN106992878B (zh) | 一种组播检测的方法及装置 | |
US20100195647A1 (en) | Method and apparatus for packet processing | |
CN108965363B (zh) | 一种处理报文的方法和设备 | |
CN109039680B (zh) | 一种切换主宽带网络网关bng和备bng的方法、系统和bng | |
CN105025028A (zh) | 基于流量分析的ip黑洞发现方法 |
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 |
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. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141022 Termination date: 20200613 |
|
CF01 | Termination of patent right due to non-payment of annual fee |