CN111857589A - 分布式存储系统中ssd缓存下刷速度控制方法及系统 - Google Patents
分布式存储系统中ssd缓存下刷速度控制方法及系统 Download PDFInfo
- Publication number
- CN111857589A CN111857589A CN202010688553.6A CN202010688553A CN111857589A CN 111857589 A CN111857589 A CN 111857589A CN 202010688553 A CN202010688553 A CN 202010688553A CN 111857589 A CN111857589 A CN 111857589A
- Authority
- CN
- China
- Prior art keywords
- dirty data
- water level
- delay
- ssd
- brushing
- 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
- 238000011010 flushing procedure Methods 0.000 title claims abstract description 55
- 238000000034 method Methods 0.000 title claims abstract description 25
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 128
- 230000001680 brushing effect Effects 0.000 claims abstract description 117
- 238000001514 detection method Methods 0.000 claims description 18
- 238000011084 recovery Methods 0.000 claims description 7
- 238000009825 accumulation Methods 0.000 abstract description 4
- 239000007787 solid Substances 0.000 description 4
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种分布式存储系统中SSD缓存下刷速度控制方法及系统,所述方法:1.定时检测缓存中脏数据、磁盘压力以及缓存水位;2.判断缓存水位是否超过阈值;若是,进入4;若否,进入3;3.根据缓存水位计算脏数据下刷时延,缓存水位增大时,减小脏数据下刷时延,缓存水位减少时,增大脏数据下刷时延,进入5;4.根据磁盘压力计算脏数据下刷时延,磁盘压力增大时,增大脏数据下刷时延,磁盘压力减小时,减少脏数据下刷时延;5.根据脏数据下刷时延向HDD中下刷脏数据。本发明根据缓存水位和磁盘压力计算脏数据下刷时延,既充分利用空闲磁盘资源,又减少脏数据下刷对业务的影响,且可避免脏数据堆积导致缓存空间被写满的问题。
Description
技术领域
本发明属于存储性能优化技术领域,具体涉及一种分布式存储系统中SSD缓存下刷速度控制方法及系统。
背景技术
HDD,Hard Disk Drive的简称:即机械硬盘。
SSD,Solid State Disk的简称:即固态硬盘。
分布式存储系统中存储介质基本上都是HDD和SSD两种,HDD具有价格便宜,存储容量大的优点,SSD具有随机IO并发高,数据读写速度快的优势。分布式存储系统中通常同时使用HDD和SSD,SSD作为cache(缓存)设备,HDD作为主存设备。将经常访问数据存放到SSD中,不经常访问数据存放到HDD中,这样既能利用SSD高性能的优势,又能利用HDD大容量,价格低的优点。
SSD做cache的场景中,由于SSD容量有限,前端业务持续写入时,需要不断将cache中的脏数据下刷到HDD中,同时如果cache水位较高,则回收已下刷数据所占用的cache空间,以便后续新的数据可以写入cache中。当前SSD cache方案中,cache中脏数据的下刷依赖于cache水位情况,cache水位较低时,脏数据下刷较慢;当cache水位较高,需要释放cache空间时,会加快cache中脏数据的下刷。如果在cache水位较高时,前端业务量也较大,则会出现脏数据下刷和业务IO抢占磁盘资源问题,会导致业务IO波动问题。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种分布式存储系统中SSD缓存下刷速度控制方法,是非常有必要的。
发明内容
针对现有技术的上述缓存水位较高时,前端业务量也较大,则会出现脏数据下刷和业务IO抢占磁盘资源问题,会导致业务IO波动问题的缺陷,本发明提供一种分布式存储系统中SSD缓存下刷速度控制方法,以解决上述技术问题。
第一方面,本发明提供一种分布式存储系统中SSD缓存下刷速度控制方法,包括如下步骤:
S1.定时检测SSD缓存中脏数据、SSD磁盘压力以及SSD缓存水位;
S2.判断SSD缓存水位是否超过阈值;
若是,进入步骤S3;
若否,进入步骤S4;
S3.根据SSD缓存水位计算脏数据下刷时延,当SSD缓存水位增大时,减小脏数据下刷时延,而在SSD缓存水位减少时,增大脏数据下刷时延,进入步骤S5;
S4.根据SSD磁盘压力计算脏数据下刷时延,当磁盘压力增大时,增大脏数据下刷时延,而在磁盘压力减小时,减少脏数据下刷时延,进入步骤S5;
S5.根据脏数据下刷时延向HDD中下刷脏数据。
进一步地,步骤S1具体步骤如下:
S11.将SSD缓存空间以对象为单位进行划分;所述对象是空间分配与回收的存储单位;
S12.当检测到数据写入申请时,SSD缓存空间为数据分配未使用对象,并在数据写入后,将对象标记为脏数据,再将标脏后对象加入脏数据队列;
S13.设置缓存管理线程及磁盘压力检测线程,缓存管理线程定时检测SSD缓存中脏数据及SSD缓存水位;磁盘压力检测线程定时检测SSD磁盘压力;
S14.判断SSD缓存中脏数据队列是否为空;
若是,进入步骤S14;
若否,进入步骤S2。通过线程管理SSD缓存中脏数据、水位以及磁盘压力。
进一步地,步骤S3具体步骤如下:
S31.设置脏数据下刷时延与SSD缓存水位关系如下:delay=init_delay+(1-ratio)*ratio_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为脏数据下刷时延的基础值,ratio为缓存水位百分比,ratio取值是0-1,值越大表示水位越高,ratio_weight为水位的权重值;
S32.获取SSD缓存水位及设置的水位权重值,计算缓存水位百分比,计算脏数据下刷时延,进入步骤S5。SSD缓存水位高于阈值时,根据缓存水位控制脏数据下刷速度,缓存水位越高,脏数据下刷越快,以避免脏数据堆积导致cache空间被写满的问题。
进一步地,步骤S4具体步骤如下:
S41.设置磁盘下刷时延与SSD磁盘压力关系如下:delay=init_delay+util*util_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为下刷时延的基础值,util为磁盘占用百分比,util取值是0-1,值越大表示磁盘压力越大,util_weight为磁盘压力的权重值;
S42.获取SSD磁盘压力及设置的磁盘压力权重值,计算磁盘占用百分比,计算脏数据下刷时延,实现磁盘压力增大时,脏数据下刷时延的增大,而在磁盘压力减小时,脏数据下刷时延的减少,进入步骤S5。SSD缓存水位低于阈值时,根据磁盘压力控制脏数据下刷速度,磁盘压力越大,则脏数据下刷越慢,以避免脏数据堆积导致cache空间被写满的问题;磁盘压力越小,则脏数据下刷越快,充分利用空闲的磁盘资源。
进一步地,步骤S5中,根据脏数据下刷时延向HDD中下刷脏数据后,将已下刷脏数据对应的对象标记为干净对象,并将干净对象加入干净对象队列。将下刷后脏数据对象标记为干净对象为后续对象释放提供依据。
进一步地,步骤S2中,还判断SSD缓存水位是否超过回收阈值;
若是,获取并删除干净对象队列中数据,完成对应SSD缓存空间的释放。完成对水位超过回收阈值的SSD缓存中干净对象数据的释放,实现SSD缓存空间的增大。
第二方面,本发明提供分布式存储系统中SSD缓存下刷速度控制系统,包括:
SSD缓存检测模块,用于定时检测SSD缓存中脏数据、SSD磁盘压力以及SSD缓存水位;
SSD缓存水位判断模块,用于判断SSD缓存水位是否超过阈值;
下刷时延第一计算模块,用于在SSD缓存水位超过阈值时,根据SSD缓存水位计算脏数据下刷时延,当SSD缓存水位增大时,减小脏数据下刷时延,而在SSD缓存水位减少时,增大脏数据下刷时延;
下刷时延第二计算模块,用于在SSD缓存水位低于阈值时,根据SSD磁盘压力计算脏数据下刷时延,当磁盘压力增大时,增大脏数据下刷时延,而在磁盘压力减小时,减少脏数据下刷时延;
脏数据下刷模块,用于根据脏数据下刷时延向HDD中下刷脏数据。
进一步地,SSD缓存检测模块包括:
SSD缓存空间划分单元,用于将SSD缓存空间以对象为单位进行划分;所述对象是空间分配与回收的存储单位;
脏数据队列生成单元,用于当检测到数据写入申请时,SSD缓存空间为数据分配未使用对象,并在数据写入后,将对象标记为脏数据,再将标脏后对象加入脏数据队列;
线程设置单元,用于设置缓存管理线程及磁盘压力检测线程,缓存管理线程定时检测SSD缓存中脏数据及SSD缓存水位;磁盘压力检测线程定时检测SSD磁盘压力;
脏数据队列判断单元,用于判断SSD缓存中脏数据队列是否为空。
进一步地,下刷时延第一计算模块包括:
下刷时延与水位关系设定单元,用于设置脏数据下刷时延与SSD缓存水位关系如下:delay=init_delay+(1-ratio)*ratio_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为脏数据下刷时延的基础值,ratio为缓存水位百分比,ratio取值是0-1,值越大表示水位越高,ratio_weight为水位的权重值;
脏数据下刷时延第一计算单元,用于获取SSD缓存水位及设置的水位权重值,计算缓存水位百分比,计算脏数据下刷时延;
下刷时延第二计算模块包括:
下刷时延与磁盘压力关系设定单元,用于设置磁盘下刷时延与SSD磁盘压力关系如下:delay=init_delay+util*util_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为下刷时延的基础值,util为磁盘占用百分比,util取值是0-1,值越大表示磁盘压力越大,util_weight为磁盘压力的权重值;
脏数据下刷时延第二计算单元,用于获取SSD磁盘压力及设置的磁盘压力权重值,计算磁盘占用百分比,计算脏数据下刷时延,实现磁盘压力增大时,脏数据下刷时延的增大,而在磁盘压力减小时,脏数据下刷时延的减少。
进一步地,脏数据下刷模块,还用于根据脏数据下刷时延向HDD中下刷脏数据后,将已下刷脏数据对应的对象标记为干净对象,并将干净对象加入干净对象队列;
SSD缓存水位判断模块,还用于判断SSD缓存水位是否超过回收阈值,并在SSD缓存水位超过回收阈值时,获取并删除干净对象队列中数据,完成对应SSD缓存空间的释放。
本发明的有益效果在于,
本发明提供的分布式存储系统中SSD缓存下刷速度控制方法及系统,根据SSD缓存水位和SSD磁盘压力计算脏数据下刷时延,在缓存水位低于阈值时,根据磁盘压力情况调整脏数据下刷时延,磁盘压力减小时,减小脏数据下刷时延以加快脏数据下刷速度,充分利用空闲的磁盘资源,而在磁盘压力增大时,增加脏数据下刷时延,降低脏数据下刷速度以减少脏数据下刷对业务的影响,保证业务性能;在缓存水位高于阈值时,根据缓存水位控制脏数据下刷速度,缓存水位越高,脏数据下刷越快,以避免脏数据堆积导致cache空间被写满的问题。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的方法流程示意图一;
图2是本发明的方法流程示意图二;
图3是本发明的系统示意图;
图中,1-SSD缓存检测模块;1.1-SSD缓存空间划分单元;1.2-脏数据队列生成单元;1.3-线程设置单元;1.4-脏数据队列判断单元;2-SSD缓存水位判断模块;3-下刷时延第一计算模块;3.1-下刷时延与水位关系设定单元;3.2-脏数据下刷时延第一计算单元;4-下刷时延第二计算模块;4.1-下刷时延与磁盘压力关系设定单元;4.2-脏数据下刷时延第二计算单元;5-脏数据下刷模块。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例1:
如图1所示,本发明提供一种分布式存储系统中SSD缓存下刷速度控制方法,包括如下步骤:
S1.定时检测SSD缓存中脏数据、SSD磁盘压力以及SSD缓存水位;
S2.判断SSD缓存水位是否超过阈值;
若是,进入步骤S3;
若否,进入步骤S4;
S3.根据SSD缓存水位计算脏数据下刷时延,当SSD缓存水位增大时,减小脏数据下刷时延,而在SSD缓存水位减少时,增大脏数据下刷时延,进入步骤S5;
S4.根据SSD磁盘压力计算脏数据下刷时延,当磁盘压力增大时,增大脏数据下刷时延,而在磁盘压力减小时,减少脏数据下刷时延,进入步骤S5;
S5.根据脏数据下刷时延向HDD中下刷脏数据。
实施例2:
如图2所示,本发明提供一种分布式存储系统中SSD缓存下刷速度控制方法,包括如下步骤:
S1.定时检测SSD缓存中脏数据、SSD磁盘压力以及SSD缓存水位;具体步骤如下:
S11.将SSD缓存空间以对象为单位进行划分;所述对象是空间分配与回收的存储单位;
S12.当检测到数据写入申请时,SSD缓存空间为数据分配未使用对象,并在数据写入后,将对象标记为脏数据,再将标脏后对象加入脏数据队列;
S13.设置缓存管理线程及磁盘压力检测线程,缓存管理线程定时检测SSD缓存中脏数据及SSD缓存水位;磁盘压力检测线程定时检测SSD磁盘压力;
S14.判断SSD缓存中脏数据队列是否为空;
若是,进入步骤S14;
若否,进入步骤S2;
S2.判断SSD缓存水位是否超过阈值;
若是,进入步骤S4;
若否,进入步骤S3;
S3.根据SSD缓存水位计算脏数据下刷时延,当SSD缓存水位增大时,减小脏数据下刷时延,而在SSD缓存水位减少时,增大脏数据下刷时延,进入步骤S5;具体步骤如下:
S31.设置脏数据下刷时延与SSD缓存水位关系如下:delay=init_delay+(1-ratio)*ratio_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为脏数据下刷时延的基础值,ratio为缓存水位百分比,ratio取值是0-1,值越大表示水位越高,ratio_weight为水位的权重值;
S32.获取SSD缓存水位及设置的水位权重值,计算缓存水位百分比,计算脏数据下刷时延,进入步骤S5;
S4.根据SSD磁盘压力计算脏数据下刷时延,当磁盘压力增大时,增大脏数据下刷时延,而在磁盘压力减小时,减少脏数据下刷时延,进入步骤S5;具体步骤如下:
S41.设置磁盘下刷时延与SSD磁盘压力关系如下:delay=init_delay+util*util_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为下刷时延的基础值,util为磁盘占用百分比,util取值是0-1,值越大表示磁盘压力越大,util_weight为磁盘压力的权重值;
S42.获取SSD磁盘压力及设置的磁盘压力权重值,计算磁盘占用百分比,计算脏数据下刷时延,实现磁盘压力增大时,脏数据下刷时延的增大,而在磁盘压力减小时,脏数据下刷时延的减少,进入步骤S5;
S5.根据脏数据下刷时延向HDD中下刷脏数据。
在某些实施例中,步骤S5中,根据脏数据下刷时延向HDD中下刷脏数据后,将已下刷脏数据对应的对象标记为干净对象,并将干净对象加入干净对象队列;
步骤S2中,还判断SSD缓存水位是否超过回收阈值;
若是,获取并删除干净对象队列中数据,完成对应SSD缓存空间的释放。
实施例3:
如图3所示,本发明提供一种分布式存储系统中SSD缓存下刷速度控制系统,包括:
SSD缓存检测模块1,用于定时检测SSD缓存中脏数据、SSD磁盘压力以及SSD缓存水位;SSD缓存检测模块1包括:
SSD缓存空间划分单元1.1,用于将SSD缓存空间以对象为单位进行划分;所述对象是空间分配与回收的存储单位;
脏数据队列生成单元1.2,用于当检测到数据写入申请时,SSD缓存空间为数据分配未使用对象,并在数据写入后,将对象标记为脏数据,再将标脏后对象加入脏数据队列;
线程设置单元1.3,用于设置缓存管理线程及磁盘压力检测线程,缓存管理线程定时检测SSD缓存中脏数据及SSD缓存水位;磁盘压力检测线程定时检测SSD磁盘压力;
脏数据队列判断单元1.4,用于判断SSD缓存中脏数据队列是否为空;SSD缓存水位判断模块2,用于判断SSD缓存水位是否超过阈值;
下刷时延第一计算模块3,用于在SSD缓存水位超过阈值时,根据SSD缓存水位计算脏数据下刷时延,当SSD缓存水位增大时,减小脏数据下刷时延,而在SSD缓存水位减少时,增大脏数据下刷时延;下刷时延第一计算模块3包括:
下刷时延与水位关系设定单元3.1,用于设置脏数据下刷时延与SSD缓存水位关系如下:delay=init_delay+(1-ratio)*ratio_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为脏数据下刷时延的基础值,ratio为缓存水位百分比,ratio取值是0-1,值越大表示水位越高,ratio_weight为水位的权重值;
脏数据下刷时延第一计算单元3.2,用于获取SSD缓存水位及设置的水位权重值,计算缓存水位百分比,计算脏数据下刷时延;
下刷时延第二计算模块4,用于在SSD缓存水位低于阈值时,根据SSD磁盘压力计算脏数据下刷时延,当磁盘压力增大时,增大脏数据下刷时延,而在磁盘压力减小时,减少脏数据下刷时延;下刷时延第二计算模块4包括:
下刷时延与磁盘压力关系设定单元4.1,用于设置磁盘下刷时延与SSD磁盘压力关系如下:delay=init_delay+util*util_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为下刷时延的基础值,util为磁盘占用百分比,util取值是0-1,值越大表示磁盘压力越大,util_weight为磁盘压力的权重值;
脏数据下刷时延第二计算单元4.2,用于获取SSD磁盘压力及设置的磁盘压力权重值,计算磁盘占用百分比,计算脏数据下刷时延,实现磁盘压力增大时,脏数据下刷时延的增大,而在磁盘压力减小时,脏数据下刷时延的减少;
脏数据下刷模块5,用于根据脏数据下刷时延向HDD中下刷脏数据。
在某些实施例中,脏数据下刷模块5,还用于根据脏数据下刷时延向HDD中下刷脏数据后,将已下刷脏数据对应的对象标记为干净对象,并将干净对象加入干净对象队列;
SSD缓存水位判断模块2,还用于判断SSD缓存水位是否超过回收阈值,并在SSD缓存水位超过回收阈值时,获取并删除干净对象队列中数据,完成对应SSD缓存空间的释放。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种分布式存储系统中SSD缓存下刷速度控制方法,其特征在于,包括如下步骤:
S 1.定时检测SSD缓存中脏数据、SSD磁盘压力以及SSD缓存水位;
S2.判断SSD缓存水位是否超过阈值;
若是,进入步骤S3;
若否,进入步骤S4;
S3.根据SSD缓存水位计算脏数据下刷时延,当SSD缓存水位增大时,减小脏数据下刷时延,而在SSD缓存水位减少时,增大脏数据下刷时延,进入步骤S5;
S4.根据SSD磁盘压力计算脏数据下刷时延,当磁盘压力增大时,增大脏数据下刷时延,而在磁盘压力减小时,减少脏数据下刷时延,进入步骤S5;
S5.根据脏数据下刷时延向HDD中下刷脏数据。
2.如权利要求1所述的分布式存储系统中SSD缓存下刷速度控制方法,其特征在于,步骤S1具体步骤如下:
S 11.将SSD缓存空间以对象为单位进行划分;所述对象是空间分配与回收的存储单位;
S 12.当检测到数据写入申请时,SSD缓存空间为数据分配未使用对象,并在数据写入后,将对象标记为脏数据,再将标脏后对象加入脏数据队列;
S 13.设置缓存管理线程及磁盘压力检测线程,缓存管理线程定时检测SSD缓存中脏数据及SSD缓存水位;磁盘压力检测线程定时检测SSD磁盘压力;
S 14.判断SSD缓存中脏数据队列是否为空;
若是,进入步骤S14;
若否,进入步骤S2。
3.如权利要求2所述的分布式存储系统中SSD缓存下刷速度控制方法,其特征在于,步骤S3具体步骤如下:
S31.设置脏数据下刷时延与SSD缓存水位关系如下:delay=init_delay+(1-ratio)*ratio_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为脏数据下刷时延的基础值,ratio为缓存水位百分比,ratio取值是0-1,值越大表示水位越高,ratio_weight为水位的权重值;
S32.获取SSD缓存水位及设置的水位权重值,计算缓存水位百分比,计算脏数据下刷时延,进入步骤S5。
4.如权利要求2所述的分布式存储系统中SSD缓存下刷速度控制方法,其特征在于,步骤S4具体步骤如下:
S41.设置磁盘下刷时延与SSD磁盘压力关系如下:delay=init_delay+util*util_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为下刷时延的基础值,util为磁盘占用百分比,util取值是0-1,值越大表示磁盘压力越大,util_weight为磁盘压力的权重值;
S42.获取SSD磁盘压力及设置的磁盘压力权重值,计算磁盘占用百分比,计算脏数据下刷时延,实现磁盘压力增大时,脏数据下刷时延的增大,而在磁盘压力减小时,脏数据下刷时延的减少,进入步骤S5。
5.如权利要求2所述的分布式存储系统中SSD缓存下刷速度控制方法,其特征在于,步骤S5中,根据脏数据下刷时延向HDD中下刷脏数据后,将已下刷脏数据对应的对象标记为干净对象,并将干净对象加入干净对象队列。
6.如权利要求5所述的分布式存储系统中SSD缓存下刷速度控制方法,其特征在于,步骤S2中,还判断SSD缓存水位是否超过回收阈值;
若是,获取并删除干净对象队列中数据,完成对应SSD缓存空间的释放。
7.一种分布式存储系统中SSD缓存下刷速度控制系统,其特征在于,包括:
SSD缓存检测模块(1),用于定时检测SSD缓存中脏数据、SSD磁盘压力以及SSD缓存水位;
SSD缓存水位判断模块(2),用于判断SSD缓存水位是否超过阈值;
下刷时延第一计算模块(3),用于在SSD缓存水位超过阈值时,根据SSD缓存水位计算脏数据下刷时延,当SSD缓存水位增大时,减小脏数据下刷时延,而在SSD缓存水位减少时,增大脏数据下刷时延;
下刷时延第二计算模块(4),用于在SSD缓存水位低于阈值时,根据SSD磁盘压力计算脏数据下刷时延,当磁盘压力增大时,增大脏数据下刷时延,而在磁盘压力减小时,减少脏数据下刷时延;
脏数据下刷模块(5),用于根据脏数据下刷时延向HDD中下刷脏数据。
8.如权利要求7所述的分布式存储系统中SSD缓存下刷速度控制系统,其特征在于,SSD缓存检测模块(1)包括:
SSD缓存空间划分单元(1.1),用于将SSD缓存空间以对象为单位进行划分;所述对象是空间分配与回收的存储单位;
脏数据队列生成单元(1.2),用于当检测到数据写入申请时,SSD缓存空间为数据分配未使用对象,并在数据写入后,将对象标记为脏数据,再将标脏后对象加入脏数据队列;
线程设置单元(1.3),用于设置缓存管理线程及磁盘压力检测线程,缓存管理线程定时检测SSD缓存中脏数据及SSD缓存水位;磁盘压力检测线程定时检测SSD磁盘压力;
脏数据队列判断单元(1.4),用于判断SSD缓存中脏数据队列是否为空。
9.如权利要求8所述的分布式存储系统中SSD缓存下刷速度控制系统,其特征在于,下刷时延第一计算模块(3)包括:
下刷时延与水位关系设定单元(3.1),用于设置脏数据下刷时延与SSD缓存水位关系如下:delay=init_delay+(1-ratio)*ratio_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为脏数据下刷时延的基础值,ratio为缓存水位百分比,ratio取值是0-1,值越大表示水位越高,ratio_weight为水位的权重值;
脏数据下刷时延第一计算单元(3.2),用于获取SSD缓存水位及设置的水位权重值,计算缓存水位百分比,计算脏数据下刷时延;
下刷时延第二计算模块(4)包括:
下刷时延与磁盘压力关系设定单元(4.1),用于设置磁盘下刷时延与SSD磁盘压力关系如下:delay=init_delay+util*util_weight,其中,delay为两个脏数据对象下刷的间隔时延;init_delay为下刷时延的基础值,util为磁盘占用百分比,util取值是0-1,值越大表示磁盘压力越大,util_weight为磁盘压力的权重值;
脏数据下刷时延第二计算单元(4.2),用于获取SSD磁盘压力及设置的磁盘压力权重值,计算磁盘占用百分比,计算脏数据下刷时延,实现磁盘压力增大时,脏数据下刷时延的增大,而在磁盘压力减小时,脏数据下刷时延的减少。
10.如权利要求8所述的分布式存储系统中SSD缓存下刷速度控制系统,其特征在于,脏数据下刷模块(5),还用于根据脏数据下刷时延向HDD中下刷脏数据后,将已下刷脏数据对应的对象标记为干净对象,并将干净对象加入干净对象队列;
SSD缓存水位判断模块(2),还用于判断SSD缓存水位是否超过回收阈值,并在SSD缓存水位超过回收阈值时,获取并删除干净对象队列中数据,完成对应SSD缓存空间的释放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688553.6A CN111857589B (zh) | 2020-07-16 | 2020-07-16 | 分布式存储系统中ssd缓存下刷速度控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688553.6A CN111857589B (zh) | 2020-07-16 | 2020-07-16 | 分布式存储系统中ssd缓存下刷速度控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111857589A true CN111857589A (zh) | 2020-10-30 |
CN111857589B CN111857589B (zh) | 2023-04-18 |
Family
ID=72983112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010688553.6A Active CN111857589B (zh) | 2020-07-16 | 2020-07-16 | 分布式存储系统中ssd缓存下刷速度控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857589B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631520A (zh) * | 2020-12-25 | 2021-04-09 | 北京百度网讯科技有限公司 | 分布式块存储系统、方法、装置、设备和介质 |
CN112631521A (zh) * | 2020-12-25 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种控制缓存池水位的方法、系统、设备及介质 |
CN112905121A (zh) * | 2021-02-20 | 2021-06-04 | 山东英信计算机技术有限公司 | 一种数据下刷方法和系统 |
CN113590547A (zh) * | 2021-06-30 | 2021-11-02 | 济南浪潮数据技术有限公司 | 一种icfs的缓存管理方法和系统 |
CN113608682A (zh) * | 2021-06-30 | 2021-11-05 | 济南浪潮数据技术有限公司 | 一种基于hdd磁盘压力的智能流控方法及系统 |
CN113741806A (zh) * | 2021-07-29 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种写缓存动态调控方法、装置、设备及介质 |
CN113806087A (zh) * | 2021-09-10 | 2021-12-17 | 济南浪潮数据技术有限公司 | 一种基于下刷速度调整业务速度的方法和装置 |
CN114442935A (zh) * | 2021-12-29 | 2022-05-06 | 天翼云科技有限公司 | 刷脏数据的方法、装置、电子设备及存储介质 |
CN114860151A (zh) * | 2021-02-05 | 2022-08-05 | 阿里巴巴集团控股有限公司 | 控制多缓存系统刷盘的方法以及装置 |
CN115268798A (zh) * | 2022-09-27 | 2022-11-01 | 天津卓朗昆仑云软件技术有限公司 | 缓存数据的刷脏方法和系统 |
CN116880776A (zh) * | 2023-09-06 | 2023-10-13 | 上海凯翔信息科技有限公司 | 一种存储数据的数据处理系统 |
WO2024193437A1 (zh) * | 2023-03-21 | 2024-09-26 | 华为技术有限公司 | 缓存器及其控制方法、计算机系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461936A (zh) * | 2014-11-28 | 2015-03-25 | 华为技术有限公司 | 缓存数据的刷盘方法及装置 |
CN109343797A (zh) * | 2018-09-25 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种缓存数据的传输方法、系统及相关组件 |
-
2020
- 2020-07-16 CN CN202010688553.6A patent/CN111857589B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461936A (zh) * | 2014-11-28 | 2015-03-25 | 华为技术有限公司 | 缓存数据的刷盘方法及装置 |
CN109343797A (zh) * | 2018-09-25 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种缓存数据的传输方法、系统及相关组件 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631521B (zh) * | 2020-12-25 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种控制缓存池水位的方法、系统、设备及介质 |
CN112631521A (zh) * | 2020-12-25 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种控制缓存池水位的方法、系统、设备及介质 |
CN112631520A (zh) * | 2020-12-25 | 2021-04-09 | 北京百度网讯科技有限公司 | 分布式块存储系统、方法、装置、设备和介质 |
CN112631520B (zh) * | 2020-12-25 | 2023-09-22 | 北京百度网讯科技有限公司 | 分布式块存储系统、方法、装置、设备和介质 |
CN114860151A (zh) * | 2021-02-05 | 2022-08-05 | 阿里巴巴集团控股有限公司 | 控制多缓存系统刷盘的方法以及装置 |
CN112905121A (zh) * | 2021-02-20 | 2021-06-04 | 山东英信计算机技术有限公司 | 一种数据下刷方法和系统 |
CN113590547A (zh) * | 2021-06-30 | 2021-11-02 | 济南浪潮数据技术有限公司 | 一种icfs的缓存管理方法和系统 |
CN113608682A (zh) * | 2021-06-30 | 2021-11-05 | 济南浪潮数据技术有限公司 | 一种基于hdd磁盘压力的智能流控方法及系统 |
CN113590547B (zh) * | 2021-06-30 | 2024-02-23 | 济南浪潮数据技术有限公司 | 一种icfs的缓存管理方法和系统 |
CN113608682B (zh) * | 2021-06-30 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种基于hdd磁盘压力的智能流控方法及系统 |
CN113741806A (zh) * | 2021-07-29 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种写缓存动态调控方法、装置、设备及介质 |
CN113741806B (zh) * | 2021-07-29 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 一种写缓存动态调控方法、装置、设备及介质 |
CN113806087B (zh) * | 2021-09-10 | 2023-12-26 | 济南浪潮数据技术有限公司 | 一种基于下刷速度调整业务速度的方法和装置 |
CN113806087A (zh) * | 2021-09-10 | 2021-12-17 | 济南浪潮数据技术有限公司 | 一种基于下刷速度调整业务速度的方法和装置 |
CN114442935B (zh) * | 2021-12-29 | 2023-08-04 | 天翼云科技有限公司 | 刷脏数据的方法、装置、电子设备及存储介质 |
CN114442935A (zh) * | 2021-12-29 | 2022-05-06 | 天翼云科技有限公司 | 刷脏数据的方法、装置、电子设备及存储介质 |
CN115268798A (zh) * | 2022-09-27 | 2022-11-01 | 天津卓朗昆仑云软件技术有限公司 | 缓存数据的刷脏方法和系统 |
WO2024193437A1 (zh) * | 2023-03-21 | 2024-09-26 | 华为技术有限公司 | 缓存器及其控制方法、计算机系统 |
CN116880776A (zh) * | 2023-09-06 | 2023-10-13 | 上海凯翔信息科技有限公司 | 一种存储数据的数据处理系统 |
CN116880776B (zh) * | 2023-09-06 | 2023-11-17 | 上海凯翔信息科技有限公司 | 一种存储数据的数据处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111857589B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111857589B (zh) | 分布式存储系统中ssd缓存下刷速度控制方法及系统 | |
WO2022017002A1 (zh) | 一种垃圾回收方法及装置 | |
WO2021120789A1 (zh) | 数据写入方法、装置及存储服务器和计算机可读存储介质 | |
US8832411B2 (en) | Working set swapping using a sequentially ordered swap file | |
CN113778338B (zh) | 分布式存储数据读取效率优化方法、系统、设备和介质 | |
CN101833512A (zh) | 一种内存回收方法及其装置 | |
CN111400204B (zh) | 一种固态盘缓存方法、系统及相关设备 | |
CN109471594B (zh) | 一种mlc闪存读写方法 | |
CN105740170B (zh) | 一种缓存脏页刷写方法及装置 | |
CN113806087B (zh) | 一种基于下刷速度调整业务速度的方法和装置 | |
US10073851B2 (en) | Fast new file creation cache | |
CN114185492A (zh) | 一种基于强化学习的固态硬盘垃圾回收算法 | |
KR101077901B1 (ko) | 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 | |
CN116700634A (zh) | 分布式存储系统垃圾回收方法、装置及分布式存储系统 | |
US8756396B1 (en) | Conversion of in-memory data representations | |
CN110209600B (zh) | 一种基于精简lun的cache空间分配方法及系统 | |
CN109814804A (zh) | 一种降低分布式存储系统能耗的方法和装置 | |
CN112905121B (zh) | 一种数据下刷方法和系统 | |
CN113076062B (zh) | 一种提升qlcssd寿命的方法和设备 | |
CN103176753A (zh) | 存储设备及其数据管理方法 | |
CN116225980A (zh) | 一种缓存管理方法、装置、设备及介质 | |
CN115469797B (zh) | 一种数据写入方法、存储装置及计算机可读存储介质 | |
CN113434296B (zh) | 缓存回刷方法、装置、电子设备及存储介质 | |
CN114817169A (zh) | 存储管理方法、设备和计算机程序产品 | |
CN112631518A (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 |