CN112698790A - 一种存储系统中处理突发I/O的QoS控制方法及系统 - Google Patents
一种存储系统中处理突发I/O的QoS控制方法及系统 Download PDFInfo
- Publication number
- CN112698790A CN112698790A CN202011635190.6A CN202011635190A CN112698790A CN 112698790 A CN112698790 A CN 112698790A CN 202011635190 A CN202011635190 A CN 202011635190A CN 112698790 A CN112698790 A CN 112698790A
- Authority
- CN
- China
- Prior art keywords
- iops
- huffman tree
- huffman
- request
- requests
- 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
Links
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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0658—Controller construction arrangements
-
- 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)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种存储系统中处理突发I/O的QoS控制方法及系统,属于数据存储领域,本发明1)通过判断存储客户端不同I/O的标签和次数区分优先级;2)使用构造Huffman树生成Huffman编码,依据码长作为权重分配不同IOPS资源。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种存储系统中处理突发I/O的QoS控制方法及系统。
背景技术
在存储系统服务端,当客户端程序突然发起大量读写请求时,往往会造成I/O 拥塞,传统的存储QoS控制方法一种是通过把请求放入MQ队列,采用削峰填谷的方法平缓请求;另一种是通过令牌桶算法,一个固定容量的桶装着一定数量的令牌,通过发放令牌和溢出,强行限制传输。然而这些方法只能缓冲大规模突发请求,使超过QoS限速的请求则陷入排队等待的状态,并能有效缓解拥塞状况,也不能根据权重优先保障高优先级客户端程序的读写。
发明内容
为了解决以上技术问题,本发明提供了一种存储系统中处理突发I/O的QoS 控制方法,可以根据客户端服务级别向不同的客户端提供不同的级别控制。
本发明的技术方案是:
一种存储系统中处理突发I/O的QoS控制方法,
一种存储系统中处理突发I/O的QoS控制方法,
1)通过判断存储客户端不同I/O的标签和次数区分优先级;
2)使用构造Huffman树生成Huffman编码,依据码长作为权重分配不同IOPS 资源。
在存储系统服务端,提供两个控制模块:第一个控制模块由队列结构构成;第二个控制模块个由Huffman树结构构成。
当不同的客户端程序突然发起大量读写请求时,把I/O按顺序排进队列然后发送给存储引擎去读写,同时经过第二控制模块,通过请求的优先级标签和请求次数作为权重,构造Huffman树,根据权重构造的Huffman树进行Huffman 编码,控制器依据码长作为优先级,实时调整对不同客户端IOPS资源分配,可以实现按照重要性和其它权重控制对不同的程序实现QoS控制,优先处理紧急的I/O请求,同时不会对其他优先级I/O完全阻截。
步骤如下:
1)客户端发起请求;
2)不同的客户端请求进入不同的IOPS信道,IOPS信道受各信道资源控制可调节;
3)根据门限规则判断是否是突发I/O;
4)如果是突发I/O在进入请求队列的时候同时向Huffman树编码控制器反馈信息;
5)在突发模式下,由构造的Huffman树发送控制信号,调整各信道资源;
6)如果不符合突发模式,则所有请求按照FIFO原则进出队列并依次访问内存或者磁盘。
另外,本发明还提供了一种存储系统中处理突发I/O的QoS控制系统,
由IOPS控制器,Huffman树编码控制器,请求队列模块组成;
其中,
IOPS控制器,依据码长作为优先级,调整对不同客户端IOPS资源分配;
Huffman树编码控制器,通过请求的优先级标签和请求次数作为权重,构造Huffman树,根据权重构造的Huffman树进行Huffman编码;
请求队列模块,当不同的客户端程序突然发起大量读写请求时,把I/O按顺序排列后发送给存储引擎去读写。
Huffman树控制器采用的是Huffman生成树和编码;
Huffman树控制器向IOPS信道控制器发送反馈信号;
IOPS信道控制器经过调整向请求队列模块发送I/O请求。
当退出突发模式时恢复正常请求模式。
本发明的有益效果是
能通过自动判断突发I/O流量请求,根据每个请求的权重确定请求客户端所占用的IOPS资源,经验证,在由SATA和SSD盘组成的RAID5容量为5T存储阵列中同时20个不同客户端并发请求下,模拟1000线程并发请求随机读写测试,本系统能够有效识别高优先级I/O请求,并为之分配相应的IOPS资源;同时不会剧烈阻截其他优先级I/O请求。
附图说明
图1是本发明的工作框图;
图2是本发明的工作流程示意图;
图3是一颗按照权重从根节点开始构造的Huffman树示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
1)图1展示了本发明的一个实例,若干个客户端(a1),向存储后端发起I/O 请求,在存储系统后端,有两个控制模块(a2,a4)和一个队列模块a3。
2)图1中,在非突发I/O的情况下,所有客户端的请求,占有相同的IOPS (a2),并按照FIFO原则进入a3队列模块,此时在a3中每个请求占用相同的延时时间,比如都是10ms。从a3队列出来的请求依次请求内存或者存储磁盘,并返回数据。
3)图1中,如果a2和a3队列突然在短时间内收到大量的突发I/O请求,如 a2在短时间内有大量的客户端连接,并发请求指向统一存储后端,比如a3队列长度在时间阈值t1之内,队列元素(请求I/O)增长速度超过数量阈值N1,这里t1 和N1是可以配置的,则系统判定进入突发I/O模式。在这种模式下,请求I/O在 a3队列中向后发请求的同时,向控制器a4反馈队列各个I/O的参数,参见4)。
4)控制器a4是一个反馈控制单元,它首先接受a3中反馈的I/O元信息,然后根据这些元信息构造Huffman树,最后通过Huffman树节点的权重,反向控制 a2,调整各个信道的权重和相应的IOPS资源。其中重要的步骤是构造Huffman树,
Huffman树又称“最优二叉树”,当用n个结点(都做叶子结点且都有各自的权值)试图构建一棵树时,如果构建的这棵树的带权路径长度最小,称这棵树为 Huffman树,在构建Huffman树时,要使树的带权路径长度最小,只需要遵循一个原则,那就是:权重越大的结点离树根越近。
关于Huffman树的几个名词:
路径:在一棵树中,一个结点到另一个结点之间的通路,称为路径。图3中,从根结点到结点a之间的通路就是一条路径。
路径长度:在一条路径中,每经过一个结点,路径长度都要加1。例如在一棵树中,规定根结点所在层数为1层,那么从根结点到第i层结点的路径长度为 i-1。图3中从根结点到结点c的路径长度为3。
结点的权:给每一个结点赋予一个新的数值,被称为这个结点的权。例如,图3中结点a的权为7,结点b的权为5。
结点的带权路径长度:指的是从根结点到该结点之间的路径长度与该结点的权的乘积。例如,图3中结点b的带权路径长度为2*5=10。
树的带权路径长度为树中所有叶子结点的带权路径长度之和。通常记作“WPL”。例如图3中所示的这颗树的带权路径长度为:
WPL=7*1+5*2+2*3+4*3。
Huffman树的构造过程,对于给定的有各自权值的n个结点,构建哈夫曼树有一个行之有效的办法:
①在n个权值中选出两个最小的权值,对应的两个结点组成一个新的二叉树,且新二叉树的根结点的权值为左右孩子权值的和;
②在原有的n个权值中删除那两个最小的权值,同时将新的权值加入到n–2 个权值的行列中,以此类推;重复①和②,直到所以的结点构建成了一棵二叉树为止,这棵树就是哈夫曼树。
在本发明中,权值w和图1中a3的I/O队列密切相关。具体为:
①按照客户端程序id统计队列中I/O数量,同一客户端id日id1的I/O数量在t1时间里累计,得到统计数量sum1记为w1(1<w1),w1和下面的w2调整为同一数量级(|w1-w2|<10^1)
②从I/O请求报文中解析出所携带的用户信息,根据事先定义好的用户优先级,赋予不同的I/O请求以权重,记为w2(1<w2),
最终的权重w记为log2(w1*w2)。
根据计算出来的权重w,当某I/O的w<0的时候,直接丢弃,不进入构造Haffman 树的过程。其他情况下的的I/O根据其权重w进入Huffman树构造,过程如上文中所述。
5)Huffman树构造是个不断动态变化的过程,所以要定时获取快照,某时刻的树结构取记为T,此时T代表了当前时刻的主要客户端的I/O权重分布,我们根据T进行Huffman编码,得到每个图1a1中每个图请求客户端的Huffman编码。假设客户端程序a的Huffman编码为c1,其码长为n1,所有的Huffman编码的总码长为sum。众所周知,在Huffman编码中,权重越大的节点,它的码长越短,相反的权重越小的节点它的码长越长。所以我们根据Huffman树的码长来确定客户端 I/O的优先级,设为p1,p2…,码长越短客户端的它的优先级越高;相反,码长越长的I/O客户端优先级越低。
6)根据上一步骤图1a4中生成的优先级p1,p1…,对a2模块里的各个I/O 信道进行资源分配,优先级越高的信道分配的IOPS资源越高,优先级越低的信道分配的IOPS优先级越低,进而在a3模块中,获取的时间片和延时越长。例如,如果有32个I/O类,则目标排队延迟限制可能是1毫秒(ms),2ms,4ms,8ms, 12ms等。其他合适数量的I/O类或目标排队延迟在替代实施例中可以使用类似限制。
7)如前面所述,构造Huffman树的过程是定时执行的,反应的是当前突发I/O 情况下,线性回归统计的I/O权重,统计的是当前及前一时刻叠加的结果。当流量趋于平稳,或者急速下降时,该统计方法不再适用。所以,当如3)中所述,a3 队列长度在时间阈值t2之内队列元素(请求I/O)减少速度超过数量阈值N2,则任务当前退出突发I/O模式,进入常规状态。此时a4解构Huffman树,不再向a2 发送控制信息,a3也不再向a2发送反馈信息。
8)图2是一个流程图,体现了本发明中处理突发I/O的过程。
8.1)若干客户端发起请求。
8.2)不同的客户端请求进入不同的IOPS控制信道,此模块受各信道资源控制可调节。
8.3)根据门限规则判断是否是突发I/O
8.4)如果是突发I/O在进入请求队列的时候同时向Huffman树模块反馈信息。
8.5)在突发模式下,由构造的Huffman树发送控制信号,调整各信道资源。
8.6)如果不符合突发模式,则所有请求按照FIFO原则进出队列并依次访问内存或者磁盘。
9).图3展示是一颗普通的Huffman树,按照权重从根节点开始构造。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种存储系统中处理突发I/O的QoS控制方法,其特征在于,
1)通过判断存储客户端不同I/O的标签和次数区分优先级;
2)使用构造Huffman树生成Huffman编码,依据码长作为权重分配不同IOPS资源。
2.根据权利要求1所述的方法,其特征在于,
当不同的客户端程序突然发起读写请求时,把I/O按顺序排进队列然后发送给存储引擎去读写。
3.根据权利要求2所述的方法,其特征在于,
I/O经过Huffman树编码控制器,通过请求的优先级标签和请求次数作为权重,构造Huffman树,根据权重构造的Huffman树进行Huffman编码。
4.根据权利要求3所述的方法,其特征在于,
依据码长作为优先级,实时调整对不同客户端IOPS资源分配,控制对不同的程序实现QoS控制,优先处理紧急的I/O请求,同时不会对其他优先级I/O完全阻截,即其他优先级的I/O请求根据编码的码长作为权重分配IOPS资源,其所占权重不超过w1/w,w1为该请求码长,w为总码长,码长一定会大于0,因此请求不会被完全阻塞。
5.根据权利要求1所述的方法,其特征在于,
在存储系统服务端,提供两个控制模块,第一个控制模块由队列结构构成;第二个控制模块由Huffman树结构构成。
6.根据权利要求1所述的方法,其特征在于,
步骤如下:
1)客户端发起请求;
2)不同的客户端请求进入不同的IOPS信道,IOPS信道受各信道资源控制可调节;
3)根据门限规则判断是否是突发I/O;
4)如果是突发I/O在进入请求队列的时候同时向Huffman树编码控制器反馈信息;
5)在突发模式下,由构造的Huffman树发送控制信号,调整各信道资源;
6)如果不符合突发模式,则所有请求按照FIFO原则进出队列并依次访问内存或者磁盘。
7.一种存储系统中处理突发I/O的QoS控制系统,其特征在于,
由IOPS控制器,Huffman树编码控制器,请求队列模块组成;
其中,
IOPS控制器,依据码长作为优先级,调整对不同客户端IOPS资源分配;
Huffman树编码控制器,通过请求的优先级标签和请求次数作为权重,构造Huffman树,根据权重构造的Huffman树进行Huffman编码;
请求队列模块,当不同的客户端程序突然发起大量读写请求时,把I/O按顺序排列后发送给存储引擎去读写。
8.根据权利要求7所述的系统,其特征在于,
Huffman树控制器采用的是Huffman生成树和编码;
Huffman树控制器向IOPS信道控制器发送反馈信号;
IOPS信道控制器经过调整向请求队列模块发送I/O请求。
9.根据权利要求8所述的系统,其特征在于,
当退出突发模式时恢复正常请求模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011635190.6A CN112698790B (zh) | 2020-12-31 | 2020-12-31 | 一种存储系统中处理突发I/O的QoS控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011635190.6A CN112698790B (zh) | 2020-12-31 | 2020-12-31 | 一种存储系统中处理突发I/O的QoS控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112698790A true CN112698790A (zh) | 2021-04-23 |
CN112698790B CN112698790B (zh) | 2023-03-28 |
Family
ID=75513774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011635190.6A Active CN112698790B (zh) | 2020-12-31 | 2020-12-31 | 一种存储系统中处理突发I/O的QoS控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112698790B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102983866A (zh) * | 2012-11-14 | 2013-03-20 | 无锡芯响电子科技有限公司 | 一种动态Huffman编码硬件实现系统及其实现方法 |
CN103442076A (zh) * | 2013-09-04 | 2013-12-11 | 上海海事大学 | 一种云存储系统的可用性保障方法 |
CN104580486A (zh) * | 2015-01-20 | 2015-04-29 | 成都益联科创科技有限公司 | 一种复合式产品售后信息及服务推送系统 |
CN107579926A (zh) * | 2017-10-20 | 2018-01-12 | 南京易捷思达软件科技有限公司 | 基于令牌桶算法的Ceph云存储系统的QoS设置方法 |
CN109710175A (zh) * | 2017-10-26 | 2019-05-03 | 英特尔公司 | 用于数据存储管理的设备和方法 |
-
2020
- 2020-12-31 CN CN202011635190.6A patent/CN112698790B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102983866A (zh) * | 2012-11-14 | 2013-03-20 | 无锡芯响电子科技有限公司 | 一种动态Huffman编码硬件实现系统及其实现方法 |
CN103442076A (zh) * | 2013-09-04 | 2013-12-11 | 上海海事大学 | 一种云存储系统的可用性保障方法 |
CN104580486A (zh) * | 2015-01-20 | 2015-04-29 | 成都益联科创科技有限公司 | 一种复合式产品售后信息及服务推送系统 |
CN107579926A (zh) * | 2017-10-20 | 2018-01-12 | 南京易捷思达软件科技有限公司 | 基于令牌桶算法的Ceph云存储系统的QoS设置方法 |
CN109710175A (zh) * | 2017-10-26 | 2019-05-03 | 英特尔公司 | 用于数据存储管理的设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112698790B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107579926B (zh) | 基于令牌桶算法的Ceph云存储系统的QoS设置方法 | |
US10318467B2 (en) | Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system | |
US7310339B1 (en) | Packet messaging method and apparatus | |
US5835494A (en) | Multi-level rate scheduler | |
US6909691B1 (en) | Fairly partitioning resources while limiting the maximum fair share | |
US6570850B1 (en) | System and method for regulating message flow in a digital data network | |
KR100323258B1 (ko) | 버퍼 관리를 통한 속도 보증 | |
US11586392B2 (en) | Multi-stream SSD QoS management | |
US9509529B1 (en) | Assured messaging system with differentiated real time traffic | |
CN103493449A (zh) | 分组交换网络中的有效电路 | |
US20170010919A1 (en) | Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy | |
CN109189578B (zh) | 存储服务器分配方法、装置、管理服务器以及存储系统 | |
CN115004660B (zh) | 使用连续带宽控制的用于时延关键服务质量的系统和方法 | |
CN110674064B (zh) | 一种数据传输方法、装置、设备及计算机可读存储介质 | |
Walraevens et al. | Delay analysis of multiclass queues with correlated train arrivals and a hybrid priority/FIFO scheduling discipline | |
CN111190541B (zh) | 存储系统的流控方法以及计算机可读存储介质 | |
CN112698790B (zh) | 一种存储系统中处理突发I/O的QoS控制方法及系统 | |
US7408946B2 (en) | Systems and methods for smooth and efficient round-robin scheduling | |
CN113259439B (zh) | 基于接收端驱动的键值调度方法 | |
US7567572B1 (en) | 2-rate scheduling based on search trees with configurable excess bandwidth sharing | |
US20060140192A1 (en) | Flexible mesh structure for hierarchical scheduling | |
CN115202842A (zh) | 任务调度方法及装置 | |
CN112684988A (zh) | 基于分布式存储的QoS方法及系统 | |
CN112714037A (zh) | 一种线上服务质量的保障性能评估方法、装置及设备 | |
US8902912B2 (en) | Differential frame based scheduling for input queued switches |
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 |