CN110673798B - 一种存储系统及其io落盘方法和装置 - Google Patents
一种存储系统及其io落盘方法和装置 Download PDFInfo
- Publication number
- CN110673798B CN110673798B CN201910893919.0A CN201910893919A CN110673798B CN 110673798 B CN110673798 B CN 110673798B CN 201910893919 A CN201910893919 A CN 201910893919A CN 110673798 B CN110673798 B CN 110673798B
- Authority
- CN
- China
- Prior art keywords
- fragments
- fragment
- cache
- preset
- falling
- 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 46
- 239000012634 fragment Substances 0.000 claims abstract description 253
- 230000015654 memory Effects 0.000 claims abstract description 43
- 238000013467 fragmentation Methods 0.000 claims description 9
- 238000006062 fragmentation reaction Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 abstract description 9
- 230000007423 decrease Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 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/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
-
- 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/0656—Data buffering 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
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种存储系统的IO落盘方法、装置及存储系统,该方法包括:根据缓存的已用缓存占比,获取IO最大下发速率;根据IO最大下发速率和预设分片大小,获取分片个数,并在缓存中生成分片个数的分片;将接收的每个IO数据存储到各自对应的一个分片上;对达到预设落盘条件的分片进行落盘;本发明通过将每个分片上的IO数据组成一个大IO进行落盘,简化了IO合并的过程,减小了批量落盘IO数据的落盘时延的滞后性,在满足全闪存储批量落盘IO数据的基础上,保证实际速率上限与漏桶限流算法的速率上限一致,从而使得后续可以利用分片的落盘时延,动态调节速率,准确控制IO落盘。
Description
技术领域
本发明涉及存储系统技术领域,特别涉及一种存储系统的IO落盘方法、装置及存储系统。
背景技术
随着现代社会科技的发展,存储系统的应用越来越广泛。目前,传统的存储系统中普遍使用的动态均衡的漏桶限流算法进行IO(Input/Output输入/输出,即读/写)落盘,即将IO数据下发到磁盘,其核心思想如下:根据已使用缓存的占比决定IO数据下发的最大速率,以及统计下层的应答时间,在最大速率的基础上调节速率,以达到数据请求和处理速度的均衡。然而,在新兴的全闪产品中,采用了日志式的落盘方式,使得多个小IO要通过复杂过程合并成大IO后才能落盘,即批量落盘IO数据;由于IO合并引入的时延,使得现有统计小IO应答时延的指标不能真实的反应数据落盘的时延;且由于现有IO合并的过程复杂,使得基于大io统计落盘时间的方案具有一定的滞后性,导致实际速率上限和漏桶限流算法的速率上限不一致,特别是在已用缓存占比变化较大的场景下,难以准确控制IO落盘。
因此,如何能够在满足全闪存储批量落盘IO数据的基础上,保证实际速率上限与漏桶限流算法的速率上限一致,减小了批量落盘IO数据的落盘时延的滞后性,是现今急需解决的问题。
发明内容
本发明的目的是提供一种存储系统的IO落盘方法、装置及存储系统,以在满足全闪存储批量落盘IO数据的基础上,保证实际速率上限与漏桶限流算法的速率上限一致,减小了批量落盘IO数据的落盘时延的滞后性。
为解决上述技术问题,本发明提供一种存储系统的IO落盘方法,包括:
根据缓存的已用缓存占比,获取IO最大下发速率;
根据所述IO最大下发速率和预设分片大小,获取分片个数,并在所述缓存中生成所述分片个数的分片;
将接收的每个IO数据存储到各自对应的一个分片上;
对达到预设落盘条件的所述分片进行落盘。
可选的,所述将接收的每个IO数据存储到各自对应的一个分片上,包括:
按照预设分片存储顺序,依次在所述分片个数的所述分片上均匀存储所述IO数据。
可选的,所述对达到预设落盘条件的所述分片进行落盘,包括:
利用当前线程,在当前线程对应的当前分片达到所述预设落盘条件时,对当前分片进行落盘;其中,当前分片为任一所述分片,当前线程为所述分片个数的线程中当前分片对应的一个线程。
可选的,所述在当前线程对应的当前分片达到所述预设落盘条件时,对分片进行落盘,包括:
判断当前分片是否存满或达到时间阈值;
若是,则对当前分片进行落盘。
可选的,所述根据所述IO最大下发速率和预设分片大小,获取分片个数,包括:
根据所述IO最大下发速率与所述预设分片大小的商,获取分片个数。
可选的,所述在所述缓存中生成所述分片个数的分片,包括:
若所述缓存的分片数量大于所述分片个数,则通过flush分片方式,减少所述缓存中的所述分片的数量,使所述缓存中的所述分片的数量为所述分片个数。
可选的,该方法还包括:
获取每个所述分片的落盘时延;
根据所述落盘时延,对所述缓存中的所述分片的数量进行调整。
可选的,所述根据所述落盘时延,对所述缓存中的所述分片的数量进行调整,包括:
根据所述落盘时延,统计每个所述分片的平均时延;
根据每个闪存对应的分片的平均时延的平均值,确定每个所述闪存对应的时延;
判断是否存在慢盘;其中,所述慢盘为对应的时延大于时延阈值的闪存;
若是,则根据所述慢盘对应的时延,按照预设时延与分片数量的对应关系,减少所述慢盘对应的分片的个数。
本发明还提供了一种存储系统的IO落盘装置,包括:
速率获取模块,用于根据缓存的已用缓存占比,获取IO最大下发速率;
分片模块,用于根据所述IO最大下发速率和预设分片大小,获取分片个数,并在所述缓存中生成所述分片个数的分片;
存储模块,用于将接收的每个IO数据存储到各自对应的一个分片上;
落盘模块,用于对达到预设落盘条件的所述分片进行落盘。
此外,本发明还提供了一种存储系统,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的存储系统的IO落盘方法的步骤。
本发明所提供的一种存储系统的IO落盘方法,包括:根据缓存的已用缓存占比,获取IO最大下发速率;根据IO最大下发速率和预设分片大小,获取分片个数,并在缓存中生成分片个数的分片;将接收的每个IO数据存储到各自对应的一个分片上;对达到预设落盘条件的分片进行落盘;
可见,本发明通过将每个分片上的IO数据组成一个大IO进行落盘,简化了IO合并的过程,减小了批量落盘IO数据的落盘时延的滞后性,在满足全闪存储批量落盘IO数据的基础上,保证实际速率上限与漏桶限流算法的速率上限一致,从而使得后续可以利用分片的落盘时延,动态调节速率,准确控制IO落盘。此外,本发明还提供了一种存储系统的IO落盘装置及存储系统,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种存储系统的IO落盘方法的流程图;
图2为本发明实施例所提供的一种存储系统的IO落盘装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种存储系统的IO落盘方法的流程图。该方法可以包括:
步骤101:根据缓存的已用缓存占比,获取IO最大下发速率。
可以理解的是,本步骤的目的可以为存储系统根据缓存(Cache)中已用缓存的所占比例(即已用缓存占比),确定IO最大下发速率,即单位时间内IO数据的下发个数的上限。
对应的,对于本步骤中根据缓存的已用缓存占比,获取IO最大下发速率的具体方式,可以由设计人员自行设置,如可以采用与现有漏桶限流算法中IO最大下发速率的确定方式相同或相似的方式实现,例如先启动定时器,计算缓存的已用缓存占比,再已用缓存占比确定IO最大下发速率。
步骤102:根据IO最大下发速率和预设分片大小,获取分片个数,并在缓存中生成分片个数的分片。
可以理解的是,本实施例的目的可以为存储系统利用缓存中的分片,将需要下发到闪存中的小IO(IO数据)存储到分片上,通过分片的落盘,将每个分片上的IO数据组成的大IO落盘到闪存中,实现批量落盘IO数据。
具体的,本步骤中的预设分片大小可以为预先设置的每个分片(大IO)的大小,即每个分片所能存储的IO数据量。对于预设分片大小的具体数值设置可以由设计人员或用户根据实用场景和用户需求自行设置,本实施例对此不做任何限制。
对应的,对于本步骤中根据IO最大下发速率和预设分片大小,获取分片个数的具体方式,可以由设计人员自行设置,如每个分片的大小相同时,可以根据“IO最大下发速率/预设分片大小”计算出分片个数;即根据IO最大下发速率与预设分片大小的商,获取分片个数;例如IO最大下发速率能被预设分片大小整除时,分片个数可以为IO最大下发速率与预设分片大小的商;IO最大下发速率不能被预设分片大小整除时,分片个数可以为IO最大下发速率与预设分片大小的商中的整数部分或整数部分加1的值。本实施例对此不做任何限制。
需要说明的是,本步骤中的在缓存中生成分片个数的分片,是为了使缓存中的分片的数量为分片个数,即缓存的分片数量等于分片个数。若之前缓存中不存在分片,可以直接生成分片个数的分片;若之前缓存中存在分片,则可以根据获取的分片个数和缓存的分片数量,对缓存中的分片的数量进行调整,使缓存中的分片的数量为分片个数;例如,存储系统可以根据获取的分片个数,如果大于缓存的分片数量,就立即新增分片;如果小于缓存的分片数量,可以直接减小或通过其他方式(如flush分片方式)减少分片的数量。
也就是说,若缓存的分片数量大于分片个数,则存储系统可以通过flush分片方式,减少缓存中的分片的数量,使缓存中的分片的数量为分片个数。
步骤103:将接收的每个IO数据存储到各自对应的一个分片上。
可以理解的是,本步骤的目的可以为存储系统通过将小IO(IO数据)存储到缓存的分片上,使分片上的小IO可以组成大IO。即利用分片实现简捷的IO合并,避免了现有IO合并的复杂过程,从而减小了大IO落盘的落盘时延的滞后性。
对应的,本步骤中接收的IO数据可以为缓存中的已用缓存部分存储的IO数据,即本步骤中可以将缓存中已经存储的IO数据放置到对应的分片上存储;接收的IO数据也可以为缓存中未存储的IO数据,即可以直接将IO数据存储到缓存中对应的分片上,本实施例对此不做任何限制。
具体的,本步骤中的IO数据可以为单个IO对应的数据,即现有IO合并前的小IO。对于本步骤中将接收的每个IO数据存储到各自对应的一个分片上的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如可以按照预设分片存储顺序,依次在分片个数的分片上均匀存储IO数据,使接收的IO数据依次均匀的分布在不同的分片上,即多个IO数据可以均匀存储在分片个数的分片上;也可以将IO数据存储在当前分片上,在当前分片存满后在将之后的IO数据存储到下一分片上。本实施例对此不做任何限制。
步骤104:对达到预设落盘条件的分片进行落盘。
其中,本步骤的目的可以为在任一分片达到预设落盘条件后,对该分片进行落盘,使该分片上的多个IO数据组成的大IO可以下刷到闪存中。具体的,本实施例中可以利用一个线程依次对每个达到预设落盘条件的分片进行落盘;也可以利用多个线程分别对各自对应的达到预设落盘条件的分片进行落盘,例如每个分片可以处于不同线程,即设置分片个数的线程,使每个线程可以对各自对应的一个达到预设落盘条件的分片进行落盘,达到负载均衡的效果。
也就是说,本步骤中服务器可以利用当前线程,在当前线程对应的当前分片达到预设落盘条件时,对当前分片进行落盘;其中,当前分片为分片个数的分片中的任一分片,当前线程为分片个数的线程中当前分片对应的一个线程。
具体的,对于本步骤中对达到预设落盘条件的分片进行落盘的具体过程,即预设落盘条件的具体内容,可以由设计人员自行设置,如预设落盘条件可以为存满,即存储系统可以依次或分别判断每个分片是否存满,并对存满的分片进行落盘;预设落盘条件也可以为存满和达到时间阈值中的任一项,即存储系统可以依次或分别判断每个分片是否存满或达到时间阈值,对存满或达到时间阈值的分片进行落盘,即每个分片存满后可以立即落盘,没有存满的分片在达到时间阈值后可以立即落盘。本实施例对此不做任何限制。
对应的,上述时间阈值可以为预先设置的分片每次存储IO数据的最大时间,如分片在每次落盘完成或每次开始存储IO数据后,可以开始计时,在分片未存满且计时时间达到时间阈值时进行落盘。具体的,对于时间阈值的具体数值设置,可以由设计人员自行设置,本实施例对此不做任何限制。
可以理解的是,本实施例还可以包括存储系统根据分片的落盘时延,动态调节IO数据的下发速率的步骤。对于根据分片的落盘时延,动态调节IO数据的下发速率的具体方式,可以由设计人员自行设置,如可以采用与现有技术中根据大IO落盘时延调节下发速率的方法相同或相似的方式实现;也可以根据每个分片的落盘时延,对缓存中的分片的数量进行调整,从而利用分片数量的动态调整,动态调节IO数据的下发速率。
具体的,本实施例所提供的方法可以包括获取每个分片的落盘时延;根据落盘时延,对缓存中的分片的数量进行调整的步骤。即获取每个分片每次落盘时的落盘时延,再利用落盘时延对缓存中分片的数量进行动态调整,如可以利用每个分片每次落盘时的落盘时延,统计全部分片的平均时延,从而按照分片数量与平均时延的线性递减关系调节缓存中分片的数量,且保证缓存中分片的数量不超过分片个数,不小于下限阈值(如1个)。其中,分片数量与平均时延的线性递减关系可以为缓存的分片数量随平均时延的增大而减小的关系,即下发IO数据的个数(速率)可以随着分片数量的减小对应减小。
对应的,缓存中的全部分片可以分为多个分片组,如可以按照分片落盘对应的闪存进行分组,即每个分片组中的分片均批量落盘IO数据到同一闪存。存储系统可以根据每个分片组的平均时延,即每个闪存对应的分片的平均时延的平均值,确定每个分片组对应的时延,即每个闪存对应的时延;当闪存对应的时延达到预先设置的时延阈值时,判定该闪存为慢盘;从而可以根据预先设置的预设时延与分片数量的对应关系,如上述分片数量与平均时延的线性递减关系,减少慢盘对应的分片的个数。
也就是说,上述根据落盘时延,对缓存中的分片的数量进行调整的步骤,可以包括:根据分片的落盘时延,统计每个分片的平均时延;根据每个闪存对应的分片的平均时延的平均值,确定每个闪存对应的时延;判断是否存在慢盘;其中,慢盘为对应的时延大于时延阈值的闪存;若是,则根据慢盘对应的时延,按照预设时延与分片数量的对应关系,减少慢盘对应的分片的个数。即在闪存变为慢盘后,减少该闪存对应的分片的个数。
本实施例中,本发明实施例通过将每个分片上的IO数据组成一个大IO进行落盘,简化了IO合并的过程,减小了批量落盘IO数据的落盘时延的滞后性,在满足全闪存储批量落盘IO数据的基础上,保证实际速率上限与漏桶限流算法的速率上限一致,从而使得后续可以利用分片的落盘时延,动态调节速率,准确控制IO落盘。
请参考图2,图2为本发明实施例所提供的一种存储系统的IO落盘方法的流程图。该装置可以包括:
速率获取模块10,用于根据缓存的已用缓存占比,获取IO最大下发速率;
分片模块20,用于根据IO最大下发速率和预设分片大小,获取分片个数,并在缓存中生成分片个数的分片;
存储模块30,用于将接收的每个IO数据存储到各自对应的一个分片上;
落盘模块40,用于对达到预设落盘条件的分片进行落盘。
可选的,存储模块30,可以包括:
均匀存储子模块,用于按照预设分片存储顺序,依次在分片个数的分片上均匀存储IO数据。
可选的,落盘模块40,可以包括:
均衡子模块,用于利用当前线程,在当前线程对应的当前分片达到预设落盘条件时,对当前分片进行落盘;其中,当前分片为任一分片,当前线程为分片个数的线程中当前分片对应的一个线程。
可选的,均衡子模块,可以包括:
判断单元,用于判断当前分片是否存满或达到时间阈值;
落盘单元,用于若存满或达到时间阈值,则对当前分片进行落盘。
可选的,分片模块20,可以包括:
计算子模块,用于根据IO最大下发速率与预设分片大小的商,获取分片个数。
可选的,分片模块20,可以包括:
减片子模块,用于若缓存的分片数量大于分片个数,则通过flush分片方式,减少缓存中的分片的数量,使缓存中的分片的数量为分片个数。
可选的,该装置还可以包括:
时延获取模块,用于获取每个分片的落盘时延;
调整模块,用于根据落盘时延,对缓存中的分片的数量进行调整。
可选的,调整模块,可以包括:
统计子模块,用于根据落盘时延,统计每个分片的平均时延;
确定子模块,用于根据每个闪存对应的分片的平均时延的平均值,确定每个闪存对应的时延;
判断子模块,用于判断是否存在慢盘;其中,慢盘为对应的时延大于时延阈值的闪存;
慢盘减片子模块,用于若存在慢盘,则根据慢盘对应的时延,按照预设时延与分片数量的对应关系,减少慢盘对应的分片的个数。
本实施例中,本发明实施例通过将每个分片上的IO数据组成一个大IO进行落盘,简化了IO合并的过程,减小了批量落盘IO数据的落盘时延的滞后性,在满足全闪存储批量落盘IO数据的基础上,保证实际速率上限与漏桶限流算法的速率上限一致,从而使得后续可以利用分片的落盘时延,动态调节速率,准确控制IO落盘。
本发明实施例还提供了一种存储系统,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述实施例所提供的存储系统的IO落盘方法的步骤。
其中,本实施例中的存储器至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器在一些实施例中可以是存储系统的服务器的内部存储单元,例如服务器的硬盘。存储器在另一些实施例中也可以是存储系统的服务器的外部存储设备,例如服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digita,SD)卡,闪存卡(Flash Card)等。进一步地,存储器还可以既包括存储系统的服务器的内部存储单元也包括外部存储设备。存储器不仅可以用于存储安装于存储系统的服务器的应用软件及各类数据,例如:执行存储系统的IO落盘方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
本实施例中的处理器在一些实施例中可以是中央处理器(Central ProcessingUnit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器中存储的程序代码或处理数据,例如执行存储系统的IO落盘方法的程序的代码等。
此外,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述实施例所提供的存储系统的IO落盘方法的步骤。
其中,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种存储系统的IO落盘方法、装置及存储系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种存储系统的IO落盘方法,其特征在于,包括:
根据缓存的已用缓存占比,获取IO最大下发速率;
根据所述IO最大下发速率和预设分片大小,获取分片个数,并在所述缓存中生成所述分片个数的分片;
将接收的每个IO数据存储到各自对应的一个分片上;
对达到预设落盘条件的所述分片进行落盘。
2.根据权利要求1所述的存储系统的IO落盘方法,其特征在于,所述将接收的每个IO数据存储到各自对应的一个分片上,包括:
按照预设分片存储顺序,依次在所述分片个数的所述分片上均匀存储所述IO数据。
3.根据权利要求1所述的存储系统的IO落盘方法,其特征在于,所述对达到预设落盘条件的所述分片进行落盘,包括:
利用当前线程,在当前线程对应的当前分片达到所述预设落盘条件时,对当前分片进行落盘;其中,当前分片为任一所述分片,当前线程为所述分片个数的线程中当前分片对应的一个线程。
4.根据权利要求3所述的存储系统的IO落盘方法,其特征在于,所述在当前线程对应的当前分片达到所述预设落盘条件时,对分片进行落盘,包括:
判断当前分片是否存满或达到时间阈值;
若是,则对当前分片进行落盘。
5.根据权利要求1所述的存储系统的IO落盘方法,其特征在于,所述根据所述IO最大下发速率和预设分片大小,获取分片个数,包括:
根据所述IO最大下发速率与所述预设分片大小的商,获取分片个数。
6.根据权利要求1所述的存储系统的IO落盘方法,其特征在于,所述在所述缓存中生成所述分片个数的分片,包括:
若所述缓存的分片数量大于所述分片个数,则通过flush分片方式,减少所述缓存中的所述分片的数量,使所述缓存中的所述分片的数量为所述分片个数。
7.根据权利要求1至6任一项所述的存储系统的IO落盘方法,其特征在于,还包括:
获取每个所述分片的落盘时延;
根据所述落盘时延,对所述缓存中的所述分片的数量进行调整。
8.根据权利要求7所述的存储系统的IO落盘方法,其特征在于,所述根据所述落盘时延,对所述缓存中的所述分片的数量进行调整,包括:
根据所述落盘时延,统计每个所述分片的平均时延;
根据每个闪存对应的分片的平均时延的平均值,确定每个所述闪存对应的时延;
判断是否存在慢盘;其中,所述慢盘为对应的时延大于时延阈值的闪存;
若是,则根据所述慢盘对应的时延,按照预设时延与分片数量的对应关系,减少所述慢盘对应的分片的个数。
9.一种存储系统的IO落盘装置,其特征在于,包括:
速率获取模块,用于根据缓存的已用缓存占比,获取IO最大下发速率;
分片模块,用于根据所述IO最大下发速率和预设分片大小,获取分片个数,并在所述缓存中生成所述分片个数的分片;
存储模块,用于将接收的每个IO数据存储到各自对应的一个分片上;
落盘模块,用于对达到预设落盘条件的所述分片进行落盘。
10.一种存储系统,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述的存储系统的IO落盘方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910893919.0A CN110673798B (zh) | 2019-09-20 | 2019-09-20 | 一种存储系统及其io落盘方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910893919.0A CN110673798B (zh) | 2019-09-20 | 2019-09-20 | 一种存储系统及其io落盘方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110673798A CN110673798A (zh) | 2020-01-10 |
CN110673798B true CN110673798B (zh) | 2022-07-22 |
Family
ID=69077059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910893919.0A Active CN110673798B (zh) | 2019-09-20 | 2019-09-20 | 一种存储系统及其io落盘方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110673798B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338567B (zh) * | 2020-02-13 | 2021-09-17 | 苏州浪潮智能科技有限公司 | 一种基于Protocol Buffer的镜像缓存方法 |
CN112000543B (zh) * | 2020-07-29 | 2023-03-31 | 北京浪潮数据技术有限公司 | 一种存储系统的时延性能检测方法、装置及设备 |
CN112162693B (zh) * | 2020-09-04 | 2024-06-18 | 郑州浪潮数据技术有限公司 | 一种数据刷写方法、装置、电子设备和存储介质 |
CN112416639B (zh) * | 2020-11-16 | 2022-08-23 | 新华三技术有限公司成都分公司 | 一种慢盘检测方法、装置、设备及存储介质 |
CN113849421B (zh) * | 2021-09-16 | 2023-11-17 | 苏州浪潮智能科技有限公司 | 全闪存储中数据的分级聚合方法和装置 |
CN117130547B (zh) * | 2023-08-01 | 2024-05-28 | 上海沄熹科技有限公司 | 一种存储引擎数据落盘平滑背压方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108399050B (zh) * | 2018-02-02 | 2021-06-29 | 新华三技术有限公司 | 一种数据处理方法及装置 |
CN109388346B (zh) * | 2018-10-15 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种数据落盘方法和相关装置 |
CN109739441A (zh) * | 2019-01-02 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种存储系统下刷缓存数据的方法 |
-
2019
- 2019-09-20 CN CN201910893919.0A patent/CN110673798B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110673798A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110673798B (zh) | 一种存储系统及其io落盘方法和装置 | |
US11734271B2 (en) | Data query method, apparatus and device | |
CN107483351B (zh) | 一种限流方法及装置 | |
CN109379395B (zh) | 一种接口数据缓存设置方法及终端设备 | |
CN105205014A (zh) | 一种数据存储方法和装置 | |
CN107870732B (zh) | 从固态存储设备冲刷页面的方法和设备 | |
CN110209502B (zh) | 一种信息存储方法、装置、电子设备及存储介质 | |
CN109086009B (zh) | 一种监控管理方法和装置、计算机可读存储介质 | |
CN110532100B (zh) | 调度资源的方法、装置、终端及存储介质 | |
CN110297743B (zh) | 一种负载测试方法、装置和存储介质 | |
CN111338575B (zh) | 一种存储服务质量控制方法、装置、设备及存储介质 | |
CN110674064B (zh) | 一种数据传输方法、装置、设备及计算机可读存储介质 | |
CN117235393A (zh) | 自适应的页面加载方法及装置、设备及存储介质 | |
CN111225268A (zh) | 一种视频数据的传输方法及终端 | |
CN116150067A (zh) | 一种带宽调整方法、装置、电子设备和存储介质 | |
CN116027982A (zh) | 数据处理方法、设备及可读存储介质 | |
CN105740073A (zh) | 一种动态控制操作系统进程数量的方法及装置 | |
CN116820324A (zh) | 存储扩容方法及装置、存储介质和电子设备 | |
CN115499513A (zh) | 数据请求的处理方法、装置、计算机设备和存储介质 | |
CN111611104B (zh) | 一种InfluxDB数据备份方法、系统及终端设备 | |
CN108196942B (zh) | 一种内存超分配虚拟机的快速启动方法 | |
CN111143386A (zh) | 债券额度数据的处理方法及装置 | |
CN108270744B (zh) | 媒体数据访问方法及装置 | |
CN116991781B (zh) | 一种请求处理装置、方法、芯片、存储介质及电子设备 | |
CN111399779B (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 |