CN112748880A - 存储***中的io通道均衡控制方法、装置及可读存储介质 - Google Patents

存储***中的io通道均衡控制方法、装置及可读存储介质 Download PDF

Info

Publication number
CN112748880A
CN112748880A CN202110050024.8A CN202110050024A CN112748880A CN 112748880 A CN112748880 A CN 112748880A CN 202110050024 A CN202110050024 A CN 202110050024A CN 112748880 A CN112748880 A CN 112748880A
Authority
CN
China
Prior art keywords
channel
channels
storage system
target
total
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
CN202110050024.8A
Other languages
English (en)
Other versions
CN112748880B (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202110050024.8A priority Critical patent/CN112748880B/zh
Publication of CN112748880A publication Critical patent/CN112748880A/zh
Application granted granted Critical
Publication of CN112748880B publication Critical patent/CN112748880B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种存储***中的IO通道均衡控制方法、装置及计算机可读存储介质。其中,方法包括预先构建表示当前存储***所能支持的所有IO通道信息的IO通道控制表,表中每一条IO通道信息包括通道的标识信息和使用状态。当接收到任务调度请求,基于存储***的负载压力确定IO通道使用总数;从IO通道控制表中读取使用状态为未使用的目标通道,直至读取的通道数为IO通道使用总数,同时将目标通道的使用状态设置为使用中;当任务调度请求结束,将各目标通道的使用状态由使用中变更为未使用,实现对IO通道控制表的更新。本申请采用IO通道控制和使用相分离方法可充分利用CPU资源均衡分配IO通道,提升存储***性能。

Description

存储***中的IO通道均衡控制方法、装置及可读存储介质
技术领域
本申请涉及存储技术领域,特别是涉及一种存储***中的IO通道均衡控制方法、装置及计算机可读存储介质。
背景技术
随着云技术和人工智能的快速发展,互联网数据呈现***式增长,相应的,存储设备剧增,存储应用***,对存储设备高负载、低时延的要求也越来越高,这就要求存储设备具备足够高的IOPS(Input/Output Operations Per Second每秒进行读写操作的次数),从而支撑日益膨胀的海量数据业务。
无论从前端的光纤卡,还是后端的存储盘如固态硬盘,这些硬件设备的性能非常强劲,足以支撑非常高的数据带宽,这样存储设备的性能瓶颈往往就集中在CPU(CentralProcessing Unit,中央处理器)利用上。
基于此,如何充分利用CPU资源,合理分配IO通道以提升存储***性能,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种存储***中的IO通道均衡控制方法、装置及计算机可读存储介质,可以充分利用CPU资源均衡分配IO通道,提升存储***性能。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种存储***中的IO通道均衡控制方法,包括:
预先构建用于表示当前存储***所支持的所有IO通道信息的IO通道控制表,每一条IO通道信息包括通道的标识信息和使用状态;
当接收到任务调度请求,基于所述存储***的负载压力确定IO通道使用总数;
从所述IO通道控制表中读取所述使用状态为未使用的目标通道,直至读取的通道数为所述IO通道使用总数,同时将所述目标通道的使用状态设置为使用中;
当检测到所述任务调度请求结束,将各目标通道的使用状态由使用中变更为未使用。
可选的,所述从所述IO通道控制表中读取所述使用状态为未使用的目标通道,直至读取的通道数为所述IO通道使用总数,同时将所述目标通道的使用状态设置为使用中包括:
从所述IO通道控制表读取所述使用状态为未使用的目标通道;
判断所述IO通道控制表中使用状态为使用中的目标通道个数是否小于所述IO通道使用总数;
若所述IO通道控制表中使用状态为使用中的目标通道个数小于所述IO通道使用总数,将所述目标通道的使用状态设置为使用中,发送继续读取通道的指令;
若所述IO通道控制表中使用状态为使用中的目标通道个数大于等于所述IO通道使用总数,将所述目标通道的使用状态维持为未使用,且发送通道读取操作结束指令。
可选的,所述构建表示当前存储***所能支持的所有IO通道信息的IO通道控制表包括:
获取所述存储***所支持的IO通道总数;
根据所述IO通道总数构建IO通道控制数组,初始化所述IO通道控制数组中各元素,以用于表示所述IO通道控制表中每个IO通道的使用状态为未使用;所述IO通道控制数组的元素总数为所述IO通道总数。
可选的,所述基于所述存储***的负载压力确定IO通道使用总数包括:
获取所述存储***的时延值、并发数目值、时延权重和并发量权重;
根据所述时延值、所述并发数目值、所述时延权重和所述并发量权重计算所述IO通道使用总数。
可选的,所述从所述IO通道控制表中读取所述使用状态为未使用的目标通道包括:
预先设置多个通道读取线程;
调用多个通道读取线程同时从所述IO通道控制表中读取所述使用状态为未使用的目标通道。
本发明实施例另一方面提供了一种存储***中的IO通道均衡控制装置,包括:
表预构建模块,用于预先构建用于表示当前存储***所支持的所有IO通道信息的IO通道控制表,每一条IO通道信息包括通道的标识信息和使用状态;
IO通道使用数确定模块,用于当接收到任务调度请求,基于所述存储***的负载压力确定IO通道使用总数;
通道读取模块,用于从所述IO通道控制表中读取所述使用状态为未使用的目标通道,直至读取的通道数为所述IO通道使用总数,同时将所述目标通道的使用状态设置为使用中;
表更新模块,用于当检测到所述任务调度请求结束,将各目标通道的使用状态由使用中变更为未使用。
可选的,所述通道读取模块进一步用于:
从所述IO通道控制表读取所述使用状态为未使用的目标通道;
判断所述IO通道控制表中使用状态为使用中的目标通道个数是否小于所述IO通道使用总数;
若所述IO通道控制表中使用状态为使用中的目标通道个数小于所述IO通道使用总数,将所述目标通道的使用状态设置为使用中,发送继续读取通道的指令;
若所述IO通道控制表中使用状态为使用中的目标通道个数大于等于所述IO通道使用总数,将所述目标通道的使用状态维持为未使用,且发送通道读取操作结束指令。
可选的,所述IO通道使用数确定模块进一步用于:
获取所述存储***的时延值、并发数目值、时延权重和并发量权重;
根据所述时延值、所述并发数目值、所述时延权重和所述并发量权重计算所述IO通道使用总数。
本发明实施例还提供了一种存储***中的IO通道均衡控制装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述存储***中的IO通道均衡控制方法的步骤。
本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有存储***中的IO通道均衡控制程序,所述存储***中的IO通道均衡控制程序被处理器执行时实现如前任一项所述存储***中的IO通道均衡控制方法的步骤。
本申请提供的技术方案的优点在于,采用IO通道控制与使用相分离的方法生成IO通道控制表,任务调度时,根据当前存储***的负载压力确定所需IO通道数通过查询IO通道控制表来读取相应的IO通道。IO通道的使用和控制相分离且读取通道数与***负载相关,从而可充分利用CPU资源,合理分配IO通道,实现IO通道的均衡控制,提升存储***性能。
此外,本发明实施例还针对存储***中的IO通道均衡控制方法提供了相应的实现装置及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置及计算机可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种存储***中的IO通道均衡控制方法的流程示意图;
图2为本发明实施例提供的存储***中的IO通道均衡控制装置的一种具体实施方式结构图;
图3为本发明实施例提供的存储***中的IO通道均衡控制装置的另一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种存储***中的IO通道均衡控制方法的流程示意图,本发明实施例可包括以下内容:
S101:预先构建用于表示当前存储***所支持的所有IO通道信息的IO通道控制表。
在本步骤中,IO通道控制表中的每一条IO通道信息包括通道的标识信息和使用状态,标识信息用于标识当前通道是哪条通道,使用状态包括使用中和未使用两种状态。在表刚开始创建好时,每个IO通道都未使用,所以每个IO通道的使用状态为未使用,随着存储***的运行,表中的各IO通道会随着任务调度和任务结束更新自身的使用状态,以达到IO通道控制表的更新。在构建IO通道控制表之前,需要先获取存储***所能支持的所有IO通道,也即IO通道总数,或者是说IO通道控制表中全部的IO通道数,是用户可读取的最大IO通道数。作为一种可选的实施方式,IO通道控制表可以数组形式表示,也即可根据IO通道总数构建IO通道控制数组,初始化IO通道控制数组中各元素,以用于表示IO通道控制表中每个IO通道的使用状态为未使用,IO通道控制数组的元素总数为IO通道总数。
S102:当接收到任务调度请求,基于存储***的负载压力确定IO通道使用总数。
本步骤中的IO通道使用总数是指执行该任务调度请求需要使用的IO通道的总个数,IO通道使用总数小于IO通道控制表中包含的IO通道总数。其中,基于负载压力决定IO通道使用个数可采用相关任何一种技术来实现,此处便不再赘述。
S103:从IO通道控制表中读取使用状态为未使用的目标通道,直至读取的通道数为IO通道使用总数,同时将目标通道的使用状态设置为使用中。
在本步骤中,可依次从IO通道控制表中读取未使用的IO通道。对于一类任务调度请求,可以预先为其分配一组IO通道,可在该组IO通道中循环使用各个IO通道,在执行所属该类任务调度请求的调度请求时,可从该组IO通道中读取未被使用的IO通道,若该组中未被使用的IO通道数小于IO通道使用总数,则可发送IO通道数申请指令,为该组IO通道分配新的IO通道。
S104:当检测到任务调度请求结束,将各目标通道的使用状态由使用中变更为未使用。
为了保证IO通道控制表的IO通道有效利用,每个IO通道在结束调度后,便立刻将其恢复为未使用状态,以便后续任务调度中使用。
在本发明实施例提供的技术方案中,采用IO通道控制与使用相分离的方法生成IO通道控制表,任务调度时,根据当前存储***的负载压力确定所需IO通道数通过查询IO通道控制表来读取相应的IO通道。IO通道的使用和控制相分离且读取通道数与***负载相关,从而可充分利用CPU资源,合理分配IO通道,实现IO通道的均衡控制,提升存储***性能。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1只是一种示意方式,并不代表只能是这样的执行顺序。
为了使所属领域技术人员更加清楚明白本申请的技术方案,本申请还提供了一个示意性例子,***基于所能支持的IO通道能力,IO通道个数为t_max_num,维护一个IO通道控制数组fibre[t_max_num],全部初始化为0,且每个IO通道的fibre_get_ctl=0,若IO通道被使用,则fibre_get_ctl=1,也即可采用0和1来标识IO通道处于何种使用状态。基于负载压力(时延、并发数目等因素)决定IO通道使用个数t_use_num;任务调度时,基于fibre_get_ctl获取IO通道,若对应的fibre[fibre_get_ctl]=0,则直接使用该IO通道,若IO通道数组中1的个数小于t_use_num个数,则fibre_get_ctl递增,若递增量大于或等于t_max_num,则fibre_get_ctl=0,当fibre_cur的任务调度结束后,则更新IO通道控制表fibre[fibre_cur]=0。
在上述实施例中,对于如何执行步骤S103并不做限定,本实施例中给出一种实施方式,可包括如下步骤:
从IO通道控制表读取使用状态为未使用的目标通道;
判断IO通道控制表中使用状态为使用中的目标通道个数是否小于IO通道使用总数;
若IO通道控制表中使用状态为使用中的目标通道个数小于IO通道使用总数,将目标通道的使用状态设置为使用中,发送继续读取通道的指令;
若IO通道控制表中使用状态为使用中的目标通道个数大于等于IO通道使用总数,将目标通道的使用状态维持为未使用,且发送通道读取操作结束指令。
在上述实施例中,对于如何执行步骤S102并不做限定,本实施例中给出一种IO通道使用总数的计算方式,可包括如下步骤:
获取存储***的时延值、并发数目值、时延权重和并发量权重;
根据时延值、并发数目值、时延权重和并发量权重计算IO通道使用总数。
举例来说,时延权重为50%,并发量权重为30%,其他权重20%。每一个负载项有自己统计方法,最终得出一个控制量即可。例如,时延的统计范围0-100ms,控制量大小为0-100,则时延为0时控制量为0,时延为100ms或大于100ms时,控制量为100,当然其中可以有非线性函数来控制。这样最终的IO通道使用总数t_use_num=时延item_ctrl*50%+并发item_ctrl*30%+其他item*20%。
为了进一步提升任务调度请求执行效率,在从IO通道控制表中读取使用状态为未使用的目标通道的过程可包括:
预先设置多个通道读取线程;
调用多个通道读取线程同时从IO通道控制表中读取使用状态为未使用的目标通道。
其中,通道读取线程可与IO通道使用总数相同,这样一次便可读取所有的IO通道,无需进行IO通道数是否读取完成的判断,简化操作,提升效率。但是,需要注意的是,通道读取线程的个数需要不影响整个***的正常业务运行,所属领域技术人员可根据实际应用场景选择通道读取线程的数量,本申请对此不做任何限定。
本发明实施例还针对存储***中的IO通道均衡控制方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的存储***中的IO通道均衡控制装置进行介绍,下文描述的存储***中的IO通道均衡控制装置与上文描述的存储***中的IO通道均衡控制方法可相互对应参照。
基于功能模块的角度,参见图2,图2为本发明实施例提供的存储***中的IO通道均衡控制装置在一种具体实施方式下的结构图,该装置可包括:
表预构建模块201,用于预先构建用于表示当前存储***所支持的所有IO通道信息的IO通道控制表,每一条IO通道信息包括通道的标识信息和使用状态。
IO通道使用数确定模块202,用于当接收到任务调度请求,基于存储***的负载压力确定IO通道使用总数。
通道读取模块203,用于从IO通道控制表中读取使用状态为未使用的目标通道,直至读取的通道数为IO通道使用总数,同时将目标通道的使用状态设置为使用中。
表更新模块204,用于当检测到任务调度请求结束,将各目标通道的使用状态由使用中变更为未使用。
可选的,在本实施例的一些实施方式中,通道读取模块203可进一步用于:
从IO通道控制表读取使用状态为未使用的目标通道;
判断IO通道控制表中使用状态为使用中的目标通道个数是否小于IO通道使用总数;
若IO通道控制表中使用状态为使用中的目标通道个数小于IO通道使用总数,将目标通道的使用状态设置为使用中,发送继续读取通道的指令;
若IO通道控制表中使用状态为使用中的目标通道个数大于等于IO通道使用总数,将目标通道的使用状态维持为未使用,且发送通道读取操作结束指令。
作为本实施例的一种可选的实施方式,上述通道读取模块203还可进一步用于:
预先设置多个通道读取线程;
调用多个通道读取线程同时从IO通道控制表中读取使用状态为未使用的目标通道。
可选的,在本实施例的另一些实施方式中,上述IO通道使用数确定模块202可进一步用于:
获取存储***的时延值、并发数目值、时延权重和并发量权重;
根据时延值、并发数目值、时延权重和并发量权重计算IO通道使用总数。
作为一种可选的实施方式,上述表预构建模块201可进一步用于:
获取存储***所支持的IO通道总数;
根据IO通道总数构建IO通道控制数组,初始化IO通道控制数组中各元素,以用于表示IO通道控制表中每个IO通道的使用状态为未使用;IO通道控制数组的元素总数为IO通道总数。
本发明实施例所述存储***中的IO通道均衡控制装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例采用IO通道控制和使用相分离方法可以充分利用CPU资源均衡分配IO通道,提升存储***性能。
上文中提到的存储***中的IO通道均衡控制装置是从功能模块的角度描述,进一步的,本申请还提供一种存储***中的IO通道均衡控制装置,是从硬件角度描述。图3为本申请实施例提供的另一种存储***中的IO通道均衡控制装置的结构图。如图3所示,该装置包括存储器30,用于存储计算机程序;
处理器31,用于执行计算机程序时实现如上述任一实施例提到的存储***中的IO通道均衡控制方法的步骤。
其中,处理器31可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器31可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器31还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器30可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器30还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器30至少用于存储以下计算机程序301,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例公开的存储***中的IO通道均衡控制方法的相关步骤。另外,存储器30所存储的资源还可以包括操作***302和数据303等,存储方式可以是短暂存储或者永久存储。其中,操作***302可以包括Windows、Unix、Linux等。数据303可以包括但不限于存储***中的IO通道均衡控制结果对应的数据等。
在一些实施例中,存储***中的IO通道均衡控制装置还可包括有显示屏32、输入输出接口33、通信接口34、电源35以及通信总线36。
本领域技术人员可以理解,图3中示出的结构并不构成对存储***中的IO通道均衡控制装置的限定,可以包括比图示更多或更少的组件,例如还可传感器37。
本发明实施例所述存储***中的IO通道均衡控制装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例采用IO通道控制和使用相分离方法可以充分利用CPU资源均衡分配IO通道,提升存储***性能。
可以理解的是,如果上述实施例中的存储***中的IO通道均衡控制方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,存储有存储***中的IO通道均衡控制程序,所述存储***中的IO通道均衡控制程序被处理器执行时如上任意一实施例所述存储***中的IO通道均衡控制方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例采用IO通道控制和使用相分离方法可以充分利用CPU资源均衡分配IO通道,提升存储***性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种存储***中的IO通道均衡控制方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种存储***中的IO通道均衡控制方法,其特征在于,包括:
预先构建用于表示当前存储***所支持的所有IO通道信息的IO通道控制表,每一条IO通道信息包括通道的标识信息和使用状态;
当接收到任务调度请求,基于所述存储***的负载压力确定IO通道使用总数;
从所述IO通道控制表中读取所述使用状态为未使用的目标通道,直至读取的通道数为所述IO通道使用总数,同时将所述目标通道的使用状态设置为使用中;
当检测到所述任务调度请求结束,将各目标通道的使用状态由使用中变更为未使用。
2.根据权利要求1所述的存储***中的IO通道均衡控制方法,其特征在于,所述从所述IO通道控制表中读取所述使用状态为未使用的目标通道,直至读取的通道数为所述IO通道使用总数,同时将所述目标通道的使用状态设置为使用中包括:
从所述IO通道控制表读取所述使用状态为未使用的目标通道;
判断所述IO通道控制表中使用状态为使用中的目标通道个数是否小于所述IO通道使用总数;
若所述IO通道控制表中使用状态为使用中的目标通道个数小于所述IO通道使用总数,将所述目标通道的使用状态设置为使用中,发送继续读取通道的指令;
若所述IO通道控制表中使用状态为使用中的目标通道个数大于等于所述IO通道使用总数,将所述目标通道的使用状态维持为未使用,且发送通道读取操作结束指令。
3.根据权利要求2所述的存储***中的IO通道均衡控制方法,其特征在于,所述构建表示当前存储***所能支持的所有IO通道信息的IO通道控制表包括:
获取所述存储***所支持的IO通道总数;
根据所述IO通道总数构建IO通道控制数组,初始化所述IO通道控制数组中各元素,以用于表示所述IO通道控制表中每个IO通道的使用状态为未使用;所述IO通道控制数组的元素总数为所述IO通道总数。
4.根据权利要求1至3任意一项所述的存储***中的IO通道均衡控制方法,其特征在于,所述基于所述存储***的负载压力确定IO通道使用总数包括:
获取所述存储***的时延值、并发数目值、时延权重和并发量权重;
根据所述时延值、所述并发数目值、所述时延权重和所述并发量权重计算所述IO通道使用总数。
5.根据权利要求4所述的存储***中的IO通道均衡控制方法,其特征在于,所述从所述IO通道控制表中读取所述使用状态为未使用的目标通道包括:
预先设置多个通道读取线程;
调用多个通道读取线程同时从所述IO通道控制表中读取所述使用状态为未使用的目标通道。
6.一种存储***中的IO通道均衡控制装置,其特征在于,包括:
表预构建模块,用于预先构建用于表示当前存储***所支持的所有IO通道信息的IO通道控制表,每一条IO通道信息包括通道的标识信息和使用状态;
IO通道使用数确定模块,用于当接收到任务调度请求,基于所述存储***的负载压力确定IO通道使用总数;
通道读取模块,用于从所述IO通道控制表中读取所述使用状态为未使用的目标通道,直至读取的通道数为所述IO通道使用总数,同时将所述目标通道的使用状态设置为使用中;
表更新模块,用于当检测到所述任务调度请求结束,将各目标通道的使用状态由使用中变更为未使用。
7.根据权利要求6所述的存储***中的IO通道均衡控制装置,其特征在于,所述通道读取模块进一步用于:
从所述IO通道控制表读取所述使用状态为未使用的目标通道;
判断所述IO通道控制表中使用状态为使用中的目标通道个数是否小于所述IO通道使用总数;
若所述IO通道控制表中使用状态为使用中的目标通道个数小于所述IO通道使用总数,将所述目标通道的使用状态设置为使用中,发送继续读取通道的指令;
若所述IO通道控制表中使用状态为使用中的目标通道个数大于等于所述IO通道使用总数,将所述目标通道的使用状态维持为未使用,且发送通道读取操作结束指令。
8.根据权利要求7所述的存储***中的IO通道均衡控制装置,其特征在于,所述IO通道使用数确定模块进一步用于:
获取所述存储***的时延值、并发数目值、时延权重和并发量权重;
根据所述时延值、所述并发数目值、所述时延权重和所述并发量权重计算所述IO通道使用总数。
9.一种存储***中的IO通道均衡控制装置,其特征在于,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至5任一项所述存储***中的IO通道均衡控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有存储***中的IO通道均衡控制程序,所述存储***中的IO通道均衡控制程序被处理器执行时实现如权利要求1至5任一项所述存储***中的IO通道均衡控制方法的步骤。
CN202110050024.8A 2021-01-14 2021-01-14 存储***中的io通道均衡控制方法、装置及可读存储介质 Active CN112748880B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110050024.8A CN112748880B (zh) 2021-01-14 2021-01-14 存储***中的io通道均衡控制方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110050024.8A CN112748880B (zh) 2021-01-14 2021-01-14 存储***中的io通道均衡控制方法、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN112748880A true CN112748880A (zh) 2021-05-04
CN112748880B CN112748880B (zh) 2023-01-10

Family

ID=75651988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110050024.8A Active CN112748880B (zh) 2021-01-14 2021-01-14 存储***中的io通道均衡控制方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN112748880B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849129A (zh) * 2021-09-18 2021-12-28 苏州浪潮智能科技有限公司 一种存储控制器间的io请求转发方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185467A1 (en) * 2012-01-12 2013-07-18 Narsimha Reddy Challa Managing data paths between computer applications and data storage devices
CN110471747A (zh) * 2019-07-04 2019-11-19 深圳市通创通信有限公司 一种dma多通道的调度使用方法、装置及终端设备
CN112084027A (zh) * 2020-09-04 2020-12-15 北京灵汐科技有限公司 片上网络数据传输方法、装置、片上网络、设备及介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185467A1 (en) * 2012-01-12 2013-07-18 Narsimha Reddy Challa Managing data paths between computer applications and data storage devices
CN110471747A (zh) * 2019-07-04 2019-11-19 深圳市通创通信有限公司 一种dma多通道的调度使用方法、装置及终端设备
CN112084027A (zh) * 2020-09-04 2020-12-15 北京灵汐科技有限公司 片上网络数据传输方法、装置、片上网络、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849129A (zh) * 2021-09-18 2021-12-28 苏州浪潮智能科技有限公司 一种存储控制器间的io请求转发方法、装置及设备
CN113849129B (zh) * 2021-09-18 2023-08-25 苏州浪潮智能科技有限公司 一种存储控制器间的io请求转发方法、装置及设备

Also Published As

Publication number Publication date
CN112748880B (zh) 2023-01-10

Similar Documents

Publication Publication Date Title
CN111901409B (zh) 虚拟化云平台的负载均衡实现方法、装置及可读存储介质
EP3355187A1 (en) Loading method and device for terminal application (app)
EP3253027A1 (en) Resource allocation method and apparatus for virtual machines
US20210103456A1 (en) Virtualized network function deployment
US20140189708A1 (en) Terminal and method for executing application in same
CN111104210A (zh) 一种任务处理方法、装置及计算机***
CN109634718A (zh) 云平台创建镜像的方法及***
CN111552550A (zh) 一种基于图形处理器gpu资源的任务调度方法、设备及介质
CN111506430A (zh) 多任务下数据处理的方法、装置及电子设备
CN112748880B (zh) 存储***中的io通道均衡控制方法、装置及可读存储介质
CN111176790A (zh) 云平台物理主机的主动维护方法、装置及可读存储介质
CN110399214A (zh) 一种优化显卡负载的方法、装置及计算机设备
CN114461393A (zh) 多任务调度方法、装置、电子设备、***及自动驾驶车辆
CN116680060A (zh) 面向异构计算***的任务分配方法、装置、设备和介质
CN112269719B (zh) 基于ai训练平台的文件操作队列控制方法、装置及介质
US10896056B2 (en) Cluster expansion method and apparatus, electronic device and storage medium
CN111953503A (zh) Nfv资源部署编排方法和网络功能虚拟化编排器
CN111159124B (zh) Linux内核文件***异步写缓存方法、装置及介质
CN107483634B (zh) 一种负载均衡方法以及***
US11379130B2 (en) Predicting and preparing volume configurations
CN112860401A (zh) 任务调度方法、装置、电子设备和存储介质
CN114153592A (zh) 云平台的物理主机负载调度方法、装置、电子设备及介质
US10620982B2 (en) Multi-target deployment of virtual systems
CN114996005A (zh) 一种资源调度方法、装置、设备及介质
CN114448909A (zh) 基于ovs的网卡队列轮询方法、装置、计算机设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant