CN110928496B - 一种在多控存储***上的数据处理方法及装置 - Google Patents
一种在多控存储***上的数据处理方法及装置 Download PDFInfo
- Publication number
- CN110928496B CN110928496B CN201911102263.2A CN201911102263A CN110928496B CN 110928496 B CN110928496 B CN 110928496B CN 201911102263 A CN201911102263 A CN 201911102263A CN 110928496 B CN110928496 B CN 110928496B
- Authority
- CN
- China
- Prior art keywords
- target
- data
- controller
- fingerprint
- write 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
Links
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
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种在多控存储***上的数据处理方法及装置,可以使控制器接收刷盘指令,基于所述刷盘指令确定目标缓存数据对应的目标指纹;基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述目标指纹对应的目标存储控制器和目标写缓存地址;当本控制器不为目标存储控制器时,将携带该目标指纹以及目标写缓存地址的控制信息发送至目标存储控制器,以使目标存储控制器根据控制信息在本地的写缓存中获取相应的目标缓存数据,进行刷盘处理。因此本申请可以在刷盘时,仅将目标缓存数据的指纹和目标写缓存地址进行传输,而不会传输数据,从而避免与镜像数据抢占带宽资源,提高了写入数据的处理效率。
Description
技术领域
本申请涉及重删技术领域,尤其涉及一种在多控存储***上的数据处理方法及装置。
背景技术
多控存储***是指控制器的数量大于两个的存储***,控制器数量越多,存储***的处理能力就越强,同时,控制器之间相互热备,可靠性更高。在多控存储***中,每个控制器有独立的CPU、内存和IO接口设备,因此,每个控制器都拥有独立的计算能力;每个控制器之间还可以相互传递信息,并且每个控制器都会连接硬盘,能够访问硬盘空间所有的存储数据。
相关技术中,当多控存储***中有数据写入时,控制器可以将本地写入的数据镜像到与自身互为热备份的控制器上进行存储。当进行数据刷盘时,如果接收刷盘指令的控制器不是刷盘数据所属的控制器,则还需要将刷盘指令对应的刷盘数据发送到其归属的控制器进行处理,而控制器之间数据的传输会与镜像数据的传输竞争带宽资源,从而影响镜像数据的效率,进而造成写数据请求延迟的问题。
发明内容
有鉴于此,本申请提供一种在多控存储***上的数据处理方法及装置来解决现有技术中刷盘数据在控制器之间传输与镜像数据竞争带宽的问题。
具体地,本申请是通过如下技术方案实现的:
第一方面,本申请提供一种在多控存储***上的数据处理方法,所述方法应用于多控存储***中的控制器,所述方法包括:
接收刷盘指令,基于所述刷盘指令确定目标缓存数据对应的目标指纹;
基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述目标指纹对应的目标存储控制器和目标写缓存地址;
当本控制器不为目标存储控制器时,将携带该目标指纹以及所述目标写缓存地址的控制信息发送至所述目标存储控制器,以使所述目标存储控制器根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
基于相同的构思,本申请还提供一种在多控存储***上的数据处理方法,所述方法应用于多控存储***中的控制器,所述方法包括:
接收所述多控存储***中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令所对应的目标指纹所在的目标存储控制器时,向本控制器发送的包括刷盘指令对应的目标指纹和目标写缓存地址的控制信息;
根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
第二方面,本申请提供一种在多控存储***上的数据处理装置,所述装置应用于多控存储***中的控制器,所述装置包括:
接收单元,用于接收刷盘指令,基于所述刷盘指令确定目标缓存数据对应的目标指纹;
获取单元,用于基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述目标指纹对应的目标存储控制器和目标写缓存地址;
发送单元,用于当本控制器不为目标存储控制器时,将携带该目标指纹以及所述目标写缓存地址的控制信息发送至所述目标存储控制器,以使所述目标存储控制器根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
基于相同的构思,本申请还提供一种在多控存储***上的数据处理装置,所述装置应用于多控存储***中的控制器,所述装置包括:
接收单元,用于接收所述多控存储***中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令所对应的目标指纹所在的目标存储控制器时,向本控制器发送的包括刷盘指令对应的目标指纹和目标写缓存地址的控制信息;
处理单元,用于根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
第三方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述在多控存储***上的数据处理方法的任一步骤。
第四方面,本申请还提供一种网络设备,所述网络设备包括存储器、控制器、通信接口以及通信总线;其中,所述存储器、控制器器、通信接口通过所述通信总线进行相互间的通信;
所述存储器,用于存放计算机程序;
所述控制器器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现上述在多控存储***上的数据处理方法的任一步骤。
由此可见,本申请提供一种在多控存储***上的数据处理方法及装置,可以使控制器接收刷盘指令,基于所述刷盘指令确定目标缓存数据对应的目标指纹;基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述目标指纹对应的目标存储控制器和目标写缓存地址;当本控制器不为目标存储控制器时,将携带该目标指纹以及目标写缓存地址的控制信息发送至目标存储控制器,以使目标存储控制器根据控制信息在本地的写缓存中获取相应的目标缓存数据,进行刷盘处理。因此本申请可以在刷盘时,仅将目标缓存数据的指纹和目标写缓存地址进行传输,而不会传输数据,从而避免与镜像数据抢占带宽资源,提高了写入数据的处理效率。
附图说明
图1是本申请一种示例性实施方式中的一种在多控存储***上的数据处理方法的处理流程图;
图2是本申请一种示例性实施方式中的另一种在多控存储***上的数据处理方法的处理流程图;
图3是本申请一种示例性实施方式中的***结构示意图;
图4是本申请一种示例性实施方式中的数据交互示意图;
图5本申请一种示例性实施方式中的一种在多控存储***上的数据处理装置的逻辑结构图;
图6本申请一种示例性实施方式中的另一种在多控存储***上的数据处理装置的逻辑结构图;
图7本申请一种示例性实施方式中的一种网络设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
请参考图1,是本申请一种示例性实施方式中的一种在多控存储***上的数据处理方法的处理流程图,所述方法应用于多控存储***中的控制器,所述方法包括:
步骤101、接收刷盘指令,基于所述刷盘指令确定目标缓存数据对应的目标指纹;
在本实施例中,多控存储***中的每个控制器都连接同一硬盘,均可以向该硬盘中存储数据,每个控制器中都设置有写缓存,可以用于缓存写入的数据。但是由于写缓存的空间有限,需要根据刷盘条件对每个控制器的写缓存进行刷盘,将写缓存中的数据写入到硬盘中,从而释放写缓存中的部分存储空间,以便于后续接收数据写入指令时,写缓存中有充足的缓存空间用于数据写入。
多控存储***可以将多个控制器的写缓存空间划分成多个逻辑存储块LUN,每个逻辑存储块中可以包含多个控制器中的写缓存空间,也可以在一个控制器的写缓存空间中划分多个逻辑存储块。当***后台确定该控制器所属的逻辑存储块的写缓存空间满足刷盘条件时,例如剩余存储空间低于阈值,或者写入的数据量大于剩余存储空间等情况时,可以确定该控制器对该逻辑存储块的写缓存空间进行刷盘,因此控制器可以收到刷盘指令,该刷盘指令可以包括指示该逻辑存储块的写缓存需要释放的存储空间大小。控制器收到后台发送的刷盘指令后,可以基于该刷盘指令中的需要释放存储空间的大小,然后按照预设的刷盘策略,从本地写缓存中确定待刷盘的写缓存地址。
在一个实施例中,控制器获取刷盘指令中的待刷盘的写缓存地址后,可以基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述待刷盘的写缓存地址对应的指纹,将所述指纹确定为目标缓存数据对应的目标指纹。
步骤102、基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述目标指纹对应的目标存储控制器和目标写缓存地址;
在一个实施例中,所述存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系的建立方法具体为:
首先,在控制器接收数据写入指令时,获取数据写入指令中的待写入数据,计算所述待写入数据的指纹。该缓存数据的指纹也就是该缓存数据的摘要,用于唯一标识该缓存数据。通常可以通过HASH、MD5等算法计算缓存数据的指纹,其他功能相似的算法也可以,此处不做限定。
其次,在计算所述待写入数据的指纹之后,控制器可以根据预先设定的数据存储规则确定所述待写入数据的指纹对应的目标镜像控制器;将所述待写入数据镜像到所述目标镜像控制器中进行缓存。
其中,控制器根据预先设定的数据存储规则确定目标存储控制器和目标镜像控制器的具体方法为:控制器根据所述多控存储***中控制器的数量,将所述待写入数据的指纹进行取余,得到余数N,将第N个控制器作为所述待写入数据的指纹的目标存储控制器;根据所述多控存储***中控制器的数量,将所述待写入数据的指纹进行取余,得到余数N,将第N+1个控制器作为所述待写入数据的指纹的目标镜像控制器。
然后,当控制器确定所述待写入数据的指纹对应的目标存储控制器和目标镜像控制器之后,还可以进一步将所述待写入数据发送到所述目标存储控制器中进行缓存;然后接收所述目标存储控制器针对所述待写入数据反馈的第一写缓存地址,建立所述目标存储控制器、所述第一写缓存地址以及待写入数据的指纹的对应关系。并且将所述待写入数据镜像到所述目标镜像控制器中进行缓存,然后接收所述目标镜像控制器针对所述待写入数据反馈的第二写缓存地址,建立所述目标镜像控制器、所述第二写缓存地址以及待写入数据的指纹的对应关系。
举例来讲,假设多控存储***包括四个控制器,分别为控制器1、控制器2、控制器3和控制器4。当控制器1接收数据写入指令时,计算出该待写入数据的指纹为2,那么将该指纹除以4取余,得到余数为2,则目标存储控制器应该为控制器2,目标镜像控制器应为控制器3。因此控制器1可以将该待写入数据存储到控制器2,将该待写入数据镜像到控制器3。控制器2、控制器3和控制器4将该数据写入到自身的写缓存中,分别将对应的写缓存地址,地址2、地址3、地址4反馈给控制器1,从而在控制器1中生成的目标存储控制器、目标镜像控制器及写缓存地址和指纹的对应关系如下面表1所示。
指纹 | 目标存储控制器 | 目标镜像控制器 |
2 | 控制器2 | 控制器3 |
/ | 地址2 | 地址3 |
表1
步骤103、当本控制器不为目标存储控制器时,将携带该目标指纹以及所述目标写缓存地址的控制信息发送至所述目标存储控制器,以使所述目标存储控制器根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
在本实施例中,当控制器计算确定目标存储控制器后,可以进一步判断本控制器是否为所述目标指纹对应的目标存储控制器。当本控制器不为目标存储控制器时,将携带该目标指纹以及所述目标写缓存地址的控制信息发送至所述目标存储控制器,以使所述目标存储控制器根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
在一个实施例中,在目标存储控制器收到控制信息时,可以判断本地是否已记录所述目标指纹,若是,则基于所述目标写缓存地址对应的目标缓存数据,按照设定的重删策略进行数据重删;若否,则将所述目标缓存数据存储到硬盘中,并在重删指纹库中记录所述目标指纹。
其中,重删策略可以包括有损重删和无损重删,可以根据实际应用需求设定。当本控制器为目标存储控制器时,可以基于所述目标缓存数据按照设定的重删策略进行数据重删,具体的重删过程不是本申请的关注的重点,可以参照现有的重删过程进行处理;若否,则说明目标缓存数据还未存储到硬盘中,因此可以将所述目标缓存数据存储到硬盘中,并将所述目标指纹记录到重删指纹库中。
作为一个实施例,当本控制器为目标存储控制器时,则判断本地的重删指纹库中是否存在该目标指纹;若是,则获取目标指纹对应的目标缓存数据,并基于设定的重删策略进行数据重删;若否,则获取目标指纹对应的目标缓存数据,将所述目标缓存数据存储到硬盘,并在所述重删指纹库中记录所述目标指纹。
由于本申请可以依据数据的指纹确定数据对应的目标存储控制器和目标镜像控制器,并且记录指纹、目标存储控制器、目标镜像控制器的及两者中数据的写缓存地址对应关系,因此可以基于刷盘指令对应的目标指纹确定目标存储控制器,从而将将目标缓存数据对应的目标指纹和目标写缓存地址发送给指纹归属的目标存储控制器,以使目标存储控制器根据目标写缓存地址获取本地缓存的目标缓存数据从而执行刷盘操作,而无需将目标缓存数据在控制器之间传输,从而避免了与镜像数据竞争带宽资源。
请参考图2,是本申请一种示例性实施方式中的另一种在多控存储***上的数据处理方法的处理流程图,所述方法应用于多控存储***中的控制器,所述方法包括:
步骤201、接收所述多控存储***中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令所对应的目标指纹所在的目标存储控制器时,向本控制器发送的包括刷盘指令对应的目标指纹和目标写缓存地址的控制信息;
在本实施例中,控制器可以接收包括所述目标指纹和所述目标写缓存地址的控制信息,该控制信息是由所述多控存储***中与本控制器连接同一硬盘的其他控制在确定本控制器不为目标存储控制器时向本控制器发送的。
步骤202、根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
在本实施例中,控制器可以根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。具体来讲,控制器可以根据所述目标写缓存地址获取本控制器的写缓存中的目标缓存数据;判断所述目标指纹是否在本地的重删指纹库中;若是,则基于所述目标缓存数据按照设定的重删策略进行数据重删处理;若否,则将所述目标缓存数据存储到硬盘中,并将所述目标指纹记录在所述重删指纹库中。
由于本申请的控制器仅向目标存储控制器发送控制信息,以使目标存储控制器根据控制信息获取相应的目标数据,而现有技术需要在控制器之间传输刷盘所需的目标数据,相比于现有技术,本申请的控制器之间无需传输用于刷盘的数据,从而本申请可以避免占用镜像数据时的传输带宽,提高写入数据的处理效率。
为使本申请的目的、技术方案及优点更加清楚明白,下面结合图3和图4对本申请的方案作进一步地详细说明。
请参见图3,是本申请一种示例性实施方式中的***结构示意图,例如,该多控存储***30包括4个控制器,即控制器1、控制器,2、控制器3、控制器4,每个控制器的结构均相同,其中包括:前端IO接收模块,写缓存(cache)模块及后端IO发送模块。每个控制器都与同一硬盘相连接,可以访问该硬盘的全部资源,该硬盘可以是单个硬盘,或是多个硬盘组成的硬盘集合,如硬盘柜。在该多控存储***30中的控制器的交互流程如图4所示,其中包括:
步骤401、控制器1接收数据写入指令,获取所述数据写入指令中的待写入数据;
步骤402、控制器1计算待写入数据的指纹,根据指纹确定目标存储控制器和目标镜像控制器;
本实施例中,假设计算出的指纹为2,将指纹除控制器总数取余,及2除4取余,得到余数为2,则该待写入数据对应的目标存储控制器为控制器2,而目标镜像控制器是与目标存储控制器相邻的下一个控制器,则确定目标镜像控制器为控制器3。
步骤403、将待写入数据发送到控制器2和控制器3进行存储;
步骤404、控制器2和控制器3向控制器1反馈该待写入数据对应的写缓存地址;
步骤405、控制器1接收控制器反馈的写缓存地址,记录待写入数据的指纹以及其他控制器反馈的写缓存地址以及控制器2、控制器3的对应关系;
若控制器3中的待写入数据的写缓存地址为地址3,控制器2中的待写入数据的写缓存地址为地址3,则控制器1中建立的指纹与上述两个写缓存地址以及目标存储控制器和目标镜像控制器的对应关系如表1所示。
步骤406、若控制器1收到后台的刷盘指令;
步骤407、基于所述刷盘指令确定目标缓存数据对应的目标指纹;
步骤408、控制器1基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述目标指纹对应的目标存储控制器和目标写缓存地址;
步骤409、控制器1向控制器3发送包括所述目标指纹和所述目标写缓存地址的控制信息;
步骤410、控制器3可以根据所述目标写缓存地址获取本控制器的写缓存中的目标缓存数据;
步骤411、控制器3判断所述控制信息中的所述目标指纹是否在本地已记录;若是,则转步骤412;若否,则转步骤413;
控制器3判断自身是否已存储该目标指纹,若是,则说明刷盘的目标缓存数据可能已经存储在硬盘中,若否,则说明刷盘的目标缓存数据还未存储到硬盘。
步骤412、基于所述目标缓存数据按照设定的重删策略进行数据重删处理,结束;
若存在该目标指纹,则说明刷盘的目标缓存数据可能已经存储在硬盘中,因此需要基于获取的目标缓存数据根据预设的重删策略进行数据重删。举例来讲,若重删策略为无损重删,则控制器3可以基于目标指纹获取硬盘中的副本数据,判断硬盘中的副本数据和目标缓存数据是否相同,如果相同,则重删成功;如果不同,则重删冲突,将冲突的数据添加到硬盘中。
步骤413、将所述目标缓存数据存储到硬盘中,并记录所述目标指纹到重删指纹库,结束。
若不存在目标指纹,则说明刷盘的目标缓存数据还为存储到硬盘中,因此将目标缓存数据通过自身的后端IO发送模块发送给硬盘,并在本地重删指纹库中记录该指纹。
由于本申请的控制器1可以基于待写入数据的指纹动态确定目标存储控制器和目标镜像控制器,然后当控制器1确定刷盘指令对应的目标存储控制器非自身时,则可以仅向目标存储控制器发送控制信息,以使目标存储控制器根据控制信息获取相应的目标缓存数据,而现有技术需要在控制器之间传输刷盘所需的目标数据,相比于现有技术,本申请的控制器之间无需传输用于刷盘的数据,从而本申请可以避免占用镜像数据时的传输带宽,提高写入数据的处理效率。
与前述在多控存储***上的数据处理方法的实施例相对应,本申请还提供了在多控存储***上的数据处理装置的实施例。
请参见图5,为本申请在一个示例性实施例中的一种在多控存储***上的数据处理装置的结构示意图,所述装置应用于多控存储***中的控制器,所述装置50包括:
接收单元501,用于接收刷盘指令,基于所述刷盘指令确定目标缓存数据对应的目标指纹;
获取单元502,用于基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述目标指纹对应的目标存储控制器和目标写缓存地址;
发送单元503,用于当本控制器不为目标存储控制器时,将携带该目标指纹以及所述目标写缓存地址的控制信息发送至所述目标存储控制器,以使所述目标存储控制器根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
作为一个实施例,所述接收单元501,具体用于获取刷盘指令中的待刷盘的写缓存地址,基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述待刷盘的写缓存地址对应的指纹,将所述指纹确定为目标缓存数据对应的目标指纹。
作为一个实施例,所述装置还包括:
建立单元504,用于在接收数据写入指令时,获取数据写入指令中的待写入数据,计算所述待写入数据的指纹;根据预先设定的数据存储规则确定所述待写入数据的指纹对应的目标存储控制器;将所述待写入数据发送到所述目标存储控制器中进行缓存;接收所述目标存储控制器针对所述待写入数据反馈的第一写缓存地址,建立所述目标存储控制器、所述第一写缓存地址以及待写入数据的指纹的对应关系。
作为一个实施例,所述装置还包括:
写入单元505,用于在计算所述待写入数据的指纹之后,根据预先设定的数据存储规则确定所述待写入数据的指纹对应的目标镜像控制器;将所述待写入数据镜像到所述目标镜像控制器中进行缓存;接收所述目标镜像控制器针对所述待写入数据反馈的第二写缓存地址,建立所述目标镜像控制器、所述第二写缓存地址以及待写入数据的指纹的对应关系。
作为一个实施例,所述写入单元505,具体用于根据所述多控存储***中控制器的数量,将所述待写入数据的指纹进行取余,得到余数N,将第N个控制器作为所述待写入数据的指纹的目标存储控制器;根据所述多控存储***中控制器的数量,将所述待写入数据的指纹进行取余,得到余数N,将第N+1个控制器作为所述待写入数据的指纹的目标镜像控制器。
作为一个实施例,所述装置还包括:
处理单元506,用于当本控制器为目标存储控制器时,则判断本地的重删指纹库中是否存在该目标指纹;若是,则获取目标指纹对应的目标缓存数据,并基于设定的重删策略进行数据重删;若否,则获取目标指纹对应的目标缓存数据,将所述目标缓存数据存储到硬盘,并在所述重删指纹库中记录所述目标指纹。
请参见图6,为本申请在一个示例性实施例中的另一种在多控存储***上的数据处理装置的结构示意图,所述装置应用于多控存储***中的控制器,所述装置60包括:
接收单元601,用于接收所述多控存储***中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令所对应的目标指纹所在的目标存储控制器时,向本控制器发送的包括刷盘指令对应的目标指纹和目标写缓存地址的控制信息;
处理单元602,用于根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
作为一个实施例,所述处理单元602,具体用于:
根据所述目标写缓存地址获取本控制器的写缓存中的目标缓存数据;
判断所述目标指纹是否在本地的重删指纹库中;
若是,则基于所述目标缓存数据按照设定的重删策略进行数据重删处理;
若否,则将所述目标缓存数据存储到硬盘中,并将所述目标指纹记录在所述重删指纹库中。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
与前述在多控存储***上的数据处理方法的实施例相对应,本申请还提供了实现在多控存储***上的数据处理方法的网络设备的实施例。
如图7所示,所述网络设备包括存储器71、控制器72、通信接口73以及通信总线74;其中,所述存储器71、控制器72、通信接口73通过所述通信总线74进行相互间的通信;
所述存储器71,用于存放计算机程序;
所述控制器72,用于执行所述存储器71上所存放的计算机程序,所述处理器72执行所述计算机程序时实现本申请实施例提供的在多控存储***上的数据处理方法的任一步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的在多控存储***上的数据处理方法的任一步骤。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于网络设备和计算机可读存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
综上所述,本申请提供一种在多控存储***上的数据处理方法及装置,可以使控制器接收刷盘指令,基于所述刷盘指令确定目标缓存数据对应的目标指纹;基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述目标指纹对应的目标存储控制器和目标写缓存地址;当本控制器不为目标存储控制器时,将携带该目标指纹以及目标写缓存地址的控制信息发送至目标存储控制器,以使目标存储控制器根据控制信息在本地的写缓存中获取相应的目标缓存数据,进行刷盘处理。因此本申请可以在刷盘时,仅将目标缓存数据的指纹和目标写缓存地址进行传输,而不会传输数据,从而避免与镜像数据抢占带宽资源,提高了写入数据的处理效率。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种在多控存储***上的数据处理方法,其特征在于,所述方法应用于多控存储***中的控制器,所述方法包括:
接收刷盘指令,基于所述刷盘指令确定目标缓存数据对应的目标指纹;
基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述目标指纹对应的目标存储控制器和目标写缓存地址;
当本控制器不为目标存储控制器时,将携带该目标指纹以及所述目标写缓存地址的控制信息发送至所述目标存储控制器,以使所述目标存储控制器根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述刷盘指令确定目标缓存数据对应的目标指纹,包括:
获取刷盘指令中的待刷盘的写缓存地址,基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述待刷盘的写缓存地址对应的指纹,将所述指纹确定为目标缓存数据对应的目标指纹。
3.根据权利要求1所述的方法,其特征在于,所述存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系的建立方法包括:
在接收数据写入指令时,获取数据写入指令中的待写入数据,计算所述待写入数据的指纹;
根据预先设定的数据存储规则确定所述待写入数据的指纹对应的目标存储控制器;
将所述待写入数据发送到所述目标存储控制器中进行缓存;
接收所述目标存储控制器针对所述待写入数据反馈的第一写缓存地址,建立所述目标存储控制器、所述第一写缓存地址以及待写入数据的指纹的对应关系。
4.根据权利要求3所述的方法,其特征在于,在计算所述待写入数据的指纹之后,所述方法还包括:
根据预先设定的数据存储规则确定所述待写入数据的指纹对应的目标镜像控制器;
将所述待写入数据镜像到所述目标镜像控制器中进行缓存;
接收所述目标镜像控制器针对所述待写入数据反馈的第二写缓存地址,建立所述目标镜像控制器、所述第二写缓存地址以及待写入数据的指纹的对应关系。
5.根据权利要求4所述的方法,其特征在于,
所述根据预先设定的数据存储规则确定所述待写入数据的指纹对应的目标存储控制器,包括:
根据所述多控存储***中控制器的数量,将所述待写入数据的指纹进行取余,得到余数N,将第N个控制器作为所述待写入数据的指纹的目标存储控制器;
所述根据预先设定的数据存储规则确定所述待写入数据的指纹对应的目标镜像控制器,包括:
根据所述多控存储***中控制器的数量,将所述待写入数据的指纹进行取余,得到余数N,将第N+1个控制器作为所述待写入数据的指纹的目标镜像控制器。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当本控制器为目标存储控制器时,则判断本地的重删指纹库中是否存在该目标指纹;若是,则获取目标指纹对应的目标缓存数据,并基于设定的重删策略进行数据重删;若否,则获取目标指纹对应的目标缓存数据,将所述目标缓存数据存储到硬盘,并在所述重删指纹库中记录所述目标指纹。
7.一种在多控存储***上的数据处理方法,其特征在于,所述方法应用于多控存储***中的控制器,所述方法包括:
接收所述多控存储***中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令所对应的目标指纹所在的目标存储控制器时,向本控制器发送的包括刷盘指令对应的目标指纹和目标写缓存地址的控制信息;
根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
8.根据权利要求7所述的方法,其特征在于,所述根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理,包括:
根据所述目标写缓存地址获取本控制器的写缓存中的目标缓存数据;
判断所述目标指纹是否在本地的重删指纹库中;
若是,则基于所述目标缓存数据按照设定的重删策略进行数据重删处理;
若否,则将所述目标缓存数据存储到硬盘中,并将所述目标指纹记录在所述重删指纹库中。
9.一种在多控存储***上的数据处理装置,其特征在于,所述装置应用于多控存储***中的控制器,所述装置包括:
接收单元,用于接收刷盘指令,基于所述刷盘指令确定目标缓存数据对应的目标指纹;
获取单元,用于基于本地记录的存储控制器、所述存储控制器的写缓存地址以及指纹的对应关系,获取所述目标指纹对应的目标存储控制器和目标写缓存地址;
发送单元,用于当本控制器不为目标存储控制器时,将携带该目标指纹以及所述目标写缓存地址的控制信息发送至所述目标存储控制器,以使所述目标存储控制器根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
10.一种在多控存储***上的数据处理装置,其特征在于,所述装置应用于多控存储***中的控制器,所述装置包括:
接收单元,用于接收所述多控存储***中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令所对应的目标指纹所在的目标存储控制器时,向本控制器发送的包括刷盘指令对应的目标指纹和目标写缓存地址的控制信息;
处理单元,用于根据所述控制信息在本地的写缓存中获取相应的目标缓存数据,并对所述目标缓存数据进行刷盘处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102263.2A CN110928496B (zh) | 2019-11-12 | 2019-11-12 | 一种在多控存储***上的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102263.2A CN110928496B (zh) | 2019-11-12 | 2019-11-12 | 一种在多控存储***上的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928496A CN110928496A (zh) | 2020-03-27 |
CN110928496B true CN110928496B (zh) | 2022-04-22 |
Family
ID=69852670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911102263.2A Active CN110928496B (zh) | 2019-11-12 | 2019-11-12 | 一种在多控存储***上的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928496B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11762559B2 (en) * | 2020-05-15 | 2023-09-19 | International Business Machines Corporation | Write sort management in a multiple storage controller data storage system |
US11580022B2 (en) | 2020-05-15 | 2023-02-14 | International Business Machines Corporation | Write sort management in a multiple storage controller data storage system |
CN113010103B (zh) * | 2021-01-15 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置、相关设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023809A (zh) * | 2009-09-21 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 存储***、从存储***读取数据的方法及写入数据的方法 |
CN104461936A (zh) * | 2014-11-28 | 2015-03-25 | 华为技术有限公司 | 缓存数据的刷盘方法及装置 |
CN106708444A (zh) * | 2017-01-17 | 2017-05-24 | 北京联想核芯科技有限公司 | 数据存储方法和硬盘控制器 |
CN107329704A (zh) * | 2017-06-30 | 2017-11-07 | 杭州宏杉科技股份有限公司 | 一种缓存镜像方法及控制器 |
CN108459826A (zh) * | 2018-02-01 | 2018-08-28 | 杭州宏杉科技股份有限公司 | 一种处理io请求的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017019079A1 (en) * | 2015-07-30 | 2017-02-02 | Hewlett Packard Enterprise Development Lp | Storing data in a deduplication store |
-
2019
- 2019-11-12 CN CN201911102263.2A patent/CN110928496B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023809A (zh) * | 2009-09-21 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 存储***、从存储***读取数据的方法及写入数据的方法 |
CN104461936A (zh) * | 2014-11-28 | 2015-03-25 | 华为技术有限公司 | 缓存数据的刷盘方法及装置 |
CN106708444A (zh) * | 2017-01-17 | 2017-05-24 | 北京联想核芯科技有限公司 | 数据存储方法和硬盘控制器 |
CN107329704A (zh) * | 2017-06-30 | 2017-11-07 | 杭州宏杉科技股份有限公司 | 一种缓存镜像方法及控制器 |
CN108459826A (zh) * | 2018-02-01 | 2018-08-28 | 杭州宏杉科技股份有限公司 | 一种处理io请求的方法及装置 |
Non-Patent Citations (1)
Title |
---|
MySQL延迟问题和数据刷盘策略;AIOPS_DBA;《https://blog.51cto.com/wangwei007/2416148》;20190702;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110928496A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928496B (zh) | 一种在多控存储***上的数据处理方法及装置 | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
US9430161B2 (en) | Storage control device and control method | |
US9507720B2 (en) | Block storage-based data processing methods, apparatus, and systems | |
US10860494B2 (en) | Flushing pages from solid-state storage device | |
CN107329704B (zh) | 一种缓存镜像方法及控制器 | |
US10140194B2 (en) | Storage system transactions | |
US10346039B2 (en) | Memory system | |
CN107193503B (zh) | 一种数据重删方法及存储设备 | |
EP2382544B1 (en) | Determining modified data in cache for use during a recovery operation | |
US10048866B2 (en) | Storage control apparatus and storage control method | |
US10635356B2 (en) | Data management method and storage controller using the same | |
US20160170646A1 (en) | Implementing enhanced performance flash memory devices | |
US10515671B2 (en) | Method and apparatus for reducing memory access latency | |
US11550508B2 (en) | Semiconductor storage device and control method thereof | |
CN116107516B (zh) | 数据写入方法、装置、固态硬盘、电子设备及存储介质 | |
CN110928495B (zh) | 一种在多控存储***上的数据处理方法及装置 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
US20140372672A1 (en) | System and method for providing improved system performance by moving pinned data to open nand flash interface working group modules while the system is in a running state | |
CN110647476B (zh) | 一种固态硬盘写数据的方法、装置、设备及存储介质 | |
CN108519860B (zh) | 一种ssd读命中的处理方法和装置 | |
US20170090823A1 (en) | Storage system, control device, memory device, data access method, and program recording medium | |
CN109491593B (zh) | 一种数据存储管理***及方法 | |
US9053074B2 (en) | Computer product, writing control method, writing control apparatus, and system | |
CN111046014A (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 |