CN109783000B - 一种数据处理方法及设备 - Google Patents

一种数据处理方法及设备 Download PDF

Info

Publication number
CN109783000B
CN109783000B CN201711107599.9A CN201711107599A CN109783000B CN 109783000 B CN109783000 B CN 109783000B CN 201711107599 A CN201711107599 A CN 201711107599A CN 109783000 B CN109783000 B CN 109783000B
Authority
CN
China
Prior art keywords
volume
disk
requests
read
cache
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
CN201711107599.9A
Other languages
English (en)
Other versions
CN109783000A (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.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Chengdu Huawei 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 Chengdu Huawei Technology Co Ltd filed Critical Chengdu Huawei Technology Co Ltd
Priority to CN202211006165.0A priority Critical patent/CN115543187A/zh
Priority to CN201711107599.9A priority patent/CN109783000B/zh
Publication of CN109783000A publication Critical patent/CN109783000A/zh
Application granted granted Critical
Publication of CN109783000B publication Critical patent/CN109783000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes

Abstract

本申请实施例提供一种数据处理方法及设备,涉及存储技术领域,根据存储设备不同卷分别对应的读请求和/或写请求的特征,采用个性化的刷盘方式对不同卷进行刷盘,从而提高存储设备的刷盘性能。具体方案为:存储设备接收主机发送的多个操作请求,操作请求包括读请求和/或写请求,将多个操作请求存储在缓存中,获取模型特征,该模型特征用于表示缓存中与非易失性存储介质的第一卷对应的多个操作请求的特征,根据模型特征对第一卷进行刷盘,以将缓存中第一卷对应的脏数据写入第一卷中。本申请实施例用于数据处理。

Description

一种数据处理方法及设备
技术领域
本申请实施例涉及存储技术领域,尤其涉及一种数据处理方法及设备。
背景技术
由于存储设备中缓存的读写速率通常比物理磁盘等非易失性存储介质的读写速率高,即非易失性存储介质与缓存的读写速度不能匹配,因而存储设备通常采用一种回写的缓存技术,将从主机接收到的待写入数据先暂存到缓存,并向主机发送写请求已完成信号,而把缓存中的数据写入非易失性存储介质上的操作将会延迟执行。
在现有技术中,参见图1,存储设备根据缓存的水位,即缓存中的脏数据占缓存空间的百分比进行刷盘。例如,当水位大于或者等于预设水位时,根据最近最久未使用(leastrecently used,LRU)算法或排序算法等从缓存中选择预设数量的数据,并采用轮询方式对非易失性存储介质中的每个卷进行刷盘。其中,当轮询到非易失性存储介质中的某一个卷时,根据该卷对应的预设的并发阈值,将所选择的脏数据中与该卷对应的脏数据刷到非易失性存储介质的该卷中。即存储设备采用公平的刷盘方式对非易失性存储介质中的每个卷进行刷盘。
由于每个卷对应的读请求或写请求的业务类型不同,因而当采用现有技术中的公平刷盘方式时,对于刷盘需求较大的卷,其刷盘性能不能满足刷盘需求,而对于刷盘需求较小的卷,其刷盘性能无法得到充分地利用,从而无法合理地利用存储设备的刷盘性能。
发明内容
本申请实施例提供一种数据处理方法及设备,能够根据存储设备不同卷分别对应的读请求和/或写请求的特征,采用个性化的刷盘方式对不同卷进行刷盘,从而提高存储设备的刷盘性能。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种数据处理方法,应用于存储设备,存储设备包括缓存和非易失性存储介质,非易失性存储介质包括多个卷,该方法包括:存储设备接收主机发送的多个操作请求,多个操作请求包括多个读请求和/或写请求。而后,存储设备将多个操作请求存储在缓存中。之后,存储设备获取模型特征,模型特征用于表示缓存中与非易失性存储介质的第一卷对应的多个操作请求的特征。而后,存储设备根据模型特征对第一卷进行刷盘,以将缓存中第一卷对应的脏数据写入第一卷中。
这样,存储设备可以根据非易失性存储介质中不同卷分别对应的读请求和/或写请求的特征,分别对不同卷进行刷盘,从而可以对每个卷采用与该卷的业务类型相匹配的个性化刷盘策略进行刷盘,因而可以充分发挥每个卷的刷盘性能,提高整个存储设备的刷盘特性。
结合第一方面,在一种可能的实现方式中,多个操作请求包括多个写请求,模型特征包括写请求随机度,写请求随机度用于表示第一卷对应的写请求的待操作位置的随机程度。存储设备根据模型特征对第一卷进行刷盘包括:当写请求随机度小于第一预设值时,存储设备根据第一刷盘并发阈值对第一卷进行刷盘。当写请求随机度大于或者等于第一预设值时,存储设备根据第二刷盘并发阈值对第一卷进行刷盘。其中,第一刷盘并发阈值大于第二刷盘并发阈值。
这样,存储设备可以根据每个卷分别对应的写请求随机度,获知每个卷的业务类型和存储内容的特性,从而采用个性化的方式对不同卷进行刷盘,以合理利用每个卷的刷盘性能,从而提高整个存储设备的刷盘性能。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,写请求随机度为多个写请求对应的脏数据所映射的块chunk的数量与页page的数量的比值。
这样,存储设备可以根据写请求对应的脏数据所映射的块chunk的数量与页page的数量的比值的大小,确定写请求随机度的大小。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,多个操作请求还包括多个读请求,模型特征还包括读请求比例,读请求比例为读请求的数量与操作请求的数量的比值。存储设备根据第一刷盘并发阈值对第一卷进行刷盘包括:当读请求比例小于第二预设值时,存储设备根据第一刷盘并发阈值对第一卷进行刷盘。当读请求比例大于或者等于第二预设值时,在脏数据聚合满一个条带时,存储设备根据第一刷盘并发阈值对第一卷进行刷盘。存储设备根据第二刷盘并发阈值对第一卷进行刷盘包括:当读请求比例大于或者等于第二预设值时,若第一写请求对应的待刷盘的块chunk与第一读请求对应的待读取的块chunk为同一块chunk,则存储设备优先执行第一读请求对应的读操作。在读操作执行完成后,存储设备根据第二刷盘并发阈值对第一卷进行刷盘,当读请求比例小于第二预设值时,存储设备根据第二刷盘并发阈值对第一卷进行刷盘。
这样,存储设备还可以根据每个卷分别对应的读请求比例,获知每个卷的业务类型和存储内容的特性,从而采用个性化的方式对不同卷进行刷盘,以合理利用每个卷的刷盘性能,从而提高整个存储设备的刷盘性能。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,存储设备根据模型特征对第一卷进行刷盘包括:当缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值大于或者等于第三预设值时,存储设备根据模型特征对第一卷进行刷盘。
这样,当缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值大于或者等于第三预设值时,可以说明缓存中第一卷对应的脏数据的数据量较大,占用的缓存空间较多,因而需要刷到非易失性存储介质的第一卷上,从而释放缓存空间以存储从主机新接收的操作请求和待操作数据。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,存储设备根据模型特征对第一卷进行刷盘包括:存储设备根据缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值与第三预设值,确定第一卷对应的待刷盘数据量。存储设备根据待刷盘数据量和模型特征对第一卷进行刷盘。若对第一卷进行刷盘的数据量大于或者等于待刷盘数据量,且对第一卷进行刷盘的第一时长小于预设时长,则存储设备在第二时长内根据第二卷对应的多个操作请求的模型特征对第二卷进行刷盘,第二时长为预设时长与第一时长的差值。
这样,可以使得存储设备在每次刷盘时,充分利用预设时长对应的时间段对存储设备中的至少一个卷中的脏数据进行刷盘,从而提供存储设备的整体刷盘性能。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,第一卷对应的待刷盘数据量可以为第一卷对应的脏数据的数据量减去缓存空间大小与第三预设值的乘积后得到的差值。
这样,对于存储设备中的每个卷,存储设备都可以采用与第一卷类似的方式,准确计算该卷对应的待刷盘数据量,从而根据该卷对应的待刷盘数据量,对该卷进行个性化刷盘。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,操作请求中携带有待操作地址,在存储设备获取存储设备的非易失性存储介质的第一卷对应的多个操作请求的模型特征之前,该方法还包括:存储设备根据待操作地址确定操作请求为第一卷对应的操作请求。
采用与第一卷类似的方法,存储设备可以根据待操作地址确定每个卷分别对应的操作请求。
第二方面,本申请实施例提供一种存储设备,包括:缓存、非易失性存储介质、接收单元、获取单元和刷盘单元,非易失性存储介质包括多个卷。其中,接收单元用于,接收主机发送的多个操作请求,多个操作请求包括多个读请求和/或写请求。缓存用于,将多个操作请求存储在缓存中。获取单元用于,获取模型特征,模型特征用于表示缓存中与非易失性存储介质的第一卷对应的多个操作请求的特征。刷盘单元用于,根据模型特征对第一卷进行刷盘,以将缓存中第一卷对应的脏数据写入第一卷中。
结合第二方面,在一种可能的实现方式中,多个操作请求包括多个写请求,模型特征包括写请求随机度,写请求随机度用于表示第一卷对应的写请求的待操作位置的随机程度。刷盘单元具体用于:当写请求随机度小于第一预设值时,根据第一刷盘并发阈值对第一卷进行刷盘;当写请求随机度大于或者等于第一预设值时,根据第二刷盘并发阈值对第一卷进行刷盘;其中,第一刷盘并发阈值大于第二刷盘并发阈值。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,写请求随机度为多个写请求对应的脏数据所映射的块chunk的数量与页page的数量的比值。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,多个操作请求还包括多个读请求,模型特征还包括读请求比例,读请求比例为读请求的数量与操作请求的数量的比值。刷盘单元具体用于:当读请求比例小于第二预设值时,根据第一刷盘并发阈值对第一卷进行刷盘;当读请求比例大于或者等于第二预设值时,在脏数据聚合满一个条带时,根据第一刷盘并发阈值对第一卷进行刷盘。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,多个操作请求还包括多个读请求,模型特征还包括读请求比例,读请求比例为读请求的数量与操作请求的数量的比值。刷盘单元具体用于:当读请求比例大于或者等于第二预设值时,若第一写请求对应的待刷盘的块chunk与第一读请求对应的待读取的块chunk为同一块chunk,则优先执行第一读请求对应的读操作。在读操作执行完成后,根据第二刷盘并发阈值对第一卷进行刷盘。当读请求比例小于第二预设值时,根据第二刷盘并发阈值对第一卷进行刷盘。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,刷盘单元具体用于:当缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值大于或者等于第三预设值时,根据模型特征对第一卷进行刷盘。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,刷盘单元具体用于:根据缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值与第三预设值,确定第一卷对应的待刷盘数据量。根据待刷盘数据量和模型特征对第一卷进行刷盘。若对第一卷进行刷盘的数据量大于或者等于待刷盘数据量,且对第一卷进行刷盘的第一时长小于预设时长,则在第二时长内根据第二卷对应的多个操作请求的模型特征对第二卷进行刷盘,第二时长为预设时长与第一时长的差值。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,存储设备还包括:确定单元,用于根据待操作地址确定操作请求为第一卷对应的操作请求。
第三方面,本申请实施例提供一种存储设备,包括:一个或多个处理器和一个或多个存储器。一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,存储设备执行如第一方面任一项的中数据处理方法。
第四方面,本申请实施例提供一种计算机存储介质,包括计算机指令,当计算机指令在存储设备上运行时,使得存储设备执行如第一方面任一项中的数据处理方法。
第五方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面任一项中的数据处理方法。
其中,关于上述第二方面至第五方面的有益效果可以参见上述第一方面中的描述,这里不再赘述。
附图说明
图1为现有技术中提供的一种刷盘策略示意图;
图2为本申请实施例提供的一种存储系统示意图;
图3a为本申请实施例提供的一种存储设备的结构示意图;
图3b为本申请实施例提供的一种非易失性存储介质的分卷示意图;
图3c为本申请实施例提供的另一种存储设备的结构示意图;
图4为本申请实施例提供的一种方法流程图;
图5a为本申请实施例提供的一种写入方式示意图;
图5b为本申请实施例提供的另一种写入方式示意图;
图6为本申请实施例提供的另一种方法流程图;
图7为本申请实施例提供的另一种方法流程图;
图8为本申请实施例提供的一种刷盘策略示意图;
图9为本申请实施例提供的一种存储设备的结构示意图;
图10为本申请实施例提供的另一种存储设备的结构示意图。
具体实施方式
为了便于理解,示例的给出了部分与本申请实施例相关概念的说明以供参考。如下所示:
存储设备:用于储存信息的设备,通常是将信息数字化后再以利用电、磁或光学等方式的媒体加以存储。
缓存(cache):数据交换的缓冲区。
非易失性存储介质:掉电后数据不会丢失的存储介质,可以包括机械磁盘、闪存盘、磁带、光盘等。
缓存对象:一种数据结构,与非易失存储介质中的卷相对应,用于存储卷相关的管理数据、元数据等。
回写(write back):一种缓存技术,在回写缓存技术中,一旦数据写入缓存中,就会发送写请求已完成信号,而把数据写入非易失性存储介质上的实际操作将会延迟执行。
刷盘(destage):将缓存中的数据写入非易失性存储介质上。
脏数据(dirty data):缓存中的数据在写入非易失性存储介质之前,称为脏数据。
刷盘并发阈值:指在刷盘过程中,缓存已向非易失性存储介质下发但未收到非易失性存储介质返回的响应的写请求的数量的上限。
水位(watermark):缓存中的脏数据占阵列缓存的百分比。
独立冗余磁盘阵列(redundant arrays of independent disks,RAID):由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个磁盘上,磁盘阵列还可以利用同位检查的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新磁盘中。
条带:把连续的数据分割成相同大小的数据块,把每段数据分别写入到磁盘阵列中的不同磁盘上的方法。例如RAID5是把数据分割成4份相同大小的数据块,称条带宽度为4。
写惩罚:RAID在写操作中,会伴随着读操作,例如若非易失性存储介质由RAID5的形式构成,即包括一个校验盘和4个数据盘。假设在写操作时只更改其中一块数据盘,则在最优的情况下,需要首先读取一块数据盘和一块校验盘数据,重新计算校验数据后,再把更改后的数据盘和校验盘的数据写入非易失性存储介质。因此这种情况下1个写请求,被放大为2个读请求和2个写请求,从而引起了额外的读写开销,这种现象称为写惩罚。
满条带刷盘:由于写操作时条带未对齐,会增加写惩罚引起的额外开销,降低处理性能,如果让写操作和条带对齐,则可以直接计算校验值,然后将数据和校验写入非易失性存储介质,减小写惩罚引起的额外的读写开销,将这种对齐写的方式称为满条带刷盘。
分区:物理磁盘的一部分,相当于一个物理分隔单元。
卷:由文件系统使用的分区或分区集合。
带宽型业务:指该业务对应的写请求按照存储空间的地址顺序(例如条带中存储空间的地址顺序)进行写操作,且每个写请求对应的写操作的数据量较大。
在现有技术提供的刷盘方案中,存储设备对不同业务类型的卷采用公平的刷盘方式,从而无法合理地利用每个卷的刷盘性能,降低了整个存储设备的刷盘性能。本申请实施例提供的方法可以根据不同卷分别对应的业务特征,采用个性化的刷盘策略对不同卷进行刷盘,从而可以合理利用每个卷的刷盘性能,提高整个存储设备的刷盘性能。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
图2示出了可以应用本申请实施例的存储系统架构的简化示意图,该存储系统可以包括主机10和存储设备20。其中,主机10可以用于向存储设备20发送操作请求,该操作请求可以包括读请求和/或写请求,因而操作请求也可以称为I/O请求。主机10可以为用于提供服务的服务器,也可以是用于请求服务的计算机等。存储设备20可以用于接收主机10发送的操作请求读取或写入数据。
具体的,参见图3a,存储设备20可以包括控制器21、收发器22、缓存23和非易失性存储介质24。其中,控制器21可以用于管理和控制存储设备20的各部件执行存储相关操作。具体的,控制器21可以用于控制收发器21接收主机10发送的读请求或写请求,或者向主机10发送响应数据,例如写请求对应的响应信号或者读请求读取的数据等;控制器21可以用于控制缓存23暂存收发器21从主机10接收的操作请求;控制器21还可以用于响应于主机10发送的写请求,将写请求对应的待操作数据暂存在缓存23中,并根据刷盘机制将待操作数据写入非易失性存储介质24中;控制器21还可以用于响应于主机10发送的读请求,从非易失性存储介质24中读取读请求对应的数据。此外,存储设备20还可以包括其它部件,这里不再一一赘述。
其中,参见图3b,非易失性存储介质24在逻辑上可以划分为多个卷,例如可以包括卷A、卷B、卷C和卷D。存储设备20可以根据写请求的具体内容将缓存23中写请求对应的数据刷到相应的卷上,存储设备20还可以根据读请求的具体内容从相应的卷上读取对应的数据,并返回给主机10。
其中,存储设备20中的非易失性存储介质24可以为具有持久性存储特性的物理存储介质等。当非易失性存储介质24采用RAID时,可以提升存储设备的读写速度,提供容错功能,在任何一块磁盘出现故障的情况下都可以继续工作,不会受到故障磁盘的影响。例如,当非易失性存储介质24为RAID5类型的磁盘阵列时,磁盘阵列可以包括1块校验盘和4块数据盘;当非易失性存储介质24为RAID6类型的磁盘阵列时,磁盘阵列可以包括2块校验盘和4块数据盘等。
图3c示出了本申请实施例提供的存储设备的另一种组成示意图。如图3c所示,存储设备可以包括至少一个处理器31,存储器32、通信接口33、通信总线34。下面结合图3c对存储设备的各个构成部件进行具体的介绍:
处理器31是存储设备的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器31是一个中央处理器(central processing unit,CPU),也可以是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signalprocessor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。示例性的,在图3c中,处理器31可以包括CPU1和CPU2。
其中,处理器31可以通过运行或执行存储在存储器32内的软件程序,以及调用存储在存储器32内的数据,执行存储设备的各种功能。
在具体实现中,作为一种实施例,存储设备可以包括多个处理器,这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
存储器32可以包括缓存和非易失性存储介质。具体的,存储器32可以包括只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器32可以是独立存在,通过通信总线34与处理器31相连接。存储器32也可以和处理器31集成在一起。
其中,存储器32用于存储操作请求对应的操作数据和执行本申请方案的软件程序,并由处理器31来控制执行。
通信接口33,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。通信接口33可以包括接收单元实现接收功能,以及发送单元实现发送功能。
通信总线34,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3c中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
图3c中示出的设备结构并不构成对存储设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面将结合图2所示的存储系统以及图3a或图3c所示的存储设备,以非易失性存储介质为RAID为例,对本申请实施例的实施方式进行详细描述。
参见图4,本申请实施例提供了一种数据处理方法,该方法可以包括:
401、存储设备接收主机发送的多个操作请求,多个操作请求包括多个读请求和/或写请求。
402、存储设备将多个操作请求存储在缓存中。
在步骤401和步骤402中,存储设备可以将从主机接收到的操作请求暂存于缓存中。
403、存储设备获取模型特征,该模型特征用于表示缓存中与非易失性存储介质的第一卷对应的多个操作请求的特征。
其中,非易失性存储介质可以包括多个卷,每个卷对应的业务通过读操作和/或写操作进行实现,因而每个卷对应的读请求和/或写请求的特征与该卷的业务类型有关。例如,当写请求对应的读操作的数据量大,且多个写请求的待操作地址按存储地址的位置顺序写入时,该卷对应的可能的带宽型业务,该卷可能用于存储视频数据。第一卷可以为非易失性存储介质包括的任意一个卷。
在本申请实施例中,非易失性存储介质中的每个卷可以对应缓存中的一个缓存(cache)对象。存储设备通过缓存对象与卷的对应关系将缓存中的脏数据刷到非易失存储介质的卷中。
404、存储设备根据模型特征对第一卷进行刷盘,以将缓存中第一卷对应的脏数据写入第一卷中。
由于存储设备中第一卷对应的读请求和/或写请求的特征与第一卷的业务类型有关,因而存储设备可以根据第一卷对应的读请求和/或写请求的特征,对第一卷进行刷盘,从而将缓存中第一卷对应的脏数据写入第一卷中。
与第一卷类似,在本申请实施例中,存储设备可以根据非易失性存储介质中不同卷分别对应的读请求和/或写请求的特征,分别对不同卷进行刷盘,从而可以对每个卷采用与该卷的业务类型相匹配的个性化刷盘策略进行刷盘,因而可以充分发挥每个卷的刷盘性能,提高整个存储设备的刷盘特性。
具体的,在本申请实施例中,多个操作请求可以包括多个写请求,模型特征可以包括多个写请求对应的写请求随机度。其中,写请求随机度可以用于表示缓存中第一卷对应的写请求的待操作位置的随机程度。写请求的待操作位置是指写请求所请求的将数据写入非易失性存储介质的位置。写请求随机度可以用于表示缓存中存储的,第一卷对应的多个写请求的待操作位置的随机程度。
具体的,在一种写入方式中,参见图5a,第一卷对应的n(大于1的正整数,例如为2)个写请求可以请求将数据按照非易失性存储介质中条带对应的存储空间的地址顺序,依次将数据写入非易失性存储介质。该种情况下,将使得写请求随机度较低。例如,当第一卷对应视频业务时,第一卷对应的多个写请求通常会采用该种写入方式,以请求将内容连续的视频数据写入第一卷。
在另一种写入方式中,参见图5b,第一卷对应的n个(例如为2)写请求可以请求将数据随机写入非易失性存储介质的任意位置,该种情况将使得写请求随机度较高。例如,当第一卷对应的业务类型使得第一卷用于存储不同用户的不同数据信息时,第一卷对应的多个写请求通常会采用该种写入方式,以请求将不关联的或关联性较差的数据写入第一卷。
可见,存储设备可以根据写请求随机度,获知到第一卷对应的业务类型和存储内容等的相关特性。因而,当第一卷对应的多个操作请求的模型特征包括写请求随机度时,存储设备可以根据第一卷对应的多个写请求的写请求随机度,将缓存中第一卷对应的脏数据写入第一卷中。其中,缓存中第一卷对应的脏数据是指,缓存中存储的待写入非易失性存储介质的第一卷中的数据。
这样,存储设备可以根据每个卷分别对应的写请求随机度,获知每个卷的业务类型和存储内容的特性,从而采用个性化的方式对不同卷进行刷盘,以合理利用每个卷的刷盘性能,从而提高整个存储设备的刷盘性能。
具体的,在本申请实施例中,操作请求中可以携带有待操作地址。参见图6,在步骤403之前,该方法还可以包括:
405、存储设备根据待操作地址确定操作请求为第一卷对应的操作请求。
当操作请求为写请求时,待操作地址可以是待写入地址,即待写入数据对应的待写入非易失性存储介质中的地址,例如具体可以是待写入非易失性存储介质中的起始地址。因而,当存储设备从主机接收到的写请求中的待写入地址在第一卷对应的存储空间范围内时,存储设备可以确定该写请求为第一卷对应的写请求。
具体的,由于缓存对象与卷一一对应,因而存储设备可以根据缓存中写请求中的待写入地址,以缓存对象为单位统计写请求,这些写请求同时也与缓存对象对应的卷相对应。
此外,当操作请求为写请求时,写请求中还可以包括待写入数据的具体内容。
具体的,非易失性存储介质的每个卷中可以包括多个块chunk,每个块可以包括多个页page。例如,一个chunk可以为256KB(字节),一个page可以为4KB。
在一种可能的实现方式中,写请求随机度为第一卷对应的多个写请求对应的脏数据所映射的chunk的数量与page的数量的比值。其中,第一卷对应的多个写请求对应的脏数据所映射的chunk的数量是指,该多个写请求对应的待写入数据待写入第一卷中的chunk的数量;第一卷对应的多个写请求对应的脏数据所映射的page的数量是指,该多个写请求对应的待写入数据待写入第一卷中的page的数量。当写请求中包括待写入地址和待写入数据的具体内容时,存储设备可以根据待写入地址和待写入数据的具体内容的大小,确定写请求对应的脏数据映射的page的数量和chunk的数量,进而可以确定chunk的数量与page的数量的比值,从而可以确定写请求随机度。
需要说明的是,由于一个chunk包括多个page,因而第一卷对应的多个写请求对应的脏数据所映射的chunk的数量与page的数量的比值小于或者等于1。
当模型特征包括写请求随机度时,上述步骤404具体可以包括:
4041、当写请求随机度小于第一预设值时,存储设备根据第一刷盘并发阈值对第一卷进行刷盘。
其中,第一预设值可以小于1。第一预设值的具体大小可以根据实际需要进行设置,这里将不予限制。示例性的,第一预设值可以为1/4。第一刷盘并发阈值可以根据实际需要进行设定,例如具体可以为200(个写请求)。
当写请求随机度小于第一预设值时,第一卷对应的多个写请求对应的脏数据所映射的chunk的数量与page的数量的比值较小,第一卷对应的多个写请求对应的脏数据所映射的page分布在较少数量的chunk上,第一卷对应的多个写请求对应的脏数据按照条带顺序写入第一卷的可能性较大,第一卷对应的多个写请求对应的脏数据随机写入第一卷任意位置的可能性较小,因而写请求随机度较小。此时,存储设备可以根据第一刷盘并发阈值对第一卷进行刷盘,从而将缓存中第一卷对应的部分脏数据写入第一卷中。
4042、当写请求随机度大于或者等于第一预设值时,存储设备根据第二刷盘并发阈值对第一卷进行刷盘。
当写请求随机度大于或者等于第一预设值时,第一卷对应的多个写请求对应的脏数据所映射的chunk的数量与page的数量的比值较大,第一卷对应的多个写请求对应的脏数据所映射的page分布在较多数量的chunk上,第一卷对应的多个写请求对应的脏数据随机写入第一卷任意位置的可能性较大,因而写请求随机度较大。此时,存储设备可以根据第二刷盘并发阈值对第一卷进行刷盘,从而将缓存中第一卷对应的部分脏数据写入第一卷中。
其中,第二刷盘并发阈值可以根据实际需要进行设定,例如可以为100。当第二刷盘并发阈值为100时,若缓存已向非易失性存储介质下发但未收到非易失性存储介质返回的响应的写请求的数量大于或者等于第二刷盘并发阈值100,则缓存不能继续向非易失性存储介质的第一卷下发写请求;当缓存已向非易失性存储介质下发但未收到非易失性存储介质返回的响应的写请求的数量小于第二刷盘并发阈值100时,缓存可以继续向第一卷下发写请求。
其中,第一刷盘并发阈值大于第二刷盘并发阈值。也就是说,与写请求随机度较大时相比,当写请求随机度较小时,存储设备可以采用更大的刷盘并发阈值进行刷盘。
具体的,当写请求随机度较小时,第一卷对应的多个写请求对应的脏数据随机写入第一卷的可能性较小,顺序写入第一卷的可能性较大,第一卷对应的多个写请求对应的脏数据是关联内容(例如视频数据)的可能性较大,第一卷对应的多个写请求的业务为带宽型业务的可能性也较大,此时需要写入第一卷的数据量可能较大持续时间可能较长,存储设备的写任务压力较大,因而可以采用更大的刷盘并发阈值进行刷盘,从而尽快将第一卷对应的脏数据刷到非易失性存储介质中。
当写请求随机度较大时,第一卷对应的多个写请求对应的脏数据随机写入第一卷的可能性较大,顺序写入第一卷的可能性较小,第一卷对应的多个写请求对应的脏数据是关联内容(例如视频数据)的可能性较小,第一卷对应的多个写请求的业务为带宽型业务的可能性也较小,此时需要写入第一卷的数据量和持续时间可能不是很长,存储设备的写任务压力不是特别大,因而可以采用较小的刷盘并发阈值进行刷盘。
由步骤4041和步骤4042可知,存储设备可以根据不同卷对应的多个写请求所对应的写请求随机度的大小,确定不同卷对应的刷盘并发阈值的大小,从而根据不同的刷盘并发阈值采用不同的刷盘策略对不同卷进行刷盘。
进一步地,步骤401和步骤403中的多个操作请求还可以包括多个读请求,与第一卷对应的多个操作请求的模型特征还可以包括读请求比例,读请求比例为缓存中第一卷对应的读请求的数量,与缓存中第一卷对应的操作请求的数量的比值。其中,缓存中第一卷对应的操作请求的数量包括,缓存中第一卷对应的写请求的数量与缓存中第一卷对应的读请求的数量之和。即:
读请求比例=读请求的数量/(读请求的数量+写请求的数量)×100%
当步骤401和步骤403中的多个操作请求还可以包括至少一个读请求时,读请求中也可以携带有待操作地址,该待操作地址为待读取地址,即读请求对应的从非易失性存储介质的第一卷上待读取数据的地址。存储地址可以根据缓存中读请求中的待读取地址,确定该读请求是否为第一卷对应的操作请求。此外,读请求中还可以携带有待读取数据的大小。
参见图7,当模型特征还包括读请求比例时,上述步骤4041具体可以包括:
501、当读请求比例小于第二预设值时,存储设备根据第一刷盘并发阈值对第一卷进行刷盘。
其中,第二预设值的数值较小,可以根据实际需要进行设定,本申请实施例不予具体限制。示例性的,第二预设值可以为10%。
在步骤501中,当读请求比例小于第二预设值时,可以说明第一卷对应的读请求的数量很少,第一卷对应的写请求的数量很多;又由于在步骤4041的情况下,当写请求随机度较小时,第一卷对应的多个写请求对应的脏数据随机写入第一卷的可能性较小,顺序写入第一卷的可能性较大,第一卷对应的多个写请求对应的脏数据是关联内容(例如视频数据)的可能性较大,第一卷对应的多个写请求的业务为带宽型业务的可能性也较大,此时需要写入第一卷的数据量可能较大持续时间可能较长,存储设备的写任务压力很大,因而可以采用较大的刷盘并发阈值对第一卷进行刷盘,从而尽快将第一卷对应的脏数据刷到非易失性存储介质中。
其中,步骤501中描述的刷盘策略可以称为尽快刷盘策略。
502、当读请求比例大于或者等于第二预设值时,存储设备在脏数据聚合满一个条带时,根据第一刷盘并发阈值对第一卷进行刷盘。
其中,当非易失性存储介质采用如图5a或图5b所示的RAID 5时,通常会出现写惩罚现象,而在写操作时,若条带未对齐,则会增加写惩罚引起的额外开销。关于写惩罚的描述可以参见实施例开头的描述。举例来说,参见图5a,当第一卷对应的写请求1请求在条带1中的数据盘1写入数据,写请求2请求在条带2中的数据盘1写入数据时,存储设备读取条带1中的数据盘1-数据盘4以及校验盘并重新计算校验数据,而后把写请求1对应的数据写入条带1中的数据盘1,并把重新计算后的校验数据写入校验盘;并且,存储设备读取条带2中的数据盘1-数据盘4以及校验盘并重新计算校验数据,而后把写请求2对应的数据写入条带2中的数据盘1,并把重新计算后的校验数据写入校验盘。在一种情况下,若缓存中已经保存有条带1的数据盘2-数据盘4,则存储设备读取条带1中的数据盘1和校验盘并重新计算校验数据,而后把写请求1对应的数据写入条带1中的数据盘1,并把重新计算后的校验数据写入校验盘;若缓存中已经保存有条带2的数据盘2-数据盘4,则存储设备读取条带2中的数据盘1和校验盘并重新计算校验数据,而后把写请求2对应的数据写入条带2中的数据盘1,并把重新计算后的校验数据写入校验盘。在该种场景下,写惩罚带来的额外的读和写的开销较大,从而增加了非易失性存储介质的压力,减少了非易失性存储介质的寿命。
参见图5b,若第一卷对应的写请求1请求和写请求2都请求在条带1中的数据盘1写入数据,则存储设备读取条带1中的数据盘1-数据盘4以及校验盘并重新计算校验数据,而后把写请求1请求和写请求2对应的数据写入条带1中的数据盘1,并把重新计算后的校验数据写入校验盘。在一种情况下,若缓存中已经保存有条带1的数据盘2-数据盘4,则存储设备读取条带1中的数据盘1和校验盘并重新计算校验数据,而后把写请求1请求和写请求2对应的数据写入条带1中的数据盘1,并把重新计算后的校验数据写入校验盘。在该种场景下,写惩罚引起的额外的读和写的开销较小。
可见,当第一卷对应的以上2个写请求对应的脏数据在同一个条带内时,可以减少写惩罚引起的额外的读写开销,减少存储设备的读写次数,从而提高存储设备的处理性能。容易理解的是,当第一卷对应的多个写请求对应的脏数据在尽量少的条带内时,可以减少写惩罚引起的额外的读写开销,从而提高存储设备的性能。
因此,在步骤502中,当读请求比例大于或者等于第二预设值时,可以说明第一卷对应的读请求的数量较多,第一卷对应的写请求的数量较多但比步骤501中写请求的数量少,第一卷对应的写任务压力较大但比步骤501中的写任务的压力小;又由于在步骤4041的情况下,写请求随机度较小,第一卷对应的多个写请求对应的脏数据按照条带顺序写入第一卷的可能性较大,因而存储设备可以等到第一卷对应的多个写请求对应的脏数据聚合满一个条带时,再根据数值较大的第一刷盘并发阈值对第一卷进行刷盘,从而可以通过满条带刷盘减小对第一卷进行刷盘时的条带数量,降低写惩罚引起的额外开销,提高存储设备的处理性能,并较快地将第一卷对应的脏数据刷到非易失性存储介质的第一卷上。
其中,步骤502中描述的刷盘策略可以称为满条带刷盘策略。
参见图7,当模型特征还包括读请求比例时,上述步骤4042具体可以包括:
503、当读请求比例大于或者等于第二预设值时,若第一写请求对应的待刷盘的块chunk与第一读请求对应的待读取的块chunk为同一块chunk,则存储设备优先执行第一读请求对应的读操作。
504、在读操作执行完成后,存储设备根据第二刷盘并发阈值对第一卷进行刷盘。
由于在步骤4042的情况下,写请求随机度较大,第一卷对应的多个写请求对应的脏数据随机写入第一卷的可能性较大,顺序写入第一卷的可能性较小,第一卷对应的多个写请求对应的脏数据是关联内容(例如视频数据)的可能性较小,第一卷对应的多个写请求的业务为带宽型业务的可能性也较小,此时需要写入第一卷的数据量和持续时间可能不是很长,存储设备的写任务压力不是特别大,因而在步骤503-504中,存储设备可以采用较小的刷盘并发阈值进行刷盘。
又由于在步骤503中,当读请求比例大于或者等于第二预设值时,可以说明第一卷对应的读请求的数量较多,而读请求通常是与主机的前台操作直接关联的操作,例如主机前台需要读取用户信息,需要播放视频等时,需要通过读请求执行读操作,因而执行读操作的时延大小直接影响了主机用户的使用体验。
因此,当一个写请求对应的待刷盘的chunk(即待写入数据的chunk)与一个读请求对应的待读取的chunk(即待读取数据的chunk)为同一chunk时,读请求和写请求发生冲突,存储设备可以优先执行该读请求对应的读操作,从而及时响应读请求,降低读操作的执行时延,保证主机业务的实时性,提高主机用户的使用体验。在读操作执行完成后,存储设备可以根据较小的第二刷盘并发阈值对第一卷进行刷盘。
其中,步骤503和步骤504中描述的刷盘策略可以称为读请求优先策略。
505、当读请求比例小于第二预设值时,存储设备根据第二刷盘并发阈值对第一卷进行刷盘。
在步骤505中,当读请求比例小于第二预设值时,可以说明第一卷对应的读请求的数量很少,对主机前台的时延性影响较小;又由于在步骤4042的情况下,写请求随机度较大,第一卷对应的多个写请求对应的脏数据随机写入第一卷的可能性较大,顺序写入第一卷的可能性较小,第一卷对应的多个写请求对应的脏数据是关联内容(例如视频数据)的可能性较小,第一卷对应的多个写请求的业务为带宽型业务的可能性也较小,此时需要写入第一卷的数据量可能不是特别大,持续时间可能不是特别长,存储设备的写任务压力不是特别大,因而可以采用较小的第二刷盘并发阈值进行刷盘。
其中,步骤505中描述的刷盘策略可以称为缓慢刷盘策略。
另外,上述步骤501-505描述的刷盘策略还可以参见如下表1:
表1
写请求随机度 读请求比例 刷盘策略
小于第一预设值 大于或者等于第二预设值 满条带刷盘策略
小于第一预设值 小于第二预设值 尽快刷盘策略
大于或者等于第一预设值 大于或者等于第二预设值 读请求优先策略
大于或者等于第一预设值 小于第二预设值 缓慢刷盘策略
由上述步骤501-505可知,存储设备还可以根据每个卷分别对应的读请求比例,获知每个卷的业务类型和存储内容的特性,从而采用个性化的方式对不同卷进行刷盘,以合理利用每个卷的刷盘性能,从而提高整个存储设备的刷盘性能。
在本申请实施例中,上述步骤404具体可以包括:
4040、当缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值大于或者等于第三预设值时,存储设备根据模型特征对第一卷进行刷盘。
其中,第一卷对应的脏数据在缓存中对应的预设阈值是指缓存中第一卷对应的脏数据的配额,即第一卷所允许的存储在缓存中的脏数据的最大容量。示例性的,预设阈值具体可以是一个容量值,例如1GB(字节);预设阈值也可以是相对于缓存的存储空间大小的一个比值,例如15%。第三预设值的大小可以根据实际需要进行设定,本申请实施例不予具体限定。示例性的,第三预设值可以为20%。
参见图8,当缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值(即图8中的实际比值)大于或者等于第三预设值时,可以说明缓存中第一卷对应的脏数据的数据量较大,占用的缓存空间较多,因而需要刷到非易失性存储介质的第一卷上,从而释放缓存空间以存储从主机新接收的操作请求和待操作数据。举例来说,当缓存中第一卷对应的脏数据的数据量为300MB,第一卷对应的脏数据在缓存中对应的预设阈值为1GB,第三预设值为20%时,第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值大于第三预设值,存储设备可以根据模型特征对第一卷进行刷盘。
其中,需要说明的是,存储设备中的不同卷对应的脏数据在缓存中对应的预设阈值可以不同,也可以相同,本申请实施例不作具体限定。
在上述步骤4040中,当缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值大于或者等于第三预设值时,存储设备根据模型特征对第一卷进行刷盘具体可以包括:
601、存储设备根据缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值与第三预设值,确定第一卷对应的待刷盘数据量。
602、存储设备根据待刷盘数据量和模型特征对第一卷进行刷盘。
603、若存储设备对第一卷进行刷盘的数据量大于或者等于待刷盘数据量,且对第一卷进行刷盘的第一时长小于预设时长,则在第二时长内根据第二卷对应的多个操作请求的模型特征对第二卷进行刷盘,第二时长为预设时长与第一时长的差值。
604、若存储设备对第一卷进行刷盘的数据量小于待刷盘数据量,且对第一卷进行刷盘的第一时长大于或者等于预设时长,则停止对第一卷进行刷盘。
在本申请实施例中,存储设备可以采用轮询方式对非易失性存储介质中的每个卷进行刷盘,当轮询到第一卷时,若缓存中该卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值大于或者等于第三预设值,则存储设备可以根据最近最久未使用算法或排序算法等从缓存中选择第一卷对应的脏数据进行刷盘,且刷盘时长可以为预设时长,例如预设时长可以为5ms(毫秒)。
在具体实施过程中,存储设备可以在步骤601-602中,根据缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值与第三预设值,确定第一卷对应的待刷盘数据量,从而根据待刷盘数据量和第一卷对应的模型特征对第一卷进行刷盘。在一种可能的实现方式中,第一卷对应的待刷盘数据量可以为第一卷对应的脏数据的数据量减去缓存空间大小与第三预设值的乘积后得到的差值。
对于存储设备中的每个卷,存储设备都可以准确计算该卷对应的待刷盘数据量,从而根据该卷对应的待刷盘数据量,对该卷进行个性化刷盘。
其中,当轮询到第一卷进行刷盘操作时,若在第一时长结束时,存储设备根据第一卷对应的模型特征进行刷盘的数据量小于第一卷对应的待刷盘数据量,则存储设备可以在步骤604中停止对第一卷进行刷盘。而后,存储设备可以根据轮询机制对轮询到的第三卷进行刷盘,第三卷可能与第一卷相同也可能与第一卷不同。
当轮询到第一卷进行刷盘操作时,若存储设备对第一卷进行刷盘的数据量大于或者等于待刷盘数据量,即缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值已下降为小于第三预设值,且对第一卷进行刷盘的第一时长小于预设时长,则存储设备可以在预设时长减去第一时长后剩余的第二时长内,根据第二卷对应的多个操作请求的模型特征对第二卷进行刷盘,从而在预设时长内尽量将缓存中更多的脏数据刷到非易失性存储介质中。其中,缓存中第二卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值大于或者等于第三预设值。这样,可以使得存储设备在每次刷盘时,充分利用预设时长对应的时间段对存储设备中的至少一个卷中的脏数据进行刷盘,从而提供存储设备的整体刷盘性能。
值得注意的是,步骤4040和步骤602中,存储设备根据模型特征对第一卷进行刷盘的具体实施方式可以通过步骤4041-4042,以及步骤501-505实现。存储设备在步骤603中根据第二卷对应的多个操作请求的模型特征对第二卷进行刷盘的具体实施方式,与存储设备根据模型特征对第一卷进行刷盘的具体实施方式类似,这里不再赘述。
进一步地,本申请实施例提供的方法还可以包括:
406、当缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值大于或者等于第四预设值时,存储设备根据第三刷盘对第一卷进行刷盘。
其中,第四预设值大于第三预设值,第三刷盘并发阈值大于第二刷盘并发阈值,且第三刷盘并发阈值大于或者等于第一刷盘并发阈值。具体的,第四预设值可以较大,且大于第三预设值,具体可以根据实际需要进行设定。例如,当第三预设值为20%时,第四预设值可以为80%。
当缓存中第一卷对应的脏数据的数据量与第一卷对应的脏数据在缓存中对应的预设阈值的比值大于或者等于第四预设值时,可以说明第一卷对应的脏数据占用的缓存空间很大,需要通过较大的第三刷盘并发阈值,尽快将第一卷对应的脏数据刷到非易失性存储介质中,
此外,本申请以上实施例主要是以第一卷为例进行说明的,对于非易失性存储介质中的其它卷的数量处理方式与第一卷对应的处理方式类似,这里不再赘述。
并且,需要说明的是,非易失性存储介质中的不同卷对应的第一预设值、第二预设值、第三预设值和第四预设值的具体数值可以相同也可以不同,本申请实施例对此不予具体限定。
另外,本申请实施例所适用的存储系统,可以是具有高性能、高可靠性且易扩展的企业级存储系统。
上述主要从存储设备的角度对本申请实施例提供的方案进行了介绍。可以理解的是,存储设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对存储设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中涉及的存储设备70的一种可能的组成示意图,如图9所示,该存储设备70可以包括:缓存71、非易失性存储介质72、接收单元73、获取单元74、刷盘单元75和确定单元76,非易失性存储介质包括多个卷。
其中,接收单元73可以用于,接收主机发送的多个操作请求,多个操作请求包括多个读请求和/或写请求。缓存71可以用于,将多个操作请求存储在缓存中。获取单元74可以用于,获取模型特征,模型特征用于表示缓存中与非易失性存储介质72的第一卷对应的多个操作请求的特征。刷盘单元75可以用于,根据模型特征对第一卷进行刷盘,以将缓存中第一卷对应的脏数据写入第一卷中。确定单元可以用于根据待操作地址确定操作请求为第一卷对应的操作请求。
此外,刷盘单元75还可以用于支持存储设备70执行上述方法实施例中的步骤4041-4042,或步骤501-505,步骤406,步骤4040,以及步骤701-步骤704,和/或用于本文所描述的技术的其它过程。
本申请实施例提供的存储设备,用于执行上述数据处理方法,因此可以达到与上述数据处理方法相同的效果。
在采用集成的单元的情况下,图10示出了上述实施例中所涉及的存储设备的另一种可能的组成示意图。如图10所示,存储设备80可以包括:处理模块81、通信模块82和存储模块83。
其中,处理模块81用于对存储设备80的动作进行控制管理,例如,处理模块81用于支持存储设备40执行图9所示的获取单元74、刷盘单元75和确定单元76的操作,和/或用于本文所描述的技术的其它过程。通信模块82用于支持存储设备80执行图9所示的接收单元73的功能。存储模块43可以用于执行图9所示的缓存71和非易失性存储器72的操作,以及存储存储设备80的程序代码和数据。
其中,处理模块81可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,微处理器(digital signal processor,DSP)和微处理器的组合等等。通信模块82可以是收发器、收发电路或通信接口等。
当处理模块81为处理器,通信模块82为通信接口,存储模块83为存储器时,存储设备的结构示意图可以如图3c所示。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (17)

1.一种数据处理方法,应用于存储设备,所述存储设备包括缓存和非易失性存储介质,所述非易失性存储介质包括多个卷,其特征在于,所述方法包括:
接收主机发送的多个操作请求,所述多个操作请求包括多个读请求和/或写请求;
将所述多个操作请求存储在所述缓存中;
获取模型特征,所述模型特征用于表示所述缓存中与所述非易失性存储介质的第一卷对应的多个操作请求的特征;
根据所述模型特征对所述第一卷进行刷盘,以将所述缓存中所述第一卷对应的脏数据写入所述第一卷中;
根据所述非易失性存储介质中不同卷分别对应的读请求和/或写请求的特征,对每个卷采用与所述卷的业务类型相匹配的个性化刷盘策略进行刷盘。
2.根据权利要求1所述的方法,其特征在于,所述多个操作请求包括多个写请求,所述模型特征包括写请求随机度,所述写请求随机度用于表示所述第一卷对应的写请求的待操作位置的随机程度,所述根据所述模型特征对所述第一卷进行刷盘包括:
当所述写请求随机度小于所述第一预设值时,根据第一刷盘并发阈值对所述第一卷进行刷盘;
当所述写请求随机度大于或者等于第一预设值时,根据第二刷盘并发阈值对所述第一卷进行刷盘;
其中,所述第一刷盘并发阈值大于所述第二刷盘并发阈值。
3.根据权利要求2所述的方法,其特征在于,所述写请求随机度为所述多个写请求对应的脏数据所映射的块chunk的数量与页page的数量的比值。
4.根据权利要求2或3所述的方法,其特征在于,所述多个操作请求还包括多个读请求,所述模型特征还包括读请求比例,所述读请求比例为所述读请求的数量与所述操作请求的数量的比值,所述根据第一刷盘并发阈值对所述第一卷进行刷盘包括:
当所述读请求比例小于第二预设值时,根据所述第一刷盘并发阈值对所述第一卷进行刷盘;
当所述读请求比例大于或者等于所述第二预设值时,在所述脏数据聚合满一个条带时,根据所述第一刷盘并发阈值对所述第一卷进行刷盘。
5.根据权利要求2或3所述的方法,其特征在于,所述多个操作请求还包括多个读请求,所述模型特征还包括读请求比例,所述读请求比例为所述读请求的数量与所述操作请求的数量的比值,所述根据第二刷盘并发阈值对所述第一卷进行刷盘包括:
当所述读请求比例大于或者等于第二预设值时,若第一写请求对应的待刷盘的块chunk与第一读请求对应的待读取的块chunk为同一块chunk,则优先执行第一读请求对应的读操作;
在所述读操作执行完成后,根据所述第二刷盘并发阈值对所述第一卷进行刷盘;
当所述读请求比例小于所述第二预设值时,根据所述第二刷盘并发阈值对所述第一卷进行刷盘。
6.根据权利要求1所述的方法,其特征在于,所述根据所述模型特征对所述第一卷进行刷盘包括:
当所述缓存中所述第一卷对应的脏数据的数据量与所述第一卷对应的脏数据在所述缓存中对应的预设阈值的比值大于或者等于第三预设值时,根据所述模型特征对所述第一卷进行刷盘。
7.根据权利要求6所述的方法,其特征在于,所述根据所述模型特征对所述第一卷进行刷盘包括:
根据所述缓存中所述第一卷对应的脏数据的数据量与所述第一卷对应的脏数据在所述缓存中对应的预设阈值的比值与所述第三预设值,确定所述第一卷对应的待刷盘数据量;
根据所述待刷盘数据量和所述模型特征对所述第一卷进行刷盘;
若对所述第一卷进行刷盘的数据量大于或者等于所述待刷盘数据量,且对所述第一卷进行刷盘的第一时长小于预设时长,则在第二时长内根据第二卷对应的多个操作请求的模型特征对所述第二卷进行刷盘,所述第二时长为所述预设时长与所述第一时长的差值;
若对所述第一卷进行刷盘的数据量小于所述待刷盘数据量,且对所述第一卷进行刷盘的所述第一时长大于或者等于所述预设时长,则停止对所述第一卷进行刷盘。
8.根据权利要求1所述的方法,其特征在于,所述操作请求中携带有待操作地址,在所述获取模型特征之前,所述方法还包括:
根据所述待操作地址确定所述操作请求为所述第一卷对应的操作请求。
9.一种存储设备,其特征在于,包括:缓存、非易失性存储介质、接收单元、获取单元和刷盘单元,所述非易失性存储介质包括多个卷;
所述接收单元用于,接收主机发送的多个操作请求,所述多个操作请求包括多个读请求和/或写请求;
所述缓存用于,将所述多个操作请求存储在所述缓存中;
所述获取单元用于,获取模型特征,所述模型特征用于表示所述缓存中与所述非易失性存储介质的第一卷对应的多个操作请求的特征;
所述刷盘单元用于,根据所述模型特征对所述第一卷进行刷盘,以将所述缓存中所述第一卷对应的脏数据写入所述第一卷中;
所述刷盘单元还用于,根据所述非易失性存储介质中不同卷分别对应的读请求和/或写请求的特征,对每个卷采用与所述卷的业务类型相匹配的个性化刷盘策略进行刷盘。
10.根据权利要求9所述的存储设备,其特征在于,所述多个操作请求包括多个写请求,所述模型特征包括写请求随机度,所述写请求随机度用于表示所述第一卷对应的写请求的待操作位置的随机程度,所述刷盘单元具体用于:
当所述写请求随机度小于所述第一预设值时,根据第一刷盘并发阈值对所述第一卷进行刷盘;
当所述写请求随机度大于或者等于第一预设值时,根据第二刷盘并发阈值对所述第一卷进行刷盘;
其中,所述第一刷盘并发阈值大于所述第二刷盘并发阈值。
11.根据权利要求10所述的存储设备,其特征在于,所述写请求随机度为所述多个写请求对应的脏数据所映射的块chunk的数量与页page的数量的比值。
12.根据权利要求10或11所述的存储设备,其特征在于,所述多个操作请求还包括多个读请求,所述模型特征还包括读请求比例,所述读请求比例为所述读请求的数量与所述操作请求的数量的比值,所述刷盘单元具体用于:
当所述读请求比例小于第二预设值时,根据所述第一刷盘并发阈值对所述第一卷进行刷盘;
当所述读请求比例大于或者等于所述第二预设值时,在所述脏数据聚合满一个条带时,根据所述第一刷盘并发阈值对所述第一卷进行刷盘。
13.根据权利要求10或11所述的存储设备,其特征在于,所述多个操作请求还包括多个读请求,所述模型特征还包括读请求比例,所述读请求比例为所述读请求的数量与所述操作请求的数量的比值,所述刷盘单元具体用于:
当所述读请求比例大于或者等于第二预设值时,若第一写请求对应的待刷盘的块chunk与第一读请求对应的待读取的块chunk为同一块chunk,则优先执行第一读请求对应的读操作;
在所述读操作执行完成后,根据所述第二刷盘并发阈值对所述第一卷进行刷盘;
当所述读请求比例小于所述第二预设值时,根据所述第二刷盘并发阈值对所述第一卷进行刷盘。
14.根据权利要求9所述的存储设备,其特征在于,所述刷盘单元具体用于:
当所述缓存中所述第一卷对应的脏数据的数据量与所述第一卷对应的脏数据在所述缓存中对应的预设阈值的比值大于或者等于第三预设值时,根据所述模型特征对所述第一卷进行刷盘。
15.根据权利要求14所述的存储设备,其特征在于,所述刷盘单元具体用于:
根据所述缓存中所述第一卷对应的脏数据的数据量与所述第一卷对应的脏数据在所述缓存中对应的预设阈值的比值与所述第三预设值,确定所述第一卷对应的待刷盘数据量;
根据所述待刷盘数据量和所述模型特征对所述第一卷进行刷盘;
若对所述第一卷进行刷盘的数据量大于或者等于所述待刷盘数据量,且对所述第一卷进行刷盘的第一时长小于预设时长,则在第二时长内根据第二卷对应的多个操作请求的模型特征对所述第二卷进行刷盘,所述第二时长为所述预设时长与所述第一时长的差值;
若对所述第一卷进行刷盘的数据量小于所述待刷盘数据量,且对所述第一卷进行刷盘的所述第一时长大于或者等于所述预设时长,则停止对所述第一卷进行刷盘。
16.根据权利要求9所述的存储设备,其特征在于,所述存储设备还包括:
确定单元,用于根据待操作地址确定所述操作请求为所述第一卷对应的操作请求。
17.一种存储设备,其特征在于,包括:一个或多个处理器和一个或多个存储器;
所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,电子设备执行如权利要求1-8任一项所述的数据处理方法。
CN201711107599.9A 2017-11-10 2017-11-10 一种数据处理方法及设备 Active CN109783000B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211006165.0A CN115543187A (zh) 2017-11-10 2017-11-10 一种数据处理方法及设备
CN201711107599.9A CN109783000B (zh) 2017-11-10 2017-11-10 一种数据处理方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711107599.9A CN109783000B (zh) 2017-11-10 2017-11-10 一种数据处理方法及设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211006165.0A Division CN115543187A (zh) 2017-11-10 2017-11-10 一种数据处理方法及设备

Publications (2)

Publication Number Publication Date
CN109783000A CN109783000A (zh) 2019-05-21
CN109783000B true CN109783000B (zh) 2022-08-26

Family

ID=66485008

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202211006165.0A Pending CN115543187A (zh) 2017-11-10 2017-11-10 一种数据处理方法及设备
CN201711107599.9A Active CN109783000B (zh) 2017-11-10 2017-11-10 一种数据处理方法及设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202211006165.0A Pending CN115543187A (zh) 2017-11-10 2017-11-10 一种数据处理方法及设备

Country Status (1)

Country Link
CN (2) CN115543187A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111399765B (zh) * 2019-12-31 2022-11-01 杭州海康威视系统技术有限公司 数据处理方法、装置、电子设备及可读存储介质
CN112905345B (zh) * 2021-02-23 2024-04-05 深圳市网心科技有限公司 任务调配方法、分布式存储系统、服务器
CN116880776B (zh) * 2023-09-06 2023-11-17 上海凯翔信息科技有限公司 一种存储数据的数据处理系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761051A (zh) * 2013-12-17 2014-04-30 北京同有飞骥科技股份有限公司 一种基于持续数据多输入输出流并发写入性能优化方法
CN103927127A (zh) * 2013-01-03 2014-07-16 三星电子株式会社 可重新配置存储装置
CN105808154A (zh) * 2014-12-31 2016-07-27 北京神州云科数据技术有限公司 基于位图的双控制器的高速缓冲存储器回写方法及装置
CN106033320A (zh) * 2015-03-11 2016-10-19 中兴通讯股份有限公司 高性能廉价磁盘冗余阵列raid机制的处理方法及装置
CN107015763A (zh) * 2017-03-03 2017-08-04 北京中存超为科技有限公司 混合存储系统中ssd管理方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938641B2 (en) * 2012-09-27 2015-01-20 Intel Corporation Method and apparatus for synchronizing storage volumes
US9201799B2 (en) * 2013-06-03 2015-12-01 Samsung Electronics Co., Ltd. Method for disk defrag handling in solid state drive caching environment
CN103761058B (zh) * 2014-01-23 2016-08-17 天津中科蓝鲸信息技术有限公司 Raid1和raid4混合结构网络存储系统及方法
US20150302903A1 (en) * 2014-04-21 2015-10-22 Qualcomm Incorporated System and method for deep coalescing memory management in a portable computing device
CN104391653A (zh) * 2014-10-31 2015-03-04 山东超越数控电子有限公司 一种基于数据块的高速缓存设计方法
CN105677236B (zh) * 2015-12-29 2018-10-02 华为技术有限公司 一种存储设备及其存储数据的方法
CN105740170B (zh) * 2016-01-22 2020-12-04 浪潮(北京)电子信息产业有限公司 一种缓存脏页刷写方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927127A (zh) * 2013-01-03 2014-07-16 三星电子株式会社 可重新配置存储装置
CN103761051A (zh) * 2013-12-17 2014-04-30 北京同有飞骥科技股份有限公司 一种基于持续数据多输入输出流并发写入性能优化方法
CN105808154A (zh) * 2014-12-31 2016-07-27 北京神州云科数据技术有限公司 基于位图的双控制器的高速缓冲存储器回写方法及装置
CN106033320A (zh) * 2015-03-11 2016-10-19 中兴通讯股份有限公司 高性能廉价磁盘冗余阵列raid机制的处理方法及装置
CN107015763A (zh) * 2017-03-03 2017-08-04 北京中存超为科技有限公司 混合存储系统中ssd管理方法及装置

Also Published As

Publication number Publication date
CN109783000A (zh) 2019-05-21
CN115543187A (zh) 2022-12-30

Similar Documents

Publication Publication Date Title
CN103970688B (zh) 缩短数据存储系统中写入等待时间的方法和系统
US9489148B2 (en) Selecting between non-volatile memory units having different minimum addressable data unit sizes
US10860494B2 (en) Flushing pages from solid-state storage device
US9047200B2 (en) Dynamic redundancy mapping of cache data in flash-based caching systems
WO2013175529A1 (en) Storage system and storage control method for using storage area based on secondary storage as cache area
US20130145095A1 (en) Melthod and system for integrating the functions of a cache system with a storage tiering system
US11169927B2 (en) Efficient cache management
US11093410B2 (en) Cache management method, storage system and computer program product
CN106648469B (zh) 一种缓存数据处理方法、装置和存储控制器
CN105260128B (zh) 一种将数据写入存储设备的方法及存储设备
CN106970765B (zh) 数据存储方法及装置
CN109783000B (zh) 一种数据处理方法及设备
US10180792B1 (en) Cache management in data storage systems
CN106873903B (zh) 数据存储方法及装置
CN115639961A (zh) 数据写入方法、存储系统及服务器
CN108369575A (zh) 电子存储系统
CN111857540A (zh) 数据存取方法、装置和计算机程序产品
US10268594B2 (en) Implementing paging device selection based on wear-level data
CN111007988B (zh) 一种raid内部磨损均衡方法、系统、终端及存储介质
CN112015343A (zh) 存储卷的缓存空间管理方法、装置及电子设备
CN104899158A (zh) 访存优化方法和装置
WO2023065654A1 (zh) 一种数据写入方法以及相关设备
CN116339630A (zh) 一种raid缓存数据快速落盘的方法、系统、设备和存储介质
CN115904795A (zh) 存储系统中的数据存储方法及装置
US20170052899A1 (en) Buffer cache device method for managing the same and applying system thereof

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