CN102799487A - 基于阵列/lun的io调度方法及装置 - Google Patents
基于阵列/lun的io调度方法及装置 Download PDFInfo
- 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
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调度方法及装置。
背景技术
在操作系统中,对于系统中的多个存储设备,操作系统在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分配相同的系统资源。
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)
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)
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请求队列调度的方法 |
-
2012
- 2012-06-29 CN CN2012102225424A patent/CN102799487A/zh active Pending
Patent Citations (3)
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)
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 | |
US11010199B2 (en) | Efficient critical thread scheduling for non-privileged thread requests | |
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 | |
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 | |
US8898674B2 (en) | Memory databus utilization management system and computer program product | |
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) | 一种多线程的管理方法及系统 | |
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 | |
US9507633B2 (en) | Scheduling method and system | |
US20100030931A1 (en) | Scheduling proportional storage share for storage systems | |
KR20130059300A (ko) | 멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링 | |
CN114461365A (zh) | 一种进程调度处理方法、装置、设备和存储介质 | |
CN117707737A (zh) | 一种任务调度优化方法、装置、设备及其存储介质 | |
CN110515749B (zh) | 信息发送的队列调度的方法、装置、服务器和存储介质 | |
EP2413240A1 (en) | Computer micro-jobs |
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 |