CN102799487A - 基于阵列/lun的io调度方法及装置 - Google Patents

基于阵列/lun的io调度方法及装置 Download PDF

Info

Publication number
CN102799487A
CN102799487A CN2012102225424A CN201210222542A CN102799487A CN 102799487 A CN102799487 A CN 102799487A CN 2012102225424 A CN2012102225424 A CN 2012102225424A CN 201210222542 A CN201210222542 A CN 201210222542A CN 102799487 A CN102799487 A CN 102799487A
Authority
CN
China
Prior art keywords
lun
array
priority
level
scheduling
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
Application number
CN2012102225424A
Other languages
English (en)
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.)
Ramaxel Technology Shenzhen Co Ltd
Original Assignee
Ramaxel Technology Shenzhen 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 Ramaxel Technology Shenzhen Co Ltd filed Critical Ramaxel Technology Shenzhen Co Ltd
Priority to CN2012102225424A priority Critical patent/CN102799487A/zh
Publication of CN102799487A publication Critical patent/CN102799487A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用于计算机技术领域,提供了一种基于阵列/LUN的IO调度方法,应用于存储***,所述方法包括:接收对所述阵列/LUN设置优先级别的命令,将所述阵列/LUN设置为若干优先级别;根据所述阵列/LUN的优先级别,对所述阵列/LUN进行IO调度处理。优选的是,存储***还可以接收对所述阵列/LUN指定IO的处理命令。本发明还相应的提供一种基于阵列/LUN的IO调度装置。借此,本发明对存储***中的阵列/LUN设置优先级别,对IO进行公平调度,有效防止阵列/LUN之间的相互影响。

Description

基于阵列/LUN的IO调度方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于阵列/LUN的IO调度方法及装置。
背景技术
在操作***中,对于***中的多个存储设备,操作***在IO(input/output,输入/输出接口)调度策略上做了居多优化,其策略是保证各设备不相互影响,防止一个设备繁忙而导致另一个设备无法继续处理IO。比如:在linux操作***中,默认的IO调度算法是CFQ(Complete Fairness Queueing),同时可供选择的调度算法还有Noop、anticipatory和deadline。
另外,在应用中碰到如下问题:低优先级别的线程拥有资源产生大量的IO,IO请求在构建时没有考虑到线程优先级。也就是说IO在构建时没有上下文:什么时候需要该IO、该IO的紧急程度、该IO将被如何使用等,于是操作***中引入了IO优先级别的概念,比如window vista,对IO分为如下三个级别:critical(memory manager only)、high、normal、low几种IO级别,其调度策略如下:所有critical-priority IO必须在任何high-priority IO之前被处理;所有high-priority IO必须在任何normal-priority IO之前被处理;所有normal-priority IO必须在任何low-priority IO之前被处理;所有low-priority IO在更高一级IO之后处理。同时,在该原则下需要注意饥饿no-priority IO的情况,解决方法是启动定时器监控low-priority queue,至少保证每次调度一个low-priority IO。
由于处理环境的不同,操作***中的IO调度同应用的处理进程密切相关,且对同一个设备的多个分区并未做到公平调度。而在独立的存储***中,主机IO通过网络下发到存储***中,主机IO的上下文信息丢失,且存在多主机的情况,那么在存储***中需要做到公平调度,特别是***中存在多个阵列,或是同一阵列中存在多个LUN(Logical Unit Number,逻辑单元号)时,存在阵列相互影响或是同一个阵列中的多个LUN读写相互影响问题。
综上可知,现有的阵列/LUN的IO高度技术,在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种基于阵列/LUN的IO调度方法及装置,其可以实现对***阵列/LUN的IO公平调度。
为了实现上述目的,本发明提供一种基于阵列/LUN的IO调度方法,应用于存储***,所述方法包括:
接收对所述阵列/LUN设置优先级别的命令,将所述阵列/LUN设置为若干优先级别;
根据所述阵列/LUN的优先级别,对所述阵列/LUN进行IO调度处理。
根据本发明的基于阵列/LUN的IO调度方法,所述方法还包括:接收对所述阵列/LUN指定IO的处理命令。
根据本发明的基于阵列/LUN的IO调度方法,将所述阵列/LUN设置若干优先级别步骤包括:
根据各所述阵列/LUN所承载数据访问频率,将所述阵列/LUN设置三个优先级别。
根据本发明的基于阵列/LUN的IO调度方法,所述三个优先级别由高到低分别为第一级别、第二级别和第三级别,所述第二级别的阵列/LUN数据在所述第三级别的阵列/LUN之前处理,所述第一级别的阵列/LUN数据在所述第二级别的阵列/LUN之前处理。
根据本发明的基于阵列/LUN的IO调度方法,所述对所述阵列/LUN的IO调度处理步骤包括:
对同一优先级别的阵列/LUN分配相同的***资源。
根据本发明的基于阵列/LUN的IO调度方法,所述方法还包括:对同一个阵列中的LUN,以时间片以及LUN的命令状态为基准进行轮转调度。
根据本发明的基于阵列/LUN的IO调度方法,所述LUN的命令状态包括所述LUN当前存在未处理的命令数以及已下发的处理命令数。
本发明还提供一种基于阵列/LUN的IO调度装置,应用于储存***,所述装置包括:
设置模块,用于接收对所述阵列/LUN设置优先级别的命令,将所述阵列/LUN设置若干优先级别;
IO调度模块,用于根据所述阵列/LUN的优先级别,对所述阵列/LUN进行IO调度处理。
根据本发明的IO调度装置,所述装置还包括接收模块,用于接收对所述阵列/LUN指定IO的处理命令。
根据本发明的IO调度装置,所述IO调度模块包括分配子模块,用于对同一优先级别的阵列/LUN分配相同的***资源。
本发明通过对储存***内的阵列/LUN设置优先级别,根据该优先级别对IO进行调度处理,借此可实现对IO的更充分利用,确保***中各阵列/LUN得到公平处理。更好的是,***可以接受用户对阵列/LUN的IO指定处理,借此进一步包括阵列数据的公平调度。
附图说明
图1是本发明一实施例的IO调度装置的结构示意图;
图2是本发明一实施例的调度装置的调度结构示意图;
图3是本发明的IO调度方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,本发明提供了一种基于阵列/LUN的IO调度装置,该IO调度装置100应用于储存***,该IO调度装置100包括设置模块10、IO调度模块20和接收模块30,其中:
设置模块10用于接收对阵列/LUN设置优先级别的命令,将所述阵列/LUN设置为若干优先级别。具体的,用户可通过对存储***中的性能统计工具或在部署存储***时对数据分布的分析,获取各阵列/LUN所承载数据访问频率,并根据所述访问频率,将阵列/LUN设置为三个优先级别,且这三个优选级别从高到底依次为第一级别、第二级别和第三级别。具体应用中,第二级别的阵列/LUN数据须在第三级别的阵列/LUN之前处理,第一级别的阵列/LUN数据须在第二级别的阵列/LUN之前处理。另外,为了防止出现饥饿(一段时间内第三级别阵列/LUN未得到处理)的情况出现,启用定时器监控第三级别阵列/LUN,保证该级别的阵列/LUN得到调度。
IO调度模块20用于根据阵列/LUN的优先级别,对阵列/LUN进行IO调度处理。具体的,IO调度模块20包括一分配子模块21,将***中的资源(CPU/内存等)按照阵列/LUN的优先级别进行划分,对同一优先级别的阵列/LUN分配相同的***资源。对于第一级别的阵列,IO处理线程拥有高优先级别、阵列的cache配额较大,并且阵列的命令队列深度较大。各阵列分配好资源之后,对于同一个阵列中的LUN,以时间片以及LUN的命令状态(该LUN当前存在未处理的命令数以及已下发的处理命令数)为基准进行轮转调度,确保***中各阵列/LUN得到公平处理。
接收模块30用于接收对阵列/LUN指定IO的处理命令。实际应用中,装置100对多个阵列进行调度时,可能会出现各种情况,比如,部分IO比较繁忙,部分IO为空闲,还有可能出现全部IO均繁忙的情况,比如多个同级别的阵列/LUN同时进行调度,则可能造成该阵列占用的IO资源较多,影响其它阵列的资源使用。本发明通过接收模块30可以接收用户指定的IO处理命令,该IO处理命令是用户指定的特殊命令,其不同于前述的优先级别调度命令,当接收模块30接收到该IO处理命令时,优先处理该命令的相关IO调度,借此可以有效的克服上述问题。
图2是本发明一基于调度装置100的***的结构示意图,各array(阵列/磁盘组)在***中根据优先级别分配***资源,比如:处理线程优先级别、cache资源、队列深度。对于某个array中的多个LUN,根据用户设置的LUN优先级别,各LUN将分配该array所占用的资源。调度处理单元将根据LUN所在array、LUN当前命令状态选择目标LUN进行调度。存在待处理IO的LUN将进入调度装置100,调度装置100根据array优先级别,采用轮转调度的方式,第一优先级别array将多次得到调度。在选定一个array进行调度后,分析该array所有待调度LUN,根据LUN的命令分布情况(未下发命令数、已下发命令数等)、LUN优先级别确定本次调度目标LUN,同时确定目标LUN的派发命令数。
参见图3,本发明提供了一种基于阵列/LUN的IO调度方法,其可以通过如图1所示的调度装置100实现,所述方法包括:
步骤S301,设置模块10接收对所述阵列/LUN设置优先级别的命令,将所述阵列/LUN设置为若干优先级别。
本发明的实施例中,设置模块10根据各阵列/LUN所承载数据访问频率,将所述阵列/LUN设置三个优先级别,从高到底依次为第一级别、第二级别和第三级别,具体调度时,第二级别的阵列/LUN数据在第三级别的阵列/LUN之前处理,第一级别的阵列/LUN数据在第二级别的阵列/LUN之前处理。
步骤S302,IO调度模块20根据所述阵列/LUN的优先级别,对所述阵列/LUN的IO调度处理。
分配子模块21,将***中的资源(CPU/内存等)按照阵列/LUN的优先级别进行划分,对同一优先级别的阵列/LUN分配相同的***资源。对于第一级别的阵列,IO处理线程拥有高优先级别、阵列的cache配额较大,并且阵列的命令队列深度较大。各阵列分配好资源之后,对于同一个阵列中的LUN,以时间片以及LUN的命令状态(该LUN当前存在未处理的命令数以及已下发的处理命令数)为基准进行轮转调度,确保***中各阵列/LUN得到公平处理。
更好的是,本发明还可以通过接收模块30接收用户对阵列/LUN指定IO的处理命令,借此可进一步增强对IO进行合理的调度利用。
综上所述,本发明通过对储存***内的阵列/LUN设置优先级别,根据该优先级别对IO进行调度处理,借此可实现对IO的更充分利用,确保***中各阵列/LUN得到公平处理。更好的是,***可以接受用户对阵列/LUN的IO指定处理,借此进一步包括阵列数据的公平调度。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (10)

1.一种基于阵列/LUN的IO调度方法,应用于存储***,其特征在于,所述方法包括:
接收对所述阵列/LUN设置优先级别的命令,将所述阵列/LUN设置为若干优先级别;
根据所述阵列/LUN的优先级别,对所述阵列/LUN进行IO调度处理。
2.根据权利要求1所述的基于阵列/LUN的IO调度方法,其特征在于,所述方法还包括:接收对所述阵列/LUN指定IO的处理命令。
3.根据权利要求1所述的基于阵列/LUN的IO调度方法,其特征在于,将所述阵列/LUN设置若干优先级别步骤包括:
根据各所述阵列/LUN所承载数据访问频率,将所述阵列/LUN设置三个优先级别。
4.根据权利要求3所述的基于阵列/LUN的IO调度方法,其特征在于,所述三个优先级别由高到低分别为第一级别、第二级别和第三级别,所述第二级别的阵列/LUN数据在所述第三级别的阵列/LUN之前处理,所述第一级别的阵列/LUN数据在所述第二级别的阵列/LUN之前处理。
5.根据权利要求1所述的基于阵列/LUN的IO调度方法,其特征在于,所述对所述阵列/LUN的IO调度处理步骤包括:
对同一优先级别的阵列/LUN分配相同的***资源。
6.根据权利要求5所述的基于阵列/LUN的IO调度方法,其特征在于,所述方法还包括:对同一个阵列中的LUN,以时间片以及LUN的命令状态为基准进行轮转调度。
7.根据权利要求6所述的基于阵列/LUN的IO调度方法,其特征在于,所述LUN的命令状态包括所述LUN当前存在未处理的命令数以及已下发的处理命令数。
8.一种基于阵列/LUN的IO调度装置,应用于储存***,其特征在于,所述装置包括:
设置模块,用于接收对所述阵列/LUN设置优先级别的命令,将所述阵列/LUN设置若干优先级别;
IO调度模块,用于根据所述阵列/LUN的优先级别,对所述阵列/LUN的IO调度处理。
9.根据权利要求8所述的IO调度装置,其特征在于,所述装置还包括接收模块,用于接收对所述阵列/LUN指定IO的处理命令。
10.根据权利要求8所述的IO调度装置,其特征在于,所述IO调度模块包括分配子模块,用于对同一优先级别的阵列/LUN分配相同的***资源。
CN2012102225424A 2012-06-29 2012-06-29 基于阵列/lun的io调度方法及装置 Pending CN102799487A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012102225424A CN102799487A (zh) 2012-06-29 2012-06-29 基于阵列/lun的io调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012102225424A CN102799487A (zh) 2012-06-29 2012-06-29 基于阵列/lun的io调度方法及装置

Publications (1)

Publication Number Publication Date
CN102799487A true CN102799487A (zh) 2012-11-28

Family

ID=47198602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012102225424A Pending CN102799487A (zh) 2012-06-29 2012-06-29 基于阵列/lun的io调度方法及装置

Country Status (1)

Country Link
CN (1) CN102799487A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014101197A1 (zh) * 2012-12-31 2014-07-03 华为技术有限公司 一种存储资源调度方法及终端
CN105677744A (zh) * 2015-12-28 2016-06-15 曙光信息产业股份有限公司 一种文件***中提高服务质量的方法和装置
CN106155810A (zh) * 2015-04-22 2016-11-23 先智云端数据股份有限公司 软件定义混合储存***中工作负载感知的输入输出调度器
CN106980463A (zh) * 2016-01-18 2017-07-25 中兴通讯股份有限公司 存储***的服务质量控制方法和装置
WO2018024214A1 (zh) * 2016-08-04 2018-02-08 北京忆恒创源科技有限公司 Io流调节方法与装置
CN107688435A (zh) * 2016-08-04 2018-02-13 北京忆恒创源科技有限公司 Io流调节方法与装置
WO2018082570A1 (zh) * 2016-11-02 2018-05-11 华为技术有限公司 I/o请求的调度方法及装置
CN112558882A (zh) * 2020-12-23 2021-03-26 联想(北京)有限公司 确定磁盘重构信息的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1382276A (zh) * 1999-12-28 2002-11-27 英特尔公司 处理装置的优先总线请求调度机制
CN1383511A (zh) * 1998-11-16 2002-12-04 因芬尼昂技术股份公司 通过重排序存储器请求提高总线利用率的存储器控制器
CN102402401A (zh) * 2011-12-13 2012-04-04 云海创想信息技术(无锡)有限公司 一种磁盘io请求队列调度的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1383511A (zh) * 1998-11-16 2002-12-04 因芬尼昂技术股份公司 通过重排序存储器请求提高总线利用率的存储器控制器
CN1382276A (zh) * 1999-12-28 2002-11-27 英特尔公司 处理装置的优先总线请求调度机制
CN102402401A (zh) * 2011-12-13 2012-04-04 云海创想信息技术(无锡)有限公司 一种磁盘io请求队列调度的方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014101197A1 (zh) * 2012-12-31 2014-07-03 华为技术有限公司 一种存储资源调度方法及终端
CN104040477A (zh) * 2012-12-31 2014-09-10 华为技术有限公司 一种存储资源调度方法及终端
CN106155810A (zh) * 2015-04-22 2016-11-23 先智云端数据股份有限公司 软件定义混合储存***中工作负载感知的输入输出调度器
CN106155810B (zh) * 2015-04-22 2018-12-25 先智云端数据股份有限公司 软件定义混合储存***中工作负载感知的输入输出调度器
CN105677744A (zh) * 2015-12-28 2016-06-15 曙光信息产业股份有限公司 一种文件***中提高服务质量的方法和装置
CN106980463A (zh) * 2016-01-18 2017-07-25 中兴通讯股份有限公司 存储***的服务质量控制方法和装置
WO2018024214A1 (zh) * 2016-08-04 2018-02-08 北京忆恒创源科技有限公司 Io流调节方法与装置
CN107688435A (zh) * 2016-08-04 2018-02-13 北京忆恒创源科技有限公司 Io流调节方法与装置
CN107688435B (zh) * 2016-08-04 2022-06-03 北京忆恒创源科技股份有限公司 Io流调节方法与装置
WO2018082570A1 (zh) * 2016-11-02 2018-05-11 华为技术有限公司 I/o请求的调度方法及装置
US10628216B2 (en) 2016-11-02 2020-04-21 Huawei Technologies Co., Ltd. I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status
CN112558882A (zh) * 2020-12-23 2021-03-26 联想(北京)有限公司 确定磁盘重构信息的方法和装置

Similar Documents

Publication Publication Date Title
CN102799487A (zh) 基于阵列/lun的io调度方法及装置
US10223166B2 (en) Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
US11294714B2 (en) Method and apparatus for scheduling task, device and medium
US9448864B2 (en) Method and apparatus for processing message between processors
US8424007B1 (en) Prioritizing tasks from virtual machines
EP3534255A1 (en) I/o request scheduling method and device
US8327103B1 (en) Scheduling data relocation activities using configurable fairness criteria
US9891956B2 (en) Efficient critical thread scheduling for non-privileged thread requests
US8056083B2 (en) Dividing a computer job into micro-jobs for execution
US8850439B2 (en) Storage subsystem device driver scheduling I/O servicing according to priority of identified process
CN112905342B (zh) 资源调度方法、装置、设备及计算机可读存储介质
US8122449B2 (en) Determining whether to retain or terminate a thread based on a minimum number of threads in a thread pool and a maximum number of threads allowed waiting on the channel
CN106557369A (zh) 一种多线程的管理方法及***
US9507633B2 (en) Scheduling method and system
CN107515781B (zh) 一种基于多处理器的确定性任务调度及负载均衡***
CN103631624A (zh) 读写请求的处理方法和装置
US10778807B2 (en) Scheduling cluster resources to a job based on its type, particular scheduling algorithm,and resource availability in a particular resource stability sub-levels
US8510739B2 (en) Shared request grouping in a computing system
US20100030931A1 (en) Scheduling proportional storage share for storage systems
CN114461365A (zh) 一种进程调度处理方法、装置、设备和存储介质
KR20130059300A (ko) 멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링
CN110515749B (zh) 信息发送的队列调度的方法、装置、服务器和存储介质
CN115981893A (zh) 消息队列任务处理方法、装置、服务器及存储介质
EP2413240A1 (en) Computer micro-jobs
CN112468414B (zh) 一种云计算多级调度方法、***及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20121128