CN112087401B - 分布式存储中实现服务质量的方法和装置 - Google Patents

分布式存储中实现服务质量的方法和装置 Download PDF

Info

Publication number
CN112087401B
CN112087401B CN202010949707.2A CN202010949707A CN112087401B CN 112087401 B CN112087401 B CN 112087401B CN 202010949707 A CN202010949707 A CN 202010949707A CN 112087401 B CN112087401 B CN 112087401B
Authority
CN
China
Prior art keywords
tokens
read
write operation
locally cached
object storage
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.)
Active
Application number
CN202010949707.2A
Other languages
English (en)
Other versions
CN112087401A (zh
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 Xingchen Tianhe Technology Co ltd
Original Assignee
Beijing Xingchen Tianhe Technology 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 Xingchen Tianhe Technology Co ltd filed Critical Beijing Xingchen Tianhe Technology Co ltd
Priority to CN202010949707.2A priority Critical patent/CN112087401B/zh
Publication of CN112087401A publication Critical patent/CN112087401A/zh
Application granted granted Critical
Publication of CN112087401B publication Critical patent/CN112087401B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式存储中实现服务质量的方法和装置。其中,该方法包括:接收读写操作;检测对象存储网关在本地缓存的令牌个数是否满足读写操作所需的令牌个数;在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数;在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作。本发明解决了现有技术中分布式存储采用令牌桶模块对令牌进行集中管理,与业务模块处于不同的进程中,每次读写操作都需要通过进程间通信获取令牌,导致性能降低、可用性差的技术问题。

Description

分布式存储中实现服务质量的方法和装置
技术领域
本发明涉及存储系统技术领域,具体而言,涉及一种分布式存储中实现服务质量的方法和装置。
背景技术
存储服务质量(Quality of Service,简称为QoS)与网络QoS类似,它确保特定应用程序或工作负载始终获得特定的性能级别。对于存储系统,此级别通常表示为IOPS。
存储QoS通常设置特定用户/应用程序可能使用的最大IOPS数。为确保用户/应用程序获得此性能级别,存储系统在总IOPS中分配一定数量IOPS给每个用户/应用程序。每个用户/应用程序的最大IOPS不会超过分配的IOPS,可以防止对其他用户的IOPS造成影响。
图1是现有非分布式存储系统中使用令牌桶算法实现Qos功能的示意图,如图1所示,在现有非分布式存储系统中,通常使用令牌桶算法实现Qos功能,令牌桶模块和存储业务处理模块位于相同的进程中,获取令牌的效率很高,在限流范围内对性能无影响。
图2是现有技术中将令牌桶算法应用到分布式存储系统的示意图,如图2所示,在分布式存储系统中,IO路径是分散的,难以在集中的一点做Qos,所以需要使用独立的可以全局访问的组件实现Qos S服务,比如类似redis之类的高速缓存。每个对象存储网关(Rados Gateway,简称为RGW)进程需要通过Qos Client(又称为Qos C)和Qos Server(又称为Qos S)通信,每次IO前先从Qos S模块获取令牌。
针对上述现有技术中分布式存储采用令牌桶模块对令牌进行集中管理,与业务模块处于不同的进程中,每次读写操作都需要通过进程间通信获取令牌,导致性能降低、可用性差的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种分布式存储中实现服务质量的方法和装置,以至少解决现有技术中分布式存储采用令牌桶模块对令牌进行集中管理,与业务模块处于不同的进程中,每次读写操作都需要通过进程间通信获取令牌,导致性能降低、可用性差的技术问题。
根据本发明实施例的一个方面,提供了一种分布式存储中实现服务质量的方法,包括:接收读写操作;检测对象存储网关在本地缓存的令牌个数是否满足所述读写操作所需的令牌个数;在所述本地缓存的令牌个数小于所述读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新所述本地缓存的令牌个数;在所述本地缓存的令牌个数大于或者等于所述读写操作所需的令牌个数的情况下,执行所述读写操作。
可选地,在所述本地缓存的令牌个数小于所述读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新所述本地缓存的令牌个数之前,还包括:确定服务质量对象名称列表中与目标名称关联的服务质量对象名称;依据所述服务质量对象名称,确定所述对象存储守护进程。
可选地,确定服务质量对象名称列表中与目标名称关联的服务质量对象名称包括:对所述目标名称进行哈希处理,得到哈希值;将所述哈希值与N取模,得到取模值,其中,N的取值范围为大于1的正整数;依据所述取模值,得到所述服务质量对象名称列表中的所述服务质量对象名称。
可选地,所述目标名称包括以下至少之一:访问的对象名称、桶名称、用户名。
可选地,在所述本地缓存的令牌个数小于所述读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新所述本地缓存的令牌个数包括:将从多个所述对象存储守护进程获取的所述令牌和令牌个数,保存在所述本地缓存。
可选地,分别从多个对象存储守护进程获取令牌包括:确定所述对象存储守护进程中的可用令牌个数;依据所述可用令牌个数以及所述读写操作所需的令牌个数,获取第一预定数量令牌。
可选地,所述方法还包括:按照所述对象存储网关的统计速度,预先获取第二预定数量令牌,其中,所述第二预定数量令牌是所述读写操作所需的令牌个数的X倍,X的取值范围为大于0。
根据本发明实施例的另一方面,还提供了一种分布式存储中实现服务质量的装置,包括:接收模块,用于接收读写操作;检测模块,用于检测对象存储网关在本地缓存的令牌个数是否满足所述读写操作所需的令牌个数;第一处理模块,用于在所述本地缓存的令牌个数小于所述读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新所述本地缓存的令牌个数;第二处理模块,用于在所述本地缓存的令牌个数大于或者等于所述读写操作所需的令牌个数的情况下,执行所述读写操作。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述中任意一项所述的分布式存储中实现服务质量的方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的分布式存储中实现服务质量的方法。
在本发明实施例中,采用接收读写操作;检测对象存储网关在本地缓存的令牌个数是否满足所述读写操作所需的令牌个数;在所述本地缓存的令牌个数小于所述读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新所述本地缓存的令牌个数;在所述本地缓存的令牌个数大于或者等于所述读写操作所需的令牌个数的情况下,执行所述读写操作的方式,通过分布式的方式分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数,以及在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作,达到了分布式地获取令牌,分散性能热点的目的,从而实现了提高存储服务质量的性能和高可用性的技术效果,进而解决了现有技术中分布式存储采用令牌桶模块对令牌进行集中管理,与业务模块处于不同的进程中,每次读写操作都需要通过进程间通信获取令牌,导致性能降低、可用性差的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有非分布式存储系统中使用令牌桶算法实现Qos功能的示意图;
图2是现有技术中将令牌桶算法应用到分布式存储系统的示意图;
图3是根据本发明实施例的分布式存储中实现服务质量的方法的流程图;
图4是根据本发明实施例的将令牌桶算法应用到分布式存储系统的示意图;
图5是根据本发明实施例的分布式存储中实现服务质量的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种分布式存储中实现服务质量的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图3是根据本发明实施例的分布式存储中实现服务质量的方法的流程图,如图3所示,该分布式存储中实现服务质量的方法包括如下步骤:
步骤S302,接收读写操作;
步骤S304,检测对象存储网关在本地缓存的令牌个数是否满足读写操作所需的令牌个数;
其中,上述对象存储网关设置有Qos Client组件,其关联的对象存储守护进程设置有Qos Server组件,其中,可以通过Qos Client组件与Qos Server组件之间进行通信。
步骤S306,在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数;
在具体实施过程中,可以通过Qos Client组件检测对象存储网关在本地缓存的令牌个数是否满足读写操作所需的令牌个数,如果本地缓存的令牌个数小于读写操作所需的令牌个数,则Qos Client组件与关联的Qos Server组件进行通信,可以从多个对象存储守护进程获取令牌,以更新本地缓存的令牌个数。其中,多个对象存储守护进程可以为对象存储网关提供不同数量的令牌,而每个对象存储守护进程为对象存储网关提供的令牌个数,取决于该对象存储守护进程自身的供给能力,该供给能力至少包括对象存储守护进程的可用令牌个数。
需要说明的是,分别从多个对象存储守护进程获取令牌,可以避免令牌桶模块对令牌进行集中管理导致的性能热点,而从不同的对象存储守护进程获取令牌,可以实现均匀、分散的获取令牌,提高了可用性。
另外,更新后的本地缓存的令牌个数可以大于读写操作所需的令牌个数,这样可以降低Qos Client组件与关联的Qos Server组件的通信次数,大大提升了性能。
步骤S308,在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作。
具体地,在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数时,表明对象存储网关在本地缓存的令牌个数满足读写操作所需的令牌个数,也就是满足读写操作的需求,进而可以执行相应的读写操作。
上述方法可以应用于分布式存储系统或者分布式文件系统中,通过上述步骤,首先需要接收读写操作,再检测对象存储网关在本地缓存的令牌个数是否满足读写操作所需的令牌个数,进而在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数,另外,在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作,通过分布式的方式分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数,以及在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作,达到了分布式地获取令牌,分散性能热点的目的,从而实现了提高存储服务质量的性能和高可用性的技术效果,进而解决了现有技术中分布式存储采用令牌桶模块对令牌进行集中管理,与业务模块处于不同的进程中,每次读写操作都需要通过进程间通信获取令牌,导致性能降低、可用性差的技术问题。
可选地,在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数之前,还包括:确定服务质量对象名称列表中与目标名称关联的服务质量对象名称;依据服务质量对象名称,确定对象存储守护进程。
作为一种可选的实施例,在确定服务质量对象名称列表中与目标名称关联的服务质量对象名称过程中,可以根据预先构建的服务质量对象名称列表中的服务质量对象名称与目标名称的映射关系,其中,该映射关系可以是一对一、一对多、多对多等。进一步地,基于该映射关系可以得到服务质量对象名称列表中与目标名称关联的服务质量对象名称。
需要说明的是,上述服务质量对象名称可用于表征对象存储守护进程的地址,即可以利用服务质量对象名称得到对象存储守护进程的地址,根据该地址可以快速、准确地找到对象存储守护进程。
可选地,确定服务质量对象名称列表中与目标名称关联的服务质量对象名称包括:对目标名称进行哈希处理,得到哈希值;将哈希值与N取模,得到取模值,其中,N的取值范围为大于1的正整数;依据取模值,得到服务质量对象名称列表中的服务质量对象名称。
可选地,目标名称包括以下至少之一:访问的对象名称、桶名称、用户名。
作为一种可选的实施例,可以对访问的对象名称、桶名称、用户名等目标名称进行哈希处理,计算出对应的哈希值,再将该哈希值与N(N>1)取模,计算出取模值,进而利用该取模值,就可以得到服务质量对象名称列表中的服务质量对象名称。需要说明的是,取模值与服务质量对象名称是一一对应的关系,这样可以有效避免处理过程中的存在的冲突问题。
可选地,在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数包括:将从多个对象存储守护进程获取的令牌和令牌个数,保存在本地缓存。
作为一种可选的实施例,可以从多个对象存储守护进程获取的令牌,以及根据获取的令牌计算出获取的令牌个数,进而将令牌以及令牌个数保存在本地缓存。需要说明的是,无论是令牌还是令牌个数保存在本地缓存,均不需要持久存储。这样就可以在不影响性能的情况下,节省本地缓存空间。
可选地,分别从多个对象存储守护进程获取令牌包括:确定对象存储守护进程中的可用令牌个数;依据可用令牌个数以及读写操作所需的令牌个数,获取第一预定数量令牌。
作为一种可选的实施例,在分别从多个对象存储守护进程获取令牌过程中,可以首先计算出每个对象存储守护进程中的可用令牌个数,进而根据每个对象存储守护进程中的可用令牌个数以及读写操作所需的令牌个数,从每个对象存储守护进程获取令牌。而且,每个对象存储守护进程能够做大程度提供自身最多的可用令牌个数,也可以多次对象存储守护进程获取令牌,直至满足读写操作所需的令牌个数。
需要说明的是,上述第一预定数量令牌可以根据应用场景需要而确定。
可选地,上述方法还包括:按照对象存储网关的统计速度,预先获取第二预定数量令牌,其中,第二预定数量令牌是读写操作所需的令牌个数的X倍,X的取值范围为大于0。
作为一种可选的实施例,可以按照对象存储网关的统计速度,预先获取预定数量令牌,且该预定数量令牌可以是读写操作所需的令牌个数的X倍,可选地,X可以取1、2、5、9等。通过上述方式,可以预先获取预定数量令牌,将这些令牌提前缓存到对象存储网关,从而将对象存储网关与对象存储守护进程之间的通信次数,也即是,降低Qos Client组件与关联的Qos Server组件的通信次数,这样就可以大大提升了性能。
需要说明的是,上述第二预定数量令牌也可以根据应用场景需要而确定。
下面对本发明可选的实施方式进行详细说明。
图4是根据本发明实施例的将令牌桶算法应用到分布式存储系统的示意图,如图4所示,引入了分布式的Qos Client和Qos Server组件装置,实现Qos功能,依托分布式存储系统(或者分布式文件系统),且分布式存储系统(或者分布式文件系统)本身提供高可用,另外分布式的Qos S提供更高的性能。具体地,实现分布式令牌桶的步骤如下:
步骤1:业务发起IO(相当于读写操作),发送到RGW。
步骤2:RGW收到IO后,在Qos C模块检查本地缓存的令牌个数是否满足需求,如果满足进入步骤7,如果不满足进入步骤3。
步骤3:Qos C模块根据访问的对象名称和桶名称、用户名称做hash,然后与N取模,得到一个Qos对象名称,根据Qos对象名称找到对应的Qos S模块,在Qos S模块中,如果令牌发放速度M/s,那么每个Qos对象上令牌发放速度为M/s/N。
步骤4:Qos C使用对象类方法,从Qos对象所在的Qos S模块获取令牌,令牌数量只保存在内存中,不需要持久存储。需要说明的是,对象类是一种在分布式存储系统中实现客户端和对象存储守护进程(Object Storage Deamon,简称为OSD)之间进行远程调用的方法,可以提供单对象级别的事务功能。
步骤5:Qos S根据当前时间,上次获取令牌时间,令牌发放速度,计算当前可用令牌数,并按照RGW的需求尽最大可能返回,同时按照RGW的统计速度预分配一定数量令牌,比如返回当前需求的X倍,用于RGW缓存令牌,降低与OSD通信次数,提升性能。
步骤6:RGW检查当前获取的令牌数量是否可以进行IO,如果不足,等待一定时间后重复执行步骤4。
步骤7:获取到足够的令牌后进行IO。
实施例2
根据本发明实施例的另一方面,还提供了一种分布式存储中实现服务质量的装置,图5是根据本发明实施例的分布式存储中实现服务质量的装置的示意图,如图5所示,该分布式存储中实现服务质量的装置包括:接收模块52、检测模块54、第一处理模块56和第二处理模块58。下面对该分布式存储中实现服务质量的装置进行详细说明。
接收模块52,用于接收读写操作;检测模块54,连接至上述接收模块52,用于检测对象存储网关在本地缓存的令牌个数是否满足读写操作所需的令牌个数;第一处理模块56,连接至上述检测模块54,用于在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数;第二处理模块58,连接至上述第一处理模块56,用于在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作。
由上述可知,该实施例中的分布式存储中实现服务质量的装置,首先需要利用接收模块52接收读写操作,再利用检测模块54检测对象存储网关在本地缓存的令牌个数是否满足读写操作所需的令牌个数,进而利用第一处理模块56在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数,另外,可以利用第二处理模块58在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作,在本发明的上述实施方式中,通过分布式的方式分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数,以及在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作,达到了分布式地获取令牌,分散性能热点的目的,从而实现了提高存储服务质量的性能和高可用性的技术效果,进而解决了现有技术中分布式存储采用令牌桶模块对令牌进行集中管理,与业务模块处于不同的进程中,每次读写操作都需要通过进程间通信获取令牌,导致性能降低、可用性差的技术问题。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。
此处需要说明的是,上述接收模块52、检测模块54、第一处理模块56和第二处理模块58对应于实施例1中的步骤S302至S308,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
可选地,在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数之前,上述装置还包括:第一确定模块,用于确定服务质量对象名称列表中与目标名称关联的服务质量对象名称;第二确定模块,用于依据服务质量对象名称,确定对象存储守护进程。
可选地,上述第一确定模块包括:处理单元,用于对目标名称进行哈希处理,得到哈希值;取模单元,用于将哈希值与N取模,得到取模值,其中,N的取值范围为大于1的正整数;得到单元,用于依据取模值,得到服务质量对象名称列表中的服务质量对象名称。
可选地,上述目标名称包括以下至少之一:访问的对象名称、桶名称、用户名。
可选地,上述第一处理模块包括:保存单元,用于将从多个对象存储守护进程获取的令牌和令牌个数,保存在本地缓存。
可选地,上述第一处理模块包括:确定单元,用于确定对象存储守护进程中的可用令牌个数;第一获取单元,用于依据可用令牌个数以及读写操作所需的令牌个数,获取第一预定数量令牌。
可选地,上述第一处理模块还包括:第二获取单元,用于按照对象存储网关的统计速度,预先获取第二预定数量令牌,其中,第二预定数量令牌是读写操作所需的令牌个数的X倍,X的取值范围为大于0。
实施例3
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述中任意一项的分布式存储中实现服务质量的方法。
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述计算机可读存储介质包括存储的程序。
可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:接收读写操作;检测对象存储网关在本地缓存的令牌个数是否满足读写操作所需的令牌个数;在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数;在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作。
实施例4
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述中任意一项的分布式存储中实现服务质量的方法。
本申请实施例提供了一种设备,该设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:接收读写操作;检测对象存储网关在本地缓存的令牌个数是否满足读写操作所需的令牌个数;在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数;在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收读写操作;检测对象存储网关在本地缓存的令牌个数是否满足读写操作所需的令牌个数;在本地缓存的令牌个数小于读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新本地缓存的令牌个数;在本地缓存的令牌个数大于或者等于读写操作所需的令牌个数的情况下,执行读写操作。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种分布式存储中实现服务质量的方法,其特征在于,包括:
接收读写操作;
检测对象存储网关在本地缓存的令牌个数是否满足所述读写操作所需的令牌个数;
在所述本地缓存的令牌个数小于所述读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新所述本地缓存的令牌个数;
在所述本地缓存的令牌个数大于或者等于所述读写操作所需的令牌个数的情况下,执行所述读写操作;在所述本地缓存的令牌个数小于所述读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新所述本地缓存的令牌个数,包括:将从多个所述对象存储守护进程获取的所述令牌和令牌个数,保存在所述本地缓存;分别从多个对象存储守护进程获取令牌,包括:确定所述对象存储守护进程中的可用令牌个数;依据所述可用令牌个数以及所述读写操作所需的令牌个数,获取第一预定数量令牌;所述方法还包括:按照所述对象存储网关的统计速度,预先获取第二预定数量令牌,其中,所述第二预定数量令牌是所述读写操作所需的令牌个数的X倍,X的取值范围为大于0。
2.根据权利要求1所述的方法,其特征在于,在所述本地缓存的令牌个数小于所述读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新所述本地缓存的令牌个数之前,还包括:
确定服务质量对象名称列表中与目标名称关联的服务质量对象名称;
依据所述服务质量对象名称,确定所述对象存储守护进程。
3.根据权利要求2所述的方法,其特征在于,确定服务质量对象名称列表中与目标名称关联的服务质量对象名称包括:
对所述目标名称进行哈希处理,得到哈希值;
将所述哈希值与N取模,得到取模值,其中,N的取值范围为大于1的正整数;
依据所述取模值,得到所述服务质量对象名称列表中的所述服务质量对象名称。
4.根据权利要求3所述的方法,其特征在于,所述目标名称包括以下至少之一:访问的对象名称、桶名称、用户名。
5.一种分布式存储中实现服务质量的装置,其特征在于,包括:
接收模块,用于接收读写操作;
检测模块,用于检测对象存储网关在本地缓存的令牌个数是否满足所述读写操作所需的令牌个数;
第一处理模块,用于在所述本地缓存的令牌个数小于所述读写操作所需的令牌个数的情况下,分别从多个对象存储守护进程获取令牌,更新所述本地缓存的令牌个数;
第二处理模块,用于在所述本地缓存的令牌个数大于或者等于所述读写操作所需的令牌个数的情况下,执行所述读写操作;所述第一处理模块包括:保护单元,用于将从多个所述对象存储守护进程获取的所述令牌和令牌个数,保存在所述本地缓存;所述第一处理模块还包括:确定单元,用于确定所述对象存储守护进程中的可用令牌个数;第一获取单元,用于依据所述可用令牌个数以及所述读写操作所需的令牌个数,获取第一预定数量令牌;所述第一处理模块还包括:第二获取单元,用于按照所述对象存储网关的统计速度,预先获取第二预定数量令牌,其中,所述第二预定数量令牌是所述读写操作所需的令牌个数的X倍,X的取值范围为大于0。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至4中任意一项所述的分布式存储中实现服务质量的方法。
7.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至4中任意一项所述的分布式存储中实现服务质量的方法。
CN202010949707.2A 2020-09-10 2020-09-10 分布式存储中实现服务质量的方法和装置 Active CN112087401B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010949707.2A CN112087401B (zh) 2020-09-10 2020-09-10 分布式存储中实现服务质量的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010949707.2A CN112087401B (zh) 2020-09-10 2020-09-10 分布式存储中实现服务质量的方法和装置

Publications (2)

Publication Number Publication Date
CN112087401A CN112087401A (zh) 2020-12-15
CN112087401B true CN112087401B (zh) 2024-05-28

Family

ID=73737342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010949707.2A Active CN112087401B (zh) 2020-09-10 2020-09-10 分布式存储中实现服务质量的方法和装置

Country Status (1)

Country Link
CN (1) CN112087401B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312328B (zh) * 2021-07-28 2022-01-25 阿里云计算有限公司 控制方法、数据处理方法、数据访问方法及计算设备
CN114465958B (zh) * 2021-12-22 2024-04-26 天翼云科技有限公司 一种输入输出的控制方法、装置及介质
CN116455830A (zh) * 2023-06-16 2023-07-18 深圳市杉岩数据技术有限公司 实现存储网关高可用分布式qos的方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8681630B1 (en) * 2010-09-21 2014-03-25 Google Inc. Configurable rate limiting using static token buckets, and applications thereof
CN105357266A (zh) * 2015-09-30 2016-02-24 山东乾云启创信息科技股份有限公司 适合多种场景的socket通信与进程管理通用平台及方法
WO2017097048A1 (zh) * 2015-12-11 2017-06-15 北京奇虎科技有限公司 一种数据查找方法与装置
CN107276827A (zh) * 2017-07-25 2017-10-20 郑州云海信息技术有限公司 一种分布式存储系统中Qos的实现方法及装置
CN108804043A (zh) * 2018-06-26 2018-11-13 郑州云海信息技术有限公司 分布式块存储系统带宽流量控制方法、装置、设备及介质
CN109725829A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端 QoS 解决方案的系统和方法
CN110417677A (zh) * 2019-07-29 2019-11-05 北京易捷思达科技发展有限公司 一种基于Ceph分布式存储Osd端数据Recovery的QoS控制方法
CN110891089A (zh) * 2019-11-29 2020-03-17 中经社控股有限公司 一种基于令牌桶算法的Ceph块存储镜像同步QoS优化方法
CN111447150A (zh) * 2020-02-29 2020-07-24 中国平安财产保险股份有限公司 访问请求限流方法、服务器及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281050B2 (en) * 2003-04-08 2007-10-09 Sun Microsystems, Inc. Distributed token manager with transactional properties
US9766677B2 (en) * 2014-05-13 2017-09-19 Netapp, Inc. Cascading startup power draws of enclosures across a network
US11425111B2 (en) * 2018-11-14 2022-08-23 Intel Corporation Attestation token sharing in edge computing environments

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8681630B1 (en) * 2010-09-21 2014-03-25 Google Inc. Configurable rate limiting using static token buckets, and applications thereof
CN105357266A (zh) * 2015-09-30 2016-02-24 山东乾云启创信息科技股份有限公司 适合多种场景的socket通信与进程管理通用平台及方法
WO2017097048A1 (zh) * 2015-12-11 2017-06-15 北京奇虎科技有限公司 一种数据查找方法与装置
CN107276827A (zh) * 2017-07-25 2017-10-20 郑州云海信息技术有限公司 一种分布式存储系统中Qos的实现方法及装置
CN109725829A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端 QoS 解决方案的系统和方法
CN108804043A (zh) * 2018-06-26 2018-11-13 郑州云海信息技术有限公司 分布式块存储系统带宽流量控制方法、装置、设备及介质
CN110417677A (zh) * 2019-07-29 2019-11-05 北京易捷思达科技发展有限公司 一种基于Ceph分布式存储Osd端数据Recovery的QoS控制方法
CN110891089A (zh) * 2019-11-29 2020-03-17 中经社控股有限公司 一种基于令牌桶算法的Ceph块存储镜像同步QoS优化方法
CN111447150A (zh) * 2020-02-29 2020-07-24 中国平安财产保险股份有限公司 访问请求限流方法、服务器及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Yuhan Peng ; Qingyue Liu ; Peter Varman.Scalable QoS for Distributed Storage Clusters using Dynamic Token Allocation.2019 35th Symposium on Mass Storage Systems and Technologies (MSST).2019,全文. *
一个基于令牌桶的带宽动态分配研究;骆建歆;梁伟;刘超;;广东通信技术(第03期);全文 *
基于分布式块存储系统的服务质量研究与优化;屠要峰;杨洪章;韩银俊;陈正华;;电信科学(第04期);全文 *

Also Published As

Publication number Publication date
CN112087401A (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
CN112087401B (zh) 分布式存储中实现服务质量的方法和装置
CN109949111B (zh) 电子票据标识分配方法、电子票据生成方法、装置及系统
US8898665B2 (en) System, method and computer program product for inviting other virtual machine to access a memory space allocated to a virtual machine
US11687354B2 (en) Virtual machine management using onboarding operations and openstack control
CN107193673B (zh) 一种报文处理方法及设备
CN113127168A (zh) 服务分配方法、系统、装置、服务器及介质
CN114780569B (zh) 一种拟态redis数据库的输入输出代理方法和装置
CN109151028A (zh) 一种分布式存储系统容灾方法及装置
CN111163130A (zh) 一种网络服务系统及其数据传输方法
US20180188990A1 (en) Method, apparatus and system for inserting disk
CN115576654B (zh) 一种请求处理方法、装置、设备及存储介质
JP2019016042A (ja) データ取得プログラム、装置、及び方法
CN111064786B (zh) 账户标识管理方法及设备
US11048557B2 (en) Methods and modules relating to allocation of host machines
CN111124437A (zh) 一种基于OpenStack的裸机资源配置信息获取方法、系统及设备
CN108520401B (zh) 用户名单管理方法、装置、平台及存储介质
CN114090623A (zh) 一种缓存资源的创建方法、装置、电子设备及存储介质
CN107276998B (zh) 一种基于OpenSSL的性能优化方法及装置
US20220206836A1 (en) Method and Apparatus for Processing Virtual Machine Migration, Method and Apparatus for Generating Virtual Machine Migration Strategy, Device and Storage Medium
CN107045452B (zh) 虚拟机调度方法和装置
CN112131267B (zh) 计数处理方法、装置、服务器和计数处理系统
CN115480934A (zh) 一种分布式数据处理的方法、装置、设备及储存介质
CN110046040B (zh) 分布式任务处理方法及系统和存储介质
CN112019630B (zh) 一种负载均衡方法以及装置
CN112463748A (zh) 一种存储系统文件锁标识方法、系统、终端及存储介质

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
CB02 Change of applicant information

Address after: 100094 101, floors 1-5, building 7, courtyard 3, fengxiu Middle Road, Haidian District, Beijing

Applicant after: Beijing Xingchen Tianhe Technology Co.,Ltd.

Address before: 100097 room 806-1, block B, zone 2, Jinyuan times shopping center, indigo factory, Haidian District, Beijing

Applicant before: XSKY BEIJING DATA TECHNOLOGY Corp.,Ltd.

CB02 Change of applicant information
GR01 Patent grant