一种FC接口卡交换资源标识处理方法及相关组件与流程

文档序号:17441988发布日期:2019-04-17 04:53阅读:443来源:国知局
一种FC接口卡交换资源标识处理方法及相关组件与流程

本发明涉及存储技术领域,特别涉及一种fc接口卡的交换资源标识处理方法、装置、一种fc接口卡及一种可读存储介质。



背景技术:

主机总线适配器(hostbusadapter,hba)是一个在服务器和存储装置间提供输入/输出(i/o)处理和物理连接的电路板或集成电路适配器,它减轻了主处理器在数据存储和检索任务的负担,能够提高服务器、存储设备的性能。

云数据中心的虚拟化特性使得确保公司数据、财务数据和敏感数据的安全变得至关重要。但因为数据安全产品一直以附加(add-on)的形式应用于网络中,这使实现可扩展性、高效、稳定的存储设备成为关键,hba卡的可扩展性及高效、稳定性成为了存储设备的关键技术。

目前的交换资源标识处理过程采用资源池进行资源分配,若某个端口的通信增大时,资源池会被该端口发送的任务大量占用,当其他虚拟端口有io任务待处理需要占用资源时,则会由于资源池被大量占用影响端口功能。

因此,如何平衡端口资源分配,提升io处理效率,是本领域技术人员需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种fc接口卡交换资源标识处理方法,该方法通过对可用资源进行资源类别的划分,不同类别资源一般不通用,请求不同类别资源时分配对应资源池中空闲资源,平衡了端口资源分配,同时各请求响应过程互不影响,提升了io处理效率;本发明的另一目的是提供一种fc接口卡的交换资源标识处理装置、一种fc接口卡及一种可读存储介质,具有上述有益效果。

为解决上述技术问题,本发明提供一种fc接口卡交换资源标识处理方法,包括:

fc接口卡根据预先划分的资源类别创建各资源类别对应的资源池;

接收到交换资源标识创建请求时,确定所述创建请求中的请求资源的资源类别,得到请求类别;

获取资源池信息;其中,所述资源池信息中存储有各类别资源池使用情况;

筛选出所述资源池信息中所述请求类别的资源池信息,得到请求类别信息;

根据所述请求类别信息判断所述请求类别是否存在空闲资源;

如果存在,从所述请求类别的空闲资源中分配交换资源标识。

优选地,所述fc接口卡根据预先划分的资源类别创建各资源类别对应的资源池,包括:

fc接口卡根据虚拟端口类型创建数量匹配的资源池;

为各资源池分配资源。

优选地,所述为各资源池分配资源,包括:

根据各资源池对应的任务类型生成资源分配策略;

根据所述资源分配策略为各所述资源池分配资源。

优选地,所述交换资源标识的释放方法包括:

对已分配的交换资源标识状态进行监测;

若存在无效交换资源标识时,根据所述无效交换资源标识查找匹配的资源信息,得到交换资源;

对所述交换资源进行资源释放以及回收。

优选地,所述fc接口卡交换资源标识处理方法还包括:

根据所述交换资源标识的状态更新资源池信息。

本发明公开一种fc接口卡交换资源标识处理装置,包括:

资源池创建单元,用于根据预先划分的资源类别创建各资源类别对应的资源池;

资源类别确定单元,用于接收到交换资源标识创建请求时,确定所述创建请求中的请求资源的资源类别,得到请求类别;

资源池信息获取单元,用于获取资源池信息;其中,所述资源池信息中存储有各类别资源池使用情况;

资源池信息筛选单元,用于筛选出所述资源池信息中所述请求类别的资源池信息,得到请求类别信息;

资源判断单元,用于根据所述请求类别信息判断所述请求类别是否存在空闲资源;

标识分配单元,用于所述请求类别存在空闲资源时,从所述请求类别的空闲资源中分配交换资源标识。

优选地,所述资源池创建单元包括:

创建子单元,用于fc接口卡根据虚拟端口类型创建数量匹配的资源池;

分配子单元,用于为各资源池分配资源。

优选地,所述分配子单元包括:

分配策略生成子单元,用于根据各资源池对应的任务类型生成资源分配策略;

资源分配子单元,用于根据所述资源分配策略为各所述资源池分配资源。

本发明公开一种fc接口卡,包括:

存储器,用于存储程序;

处理器,用于执行所述程序时实现所述fc接口卡交换资源标识处理方法的步骤。

本发明公开一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述fc接口卡交换资源标识处理方法的步骤。

本发明所提供的fc接口卡交换资源标识处理方法,新增了基于交换资源标识的资源处理特性,根据请求的资源类型查找相应的资源池对其进行资源的划分,不同资源类型对应不同资源池,不同类型的资源请求中调用相应资源池进行划分,在存储领域大量io处理模型的条件下,在接收到io请求时可以在短时间内完成资源审查,对一次exchange驱动端内部能够为其分配足够的资源信息,避免了某个请求对资源池中所有资源的同时占用,平衡了端口资源分配;并且该种模式下由于不同类别资源占用不同资源池进行相应处理,能够支持并行方式处理,提高io操作的并行度,从而改善了处理性能。

本发明还提供了一种fc接口卡交换资源标识处理装置、一种fc接口卡及一种可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种fc接口卡交换资源标识处理方法的流程图;

图2为本发明实施例提供的一种fc接口卡交换资源标识处理装置的结构框图;

图3为本发明实施例提供的一种fc接口卡的结构框图;

图4为本发明实施例提供的一种fc接口卡的结构示意图。

具体实施方式

本发明的核心是提供一种fc接口卡交换资源标识处理方法,该方法通过对可用资源进行资源类别的划分,不同类别资源一般不通用,请求不同类别资源时分配对应资源池中空闲资源,平衡了端口资源分配,同时各请求响应过程互不影响,提升了io处理效率;本发明的另一核心是提供一种fc接口卡交换资源标识处理装置、一种fc接口卡及一种可读存储介质。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明可以采用c语言描述,使用通用处理器cpu作为主机端运行主处理器,其上运行标准linux服务器程序,通过对其fchba卡驱动程序进行设计修改,新增了exchange的资源描述,平衡端口资源分配。

图1为本实施例提供的一种fc接口卡交换资源标识处理方法的流程图;该方法主要包括:

步骤s110、fc(fibrechannel,光纤)接口卡根据预先划分的资源类别创建各资源类别对应的资源池;

资源池需要预先创建,比如可以在驱动模块启动阶段初始化资源时创建exchange资源池,具体资源池的创建时机可以根据实际情况设定。本发明中资源池为多个,根据资源类别创建资源池,不同类别的资源对应不同的资源池,比如可以创建数据读取资源池、数据写入资源池等。一个类别的资源可以对应一个或多个资源池,本实施例中对资源池的数量不做限定。

若接收到某类别的资源请求信息时,从该类别对应的资源池中进行相应资源划分即可。由于不同类别对应的资源池不同,不同资源请求间对资源池的占用互不干扰,因此本实施例提供的处理方法可以支持并行方式处理,提高io操作的并行度,从而改善性能。

一张hba卡有多个物理端口,不同物理端口间用途不同,其中,每个物理端口对应三个虚拟端口,各个虚拟端口都有不同的用途,优选地,可以根据虚拟端口的类型创建多个对应的资源池,为各资源池分配资源。

例如,某张hba卡有2个物理端口,一个物理端口对应3个虚拟端口,则可以预先创建6个资源池分别对应6个虚拟端口,根据虚拟端口的类型创建资源池,若某个端口的通信增大时,不会影响到其他虚拟端口的功能,可以有效提高io处理实现效率。

其中,为创建的各资源池分配资源时,可以将资源平均分配至各资源池,也可以根据预先设定的资源池分配策略进行资源的划分,优选地,可以根据各资源池对应的任务类型生成资源分配策略;根据资源分配策略为各资源池分配资源。根据资源分配策略进行资源池内资源的划分可以使代理用资源更切合实际调用情况,避免经常调用的类别资源量过少的同时补偿调用的资源量较多导致的资源响应率低等情况。

需要说明的是,在一次资源池创建后可以一直利用该资源池进行交换资源标识的处理过程,直至下一次资源初始化。

步骤s120、接收到交换资源标识(xri,exchangeresourceindicator)创建请求时,确定创建请求中的请求资源的资源类别,得到请求类别。

资源类别的划分方式不做限定,可以根据资源用途进行划分,比如划分为写入资源、读取资源、传输资源等;也可以根据端口类型进行划分,比如划分为端口1资源、端口2资源,或者虚拟端口1资源、虚拟端口2资源等,资源类别可以根据实际资源调用情况进行划分,在此仅以上述两种情况为例进行介绍,其它资源划分形式在此不再赘述。

步骤s130、获取资源池信息。

资源池信息中存储有各类别资源池使用情况,包括被占用以及空闲等资源状态,根据资源池信息可以了解到哪些资源被占用,哪些资源空闲。资源池信息可以整体记录各资源池状态信息,也可以详细记录各资源块的状态信息,此时还需存储各资源块与对应的资源类别的映射关系,以便不同类别资源的方便调用。

如下表1所示为一种资源池信息形式,通过查看表1,可以了解到当前资源池b没有空闲资源,资源池a中存在空闲资源,若接收到向资源池a的资源请求命令时,可以分配资源块2或者资源块3,申请一个资源块2或者资源块3对应的新的iriid,并将该值返回给接口层,并通知fc卡固件即可。若接收到向资源池b的资源请求命令时,由于通过查看资源池信息了解到当前资源池b所有资源均被占用,本实施例中对于该种情况不做限定,可以每个预设时间查询资源池信息判断是否存在空闲资源,也可以返回无空闲资源的提示信息等。

表1

本实施例中对资源池信息的更新方式不做限定,可以对每个exchange状态进行监测,根据exchange的状态进行资源池状态的更新。优选地,可以根据交换资源标识的状态更新资源池信息。在exchange的不同状态下,交换资源标识会自动进行状态改变,例如在一次exchange申请开始时,申请一个交换资源标识,在exchange进行中,交换资源标识处于占用状态,在exchange完成后,交换资源标识处于无效状态,交换资源标识对应资源状态,若交换资源标识处于无效状态,则标志着交换资源标识对应的资源占用已经结束等,交换资源标识的状态监测相对于exchange过程的检测过程步骤鉴伪简单,实现也较为容易,因此可以根据交换资源标识的状态进行资源池信息中各资源状态的更新。

需要说明的是,在接收到交换资源标识创建请求后,对确定请求类别以及获取资源池信息的执行顺序不做限定,可以在接收到交换资源标识创建请求后向获取资源池信息,再确定请求类别,也可以在接收到交换资源标识创建请求后,确定请求类别的同时获取资源池信息,本实施例中以先确定请求类别为例,其它执行顺序均可参照本实施例的介绍,在此不再赘述。

步骤s140、筛选出资源池信息中请求类别的资源池信息,得到请求类别信息。

步骤s150、根据请求类别信息判断请求类别是否存在空闲资源。

新创建exchange时,驱动程序能够查询当前资源使用情况,如果存在可用资源,则在已有的资源池中申请一个exchange标识。通过增加基于交换资源标识的资源处理特性,在存储领域大量io处理模型的条件下,能够在短时间内完成资源审查,对一次exchange驱动端内部能够为其分配足够的资源信息,提升io处理效率。

步骤s160、从请求类别的空闲资源中分配交换资源标识。

如果存在空闲资源,则从空闲资源中为当前请求分配交换资源标识,以便于相应空闲资源的调用。

在完成一次exchange后,对xri释放,本实施例中对释放过程不做限定,可以在xri标识设置为无效时,根据xri标识在其申请的内存资源中,查找匹配的为这次exchange而使用的资源信息,进行相应资源的释放和回收,具体地,交换资源标识的释放过程为:对已分配的交换资源标识状态进行监测;若存在无效交换资源标识时,根据无效交换资源标识查找匹配的资源信息,得到交换资源;对交换资源进行资源释放以及回收,通过上述步骤进行交换资源的释放步骤较为简单,实现较为容易,且可以实现资源状态的实时更新;此外,在未完成一次exchange而需要终止exchange时也可以对xri释放,具体地,可以当接收到远端端口发起的终止操作和本地端口发起的终止操作时,控制dma(directmemoryaccess,直接内存访问)模块根据此释放请求进行dma资源的释放操作。

在此仅以上述两种交换资源标识释放过程为例进行介绍,其它交换资源标识释放的过程均可参照本实施例的介绍。

基于上述介绍,本发明实施例公开的fc接口卡交换资源标识处理方法,新增了基于交换资源标识的资源处理特性,根据请求的资源类型查找相应的资源池对其进行资源的划分,不同资源类型对应不同资源池,不同类型的资源请求中调用相应资源池进行划分,在存储领域大量io处理模型的条件下,在接收到io请求时可以在短时间内完成资源审查,对一次exchange驱动端内部能够为其分配足够的资源信息,避免了某个请求对资源池中所有资源的同时占用,平衡了端口资源分配;并且该种模式下由于不同类别资源占用不同资源池进行相应处理,能够支持并行方式处理,提高io操作的并行度,从而改善了处理性能。

为加深对本发明提供的fc接口卡交换资源标识处理方法整体步骤的理解,在此以fc接口卡驱动程序实现申请xri的具体步骤进行介绍,主要包括:

(1)驱动模块启动阶段,根据fc接口卡的端口数、虚拟端口用途创建多个xri资源池。

(2)驱动模块创建sgl与xri资源池相匹配,向接口层注册端口。

创建sgl可以在单次系统调用中对多个缓冲区输入输出的方法,可以把多个缓冲区的数据写到单个数据流,也可以把单个数据流读到多个缓冲区中

(3)接口层接收到主机端io时,根据之前已经建立的连接(主机进行读写前需要先与存储建立连接),生成exchange请求。

(4)根据exchange请求,接口层找到对应的fc卡端口。

(5)fc卡驱动程序获得一个创建xri的请求。

(6)驱动程序查询当前资源池信息,查询剩余多少资源,如果资源池有资源,则申请一个新的xriid,并将该值返回给接口层,通知告知fc卡固件。

驱动程序实现释放xri时主要包括以下几个步骤:

(1)驱动模块在完成一次exchange后,接口层会将使用的xri标识设置为无效

(2)驱动模块会根据xri标识在其申请的内存资源中,查找匹配的为这次exchange而使用的资源信息

(3)内存申请模块会按照此要求,进行资源释放和回收

(4)当出现未完成而需要终止exchange时,远端端口发起终止操作,本地端口发起终止操作,并生成资源标识释放请求。

(5)dma模块根据此释放请求进行dma资源的释放操作。

基于本实施例提供的交换资源标识处理过程,在存储领域大量io处理模型的条件下,驱动程序能够在短时间内完成资源审查,对一次exchange驱动端内部能够为其分配足够的资源信息,能够支持并行方式处理提高io操作的并行度,从而改善性能。与传统的交换资源标识处理方式相比,本发明能够有效io处理实现效率,减少实现的开发周期。

请参考图2,图2为本发明实施例提供的一种fc接口卡交换资源标识处理装置的结构框图;可以包括:资源池创建单元210、资源类别确定单元220、资源池信息获取单元230、资源池信息筛选单元240、资源判断单元250以及标识分配单元260。本实施例提供的fc接口卡交换资源标识处理装置可与上述fc接口卡交换资源标识处理方法相互对照。

其中,资源池创建单元210主要用于根据预先划分的资源类别创建各资源类别对应的资源池;

资源类别确定单元220主要用于接收到交换资源标识创建请求时,确定创建请求中的请求资源的资源类别,得到请求类别;

资源池信息获取单元230主要用于获取资源池信息;其中,资源池信息中存储有各类别资源池使用情况;

资源池信息筛选单元240主要用于筛选出资源池信息中请求类别的资源池信息,得到请求类别信息;

资源判断单元250主要用于根据请求类别信息判断请求类别是否存在空闲资源;

标识分配单元260主要用于请求类别存在空闲资源时,从请求类别的空闲资源中分配交换资源标识。

本实施例提供的fc接口卡交换资源标识处理装置通过资源池创建但元新增了基于交换资源标识的资源处理特性,不同类型的资源请求中调用相应资源池进行划分,平衡了端口资源分配;并且能够支持并行方式处理,提高io操作的并行度,提升io处理效率。

优选地,资源池创建单元可以进一步包括:

创建子单元,用于fc接口卡根据虚拟端口类型创建数量匹配的资源池;

分配子单元,用于为各资源池分配资源。

优选地,分配子单元可以进一步包括:

分配策略生成子单元,用于根据各资源池对应的任务类型生成资源分配策略;

资源分配子单元,用于根据资源分配策略为各资源池分配资源。

优选地,fc接口卡交换资源标识处理装置中标识释放单元具体可以包括:

状态监测子单元,用于对已分配的交换资源标识状态进行监测;

资源查找子单元,用于若存在无效交换资源标识时,根据无效交换资源标识查找匹配的资源信息,得到交换资源;

释放回收子单元,用于对交换资源进行资源释放以及回收。

优选地,fc接口卡交换资源标识处理装置中可以还包括:资源池信息更新单元,用于根据交换资源标识的状态更新资源池信息。

请参考图3,图3为本实施例提供的一种fc接口卡的结构框图;该设备可以包括:存储器300以及处理器310。fc接口卡可参照上述fc接口卡交换资源标识处理方法的介绍。

其中,存储器300主要用于存储程序;

处理器310主要用于执行程序时实现上述fc接口卡交换资源标识处理方法的步骤。

请参考图4,为本实施例提供的一种fc接口卡的结构示意图,该fc接口卡可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在fc接口卡301上执行存储介质330中的一系列指令操作。

fc接口卡301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上面图1所描述的fc接口卡交换资源标识处理方法中的步骤可以由fc接口卡的结构实现。

本实施例公开了一种可读存储介质,可读存储介质上存储有程序,程序被处理器执行时实现fc接口卡交换资源标识处理方法的步骤,其中,fc接口卡交换资源标识处理方法可参照图1对应的实施例,在此不再赘述。

该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的fc接口卡交换资源标识处理方法、装置、一种fc接口卡及一种可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1