CN113655970A - 一种io调度方法、装置、设备及计算机可读存储介质 - Google Patents
一种io调度方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113655970A CN113655970A CN202110997892.7A CN202110997892A CN113655970A CN 113655970 A CN113655970 A CN 113655970A CN 202110997892 A CN202110997892 A CN 202110997892A CN 113655970 A CN113655970 A CN 113655970A
- Authority
- CN
- China
- Prior art keywords
- data read
- request
- write
- write request
- original data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 230000001737 promoting effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种IO调度方法,考虑到对于存储系统中的磁盘来说,提高条带被访问的连续性能够提高数据读写效率,因此本申请中对于应用RAID技术的存储系统,可以将起止条带存在首尾衔接关系的数据读写请求合并在一起加入请求队列,如此一来,首先直接减少了磁盘访问次数,其次根据合并后的数据读写请求对存储系统进行访问,可以提高对于磁盘访问的条带连续性,从而提高数据处理效率,并促进了设备整体IO性能的进一步提升。本发明还公开了一种IO调度装置、设备及计算机可读存储介质,具有如上IO调度方法相同的有益效果。
Description
技术领域
本发明涉及存储系统领域,特别是涉及一种IO调度方法,本发明还涉及一种IO调度装置、设备及计算机可读存储介质。
背景技术
RAID(磁盘冗余阵列,Redundant Array of Independent Disks)作为高性能以及高可靠的存储技术,在存储系统中已经得到了非常广泛的应用,RAID利用数据条带技术将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理,有效提高了设备整体IO性能,除了通过RAID技术对IO性能进行提升外,也可以通过IO调度方法对数据读写请求的调度实现IO性能的提升,然而现有技术中缺少一种成熟的IO调度方法,导致目前应用RAID技术的存储系统的存储效率偏低,限制了设备IO性能的进一步提升。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种IO调度方法,可以提高对于磁盘访问的条带连续性,从而提高数据处理效率,并促进了设备整体IO性能的进一步提升;本发明的另一目的是提供一种IO调度装置、设备及计算机可读存储介质,可以提高对于磁盘访问的条带连续性,从而提高数据处理效率,并促进了设备整体IO性能的进一步提升。
为解决上述技术问题,本发明提供了一种IO调度方法,包括:
获取最新的对于存储系统的数据读写原始请求;
根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带;
判断请求队列中是否存在,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求;
若存在,将请求队列中,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求,与所述数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入所述请求队列;
若不存在,将所述数据读写原始请求作为新的数据读写请求加入所述请求队列,以便所述存储系统响应所述请求队列中的数据读写请求进行工作;
其中,所述起止条带包括起始条带以及终止条带。
优选地,所述根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带具体为:
根据存储系统的包含RAID等级、条带宽度以及条带大小在内的预存条带信息,以及所述数据读写原始请求中包括起始扇区号、访问扇区总数以及读写类型在内的读写请求基本信息,确定出所述数据读写原始请求访问所述存储系统的起止条带。
优选地,所述起始条带以及所述终止条带具体为:
起始磁盘号、在起始磁盘中最先访问的起始条带序号、终止磁盘号以及在终止磁盘中最终访问的终止条带序号;
所述判断请求队列中是否存在,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求具体为:
判断请求队列中是否存在,与所述数据读写原始请求的访问类型相同,且满足第一预设合并条件或第二预设合并条件的数据读写请求;
若是,则判定请求队列中存在起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求;
记录所述数据读写原始请求具体满足的预设合并条件;
若否,则判定请求队列中不存在起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求
其中,所述第一预设合并条件为:起始磁盘号与所述数据读写原始请求的终止磁盘号相同且起始条带序号比所述数据读写原始请求的所述终止条带序号大一位;所述第二预设合并条件为:终止磁盘号与所述数据读写原始请求的起始磁盘号相同且终止条带序号比所述数据读写原始请求的所述起始条带序号小一位。
优选地,所述将请求队列中,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求,与所述数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入所述请求队列具体为:
将请求队列中,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求,与所述数据读写原始请求绑定为同一个数据读写请求;
根据所述数据读写原始请求具体满足的预设合并条件,在绑定后的所述数据读写请求中,规定所述数据读写原始请求的执行顺序;
将绑定好的且规定好执行顺序的所述数据读写请求加入所述请求队列。
优选地,所述预存条带信息为预先通过小型计算机系统接口SCSI指令获取并保存的存储系统的条带信息。
优选地,所述获取最新的对于存储系统的数据读写原始请求之后,所述根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带之前,该IO调度方法还包括:
根据所述数据读写原始请求的读写请求基本信息,判断请求队列中是否存在与所述数据读写原始请求的访问类型相同,且起止扇区首尾衔接的数据读写请求;
若是,将请求队列中,起止扇区与所述数据读写原始请求的起止扇区首尾衔接的数据读写请求,与所述数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入所述请求队列;
若否,执行所述根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带的步骤。
为解决上述技术问题,本发明还提供了一种IO调度装置,包括:
获取模块,用于获取最新的对于存储系统的数据读写原始请求;
确定模块,用于根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带;
第一判断模块,用于判断请求队列中是否存在,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求,若存在,触发第一合并模块,若不存在,触发第一创建模块;
所述第一合并模块,用于将请求队列中,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求,与所述数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入所述请求队列;
所述第一创建模块,用于将所述数据读写原始请求作为新的数据读写请求加入所述请求队列,以便所述存储系统响应所述请求队列中的数据读写请求进行工作;
其中,所述起止条带包括起始条带以及终止条带。
优选地,该IO调度装置还包括:
第一判断模块,用于根据所述数据读写原始请求的读写请求基本信息,判断请求队列中是否存在与所述数据读写原始请求的访问类型相同,且起止扇区首尾衔接的数据读写请求,若是,触发第二合并模块,若否,触发第二创建模块;
所述第二合并模块,用于将请求队列中,起止扇区与所述数据读写原始请求的起止扇区首尾衔接的数据读写请求,与所述数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入所述请求队列;
所述第二创建模块,用于执行所述根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带的步骤。
为解决上述技术问题,本发明还提供了一种IO调度设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述IO调度方法的步骤。
为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述IO调度方法的步骤。
本发明提供了一种IO调度方法,考虑到对于存储系统中的磁盘来说,提高条带被访问的连续性能够提高数据读写效率,因此本申请中对于应用RAID技术的存储系统,可以将起止条带存在首尾衔接关系的数据读写请求合并在一起加入请求队列,如此一来,首先直接减少了磁盘访问次数,其次根据合并后的数据读写请求对存储系统进行访问,可以提高对于磁盘访问的条带连续性,从而提高数据处理效率,并促进了设备整体IO性能的进一步提升。
本发明还提供了一种IO调度装置、设备及计算机可读存储介质,具有如上IO调度方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种IO调度方法的流程示意图;
图2为数据读写原始请求的处理过程示意图;
图3为本发明提供的一种IO调度装置的结构示意图;
图4为本发明提供的一种IO调度设备的结构示意图。
具体实施方式
本发明的核心是提供一种IO调度方法,可以提高对于磁盘访问的条带连续性,从而提高数据处理效率,并促进了设备整体IO性能的进一步提升;本发明的另一核心是提供一种IO调度装置、设备及计算机可读存储介质,可以提高对于磁盘访问的条带连续性,从而提高数据处理效率,并促进了设备整体IO性能的进一步提升。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明提供的一种IO调度方法的流程示意图,该IO调度方法包括:
S101:获取最新的对于存储系统的数据读写原始请求;
具体的,考虑到如上背景技术中的技术问题,又结合考虑到对于存储系统中的磁盘来说,提高条带被访问的连续性能够提高数据读写效率,而上层应用生成的各个数据读写原始请求的顺序是乱序的,也就是说这些数据读写原始请求的原顺序对于各个磁盘来说,在条带上可能不存在连续性,如果能把在条带上存在连续性的各个数据读写原始请求找出来并且按照其条带连续的顺序发送给存储系统,那么便可以提高存储系统中各个磁盘在进行数据读写时的条带的连续性,如此一来便能够提高各个磁盘的数据读写效率,因此本申请中首先需要获取最新的对于存储系统的数据读写原始请求,将其作为后续步骤的数据基础。
其中,本步骤中获取到的数据读写原始请求与上一次获取到的数据读写原始请求很大概率在条带上不存在连续性,例如对于上一个数据读写原始请求来说,其起始条带为磁盘A的第2个条带,其终止条带为磁盘B的第4个条带,而对于获取的最新的数据读写原始请求来说,其起始条带为磁盘B的第6个条带,终止条带为磁盘A的第7个条带,如此一来,这两个数据读写原始请求在条带上便不存在连续性,若存储系统连续对这两个数据读写原始请求进行处理,效率便不会很高,这也是本申请需要对数据读写原始请求进行分析以寻求合并的原因。
S102:根据存储系统的预存条带信息,确定出数据读写原始请求访问存储系统的起止条带;
具体的,本申请的存储系统需要应用RAID技术,如此一来该存储系统便支持条带特性,也即该存储系统应用了某个RAID等级的RAID技术,且每个磁盘中的存储空间依次以条带的大小划分为了若干了条带,每次的数据读写动作都是以条带为最小单位进行的,这其中涉及到的各个基本参数便称之为预存条带信息,通过预存条带信息便可以确定出数据读写原始请求在存储系统中的起始条带以及终止条带,并将其作为后续步骤的数据基础。
S103:判断请求队列中是否存在,起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求;
具体的,有了最新的数据读写原始请求的起止条带,便可以从请求队列中寻找与数据读写原始请求存在条带上的连续关系的数据读写请求,也即上述提到的首位衔接,值得一提的是,每个起止条带存在两端,也即起始端的条带以及终止端的条带,两个起止条带只要有一个起始条带与一个终止条带存在连续性即可判定成功。
S104:若存在,将请求队列中,起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求,与数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入请求队列;
具体的,如果存在与数据读写原始请求的起止条带首尾衔接的数据读写请求,那么这两个数据读写请求最好按照首位衔接的顺序先后发给存储系统,以便提高数据处理效率,因此本步骤中可以将请求队列中,起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求,与数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入请求队列。
S105:若不存在,将数据读写原始请求作为新的数据读写请求加入请求队列,以便存储系统响应请求队列中的数据读写请求进行工作;
其中,起止条带包括起始条带以及终止条带。
具体的,如果不存在,那么显然无法进行合并,但是仍需要对该数据读写原始请求进行处理,因此便可以将数据读写原始请求作为新的数据读写请求加入请求队列,以便存储系统响应请求队列中的数据读写请求进行工作。
值得一提的是,本发明实施例中存储系统的磁盘可以为多种类型,例如可以为固态硬盘或者机械硬盘等,本发明实施例在此不做限定。
本发明提供了一种IO调度方法,考虑到对于存储系统中的磁盘来说,提高条带被访问的连续性能够提高数据读写效率,因此本申请中对于应用RAID技术的存储系统,可以将起止条带存在首尾衔接关系的数据读写请求合并在一起加入请求队列,如此一来,首先直接减少了磁盘访问次数,其次根据合并后的数据读写请求对存储系统进行访问,可以提高对于磁盘访问的条带连续性,从而提高数据处理效率,并促进了设备整体IO性能的进一步提升。
为了更好地对本发明实施例进行说明,请参考图2,图2为本发明提供的一种数据读写原始请求处理过程示意图,在上述实施例的基础上:
作为一种优选的实施例,根据存储系统的预存条带信息,确定出数据读写原始请求访问存储系统的起止条带具体为:
根据存储系统的包含RAID等级、条带宽度以及条带大小在内的预存条带信息,以及数据读写原始请求中包括起始扇区号、访问扇区总数以及读写类型在内的读写请求基本信息,确定出数据读写原始请求访问存储系统的起止条带。
具体的,在图2中,BIO(Block Input/Output,块设备的输入输出)也即前述的数据读写原始请求,Start指的是起始扇区号,Size指的是访问扇区总数,R/W指的是读写类型(读或者写),IO Scheduler指的是IO调度器,IO Request Queue指的是前述的请求队列,其中包含每个数据读写请求Request,Device Druver指的是底层块设备驱动,该驱动的底层连接存储系统中的各个磁盘。
具体的,RAID等级决定了对于数据读写请求的访问,应该以怎样的顺序在各个磁盘中进行依次访问,而条带宽度指的是存储系统中的磁盘数量,条带大小指的是每个条带涉及到的(扇区的)逻辑地址的长度,起始扇区号顾名思义指的是起始访问的扇区号,访问扇区总数指的是访问扇区的总数目,读写类型指的是读/写,在进行具体计算时,首先可以根据起始扇区号确定出起始条带,例如某个起始扇区号为200(每个磁盘中的扇区号以0开始计算),而条带大小为50,也就是说,该起始扇区号所在的条带为该磁盘的第5个条带,也即该数据读写原始请求的起始条带,然后可以根据访问扇区总数确定出访问的条带总数,例如访问扇区总数为200时,访问扇区总数便为4,此时根据访问扇区总数(4)以及RAID等级对应的被访问磁盘的切换规则,确定出最终访问的条带所在的磁盘,也即终止磁盘,同样的,根据该终止磁盘被访问的次数便可以确定出最终访问的条带为终止磁盘的第几个条带,也即终止条带。
作为一种优选的实施例,起始条带以及终止条带具体为:
起始磁盘号、在起始磁盘中最先访问的起始条带序号、终止磁盘号以及在终止磁盘中最终访问的终止条带序号;
判断请求队列中是否存在,起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求具体为:
判断请求队列中是否存在,与数据读写原始请求的访问类型相同,且满足第一预设合并条件或第二预设合并条件的数据读写请求;
若是,则判定请求队列中存在起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求;
记录数据读写原始请求具体满足的预设合并条件;
若否,则判定请求队列中不存在起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求
其中,第一预设合并条件为:起始磁盘号与数据读写原始请求的终止磁盘号相同且起始条带序号比数据读写原始请求的终止条带序号大一位;第二预设合并条件为:终止磁盘号与数据读写原始请求的起始磁盘号相同且终止条带序号比数据读写原始请求的起始条带序号小一位。
具体的,通过上述方法能够快捷地确定出两个数据读写请求之间是否存在首位衔接的关系,能够进一步提高工作效率。
当然,除了该方式外,判断请求队列中是否存在,起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求还可以为其他方式,本发明实施例在此不做限定。
作为一种优选的实施例,将请求队列中,起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求,与数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入请求队列具体为:
将请求队列中,起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求,与数据读写原始请求绑定为同一个数据读写请求;
根据数据读写原始请求具体满足的预设合并条件,在绑定后的数据读写请求中,规定数据读写原始请求的执行顺序;
将绑定好的且规定好执行顺序的数据读写请求加入请求队列。
具体的,上述绑定方式效率较高,且能够确保按照首位衔接的顺序执行两个被绑定在一起的数据读写请求。
当然,除了该具体方式外,将请求队列中,起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求,与数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入请求队列具体还可以为其他形式,本发明实施例在此不做限定。
作为一种优选的实施例,预存条带信息为预先通过SCSI(Small ComputerSystemInterface,小型计算机系统接口)指令获取并保存的存储系统的条带信息。
具体的,通过扩充SCSI指令来获取存储系统的条带信息并保存,可以提高自动化程度并减小人力成本。
当然,除了该方式外,预存条带信息也可以通过人工获取并保存,本发明实施例在此不做限定。
作为一种优选的实施例,获取最新的对于存储系统的数据读写原始请求之后,根据存储系统的预存条带信息,确定出数据读写原始请求访问存储系统的起止条带之前,该IO调度方法还包括:
根据数据读写原始请求的读写请求基本信息,判断请求队列中是否存在与数据读写原始请求的访问类型相同,且起止扇区首尾衔接的数据读写请求;
若是,将请求队列中,起止扇区与数据读写原始请求的起止扇区首尾衔接的数据读写请求,与数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入请求队列;
若否,执行根据存储系统的预存条带信息,确定出数据读写原始请求访问存储系统的起止条带的步骤。
具体的,除了在条带连续时进行合并外,还可以在逻辑地址连续时进行合并,从而进一步提高对于存储系统中各个磁盘访问的扇区连续性,进一步地提高了存储系统的数据处理效率。
具体的,对于两个数据读写请求间是否存在起止扇区的首位衔接关系的判断过程可以参照前述的起止条带首尾衔接的判断方法,本发明实施例在此不再赘述。
请参考图3,图3为本发明提供的一种IO调度装置的结构示意图,该IO调度装置包括:
获取模块31,用于获取最新的对于存储系统的数据读写原始请求;
确定模块32,用于根据存储系统的预存条带信息,确定出数据读写原始请求访问存储系统的起止条带;
第一判断模块33,用于判断请求队列中是否存在,起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求,若存在,触发第一合并模块34,若不存在,触发第一创建模块35;
第一合并模块34,用于将请求队列中,起止条带与数据读写原始请求的起止条带首尾衔接的数据读写请求,与数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入请求队列;
第一创建模块35,用于将数据读写原始请求作为新的数据读写请求加入请求队列,以便存储系统响应请求队列中的数据读写请求进行工作;
其中,起止条带包括起始条带以及终止条带。
作为一种优选的实施例,该IO调度装置还包括:
第一判断模块,用于根据数据读写原始请求的读写请求基本信息,判断请求队列中是否存在与数据读写原始请求的访问类型相同,且起止扇区首尾衔接的数据读写请求,若是,触发第二合并模块,若否,触发第二创建模块;
第二合并模块,用于将请求队列中,起止扇区与数据读写原始请求的起止扇区首尾衔接的数据读写请求,与数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入请求队列;
第二创建模块,用于执行根据存储系统的预存条带信息,确定出数据读写原始请求访问存储系统的起止条带的步骤。
对于本发明实施例提供的IO调度装置的介绍请参照前述的IO调度方法的实施例,本发明实施例在此不再赘述。
请参考图4,图4为本发明提供的一种IO调度设备的结构示意图,该IO调度设备包括:
存储器41,用于存储计算机程序;
处理器42,用于执行计算机程序时实现如前述实施例中IO调度方法的步骤。
对于本发明实施例提供的IO调度设备的介绍请参照前述的IO调度方法的实施例,本发明实施例在此不再赘述。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述实施例中IO调度方法的步骤。
对于本发明实施例提供的计算机可读存储介质的介绍请参照前述的IO调度方法的实施例,本发明实施例在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种IO调度方法,其特征在于,包括:
获取最新的对于存储系统的数据读写原始请求;
根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带;
判断请求队列中是否存在,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求;
若存在,将请求队列中,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求,与所述数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入所述请求队列;
若不存在,将所述数据读写原始请求作为新的数据读写请求加入所述请求队列,以便所述存储系统响应所述请求队列中的数据读写请求进行工作;
其中,所述起止条带包括起始条带以及终止条带。
2.根据权利要求1所述的IO调度方法,其特征在于,所述根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带具体为:
根据存储系统的包含RAID等级、条带宽度以及条带大小在内的预存条带信息,以及所述数据读写原始请求中包括起始扇区号、访问扇区总数以及读写类型在内的读写请求基本信息,确定出所述数据读写原始请求访问所述存储系统的起止条带。
3.根据权利要求2所述的IO调度方法,其特征在于,所述起始条带以及所述终止条带具体为:
起始磁盘号、在起始磁盘中最先访问的起始条带序号、终止磁盘号以及在终止磁盘中最终访问的终止条带序号;
所述判断请求队列中是否存在,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求具体为:
判断请求队列中是否存在,与所述数据读写原始请求的访问类型相同,且满足第一预设合并条件或第二预设合并条件的数据读写请求;
若是,则判定请求队列中存在起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求;
记录所述数据读写原始请求具体满足的预设合并条件;
若否,则判定请求队列中不存在起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求
其中,所述第一预设合并条件为:起始磁盘号与所述数据读写原始请求的终止磁盘号相同且起始条带序号比所述数据读写原始请求的所述终止条带序号大一位;所述第二预设合并条件为:终止磁盘号与所述数据读写原始请求的起始磁盘号相同且终止条带序号比所述数据读写原始请求的所述起始条带序号小一位。
4.根据权利要求3所述的IO调度方法,其特征在于,所述将请求队列中,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求,与所述数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入所述请求队列具体为:
将请求队列中,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求,与所述数据读写原始请求绑定为同一个数据读写请求;
根据所述数据读写原始请求具体满足的预设合并条件,在绑定后的所述数据读写请求中,规定所述数据读写原始请求的执行顺序;
将绑定好的且规定好执行顺序的所述数据读写请求加入所述请求队列。
5.根据权利要求1所述的IO调度方法,其特征在于,所述预存条带信息为预先通过小型计算机系统接口SCSI指令获取并保存的存储系统的条带信息。
6.根据权利要求1至5任一项所述的IO调度方法,其特征在于,所述获取最新的对于存储系统的数据读写原始请求之后,所述根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带之前,该IO调度方法还包括:
根据所述数据读写原始请求的读写请求基本信息,判断请求队列中是否存在与所述数据读写原始请求的访问类型相同,且起止扇区首尾衔接的数据读写请求;
若是,将请求队列中,起止扇区与所述数据读写原始请求的起止扇区首尾衔接的数据读写请求,与所述数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入所述请求队列;
若否,执行所述根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带的步骤。
7.一种IO调度装置,其特征在于,包括:
获取模块,用于获取最新的对于存储系统的数据读写原始请求;
确定模块,用于根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带;
第一判断模块,用于判断请求队列中是否存在,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求,若存在,触发第一合并模块,若不存在,触发第一创建模块;
所述第一合并模块,用于将请求队列中,起止条带与所述数据读写原始请求的起止条带首尾衔接的数据读写请求,与所述数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入所述请求队列;
所述第一创建模块,用于将所述数据读写原始请求作为新的数据读写请求加入所述请求队列,以便所述存储系统响应所述请求队列中的数据读写请求进行工作;
其中,所述起止条带包括起始条带以及终止条带。
8.根据权利要求7所述的IO调度装置,其特征在于,该IO调度装置还包括:
第一判断模块,用于根据所述数据读写原始请求的读写请求基本信息,判断请求队列中是否存在与所述数据读写原始请求的访问类型相同,且起止扇区首尾衔接的数据读写请求,若是,触发第二合并模块,若否,触发第二创建模块;
所述第二合并模块,用于将请求队列中,起止扇区与所述数据读写原始请求的起止扇区首尾衔接的数据读写请求,与所述数据读写原始请求首尾衔接地合并为一个新的数据读写请求后加入所述请求队列;
所述第二创建模块,用于执行所述根据存储系统的预存条带信息,确定出所述数据读写原始请求访问所述存储系统的起止条带的步骤。
9.一种IO调度设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述IO调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述IO调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110997892.7A CN113655970A (zh) | 2021-08-27 | 2021-08-27 | 一种io调度方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110997892.7A CN113655970A (zh) | 2021-08-27 | 2021-08-27 | 一种io调度方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113655970A true CN113655970A (zh) | 2021-11-16 |
Family
ID=78482264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110997892.7A Pending CN113655970A (zh) | 2021-08-27 | 2021-08-27 | 一种io调度方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113655970A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115933994A (zh) * | 2023-01-09 | 2023-04-07 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN117539407A (zh) * | 2024-01-04 | 2024-02-09 | 浙江大华技术股份有限公司 | 数据存储方法、电子设备及计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984204A (zh) * | 2020-09-28 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种数据读写方法、装置及电子设备和存储介质 |
-
2021
- 2021-08-27 CN CN202110997892.7A patent/CN113655970A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984204A (zh) * | 2020-09-28 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种数据读写方法、装置及电子设备和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115933994A (zh) * | 2023-01-09 | 2023-04-07 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN117539407A (zh) * | 2024-01-04 | 2024-02-09 | 浙江大华技术股份有限公司 | 数据存储方法、电子设备及计算机可读存储介质 |
CN117539407B (zh) * | 2024-01-04 | 2024-03-29 | 浙江大华技术股份有限公司 | 数据存储方法、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8417901B2 (en) | Combining write commands to overlapping addresses or to a specific page | |
CN113655970A (zh) | 一种io调度方法、装置、设备及计算机可读存储介质 | |
CN107807797B (zh) | 数据写入的方法、装置及服务器 | |
EP2784683B1 (en) | Storage control program, storage control method, storage system and hierarchy control apparatus thereof | |
CN107291399B (zh) | 一种基于spdk的后端存储方法、装置及系统 | |
CN106201652B (zh) | 一种数据处理方法及虚拟机 | |
JP2012510678A (ja) | データのプレステージングをサポートするためのダイナミックストレージティアリング構成の取得及び指定 | |
CN115576501B (zh) | 一种raid卡的节点更新方法、系统及相关装置 | |
JP4968342B2 (ja) | Raid制御装置及びraidシステム | |
CN103678143A (zh) | 文件存储方法、装置及电子设备 | |
US20180024742A1 (en) | Storage media performance management | |
CN111177105B (zh) | 分布式文件系统的海量文件写方法、装置、系统及介质 | |
CN104133640B (zh) | 从休眠快速恢复 | |
CN115599589B (zh) | 一种数据恢复方法及相关装置 | |
CN111008233B (zh) | 一种kv数据库的访问方法、装置及设备 | |
CN106776046B (zh) | 一种scst读写优化方法及系统 | |
JP4765967B2 (ja) | 情報処理装置及び情報処理方法並びにプログラム | |
CN109508140B (zh) | 存储资源管理方法、装置、电子设备及电子设备、系统 | |
JP2010237837A (ja) | ファイルシステム及びそのデータ再配置方法,プログラム | |
CN106557385B (zh) | 数据快照方法和存储设备 | |
CN106202262A (zh) | 一种信息处理方法及电子设备 | |
US7657704B2 (en) | Method and related apparatus for verifying array of disks | |
CN116583827A (zh) | 数据存取方法、装置、磁盘控制器、磁盘和数据存储系统 | |
CN113868149B (zh) | 一种数据存储方法、装置、设备及可读存储介质 | |
JPH09223049A (ja) | ディスクアレイ装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211116 |