CN112684988A - 基于分布式存储的QoS方法及系统 - Google Patents

基于分布式存储的QoS方法及系统 Download PDF

Info

Publication number
CN112684988A
CN112684988A CN202110032461.7A CN202110032461A CN112684988A CN 112684988 A CN112684988 A CN 112684988A CN 202110032461 A CN202110032461 A CN 202110032461A CN 112684988 A CN112684988 A CN 112684988A
Authority
CN
China
Prior art keywords
tag
binary tree
request
distributed storage
client
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
CN202110032461.7A
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.)
Beijing Toyou Feiji Electronics Co ltd
Original Assignee
Beijing Toyou Feiji Electronics 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 Beijing Toyou Feiji Electronics Co ltd filed Critical Beijing Toyou Feiji Electronics Co ltd
Priority to CN202110032461.7A priority Critical patent/CN112684988A/zh
Publication of CN112684988A publication Critical patent/CN112684988A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于分布式存储的QoS方法及系统。该方法包括:获取到来自客户端的IO请求时,将获取到的IO请求存入依客户端构建的二级队列;对每个客户端所对应的请求队列,构建预留标签二叉树、权重标签二叉树及上限标签二叉树;根据处于预留标签二叉树或者权重标签二叉树的节点是否符合出队条件,确定请求是否出队。本发明提供的基于分布式存储的QoS方法及系统使在某客户端出现突发IO请求时,能使其在不影响预留的情况下,更快相应该客户端的请求。

Description

基于分布式存储的QoS方法及系统
技术领域
本发明涉及QoS技术领域,特别是涉及一种基于分布式存储的QoS方法及系统。
背景技术
QoS(Quality of Service)即服务质量或配额,为服务系统提供针对不同用户、不同数据流的不同权重服务的能力。在电信领域,多媒体服务领域内QoS能提供不同需求的定制服务,提供不同优先级;在存储领域,QoS能够根据系统配置,对I/O数据流按照权重进行资源分配,从而提高存储的服务质量。云计算时代,由于数据量规模庞大、资源类型复杂及云计算构建具有可变性和不可预测性,资源调度变得更加复杂且更为重要。
在分布式存储领域,块存储提供了将卷映射到主机使用的能力。由于资源的有限性,分布式存储系统同样需要对资源进行服务质量管理。当下流行的分布式存储系统中,针对块存储的QoS的定制算法存在实现成本过高、实现复杂等问题。
现有QoS算法主要基于两种算法,令牌桶算法及dmClock算法。
令牌桶算法是网络流量整形和速率限制中最常使用的一种算法。经典算法的原理是通过监督流入存储端端口的流量速率,对超出的流量进行限制,从而调配各客户端I/O,使得端口IOPS控制在预设范围。大小固定的令牌桶可自行按照系统预设的速度源源不断地产生令牌。当桶中的令牌数量超过最大容量限制,新的令牌将会被舍弃。如果令牌桶中存在令牌,则允许发送流量或接受I/O;而如果令牌桶中不存在令牌,则不允许发送流量或接受I/O。
dmClock算法是mClock算法的分布式版本。mClock算法将QoS定义为保证I/O资源的界定参数,分别是权重(weight或proportion)、预留(reservation)和上限(limit)等等。其基本思想是首先保证预留IOPS,然后对于没有超过上限IOPS的资源,按照权重分配IOPS。当资源I/O请求到达后,根据QoS三个参数会计算这三个指标,公式为:
Figure BDA0002891970810000021
Figure BDA0002891970810000022
Figure BDA0002891970810000023
其中,
Figure BDA0002891970810000024
表示第i个资源的第r个请求的reservation标签,
Figure BDA0002891970810000025
和Pi n以此类推,分别代表limit标签和proportion标签。r,l和w分别代表用户预设的reservation,limit和weight参数。
dmClock算法将应用场景变为了分布式存储,虚拟机将I/O请求发送到存储集群的某一个节点上。其指标公式改进为:
Figure BDA0002891970810000026
Figure BDA0002891970810000027
Figure BDA0002891970810000028
其中,ρi和δi是包含在I/O命令中的信息。因为分布式系统中存在多个服务器,发往同一个服务器的两次I/O之间其他服务器可能已经完成了预留值或最小值,所以需要服务器将每次I/O完成调度信息后基于预留值以及权重返还给客户端,客户端分别叠加计算为ρi和δi,再包含在I/O命令中发送给服务器。
发明内容
本发明要解决的技术问题是提供一种基于分布式存储的QoS方法及系统,使在某客户端出现突发IO请求时,能使其在不影响预留的情况下,更快相应该客户端的请求。
为解决上述技术问题,本发明提供了一种基于分布式存储的QoS方法,所述方法包括:获取到来自客户端的IO请求时,将获取到的IO请求存入依客户端构建的二级队列;对每个客户端所对应的请求队列,构建预留标签二叉树、权重标签二叉树及上限标签二叉树,其中,且预留标签二叉树、权重标签二叉树及上限标签二叉树均根据节点的标签取值,确定请求队列中请求在其中的存储位置;根据处于预留标签二叉树或者权重标签二叉树的节点是否符合出队条件,确定请求是否出队。
在一些实施方式中,预留标签二叉树、权重标签二叉树及上限标签二叉树均为完全二叉树。
在一些实施方式中,预留标签二叉树中的标签取值,根据如下公式调整:
Figure BDA0002891970810000031
其中,
Figure BDA0002891970810000032
表示第i个资源的第n个请求的预留标签取值,ri表示第i个资源上的预设预留值,ρi表示第i个资源发送到其他服务器的请求个数,t表示当前时间。
在一些实施方式中,对于预留标签二叉树,出队条件包括:若当其根节点的队首元素的预留标签小于或等于当前时间,则可以出队。
在一些实施方式中,权重标签二叉树中的标签取值,根据如下公式调整:
Figure BDA0002891970810000041
其中,Wi n表示第i个资源的第n个请求的权重标签取值,wi表示第i个资源上的预设权重值,δi表示第i个资源发送到其他服务器的请求个数,si表示第i个资源的突发可调参数,t表示当前时间。
在一些实施方式中,对于权重标签二叉树,出队条件包括:某个节点的队元素的权重标签小于或等于当前时间,则将权重标签二叉树中对应节点的ready变为true,并上浮到根节点;并将上限标签二叉树中对应节点的ready变为true,并下沉到叶子节点。
在一些实施方式中,上限标签二叉树的标签取值,根据如下公式调整:
Figure BDA0002891970810000042
其中,
Figure BDA0002891970810000043
表示第i个资源的第n个请求的上限标签取值,li表示第i个资源上的预设权重值,δi表示第i个资源发送到其他服务器的请求个数,si表示第i个资源的突发可调参数,t表示当前时间。
在一些实施方式中,二级队列包括:客户端队列,以及与客户端队列中的客户端相对应的请求队列。
此外,本发明还提供了一种基于分布式存储的QoS系统,所述系统包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据前文所述的基于分布式存储的QoS方法。
采用这样的设计后,本发明至少具有以下优点:
该方案通过预设一个自适应可调节的参数并以此设计了一种实现方式,提高了系统的适应性;当面对突发I/O状况时,能更为及时合理地处理请求。
附图说明
上述仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,以下结合附图与具体实施方式对本发明作进一步的详细说明。
图1是本发明实施例提供的二级队列的原理示意图;
图2是本发明实施例提供的出队流程的流程示意图;
图3是本发明实施例提供的基于分布式存储的QoS系统的结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本专利从IOPS的角度出发,从小块数据(典型如4KB)来设计,给出如下方案。
服务器设计:
1.当客户端发来I/O请求时,请求根据客户端构建一个二级队列,一级为客户端队列,二级为客户端的请求队列。二级队列如图1所示。
当有新的客户端发来请求时,将客户端入队,并将其请求编入队列作为其二级队列。
2.而对于不同客户端的请求,利用其模板的标签值则构建三棵完全二叉树。
预留标签二叉树:以每个二级队列的队首元素的预留标签为内容(如R1、R2、R3……),依次加入二叉树,值小的上浮至根节点,值大的下沉至叶子节点。
权重标签二叉树:以每个二级队列的队首元素的权重标签为内容(如W1、W2、W3……),依次加入二叉树,值小的上浮至根节点,值大的下沉至叶子节点。所有树节点包含一个布尔值ready,代表可出队的状态,初始状态均为false。
上限标签二叉树:以每个二级队列的队首元素的上限标签为内容(如L1、L2、L3……),依次加入二叉树,值小的上浮至根节点,值大的下沉至叶子节点。所有树节点包含一个布尔值ready,代表是否满足上限,初始状态均为false。
随着时间推移,如果一个请求的权重标签小于或等于当前时间:a.将权重二叉树中对应节点的ready变为true,并上浮到根节点;b.将上限二叉树中对应节点的ready变为true,并下沉到叶子节点。
3.出队的流程
a.预留二叉树根节点的出队条件为若当其根节点的队首元素的预留标签小于或等于当前时间,则可以出队。
b.ready标记的调整依据为某个节点的队元素的权重标签小于或等于当前时间,则将权重二叉树中对应节点的ready变为true,并上浮到根节点;并将上限二叉树中对应节点的ready变为true,并下沉到叶子节点。
c.权重二叉树的根节点的出队条件为若当其根节点的队首元素的ready值为true,则可以出队。
d.出队后二叉树的调整,不论在哪个阶段,当有一个客户端的请求出队后,则该客户端的请求队列的元素全部前移,则二叉树中标记值也会受影响,因此需要重新调整二叉树的ready值并上浮或下沉节点。
客户端设计:
1.对不同的客户端,预设一套QoS模板,包括r标签(resevation),代表预留值,l标签(limit)代表上限标签,以及w标签(weight)代表权重,其中权重标签w越大代表优先级越高,将分得更多资源。
2.当突发I/O的情况频发时,客户端会在短时间内下发大量I/O请求。为此需要给客户端设置有一个可调整的参数s。s初值为0,当客户端出现突发I/O时,则s值增加。
3.客户端统计统计当前请求前发送到其他服务器的请求个数,预留标签的记为ρ,权重和上限标签的记为δ,这两个值作为当前请求的延迟。
客户端发送请求时将以上数据代入如下公式,作为QoS模板一并发送给服务器进行调度。
图3示出了基于分布式存储的QoS系统的结构。参见图3,例如,所述基于分布式存储的QoS系统300可以用于充当分布式存储系统中的服务端IO调度装置。如本文所述,基于分布式存储的QoS系统300可以用于在分布式存储系统的服务器中实现对IO请求的调度功能。基于分布式存储的QoS系统300可以在单个节点中实现,或者基于分布式存储的QoS系统300的功能可以在网络中的多个节点中实现。本领域的技术人员应意识到,术语基于分布式存储的QoS系统包括广泛意义上的设备,图3中示出的基于分布式存储的QoS系统300仅是其中一个示例。包括基于分布式存储的QoS系统300是为了表述清楚,并不旨在将本发明的应用限制为特定的基于分布式存储的QoS系统实施例或某一类基于分布式存储的QoS系统实施例。本发明所述的至少部分特征/方法可以在网络装置或组件,例如,基于分布式存储的QoS系统300中实现。例如,本发明中的特征/方法可以采用硬件、固件和/或在硬件上安装运行的软件实现。基于分布式存储的QoS系统300可以是任何通过网络处理,存储和/或转发数据帧的设备,例如,服务器,客户端,数据源等。如图3所示,基于分布式存储的QoS系统300可以包括收发器(Tx/Rx)310,其可以是发射器,接收器,或其组合。Tx/Rx 310可以耦合到多个端口350(例如上行接口和/或下行接口),用于从其他节点发送和/或接收帧。处理器330可耦合至Tx/Rx 310,以处理帧和/或确定向哪些节点发送帧。处理器330可以包括一个或多个多核处理器和/或存储器设备332,其可以用作数据存储器,缓冲区等。处理器330可以被实现为通用处理器,或者可以是一个或多个专用集成电路(application specificintegrated circuit,简称ASIC)和/或数字信号处理器(digital signal processor,简称DSP)的一部分。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,本领域技术人员利用上述揭示的技术内容做出些许简单修改、等同变化或修饰,均落在本发明的保护范围内。

Claims (9)

1.一种基于分布式存储的QoS方法,其特征在于,包括:
获取到来自客户端的IO请求时,将获取到的IO请求存入依客户端构建的二级队列;
对每个客户端所对应的请求队列,构建预留标签二叉树、权重标签二叉树及上限标签二叉树,其中,且预留标签二叉树、权重标签二叉树及上限标签二叉树均根据节点的标签取值,确定请求队列中请求在其中的存储位置;
根据处于预留标签二叉树或者权重标签二叉树的节点是否符合出队条件,确定请求是否出队。
2.根据权利要求1所述的基于分布式存储的QoS方法,其特征在于,预留标签二叉树、权重标签二叉树及上限标签二叉树均为完全二叉树。
3.根据权利要求1所述的基于分布式存储的QoS方法,其特征在于,预留标签二叉树中的标签取值,根据如下公式调整:
Figure FDA0002891970800000011
其中,
Figure FDA0002891970800000012
表示第i个资源的第n个请求的预留标签取值,ri表示第i个资源上的预设预留值,ρi表示第i个资源发送到其他服务器的请求个数,t表示当前时间。
4.根据权利要求3所述的集约分布式存储的QoS方法,其特征在于,对于预留标签二叉树,出队条件包括:若当其根节点的队首元素的预留标签小于或等于当前时间,则可以出队。
5.根据权利要求1所述的基于分布式存储的QoS方法,其特征在于,权重标签二叉树中的标签取值,根据如下公式调整:
Figure FDA0002891970800000021
其中,Wi n表示第i个资源的第n个请求的权重标签取值,wi表示第i个资源上的预设权重值,δi表示第i个资源发送到其他服务器的请求个数,si表示第i个资源的突发可调参数,t表示当前时间。
6.根据权利要求5所述的基于分布式存储的QoS方法,其特征在于,对于权重标签二叉树,出队条件包括:某个节点的队元素的权重标签小于或等于当前时间,则将权重标签二叉树中对应节点的ready变为true,并上浮到根节点;并将上限标签二叉树中对应节点的ready变为true,并下沉到叶子节点。
7.根据权利要求1所述的基于分布式存储的QoS方法,其特征在于,上限标签二叉树的标签取值,根据如下公式调整:
Figure FDA0002891970800000022
其中,
Figure FDA0002891970800000023
表示第i个资源的第n个请求的上限标签取值,li表示第i个资源上的预设权重值,δi表示第i个资源发送到其他服务器的请求个数,si表示第i个资源的突发可调参数,t表示当前时间。
8.根据权利要求1所述的基于分布式存储的QoS方法,其特征在于,二级队列包括:客户端队列,以及与客户端队列中的客户端相对应的请求队列。
9.一种基于分布式存储的QoS系统,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求1至8任意一项所述的基于分布式存储的QoS方法。
CN202110032461.7A 2021-01-11 2021-01-11 基于分布式存储的QoS方法及系统 Pending CN112684988A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110032461.7A CN112684988A (zh) 2021-01-11 2021-01-11 基于分布式存储的QoS方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110032461.7A CN112684988A (zh) 2021-01-11 2021-01-11 基于分布式存储的QoS方法及系统

Publications (1)

Publication Number Publication Date
CN112684988A true CN112684988A (zh) 2021-04-20

Family

ID=75457236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110032461.7A Pending CN112684988A (zh) 2021-01-11 2021-01-11 基于分布式存储的QoS方法及系统

Country Status (1)

Country Link
CN (1) CN112684988A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115334011A (zh) * 2022-08-09 2022-11-11 成都精灵云科技有限公司 一种服务质量控制方法、装置、服务器及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100106820A1 (en) * 2008-10-28 2010-04-29 Vmware, Inc. Quality of service management
CN108881348A (zh) * 2017-05-15 2018-11-23 新华三技术有限公司 服务质量控制方法、装置和存储服务器
CN109104463A (zh) * 2018-07-18 2018-12-28 南京云创大数据科技股份有限公司 一种基于时间标签的I/O调度QoS方法
US20200204652A1 (en) * 2018-12-21 2020-06-25 Beijing Baidu Netcom Science And Technology Co., Ltd. Method, apparatus and system for processing data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100106820A1 (en) * 2008-10-28 2010-04-29 Vmware, Inc. Quality of service management
CN108881348A (zh) * 2017-05-15 2018-11-23 新华三技术有限公司 服务质量控制方法、装置和存储服务器
CN109104463A (zh) * 2018-07-18 2018-12-28 南京云创大数据科技股份有限公司 一种基于时间标签的I/O调度QoS方法
US20200204652A1 (en) * 2018-12-21 2020-06-25 Beijing Baidu Netcom Science And Technology Co., Ltd. Method, apparatus and system for processing data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"mClock: Handling Throughput Variability for Hypervisor IO Scheduling", 《USENIX CONFERENCE ON OPERATING SYSTEM DESIGN&IMPLEMENTATION》, pages 6 - 7 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115334011A (zh) * 2022-08-09 2022-11-11 成都精灵云科技有限公司 一种服务质量控制方法、装置、服务器及存储介质

Similar Documents

Publication Publication Date Title
US12107769B2 (en) Throttling queue for a request scheduling and processing system
EP1774714B1 (en) Hierarchal scheduler with multiple scheduling lanes
US9231878B2 (en) Shaping virtual machine communication traffic
EP2466824B1 (en) Service scheduling method and device
US8514707B2 (en) Non-blocking admission control
CN105700940A (zh) 一种调度器及调度器的动态复用方法
CN112684988A (zh) 基于分布式存储的QoS方法及系统
WO2019109902A1 (zh) 队列调度方法及装置、通信设备、存储介质
CN111756586B (zh) 一种数据中心网络中基于优先级队列的公平带宽分配方法、交换机及可读存储介质
CN112055382A (zh) 一种基于精细化区分的业务接入方法
CN112995058A (zh) 一种令牌的调整方法及装置
CN107682282B (zh) 保障业务带宽的服务质量方法及网络设备
CN116560809A (zh) 数据处理方法及装置、设备、介质
Antonova The study of wireless network resources while transmitting heterogeneous traffic
EP1774721B1 (en) Propagation of minimum guaranteed scheduling rates
CN115242727B (zh) 用户请求处理方法、装置、设备和介质
CN114968507B (zh) 图像处理任务的调度方法及装置
US11973696B2 (en) Allocation of shared reserve memory to queues in a network device
CN118672753A (zh) 请求处理方法和装置
CN117221245A (zh) 一种消息发送方法、装置、电子设备及存储介质
Xu et al. ReQ-tank: Fine-grained Distributed Machine Learning Flow Scheduling Approach
EP3716549A1 (en) Bandwidth management
US20190007318A1 (en) Technologies for inflight packet count limiting in a queue manager environment
KR100757194B1 (ko) 자원 이용도가 높고 구현 복잡성이 낮은 공정 패킷스케줄링 장치
CN117749726A (zh) Tsn交换机输出端口优先级队列混合调度方法和装置

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