一种iSCSI协议会话建立的方法及装置与流程

文档序号:11206648阅读:351来源:国知局
一种iSCSI协议会话建立的方法及装置与流程
本发明涉及网络协议领域,更具体地说,涉及一种iscsi协议会话建立的方法及装置。
背景技术
:iscsi协议技术的实现是指通过客户端的iscsiinitiator发起请求、存储端的iscsitarget处理请求完成iscsi协议处理过程。iet是一种内核态的iscsitarget,利用iet处理iscsi的主要过程是在内核态中执行,其中有一种名为kernelport的数据结构,每一个kernelport与每一个内核线程绑定,其中,每一个内核线程负责iscsi协议的处理过程。iscsi的login是客户端与存储端建立会话的过程,通过login,客户端与存储端建立起会话,从而可以进行命令、数据和状态的传输。如何分配多个login过程就是分配iscsi协议处理的任务过程。目前分配login的方法是基于物理端口进行分配,即固定物理端口对应固定的kernelport,但是这种情况下会是部分kernelport的内核线程非常拥挤,部分kernelport上文内核线程处于空闲状态,造成资源浪费。因此,如何合理利用kernelport上文内核线程,避免资源浪费,是本领域技术人员需要解决的问题。技术实现要素:本发明的目的在于提供一种iscsi协议会话建立的方法及装置,以合理利用kernelport上文内核线程,避免资源浪费。为实现上述目的,本发明实施例提供了如下技术方案:一种iscsi协议会话建立的方法,包括:接收由客户端发送的login请求;记录login请求的次数;确定所述次数所在的预设次数范围,根据预设对应关系为所述login请求分配kernelport,并建立会话;其中所述预设对应关系为所述预设次数范围与所述kernelport的序号的预设对应关系。其中,确定所述次数所在的预设次数范围,根据预设对应关系为所述login请求分配kernelport,包括:利用所述次数为所述login请求分配kernelport,其中所述kernelport的序号与所述次数相同。其中,利用所述次数为所述login请求分配kernelport之前,还包括:判断所述次数是否等于kernelport的总数加一;若是则将所述次数更新为1。其中,利用所述次数为所述login请求分配kernelport之前,还包括:判断所述次数是否大于kernelport的总数;若是,则利用所述次数与所述总数做求余得到余数,利用所述余数为所述login请求分配kernelport;若否,则继续执行利用所述次数为所述login请求分配kernelport的步骤。其中,所述接收由客户端发送的login请求之后,还包括:判断存储端是否有空闲的kernelport;若是,则为所述login请求分配一个空闲的kernelport;若否,则继续执行所述记录login请求的次数的步骤。一种iscsi协议会话建立的装置,,包括:login请求接收模块,用于接收由客户端发送的login请求;记录模块,用于记录login请求的次数;第一分配模块,用于确定所述次数所在的预设次数范围,根据预设对应关系为所述login请求分配kernelport,并建立会话;其中所述预设对应关系为所述预设次数范围与所述kernelport的序号的对应关系。其中,所述第一分配模块具体用于:利用所述次数为所述login请求分配kernelport,并建立会话;其中所述kernelport序号与所述次数相同。其中,还包括:第一判断模块,用于利用所述次数为所述login请求分配kernelport之前,判断所述次数是否等于kernelport的总数加一;更新模块,用于述次数是否等于kernelport的总数加一时,将所述次数更新为1。其中,还包括:第二判断模块,用于利用所述次数为所述login请求分配kernelport之前,判断所述次数是否大于kernelport的总数;若否,则继续调用所述第一分配模块;第二分配模块,用于当所述次数大于kernelport的总数时,利用所述次数与所述总数做求余得到余数,利用所述余数为所述login请求分配kernelport。其中,还包括:第三判断模块,用于接收由客户端发送的login请求之后,判断存储端是否有空闲的kernelport;若否,则继续调用所述记录模块;第三分配模块,用于所述存储端有空闲的kernelport时,为所述login请求分配一个空闲的kernelport。通过以上方案可知,本发明实施例提供的一种iscsi协议会话建立的方法,包括:接收由客户端发送的login请求;记录login请求的次数;确定所述次数所在的预设次数范围,根据预设对应关系为所述login请求分配kernelport,并建立会话;其中所述预设对应关系为所述预设次数范围与所述kernelport的序号的预设对应关系。由此可见,本发明实施例提供的一种iscsi协议会话建立的方法,通过利用login的访问次数分配kernelport,可以避免由login的网卡分配kernelport时,同一网卡的多次login请求集中在一个kernelport而其他kernelport空闲的问题;根据login的次数分配kernelport可以使每个kernelport均衡地接收login,因此合理的利用了cpu资源,也提高了iscsi协议处理效率,从而提高了iscsi协议的性能。本发明实施例还提供一种iscsi协议会话建立的装置,同样可以实现上述技术效果。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例公开的一种iscsi协议会话建立的方法流程图;图2为本发明实施例公开的一种具体的iscsi协议会话建立的方法流程图;图3为本发明实施例公开的一种具体的iscsi协议会话建立的方法流程图;图4为本发明实施例公开的一种iscsi协议会话建立的装置结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例公开了一种iscsi协议会话建立的方法及装置,以合理利用kernelport上文内核线程,避免资源浪费。参见图1,本发明实施例提供的一种iscsi协议会话建立的方法,具体包括:s101,接收由客户端发送的login请求。需要说明的是,iscsi的login是客户端与存储端建立会话的过程,客户端通过login与存储端建立会话,从而可以进行命令、数据和状态的传输。客户端发起login请求后,存储端需要为login分配kernelport,然后建立连接。s102,记录login请求的次数。在本方案中,存储端接收到login后记录此次login请求的次数。s103,确定所述次数所在的预设次数范围,根据预设对应关系为所述login请求分配kernelport,并建立会话;其中所述预设对应关系为所述预设次数范围与所述kernelport的序号的预设对应关系。具体地,确定一个次数范围以及对应关系,找到此次login的次数所在哪个范围,再通过对应关系,找到这个范围内的login应该被分配到哪个kernelport。例如存储端有5个kernelport、预计login有10次时,那么可以将对应关系确定为如表1所示。表1关系对应表范围数login次数kernelport11、2123、4235、6347、8459、105需要说明的是,login的次数不仅限于表1所示,也可以将第1次与第6次作为范围1,与kernelport1对应,也可以根据login次数与kernelport的总数确定合理的login范围,作出合理的对应关系表,此处不再赘述。通过以上方案可知,本发明实施例提供的一种iscsi协议会话建立的方法,通过利用login的访问次数分配kernelport,可以避免由login的网卡分配kernelport时,同一网卡的多次login请求集中在一个kernelport而其他kernelport空闲的问题;根据login的次数分配kernelport可以使每个kernelport均衡地接收login,因此合理的利用了cpu资源,也提高了iscsi协议处理效率,从而提高了iscsi协议的性能。本发明实施例公开了一种具体的iscsi协议会话建立的方法,区别于上一实施例,本发明实施例对上述实施例中s103作了进一步的限定和说明,其他步骤内容与上述实施例大致相同,具体步骤内容可以参照上述实施例相应的部分,此处不再赘述,具体地,s103包括:利用所述次数为所述login请求分配kernelport,其中所述kernelport的序号与所述次数相同。具体地,利用login的次数为其分配对应的kernelport,例如当前login次数为1,那么就将其分配到kernelport1,也就是说login1对应kernelport1,login2对应kernelport2,以此类推。由此可见,每一个kernelport都均匀的分配到了login,因此不会出现一个kernelport上积攒很多login的情况。基于上述实施例,本发明实施例提供一种具体的iscsi协议会话建立的方法,参见图2,本发明实施例具体包括:s201,接收由客户端发送的login请求。s202,记录login请求的次数。s203,判断所述次数是否等于kernelport的总数加一。需要说明的是,当利用上述实施例进行一对一匹配时,如果login次数大于kernelport总数了,那么就需要将次数轮回,然后再分配kernelport。具体地,首先判断login的次数是否等于kernelport总数加一。s204,若是则将所述次数更新为1。具体地,当login次数等于kernelport总数加一时,将此次login请求的次数归为1。例如,当login次数为第6次,存储端有5个kernelport时,那么将第6次的login请求重新置为第1次,并将此此login请求分配到第一次login对应的kernelport。下一次的login继续加1为2,以此类推直至第6次再将次数置为1。s205,利用所述次数为所述login请求分配kernelport,其中所述kernelport的序号与所述次数相同。基于上述实施例,本发明实施例提供了一种具体的iscsi协议会话建立的方法,参见图3,本发明实施例具体包括:s301,接收由客户端发送的login请求。s302,记录login请求的次数。s303,判断所述次数是否大于kernelport的总数。s304,若是,则利用所述次数与所述总数做求余得到余数,利用所述余数为所述login请求分配kernelport。具体地,当前的login次数大于kernelport总数时,利用次数与kernelport总数做求余得到余数,利用余数为login分配kernelport。例如,当kernelport的总数为5,此次login次数为6,那么求余得到余数为1,将第6次的login分配为第一次login对应kernelport1。s305,若否,则继续执行利用所述次数为所述login请求分配kernelport的步骤。如果login次数没有超过kernelport总数,那么可以按照上述实施例提供的方法,利用次数匹配对应kernelport,例如第一次分配到kernelport1。s305,利用所述次数为所述login请求分配kernelport,其中所述kernelport的序号与所述次数相同。为了更合理利用资源,避免浪费空闲的kernelport,本发明实施例提供了一种具体地实施例,在上述实施例中所述的接收由客户端发送的login请求之后,还包括:判断存储端是否有空闲的kernelport;若是,则为所述login请求分配一个空闲的kernelport;若否,则继续执行所述记录login请求的次数的步骤。需要说明的是,在利用login次数为login分配kernelport时,可能会有一个kernelport已空闲,但是目前待分配的login所对应的kernelport不是这个空闲的kernelport,因此记录次数之前,首先判断存储端中是否已有空闲的kernelport,如果有,则优先分配到空闲的kernelport,如果没有再记录次数,按照此处进行分配。下面对本发明实施例提供的一种iscsi协议会话建立的装置,进行介绍,参见图4,本发明实施例提供的一种iscsi协议会话建立的装置具体包括:login请求接收模块401,用于接收由客户端发送的login请求。需要说明的是,iscsi的login是客户端与存储端建立会话的过程,客户端通过login与存储端建立会话,从而可以进行命令、数据和状态的传输。login请求接收模块401接收到客户端发起的login请求后,存储端需要为login分配kernelport,然后建立连接。记录模块402,用于记录login请求的次数。在本方案中,存储端接收到login后记录模块402记录此次login请求的次数。第一分配模块403,用于确定所述次数所在的预设次数范围,根据预设对应关系为所述login请求分配kernelport,并建立会话;其中所述预设对应关系为所述预设次数范围与所述kernelport的序号的对应关系。具体地,第一分配模块403确定一个次数范围以及对应关系,找到此次login的次数所在哪个范围,再通过对应关系,找到这个范围内的login应该被分配到哪个kernelport。需要说明的是,可以根据login次数与kernelport的总数确定合理的login范围,作出合理的对应关系表,此处不再赘述。通过以上方案可知,本发明实施例提供的一种iscsi协议会话建立的方法,第一分配模块403利用login的访问次数分配kernelport,可以避免由login的网卡分配kernelport时,同一网卡的多次login请求集中在一个kernelport而其他kernelport空闲的问题;根据login的次数分配kernelport可以使每个kernelport均衡地接收login,因此合理的利用了cpu资源,也提高了iscsi协议处理效率,从而提高了iscsi协议的性能。本发明实施例公开了一种具体的iscsi协议会话建立的装置,区别于上一实施例,本发明实施例对上述实施例中第一分配模块403作了进一步的限定和说明,其他内容与上述实施例大致相同,具体内容可以参照上述实施例相应的部分,此处不再赘述,具体地,第一分配模块403具体用于:利用所述次数为所述login请求分配kernelport,其中所述kernelport的序号与所述次数相同。具体地,第一分配模块403利用login的次数为其分配对应的kernelport,例如当前login次数为1,那么就将其分配到kernelport1,也就是说login1对应kernelport1,login2对应kernelport2,以此类推。由此可见,每一个kernelport都均匀的分配到了login,因此不会出现一个kernelport上积攒很多login的情况。基于上述实施例,本发明实施例提供一种具体的iscsi协议会话建立的装置,本发明实施例具体包括:login请求接收模块,用于接收由客户端发送的login请求。记录模块,用于记录login请求的次数。第一判断模块,用于利用所述次数为所述login请求分配kernelport之前,判断所述次数是否等于kernelport的总数加一。需要说明的是,当利用上述实施例进行一对一匹配时,如果login次数大于kernelport总数了,那么就需要将次数轮回,然后再分配kernelport。具体地,首先利用第一判断模块判断login的次数是否等于kernelport总数加一。更新模块,用于述次数是否等于kernelport的总数加一时,将所述次数更新为1。具体地,当login次数等于kernelport总数加一时,更新模块将此次login请求的次数归为1。例如,当login次数为第6次,存储端有5个kernelport时,那么将第6次的login请求重新置为第1次,并将此此login请求分配到第一次login对应的kernelport。下一次的login继续加1为2,以此类推直至第6次再将次数置为1。第一分配模块,用于利用所述次数为所述login请求分配kernelport,并建立会话;其中所述kernelport序号与所述次数相同。基于上述实施例,本发明实施例提供了一种具体的iscsi协议会话建立的装置,本发明实施例具体包括:login请求接收模块,用于接收由客户端发送的login请求;记录模块,用于记录login请求的次数。第二判断模块,用于利用所述次数为所述login请求分配kernelport之前,判断所述次数是否大于kernelport的总数;若否,则继续调用所述第一分配模块。第二分配模块,用于当所述次数大于kernelport的总数时,利用所述次数与所述总数做求余得到余数,利用所述余数为所述login请求分配kernelport。具体地,当前的login次数大于kernelport总数时,第二分配模块利用次数与kernelport总数做求余得到余数,利用余数为login分配kernelport。例如,当kernelport的总数为5,此次login次数为6,那么求余得到余数为1,将第6次的login分配为第一次login对应kernelport1。第一分配模块,用于利用所述次数为所述login请求分配kernelport,并建立会话;其中所述kernelport序号与所述次数相同。如果login次数没有超过kernelport总数,那么可以参照上述实施例提供的装置,第一分配模块利用次数匹配对应kernelport,例如第一次分配到kernelport1。为了更合理利用资源,避免浪费空闲的kernelport,本发明实施例提供了一种具体的iscsi协议会话建立的装置,在上述实施例中还包括:第三判断模块,用于接收由客户端发送的login请求之后,判断存储端是否有空闲的kernelport;若否,则继续调用所述记录模块;第三分配模块,用于所述存储端有空闲的kernelport时,为所述login请求分配一个空闲的kernelport。需要说明的是,在利用login次数为login分配kernelport时,可能会有一个kernelport已空闲,但是目前待分配的login所对应的kernelport不是这个空闲的kernelport,因此记录次数之前,第三判断模块首先判断存储端中是否已有空闲的kernelport,如果有,则第三分配模块优先分配到空闲的kernelport,如果没有再记录次数,按照此处进行分配。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1