CN114500406B - 一种云文件存储细粒度QoS控制方法及系统 - Google Patents
一种云文件存储细粒度QoS控制方法及系统 Download PDFInfo
- Publication number
- CN114500406B CN114500406B CN202210127393.7A CN202210127393A CN114500406B CN 114500406 B CN114500406 B CN 114500406B CN 202210127393 A CN202210127393 A CN 202210127393A CN 114500406 B CN114500406 B CN 114500406B
- Authority
- CN
- China
- Prior art keywords
- residual
- token pool
- iops
- read
- throughput
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 241001362551 Samba Species 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 10
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 230000002045 lasting effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明特别涉及一种云文件存储细粒度QoS控制方法及系统。该云文件存储细粒度QoS控制方法及系统,在Samba配置文件导出后端存储的部分中读吞吐量最大值、写吞吐量最大值、读IOPS最大值和写IOPS最大值四个配置项;在Samba服务器启动时将配置项读到内存中,后续操作不再与磁盘交互;在Samba中增加令牌池模块、限速模块及API模块,以读取配置文件中每个SMB文件系统的QoS设置,并保存在内存的令牌池中,分别限制每个SMB文件系统每秒钟处理的数据包总大小和IO数量。该云文件存储细粒度QoS控制方法及系统,能够针对各SMB文件系统分别设置吞吐量及IOPS,防止单个SMB文件系统占用过多资源,影响其他SMB文件系统性能,从而实现了资源的按需分配,使每个文件系统都能合理的占用资源。
Description
技术领域
本发明涉及分布式存储技术领域,特别涉及一种云文件存储细粒度QoS控制方法及系统。
背景技术
Samba是一个在Linux系统上实现SMB协议的软件,支持将多种存储后端对外导出,提供SMB协议文件系统服务。存储后端的文件系统需要满足POSIX语义,例如CephFS、ext4等。一个Samba服务器可以导出多个SMB文件系统,它们共享Samba服务器及后端存储的计算、存储、网络资源。
QoS(Quality of Service,即服务质量)是指一个通信网络能利用各种基础技术,为特定应用提供更好服务的能力。对于文件存储来说,QoS旨在合理分配有限的IO资源,实现资源的按需分配,使每个文件系统都能合理的占用资源。
伴随着云计算的逐渐兴起,对分布式存储系统提出了更高的要求,存储系统需要在保证性能、可靠性等不受影响的前提下,对有限的资源更加合理的分配。在云场景下,一个Samba服务器可以导出多个SMB文件系统供多个租户使用,可能会出现单个SMB文件系统占用过多资源,导致其他SMB文件系统吞吐量、IOPS、延迟受到影响,进而影响用户体验。此外,在某些应用场景下,还需要对某些SMB文件系统分配更多资源,以便提供更好的服务质量。
传统的QoS一般在网络及协议层面实现,仅能限制文件系统服务端整体吞吐量及IOPS,无法针对租户进行细粒度QoS。基于此,本发明提出了一种云文件存储细粒度QoS控制方法及系统。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的云文件存储细粒度QoS控制方法及系统。
本发明是通过如下技术方案实现的:
一种云文件存储细粒度QoS控制方法,其特征在于:为实现SMB文件系统的QoS,在Samba配置文件导出后端存储的部分中新增四个配置项,分别是读吞吐量最大值、写吞吐量最大值、读IOPS最大值和写IOPS最大值;
为了尽可能减少QoS对SMB文件系统的性能损耗,在Samba服务器启动时将配置项读到内存中,后续操作不再与磁盘交互;
在Samba中增加令牌池模块、限速模块及API模块,以读取配置文件中每个SMB文件系统的QoS设置,并保存在内存的令牌池中,分别限制每个SMB文件系统每秒钟处理的数据包总大小和IO数量。
所述令牌池模块在内存中开辟令牌池,保存每个SMB文件系统的QoS配置项;所述令牌池由原始令牌池和剩余令牌池组成,所述原始令牌池保存从配置文件中读取的原始数据,所述剩余令牌池保存当前剩余吞吐量和IOPS;所述令牌池模块启动一个异步线程,每隔一秒钟使用原始令牌池中的数据刷新一次剩余令牌池中的数据。
所述原始令牌池保存读吞吐量原始值、写吞吐量原始值、读IOPS原始值和写IOPS原始值四个值;所述剩余令牌池保存读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余四个值。
为了增加QoS配置的灵活性,在不重启Samba的情况下修改QoS配置,在Samba中新增API模块。所述API模块对外提供API接口,调用API接口可以对内存中的原始令牌池进行修改,并同步修改配置文件中配置的读吞吐量最大值、写吞吐量最大值、读IOPS最大值和写IOPS最大值,从而实时修改SMB文件系统的QoS配置,并将配置持久化。
在处理客户端请求前,所述限速模块根据客户端请求的操作类型更新剩余令牌池,具体步骤如下:
S1.从数据包中解析出此次客户端请求的SMB文件系统、请求数据长度以及操作类型,操作类型包括但不限于读取文件、写入文件、创建目录与删除目录;
S2.从内存中的令牌池中找到此次客户端请求的SMB文件系统对应的剩余令牌池,获取当前读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余,如果找不到此次客户端请求的SMB文件系统对应的令牌池,则认为当前SMB文件系统不需要QoS控制,进入步骤S5;
S3.检查是否可以处理客户端请求,若可以处理则根据操作类型更新对应剩余令牌池,否则重试步骤S3,再次检查是否可以处理客户端请求;
S4.判断重试次数是否小于10,若小于10,等待一秒后重新执行步骤S3,再次检查是否可以处理客户端请求;若重试次数超过10,直接进入步骤S5;不再检查是否可以处理客户端请求,原因在于防止某些客户端请求一直无法得到处理,产生无法预知的错误;
S5.对客户端请求进行处理。
所述步骤S3中,当客户端请求操作类型为读取文件时,先判断剩余令牌池中的读吞吐量剩余是否大于请求数据长度,若剩余令牌池中的读吞吐量剩余大于请求数据长度再判断读IOPS剩余是否大于1,若读IOPS剩余仍大于1,则将剩余令牌池中读吞吐量剩余减去请求数据长度,读IOPS剩余减去1,然后进入步骤S5,否则进入步骤S4;
当客户端请求操作类型为写入文件时,先判断剩余令牌池中的写吞吐量剩余是否大于请求数据长度,若剩余令牌池中的写吞吐量剩余大于请求数据长度再判断写IOPS剩余是否大于1,若写IOPS剩余仍大于1,则将剩余令牌池的写吞吐量剩余减去请求数据长度,写IOPS剩余减去1,然后进入步骤S5;否则进入步骤S4;
由于创建目录与删除目录操作不涉及数据操作只涉及元数据操作,因而不再判断剩余令牌池中的写吞吐量剩余是否充足;
当客户端请求操作类型为创建目录时,只判断写IOPS剩余是否大于1,若写IOPS剩余不大于1则进入步骤S4,否则则将剩余令牌池中写IOPS剩余减去1,然后进入步骤S5;
当客户端请求操作类型为删除目录时,判断写IOPS剩余是否大于1,若写IOPS剩余不大于1则进入步骤S4,否则在将剩余令牌池写IOPS剩余减去1,然后进入步骤S5。
基于本发明云文件存储细粒度QoS控制方法的系统,其特征在于:包括令牌池模块、限速模块及API模块;
所述令牌池模块负责在内存中开辟令牌池,用于保存每个SMB文件系统的QoS配置项;所述令牌池由原始令牌池和剩余令牌池组成,所述原始令牌池负责保存从配置文件中读取的原始数据,所述剩余令牌池负责保存当前剩余吞吐量和IOPS;所述令牌池模块通过异步线程使用原始令牌池中的数据刷新剩余令牌池中的数据;
所述原始令牌池保存读吞吐量原始值、写吞吐量原始值、读IOPS原始值和写IOPS原始值四个值;所述剩余令牌池保存读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余四个值;
所述API模块负责对外提供API接口,调用API接口可以对内存中的原始令牌池进行修改,并同步修改配置文件中配置的读吞吐量最大值、写吞吐量最大值、读IOPS最大值和写IOPS最大值,从而实时修改SMB文件系统的QoS配置,并将配置持久化。
所述限速模块负责在处理客户端请求前根据客户端请求的操作类型更新剩余令牌池。
所述限速模块通过解析客户端请求得到SMB文件系统、请求数据长度以及操作类型,从内存中的令牌池中找到此次客户端请求的SMB文件系统对应的剩余令牌池,获取当前读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余,如果找不到此次客户端请求的SMB文件系统对应的令牌池,则认为当前SMB文件系统不需要QoS控制,直接对客户端请求进行处理;
所述限速模块检查是否可以处理客户端请求,若可以处理则根据操作类型更新对应剩余令牌池,否则重试检查是否可以处理客户端请求;
若重试次数小于10,则等待一秒后重新检查是否可以处理客户端请求,若重试次数超过10,则直接对客户端请求进行处理。
本发明的有益效果是:该云文件存储细粒度QoS控制方法及系统,不仅能够针对各SMB文件系统分别设置吞吐量及IOPS,防止单个SMB文件系统占用过多资源,影响其他SMB文件系统性能,从而了实现资源的按需分配,使每个文件系统都能合理的占用资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1为本发明令牌池内存结构示意图。
附图2为本发明云文件存储细粒度QoS控制流程示意图。
附图3为本发明云文件存储细粒度QoS控制系统示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
Samba是一个可以在Linux系统上实现SMB协议的软件,使用SMB协议可以很方便在Windows系统之间共享文件,就像操作本地文件系统的文件一样,可以在Linux系统上使用Samba搭建一个共享文件服务器,供多个Windows系统计算机之间共享文件。
Samba可以将多种后端存储导出为多个SMB文件系统供多个租户使用,这些SMB文件系统会共享Samba服务器以及后端存储的计算、存储、网络资源,不可避免产生资源竞争,如果单个SMB文件系统占用过多资源,会导致其他SMB文件系统吞吐量、IOPS、延迟受到影响。为了保证每个SMB文件系统占用合理的Samba服务器以及后端存储的计算、存储、网络资源,需要对每个SMB文件系统的吞吐量、IOPS进行限制。
描述一个文件系统性能主要有吞吐量和IOPS两个维度,吞吐量就是文件系统每秒处理数据的总大小,IOPS就是文件系统每秒处理的客户端请求数。
经分析发现,SMB文件系统客户端发给Samba服务器的的数据包中包含length字段,该字段表示数据包中包含数据的长度,可以通过累加这个字段的值来计算SMB文件系统吞吐量;客户端每发来一个数据包,就可以认为Samba服务器处理了一次客户端请求,进而可以计算SMB文件系统的IOPS。
该云文件存储细粒度QoS控制方法,为实现SMB文件系统的QoS,在Samba配置文件导出后端存储的部分中新增四个配置项,分别是读吞吐量最大值、写吞吐量最大值、读IOPS最大值和写IOPS最大值;
为了尽可能减少QoS对SMB文件系统的性能损耗,在Samba服务器启动时将配置项读到内存中,后续操作不再与磁盘交互;
在Samba中增加令牌池模块、限速模块及API模块,以读取配置文件中每个SMB文件系统的QoS设置,并保存在内存的令牌池中,分别限制每个SMB文件系统每秒钟处理的数据包总大小和IO数量。
所述令牌池模块在内存中开辟令牌池,保存每个SMB文件系统的QoS配置项;所述令牌池由原始令牌池和剩余令牌池组成,所述原始令牌池保存从配置文件中读取的原始数据,所述剩余令牌池保存当前剩余吞吐量和IOPS;所述令牌池模块启动一个异步线程,每隔一秒钟使用原始令牌池中的数据刷新一次剩余令牌池中的数据。
所述原始令牌池保存读吞吐量原始值、写吞吐量原始值、读IOPS原始值和写IOPS原始值四个值;所述剩余令牌池保存读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余四个值。
为了增加QoS配置的灵活性,在不重启Samba的情况下修改QoS配置,在Samba中新增API模块。所述API模块对外提供API接口,调用API接口可以对内存中的原始令牌池进行修改,并同步修改配置文件中配置的读吞吐量最大值、写吞吐量最大值、读IOPS最大值和写IOPS最大值,从而实时修改SMB文件系统的QoS配置,并将配置持久化。
在处理客户端请求前,所述限速模块根据客户端请求的操作类型更新剩余令牌池,具体步骤如下:
S1.从数据包中解析出此次客户端请求的SMB文件系统、请求数据长度以及操作类型,操作类型包括但不限于读取文件、写入文件、创建目录与删除目录;
S2.从内存中的令牌池中找到此次客户端请求的SMB文件系统对应的剩余令牌池,获取当前读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余,如果找不到此次客户端请求的SMB文件系统对应的令牌池,则认为当前SMB文件系统不需要QoS控制,进入步骤S5;
S3.检查是否可以处理客户端请求,若可以处理则根据操作类型更新对应剩余令牌池,否则重试步骤S3,再次检查是否可以处理客户端请求;
S4.判断重试次数是否小于10,若小于10,等待一秒后重新执行步骤S3,再次检查是否可以处理客户端请求;若重试次数超过10,直接进入步骤S5;不再检查是否可以处理客户端请求,原因在于防止某些客户端请求一直无法得到处理,产生无法预知的错误;
S5.对客户端请求进行处理。
所述步骤S3中,当客户端请求操作类型为读取文件时,先判断剩余令牌池中的读吞吐量剩余是否大于请求数据长度,若剩余令牌池中的读吞吐量剩余大于请求数据长度再判断读IOPS剩余是否大于1,若读IOPS剩余仍大于1,则将剩余令牌池中读吞吐量剩余减去请求数据长度,读IOPS剩余减去1,然后进入步骤S5,否则进入步骤S4;
当客户端请求操作类型为写入文件时,先判断剩余令牌池中的写吞吐量剩余是否大于请求数据长度,若剩余令牌池中的写吞吐量剩余大于请求数据长度再判断写IOPS剩余是否大于1,若写IOPS剩余仍大于1,则将剩余令牌池的写吞吐量剩余减去请求数据长度,写IOPS剩余减去1,然后进入步骤S5;否则进入步骤S4;
由于创建目录与删除目录操作不涉及数据操作只涉及元数据操作,因而不再判断剩余令牌池中的写吞吐量剩余是否充足;
当客户端请求操作类型为创建目录时,只判断写IOPS剩余是否大于1,若写IOPS剩余不大于1则进入步骤S4,否则则将剩余令牌池中写IOPS剩余减去1,然后进入步骤S5;
当客户端请求操作类型为删除目录时,判断写IOPS剩余是否大于1,若写IOPS剩余不大于1则进入步骤S4,否则在将剩余令牌池写IOPS剩余减去1,然后进入步骤S5。
基于该云文件存储细粒度QoS控制方法的系统,包括令牌池模块、限速模块及API模块;
所述令牌池模块负责在内存中开辟令牌池,用于保存每个SMB文件系统的QoS配置项;所述令牌池由原始令牌池和剩余令牌池组成,所述原始令牌池负责保存从配置文件中读取的原始数据,所述剩余令牌池负责保存当前剩余吞吐量和IOPS;所述令牌池模块通过异步线程使用原始令牌池中的数据刷新剩余令牌池中的数据;
所述原始令牌池保存读吞吐量原始值、写吞吐量原始值、读IOPS原始值和写IOPS原始值四个值;所述剩余令牌池保存读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余四个值;
所述API模块负责对外提供API接口,调用API接口可以对内存中的原始令牌池进行修改,并同步修改配置文件中配置的读吞吐量最大值、写吞吐量最大值、读IOPS最大值和写IOPS最大值,从而实时修改SMB文件系统的QoS配置,并将配置持久化。
所述限速模块负责在处理客户端请求前根据客户端请求的操作类型更新剩余令牌池。
所述限速模块通过解析客户端请求得到SMB文件系统、请求数据长度以及操作类型,从内存中的令牌池中找到此次客户端请求的SMB文件系统对应的剩余令牌池,获取当前读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余,如果找不到此次客户端请求的SMB文件系统对应的令牌池,则认为当前SMB文件系统不需要QoS控制,直接对客户端请求进行处理;
所述限速模块检查是否可以处理客户端请求,若可以处理则根据操作类型更新对应剩余令牌池,否则重试检查是否可以处理客户端请求;
若重试次数小于10,则等待一秒后重新检查是否可以处理客户端请求,若重试次数超过10,则直接对客户端请求进行处理。
传统QoS只能限制Samba服务器的总带宽,无法实现多租户场景下细粒度QoS。与传统在网络及协议层面实现的QoS相比,该云文件存储细粒度QoS控制方法及系统,具有以下特点:
第一、不再限制文件系统服务端整体吞吐量及IOPS,而是针对各SMB文件系统分别设置吞吐量及IOPS,防止单个SMB文件系统占用过多资源,影响其他SMB文件系统性能。在某些特定场景下,可以为某些SMB文件系统分配更多资源,以提供更好的服务质量。
第二、通过API接口修改的QoS配置实时生效,无需重启Samba,可以灵活设置QoS,甚至可以做到QoS的实时动态修改。
第三、由于令牌池的设置、修改和读取操作均在内存中进行,不涉及磁盘IO或网络IO等耗时操作,所以对Samba处理客户端请求性能影响不大,经过测试,设置QoS前后CPU利用率相差在5%以内。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (5)
1.一种云文件存储细粒度QoS控制方法,其特征在于:为实现SMB文件系统的QoS,在Samba配置文件导出后端存储的部分中新增四个配置项,分别是读吞吐量最大值、写吞吐量最大值、读IOPS最大值和写IOPS最大值;
为了尽可能减少QoS对SMB文件系统的性能损耗,在Samba服务器启动时将配置项读到内存中,后续操作不再与磁盘交互;
在Samba中增加令牌池模块、限速模块及API模块,以读取配置文件中每个SMB文件系统的QoS设置,并保存在内存的令牌池中,分别限制每个SMB文件系统每秒钟处理的数据包总大小和IO数量;
所述令牌池模块在内存中开辟令牌池,保存每个SMB文件系统的QoS配置项;所述令牌池由原始令牌池和剩余令牌池组成,所述原始令牌池保存从配置文件中读取的原始数据,所述剩余令牌池保存当前剩余吞吐量和IOPS;所述令牌池模块启动一个异步线程,每隔一秒钟使用原始令牌池中的数据刷新一次剩余令牌池中的数据;
所述原始令牌池保存读吞吐量原始值、写吞吐量原始值、读IOPS原始值和写IOPS原始值四个值;所述剩余令牌池保存读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余四个值;
所述API模块对外提供API接口,调用API接口可以对内存中的原始令牌池进行修改,并同步修改配置文件中配置的读吞吐量最大值、写吞吐量最大值、读IOPS最大值和写IOPS最大值,从而实时修改SMB文件系统的QoS配置,并将配置持久化。
2.根据权利要求1所述的云文件存储细粒度QoS控制方法,其特征在于:在处理客户端请求前,所述限速模块根据客户端请求的操作类型更新剩余令牌池,具体步骤如下:
S1. 从数据包中解析出此次客户端请求的SMB文件系统、请求数据长度以及操作类型,操作类型包括但不限于读取文件、写入文件、创建目录与删除目录;
S2. 从内存中的令牌池中找到此次客户端请求的SMB文件系统对应的剩余令牌池,获取当前读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余,如果找不到此次客户端请求的SMB文件系统对应的令牌池,则认为当前SMB文件系统不需要QoS控制,进入步骤S5;
S3. 检查是否可以处理客户端请求,若可以处理则根据操作类型更新对应剩余令牌池,否则重试步骤S3,再次检查是否可以处理客户端请求;
S4. 判断重试次数是否小于10,若小于10,等待一秒后重新执行步骤S3,再次检查是否可以处理客户端请求;若重试次数超过10,直接进入步骤S5;
S5. 对客户端请求进行处理。
3.根据权利要求2所述的云文件存储细粒度QoS控制方法,其特征在于:所述步骤S3中,当客户端请求操作类型为读取文件时,先判断剩余令牌池中的读吞吐量剩余是否大于请求数据长度,若剩余令牌池中的读吞吐量剩余大于请求数据长度再判断读IOPS剩余是否大于1,若读IOPS剩余仍大于1,则将剩余令牌池中读吞吐量剩余减去请求数据长度,读IOPS剩余减去1,然后进入步骤S5,否则进入步骤S4;
当客户端请求操作类型为写入文件时,先判断剩余令牌池中的写吞吐量剩余是否大于请求数据长度,若剩余令牌池中的写吞吐量剩余大于请求数据长度再判断写IOPS剩余是否大于1,若写IOPS剩余仍大于1,则将剩余令牌池的写吞吐量剩余减去请求数据长度,写IOPS剩余减去1,然后进入步骤S5;否则进入步骤S4;
由于创建目录与删除目录操作不涉及数据操作只涉及元数据操作,因而不再判断剩余令牌池中的写吞吐量剩余是否充足;
当客户端请求操作类型为创建目录时,只判断写IOPS剩余是否大于1,若写IOPS剩余不大于1则进入步骤S4,否则则将剩余令牌池中写IOPS剩余减去1,然后进入步骤S5;
当客户端请求操作类型为删除目录时,判断写IOPS剩余是否大于1,若写IOPS剩余不大于1则进入步骤S4,否则在将剩余令牌池写IOPS剩余减去1,然后进入步骤S5。
4.一种基于云文件存储细粒度QoS控制方法的系统,其特征在于:包括令牌池模块、限速模块及API模块;
所述令牌池模块负责在内存中开辟令牌池,用于保存每个SMB文件系统的QoS配置项;所述令牌池由原始令牌池和剩余令牌池组成,所述原始令牌池负责保存从配置文件中读取的原始数据,所述剩余令牌池负责保存当前剩余吞吐量和IOPS;所述令牌池模块通过异步线程使用原始令牌池中的数据刷新剩余令牌池中的数据;
所述原始令牌池保存读吞吐量原始值、写吞吐量原始值、读IOPS原始值和写IOPS原始值四个值;所述剩余令牌池保存读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余四个值;
所述API模块负责对外提供API接口,调用API接口可以对内存中的原始令牌池进行修改,并同步修改配置文件中配置的读吞吐量最大值、写吞吐量最大值、读IOPS最大值和写IOPS最大值,从而实时修改SMB文件系统的QoS配置,并将配置持久化;
所述限速模块负责在处理客户端请求前根据客户端请求的操作类型更新剩余令牌池。
5.根据权利要求4所述的基于云文件存储细粒度QoS控制方法的系统,其特征在于:
所述限速模块通过解析客户端请求得到SMB文件系统、请求数据长度以及操作类型,从内存中的令牌池中找到此次客户端请求的SMB文件系统对应的剩余令牌池,获取当前读吞吐量剩余、写吞吐量剩余、读IOPS剩余和写IOPS剩余,如果找不到此次客户端请求的SMB文件系统对应的令牌池,则认为当前SMB文件系统不需要QoS控制,直接对客户端请求进行处理;
所述限速模块检查是否可以处理客户端请求,若可以处理则根据操作类型更新对应剩余令牌池,否则重试检查是否可以处理客户端请求;
若重试次数小于10,则等待一秒后重新检查是否可以处理客户端请求,若重试次数超过10,则直接对客户端请求进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210127393.7A CN114500406B (zh) | 2022-02-11 | 2022-02-11 | 一种云文件存储细粒度QoS控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210127393.7A CN114500406B (zh) | 2022-02-11 | 2022-02-11 | 一种云文件存储细粒度QoS控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114500406A CN114500406A (zh) | 2022-05-13 |
CN114500406B true CN114500406B (zh) | 2024-05-14 |
Family
ID=81477944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210127393.7A Active CN114500406B (zh) | 2022-02-11 | 2022-02-11 | 一种云文件存储细粒度QoS控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114500406B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015095832A1 (en) * | 2013-12-20 | 2015-06-25 | Rambus Inc. | A memory appliance for accessing memory |
CN106406765A (zh) * | 2016-09-22 | 2017-02-15 | 江苏赞奇科技股份有限公司 | 基于文件链接的异构分布式存储系统及其文件管理方法 |
CN107579926A (zh) * | 2017-10-20 | 2018-01-12 | 南京易捷思达软件科技有限公司 | 基于令牌桶算法的Ceph云存储系统的QoS设置方法 |
JP2020057228A (ja) * | 2018-10-02 | 2020-04-09 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 制御装置、ネットワーク構築システム、ネットワーク構築方法、及びプログラム |
CN111339056A (zh) * | 2020-02-23 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种提高Samba处理大文件写性能的方法及系统 |
CN113039745A (zh) * | 2018-10-10 | 2021-06-25 | 阿里巴巴集团控股有限公司 | 用于云文件系统的认证和授权 |
CN113852490A (zh) * | 2021-08-18 | 2021-12-28 | 济南浪潮数据技术有限公司 | 一种分布式存储系统中samba用户QoS实现方法、装置及设备 |
-
2022
- 2022-02-11 CN CN202210127393.7A patent/CN114500406B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015095832A1 (en) * | 2013-12-20 | 2015-06-25 | Rambus Inc. | A memory appliance for accessing memory |
CN106406765A (zh) * | 2016-09-22 | 2017-02-15 | 江苏赞奇科技股份有限公司 | 基于文件链接的异构分布式存储系统及其文件管理方法 |
CN107579926A (zh) * | 2017-10-20 | 2018-01-12 | 南京易捷思达软件科技有限公司 | 基于令牌桶算法的Ceph云存储系统的QoS设置方法 |
JP2020057228A (ja) * | 2018-10-02 | 2020-04-09 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 制御装置、ネットワーク構築システム、ネットワーク構築方法、及びプログラム |
CN113039745A (zh) * | 2018-10-10 | 2021-06-25 | 阿里巴巴集团控股有限公司 | 用于云文件系统的认证和授权 |
CN111339056A (zh) * | 2020-02-23 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种提高Samba处理大文件写性能的方法及系统 |
CN113852490A (zh) * | 2021-08-18 | 2021-12-28 | 济南浪潮数据技术有限公司 | 一种分布式存储系统中samba用户QoS实现方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
基于Raspberry Pi的家庭附网存储系统的设计与实现;武一;王佳欣;王月仑;;电视技术;20160217(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114500406A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199194B (zh) | 基于容器集群的资源调度方法、装置、设备和存储介质 | |
US11221975B2 (en) | Management of shared resources in a software-defined storage environment | |
JP2021522615A (ja) | ストレージボリューム作成方法および装置、サーバ、並びに記憶媒体 | |
US10523743B2 (en) | Dynamic load-based merging | |
CN110196681B (zh) | 业务写操作的磁盘数据写入控制方法及装置、电子设备 | |
US9836516B2 (en) | Parallel scanners for log based replication | |
CN111061431B (zh) | 一种分布式存储方法、服务器及客户端 | |
WO2019170011A1 (zh) | 任务分配方法及装置、分布式存储系统 | |
US20240129251A1 (en) | Data processing method and apparatus, computer device, and readable storage medium | |
CN113794764A (zh) | 服务器集群的请求处理方法、介质和电子设备 | |
US20170277469A1 (en) | Small storage volume management | |
CN114168262B (zh) | 一种基于lru置换算法的云平台镜像缓存管理方法 | |
CN114500406B (zh) | 一种云文件存储细粒度QoS控制方法及系统 | |
CN115793957A (zh) | 写数据的方法、装置及计算机存储介质 | |
CN112039963B (zh) | 一种处理器的绑定方法、装置、计算机设备和存储介质 | |
CN115543222B (zh) | 一种存储优化方法、系统、设备及可读存储介质 | |
CN109284311B (zh) | 一种获取数据库连接的方法和装置 | |
US9858185B1 (en) | Multi-tier data storage using inclusive/exclusive burst buffer caching based on reference counts | |
CN116225693A (zh) | 元数据管理方法、装置、计算机设备及存储介质 | |
CN109478151B (zh) | 网络可访问数据卷修改 | |
CN112019343B (zh) | 一种OpenStack令牌优化方法及系统 | |
CN113886082A (zh) | 请求处理方法、装置、计算设备及介质 | |
CN114116649A (zh) | 一种实现文件存储QoS的方法及系统 | |
CN114116068A (zh) | 服务启动优化方法、装置、电子设备和可读存储介质 | |
CN112328387A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |