CN110928495B - 一种在多控存储系统上的数据处理方法及装置 - Google Patents
一种在多控存储系统上的数据处理方法及装置 Download PDFInfo
- Publication number
- CN110928495B CN110928495B CN201911101081.3A CN201911101081A CN110928495B CN 110928495 B CN110928495 B CN 110928495B CN 201911101081 A CN201911101081 A CN 201911101081A CN 110928495 B CN110928495 B CN 110928495B
- Authority
- CN
- China
- Prior art keywords
- controller
- data
- target
- write cache
- fingerprint
- 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
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/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/0658—Controller construction 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/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/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
-
- 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)
- 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,每个逻辑存储块中可以包含多个控制器中的写缓存空间,也可以在一个控制器的写缓存空间中划分多个逻辑存储块。当系统后台确定该控制器所属的逻辑存储块LUN的写缓存空间满足刷盘条件时,例如剩余存储空间低于阈值,或者写入的数据量大于剩余存储空间等情况时,可以确定该控制器对该逻辑存储块的写缓存空间进行刷盘,因此控制器可以收到刷盘指令,该刷盘指令可以包括指示该逻辑存储块的写缓存需要释放的存储空间大小。控制器收到后台发送的刷盘指令后,可以基于该刷盘指令中的需要释放存储空间的大小,然后按照预设的刷盘策略,从本地写缓存中确定需要刷盘的指定写缓存地址,因此控制器可以根据该刷盘指令获取该控制器的写缓存中的指定写缓存地址。
步骤102、根据该指定写缓存地址获取本地写缓存中对应的缓存数据,计算所述缓存数据的指纹;
在本实施例中,根据该刷盘指令中的指定写缓存地址获取本地写缓存中对应的缓存数据,计算所述缓存数据的指纹。该缓存数据的指纹也就是该缓存数据的摘要,用于唯一标识该缓存数据。通常可以通过HASH、MD5等算法计算缓存数据的指纹,其他功能相似的算法也可以,此处不做限定。
由于缓存数据的指纹本身就有很好的散列特性,因此可以按照指定的指纹保存规则将指纹均匀保存到每个控制器进行组织和查询。比如,当前是四控存储系统,可以基于指纹的前两个bit位的数值进行分配,例如两个bit的数分别是00,01,10,11,可对应控制器1,控制器2,控制器3及控制器4,从而实现指纹在每个控制器之间的均匀分布。
步骤103、在基于所述指纹确定本控制器不为所述缓存数据对应的目标控制器时,获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址,向所述目标控制器发送包括所述指纹和所述目标写缓存地址的控制信息,以使所述目标控制器根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。
在本实施例中,当控制器计算出缓存数据的指纹后,可以基于所述指纹确定本控制器是否为所述缓存数据对应的目标控制器,具体来讲,由于本申请的指纹是均匀分布到每个控制器上的,因此控制器可以基于预设的指纹保存规则查找所述指纹的归属控制器,比如,可以基于指纹的前两个bit位的数值进行分配,例如两个bit的数分别是00,01,10,11,分别归属控制器1,控制器2,控制器3及控制器4。当所述归属控制器不是本控制器时,可以确定本控制器不为所述缓存数据对应的目标控制器,当所述归属控制器是本控制器时,可以确定本控制器为所述缓存数据对应的目标控制器。
在本控制器不为所述缓存数据对应的目标控制器时,说明需要刷盘的数据不在本控制器中,因此需要由该目标控制器执行该刷盘指令。因此,本控制器可以进一步获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址。
作为一个实施例,获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址,具体可以根据本地保存的本控制器与所述目标控制器的写缓存地址的对应关系,获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址。
在一个实施例中,所述本控制器与所述目标控制器的写缓存地址对的应关系可以是静态的对应关系,也可以是动态的对应关系,当该对应关系为静态设置的对应关系时,该对应关系的建立方法具体是:预先设定本控制器与所述目标控制器的写缓存地址对的应关系,并保存在本控制器中。例如,当多控存储系统中的每个控制器的内部存储空间相同时,控制器的写缓存中的某个编号的存储单元与其他控制器的相同编号的存储单元相对应,因此创建了本控制器中的该存储单元的写缓存地址与其他控制器中的相同编号的存储单元的写缓存地址的对应关系,该对应关系保存在每个控制器中。例如每个控制器的写缓存相同,且写缓存均包含10个相同的存储单元,其编号为001~010,则每个控制器中的编号相同的存储单元具有对应关系,例如每个控制器中的001号存储单元互为备份,因此可以创建每个控制器中001号存储单元的写缓存地址的对应关系。
此外,还可以通过动态保存的方式创建写缓存地址的对应关系。具体来讲,在控制器接收数据写入指令时,可将数据写入指令中的待写入数据写入到本地的写缓存中,并记录该待写入数据对应的写缓存地址;然后将所述待写入数据镜像至所述多控存储系统中的与本控制器连接同一硬盘的其他控制器,所述其他控制器中包括所述目标控制器;接收所述其他控制器针对所述待写入数据反馈的写缓存地址,记录所述待写入数据在本控制器的写缓存地址和其他控制器反馈的写缓存地址的对应关系。例如,控制器1接收数据写入指令时,将数据写入到写缓存中,对应的写缓存地址为地址1,然后控制器1将该数据分别镜像到控制器2、控制器3和控制器4。控制器2、控制器3和控制器4将该数据写入到自身的写缓存中,分别将对应的写缓存地址,地址2、地址3、地址4反馈给控制器1,从而在控制器1中生成的写缓存地址的对应关系如下面表1所示。
控制器1 | 控制器2 | 控制器3 | 控制器4 |
地址1 | 地址2 | 地址3 | 地址4 |
控制器可以基于自身保存的写缓存地址的对应关系查找到目标控制器对应目标写缓存地址。之后,控制器可以向所述目标控制器发送包括所述指纹和所述目标写缓存地址的控制信息,以使所述目标控制器根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。
在一个实施例中,在基于所述指纹确定本控制器为所述缓存数据对应的目标控制器时,可以判断本地是否已记录所述指纹,若是,则基于所述缓存数据按照设定的重删策略进行数据重删;若否,则将所述缓存数据存储到硬盘中,并记录所述指纹。
重删策略可以包括有损重删和无损重删,可以根据实际应用需求设定。当本控制器确定自身已记录该缓存数据的指纹时,可以基于所述缓存数据按照设定的重删策略进行数据重删,具体的重删过程不是本申请的关注的重点,可以参照现有的重删过程进行处理;若否,则说明当前缓存数据还未存储到硬盘中,因此可以将所述缓存数据存储到硬盘中,并记录所述指纹,可以保存到本地的指纹库中。
由于本申请在每个硬盘中都有相同的数据备份,因此可以在刷盘指令中的缓存数据的指纹不归属本控制器时,将缓存数据对应的指纹和目标写缓存地址发送给指纹归属的目标控制器,以使目标控制器根据写缓存地址获取本地缓存的目标缓存数据从而执行刷盘操作,而无需将目标缓存数据在控制器之间传输,从而避免了与镜像数据竞争带宽资源。
请参考图2,是本申请一种示例性实施方式中的另一种在多控存储系统上的数据处理方法的处理流程图,所述方法应用于多控存储系统中的控制器,所述方法包括:
步骤201、接收所述多控存储系统中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令所对应目标数据所在的目标控制器时,向本控制器发送的包括刷盘指令对应的目标数据的指纹和目标写缓存地址的控制信息;
在本实施例中,控制器可以接收包括所述指纹和所述目标写缓存地址的控制信息,该控制信息是由所述多控存储系统中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令对应的所述缓存数据对应的目标控制器时向本控制器发送的。
步骤202、根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。
控制器可以根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。
具体来讲,控制器可以根据所述目标写缓存地址获取本控制器的写缓存中的目标数据;判断所述控制信息中的所述指纹是否在本地已记录;若是,则基于所述目标数据按照设定的重删策略进行数据重删处理,重删策略包含有损重删和无损重删,具体重删流程与现有的重删流程类似,此处不再赘述。若否,则将所述目标数据存储到硬盘中,并记录所述指纹。
由于本申请的控制器仅向目标控制器发送控制信息,以使目标控制器根据控制信息获取相应的目标数据,而现有技术需要在控制器之间传输刷盘所需的目标数据,相比于现有技术,本申请的控制器之间无需传输用于刷盘的数据,从而本申请可以避免占用镜像数据时的传输带宽,提高写入数据的处理效率。
为使本申请的目的、技术方案及优点更加清楚明白,下面结合图3和图4对本申请的方案作进一步地详细说明。
请参见图3,是本申请一种示例性实施方式中的系统结构示意图,例如,该多控存储系统30包括4个控制器,即控制器1、控制器,2、控制器3、控制器4,每个控制器的结构均相同,其中包括:前端IO接收模块,写缓存(cache)模块及后端IO发送模块。每个控制器都与同一硬盘相连接,可以访问该硬盘的全部资源,该硬盘可以是单个硬盘,或是多个硬盘组成的硬盘集合,如硬盘柜。在该多控存储系统30中的控制器的交互流程如图4所示,其中包括:
步骤401、控制器1接收数据写入指令,获取所述数据写入指令中的待写入数据;
步骤402、控制器1将待写入数据写入到自身的写缓存中,记录对应的写缓存地址;
步骤403、控制器1将待写入数据分别镜像给控制器2、控制器3、控制器4;
步骤404、控制器2、控制器3、控制器4向控制器1反馈该待写入数据对应的写缓存地址;
步骤405、控制器1接收其他控制器反馈的写缓存地址,记录所述待写入数据在本控制器的写缓存地址和其他控制器反馈的写缓存地址的对应关系;
若控制器1中的待写入数据的写缓存地址为地址1,控制器2中的待写入数据的写缓存地址为地址2,控制器3中的待写入数据的写缓存地址为地址3,控制器4中的待写入数据的写缓存地址为地址4,则控制器1中建立的写缓存地址的对应关系如表1所示。
步骤406、若控制器1收到后台的刷盘指令,则基于所述刷盘指令获取本地写缓存中的指定写缓存地址;
步骤407、控制器1根据该指定写缓存地址获取本地写缓存中对应的缓存数据,计算所述缓存数据的指纹;
步骤408、控制器1在基于所述指纹确定所述缓存数据对应的目标控制器,若目标控制器为控制器3时,获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址;
本实施例中,若基于指纹的前两个bit位的数值进行分配,例如两个bit的数分别是00,01,10,11,对应的归属控制器1,控制器2,控制器3及控制器4,则假设缓存数据的指纹为10111,那么该指纹的前两个bit位的数值是10,则该指纹确定归属为控制器3,从而确定控制器3为目标控制器。
确定目标控制器为控制器3时,可以根据控制器1保存的写缓存地址对应关系,获取指定写缓存地址对应的目标写缓存地址。假设指定写缓存地址为地址1,则基于表1中的写缓存地址对应关系,可以确定目标写缓存地址为控制器3对应的地址3。
步骤409、控制器1向控制器3发送包括所述指纹和所述目标写缓存地址的控制信息;
其中,该指纹为10111,目标写缓存地址为地址3。
步骤410、控制器3可以根据所述目标写缓存地址获取本控制器的写缓存中的目标数据;
控制器3根据目标写缓存地址(地址3)获取自身写缓存中的目标数据。
步骤411、控制器3判断所述控制信息中的所述指纹是否在本地已记录;若是,则转步骤412;若否,则转步骤413;
控制器3判断自身是否已存储指纹(10111),若是,则说明刷盘的目标数据可能已经存储在硬盘中,若否,则说明刷盘的目标数据还未存储到硬盘。
步骤412、基于所述目标数据按照设定的重删策略进行数据重删处理,结束;
若存在相同的指纹,则说明刷盘的目标数据可能已经存储在硬盘中,因此需要基于获取的目标数据根据预设的重删策略进行数据重删。举例来讲,若重删策略为无损重删,则控制器3可以基于自身存储的指纹获取硬盘中的副本数据,判断硬盘中的副本数据和目标数据是否相同,如果相同,则重删成功;如果不同,则重删冲突,将冲突的数据添加到硬盘中。
步骤413、将所述目标数据存储到硬盘中,并记录所述指纹,结束。
若不存在相同的指纹,则说明刷盘的目标数据还为存储到硬盘中,因此将目标数据通过自身的后端IO发送模块发送给硬盘,并在本地记录该指纹。
由于本申请的控制器1可以向全部控制器进行镜像,使每个控制器的写缓存中的数据一致,当控制器1收到的刷盘指令对应的目标控制器非自身时,则可以仅向目标控制器发送控制信息,以使目标控制器根据控制信息获取相应的目标数据,而现有技术需要在控制器之间传输刷盘所需的目标数据,相比于现有技术,本申请的控制器之间无需传输用于刷盘的数据,从而本申请可以避免占用镜像数据时的传输带宽,提高写入数据的处理效率。
与前述在多控存储系统上的数据处理方法的实施例相对应,本申请还提供了在多控存储系统上的数据处理装置的实施例。
请参见图5,为本申请在一个示例性实施例中的一种在多控存储系统上的数据处理装置的结构示意图,所述装置应用于多控存储系统中的控制器,所述装置50包括:
接收单元501,用于接收刷盘指令,基于所述刷盘指令获取本地写缓存中的指定写缓存地址;
计算单元502,用于根据该指定写缓存地址获取本地写缓存中对应的缓存数据,计算所述缓存数据的指纹;
发送单元503,用于在基于所述指纹确定本控制器不为所述缓存数据对应的目标控制器时,获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址,向所述目标控制器发送包括所述指纹和所述目标写缓存地址的控制信息,以使所述目标控制器根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。
作为一个实施例,所述发送单元503针对获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址的处理,具体包括:
根据本地保存的本控制器与所述目标控制器的写缓存地址的对应关系,获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址。
作为一个实施例,所述装置还包括:
创建单元504,用于预先设定本控制器与所述目标控制器的写缓存地址对的应关系,并保存在本控制器中。
作为一个实施例,所述创建单元504,还用于:
在接收数据写入指令时,将数据写入指令中的待写入数据写入到本地的写缓存中,并记录该待写入数据对应的写缓存地址;
将所述待写入数据镜像至所述多控存储系统中的与本控制器连接同一硬盘的其他控制器,所述其他控制器中包括所述目标控制器;
接收所述其他控制器针对所述待写入数据反馈的写缓存地址,记录所述待写入数据在本控制器的写缓存地址和其他控制器反馈的写缓存地址的对应关系。
作为一个实施例,所述发送单元503针对基于所述指纹确定本控制器不为所述缓存数据对应的目标控制器的处理,包括:
基于预设的指纹保存规则判断所述指纹所对应的目标控制器;
当所述目标控制器不是本控制器时,确定本控制器不为所述缓存数据对应的目标控制器。
作为一个实施例,所述装置还包括:
处理单元505,用于在基于所述指纹确定本控制器为所述缓存数据的归属控制器时,判断本地是否已记录所述指纹,若是,则基于所述缓存数据按照设定的重删策略进行数据重删;若否,则将所述缓存数据存储到硬盘中,并记录所述指纹。
请参见图6,为本申请在一个示例性实施例中的另一种在多控存储系统上的数据处理装置的结构示意图,所述装置应用于多控存储系统中的控制器,所述装置60包括:
接收单元601,用于接收所述多控存储系统中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令所对应目标数据所在的目标控制器时,向本控制器发送的包括刷盘指令对应的目标数据的指纹和目标写缓存地址的控制信息;
处理单元602,用于根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。
作为一个实施例,所述处理单元602,具体用于:
根据所述目标写缓存地址获取本控制器的写缓存中的目标数据;
判断所述控制信息中的所述指纹是否在本地已记录;
若是,则基于所述目标数据按照设定的重删策略进行数据重删处理;
若否,则将所述目标数据存储到硬盘中,并记录所述指纹。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
与前述在多控存储系统上的数据处理方法的实施例相对应,本申请还提供了实现在多控存储系统上的数据处理方法的网络设备的实施例。
如图7所示,所述网络设备包括存储器71、控制器72、通信接口73以及通信总线74;其中,所述存储器71、控制器72、通信接口73通过所述通信总线74进行相互间的通信;
所述存储器71,用于存放计算机程序;
所述控制器72,用于执行所述存储器71上所存放的计算机程序,所述处理器72执行所述计算机程序时实现本申请实施例提供的在多控存储系统上的数据处理方法的任一步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的在多控存储系统上的数据处理方法的任一步骤。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于网络设备和计算机可读存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
综上所述,本申请提供一种在多控存储系统上的数据处理方法及装置,可以时控制器接收刷盘指令,基于所述刷盘指令获取本地写缓存中的指定写缓存地址;根据该指定写缓存地址获取本地写缓存中对应的缓存数据,计算所述缓存数据的指纹;在基于所述指纹确定本控制器不为所述缓存数据对应的目标控制器时,获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址,向所述目标控制器发送包括所述指纹和所述目标写缓存地址的控制信息,以使所述目标控制器根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。本申请的控制器仅向目标控制器发送控制信息,以使目标控制器根据控制信息获取相应的目标数据,相比于现有技术,本申请的控制器之间无需传输用于刷盘的数据,从而可以避免占用镜像数据时的传输带宽,提高了写入数据的处理效率。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种在多控存储系统上的数据处理方法,其特征在于,所述方法应用于多控存储系统中的控制器,所述方法包括:
接收刷盘指令,基于所述刷盘指令获取本地写缓存中的指定写缓存地址;
根据该指定写缓存地址获取本地写缓存中对应的缓存数据,计算所述缓存数据的指纹,所述缓存数据的指纹用于唯一标识所述缓存数据;
在基于所述指纹确定本控制器不为所述缓存数据对应的目标控制器时,获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址,向所述目标控制器发送包括所述指纹和所述目标写缓存地址的控制信息,以使所述目标控制器根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。
2.根据权利要求1所述的方法,其特征在于,所述获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址,包括:
根据本地保存的本控制器与所述目标控制器的写缓存地址的对应关系,获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址。
3.根据权利要求2所述的方法,其特征在于,所述本控制器与所述目标控制器的写缓存地址对的应关系的建立方法包括:
预先设定本控制器与所述目标控制器的写缓存地址对的应关系,并保存在本控制器中。
4.根据权利要求2所述的方法,其特征在于,所述本控制器与所述目标控制器的写缓存地址对的应关系的建立方法还包括:
在接收数据写入指令时,将数据写入指令中的待写入数据写入到本地的写缓存中,并记录该待写入数据对应的写缓存地址;
将所述待写入数据镜像至所述多控存储系统中的与本控制器连接同一硬盘的其他控制器,所述其他控制器中包括所述目标控制器;
接收所述其他控制器针对所述待写入数据反馈的写缓存地址,记录所述待写入数据在本控制器的写缓存地址和其他控制器反馈的写缓存地址的对应关系。
5.根据权利要求1所述的方法,其特征在于,基于所述指纹确定本控制器不为所述缓存数据对应的目标控制器的方法为:
基于预设的指纹保存规则判断所述指纹的归属控制器;
当所述目标控制器不是本控制器时,确定本控制器不为所述缓存数据对应的目标控制器。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在基于所述指纹确定本控制器为所述缓存数据对应的目标控制器时,判断本地是否已记录所述指纹,若是,则基于所述缓存数据按照设定的重删策略进行数据重删;若否,则将所述缓存数据存储到硬盘中,并记录所述指纹。
7.一种在多控存储系统上的数据处理方法,其特征在于,所述方法应用于多控存储系统中的控制器,所述方法包括:
接收所述多控存储系统中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令所对应目标数据所在的目标控制器时,向本控制器发送的包括刷盘指令对应的目标数据的指纹和目标写缓存地址的控制信息,所述目标数据的指纹用于唯一标识所述目标数据;
根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。
8.根据权利要求7所述的方法,其特征在于,所述根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理,包括:
根据所述目标写缓存地址获取本控制器的写缓存中的目标数据;
判断所述控制信息中的所述指纹是否在本地已记录;
若是,则基于所述目标数据按照设定的重删策略进行数据重删处理;
若否,则将所述目标数据存储到硬盘中,并记录所述指纹。
9.一种在多控存储系统上的数据处理装置,其特征在于,所述装置应用于多控存储系统中的控制器,所述装置包括:
接收单元,用于接收刷盘指令,基于所述刷盘指令获取本地写缓存中的指定写缓存地址;
计算单元,用于根据该指定写缓存地址获取本地写缓存中对应的缓存数据,计算所述缓存数据的指纹,所述缓存数据的指纹用于唯一标识所述缓存数据;
发送单元,用于在基于所述指纹确定本控制器不为所述缓存数据对应的目标控制器时,获取所述指定写缓存地址对应的所述目标控制器中的目标写缓存地址,向所述目标控制器发送包括所述指纹和所述目标写缓存地址的控制信息,以使所述目标控制器根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。
10.一种在多控存储系统上的数据处理装置,其特征在于,所述装置应用于多控存储系统中的控制器,所述装置包括:
接收单元,用于接收所述多控存储系统中与本控制器连接同一硬盘的其他控制在确定本控制器为刷盘指令所对应目标数据所在的目标控制器时,向本控制器发送的包括刷盘指令对应的目标数据的指纹和目标写缓存地址的控制信息,所述目标数据的指纹用于唯一标识所述目标数据;
处理单元,用于根据所述控制信息在本地的写缓存中获取相应的目标数据,并对所述目标数据进行刷盘处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911101081.3A CN110928495B (zh) | 2019-11-12 | 2019-11-12 | 一种在多控存储系统上的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911101081.3A CN110928495B (zh) | 2019-11-12 | 2019-11-12 | 一种在多控存储系统上的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928495A CN110928495A (zh) | 2020-03-27 |
CN110928495B true CN110928495B (zh) | 2023-09-22 |
Family
ID=69853821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911101081.3A Active CN110928495B (zh) | 2019-11-12 | 2019-11-12 | 一种在多控存储系统上的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928495B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785756B (zh) * | 2024-02-23 | 2024-05-28 | 西安简矽技术有限公司 | 存储器控制系统、方法、芯片及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102016807A (zh) * | 2008-04-22 | 2011-04-13 | Lsi公司 | 驱动器阵列中的分布式缓存系统 |
CN103635887A (zh) * | 2013-09-23 | 2014-03-12 | 华为技术有限公司 | 缓存数据的方法和存储系统 |
CN106445840A (zh) * | 2015-08-07 | 2017-02-22 | 华为技术有限公司 | 数据存储方法以及存储系统 |
CN106569742A (zh) * | 2016-10-20 | 2017-04-19 | 华为技术有限公司 | 存储管理方法及存储设备 |
CN107145449A (zh) * | 2016-03-01 | 2017-09-08 | 日本电气株式会社 | 存储设备和存储方法 |
JP2018010698A (ja) * | 2014-09-15 | 2018-01-18 | 華為技術有限公司Huawei Technologies Co.,Ltd. | データ書込み要求処理方法及びストレージアレイ |
CN108319430A (zh) * | 2018-01-17 | 2018-07-24 | 杭州宏杉科技股份有限公司 | 处理io请求的方法及装置 |
CN110321301A (zh) * | 2018-03-30 | 2019-10-11 | 华为技术有限公司 | 一种数据处理的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296782B2 (en) * | 2008-04-22 | 2012-10-23 | Lsi Corporation | System eliminating hardware duplication during application testing of an internal storage array across different operating systems |
-
2019
- 2019-11-12 CN CN201911101081.3A patent/CN110928495B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102016807A (zh) * | 2008-04-22 | 2011-04-13 | Lsi公司 | 驱动器阵列中的分布式缓存系统 |
CN103635887A (zh) * | 2013-09-23 | 2014-03-12 | 华为技术有限公司 | 缓存数据的方法和存储系统 |
JP2018010698A (ja) * | 2014-09-15 | 2018-01-18 | 華為技術有限公司Huawei Technologies Co.,Ltd. | データ書込み要求処理方法及びストレージアレイ |
CN106445840A (zh) * | 2015-08-07 | 2017-02-22 | 华为技术有限公司 | 数据存储方法以及存储系统 |
CN107145449A (zh) * | 2016-03-01 | 2017-09-08 | 日本电气株式会社 | 存储设备和存储方法 |
CN106569742A (zh) * | 2016-10-20 | 2017-04-19 | 华为技术有限公司 | 存储管理方法及存储设备 |
CN108319430A (zh) * | 2018-01-17 | 2018-07-24 | 杭州宏杉科技股份有限公司 | 处理io请求的方法及装置 |
CN110321301A (zh) * | 2018-03-30 | 2019-10-11 | 华为技术有限公司 | 一种数据处理的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110928495A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9128855B1 (en) | Flash cache partitioning | |
CN108268219B (zh) | 一种处理io请求的方法及装置 | |
US9507720B2 (en) | Block storage-based data processing methods, apparatus, and systems | |
US8521986B2 (en) | Allocating storage memory based on future file size or use estimates | |
US9524220B1 (en) | Memory optimization for configuration elasticity in cloud environments | |
US20200125412A1 (en) | Dynamic workload management based on predictive modeling and recommendation engine for storage systems | |
US20160239412A1 (en) | Storage apparatus and information processing system including storage apparatus | |
CN110928496B (zh) | 一种在多控存储系统上的数据处理方法及装置 | |
CN107329704B (zh) | 一种缓存镜像方法及控制器 | |
CN107193503B (zh) | 一种数据重删方法及存储设备 | |
CN108319430B (zh) | 处理io请求的方法及装置 | |
US20080229131A1 (en) | Storage System and Management Information Acquisition Method for Power Saving | |
US20160170646A1 (en) | Implementing enhanced performance flash memory devices | |
KR20130123897A (ko) | 하이브리드 스토리지 시스템의 파일 관리 방법 및 장치 | |
US20100174676A1 (en) | Determining modified data in cache for use during a recovery operation | |
CN113360082B (zh) | 存储系统及其控制方法 | |
CN110928495B (zh) | 一种在多控存储系统上的数据处理方法及装置 | |
US9971520B2 (en) | Processing read and write requests | |
CN105915595B (zh) | 一种集群存储系统存取数据的方法以及集群存储系统 | |
US20240104014A1 (en) | Data management method, and storage space management method and apparatus | |
US20180232312A1 (en) | Storage control device, method of storing data, and storage system | |
US20150067285A1 (en) | Storage control apparatus, control method, and computer-readable storage medium | |
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 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
US11816336B2 (en) | Storage system and control method 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 |