CN112181291B - 数据回写方法、装置、电子设备及机器可读存储介质 - Google Patents

数据回写方法、装置、电子设备及机器可读存储介质 Download PDF

Info

Publication number
CN112181291B
CN112181291B CN202010924212.4A CN202010924212A CN112181291B CN 112181291 B CN112181291 B CN 112181291B CN 202010924212 A CN202010924212 A CN 202010924212A CN 112181291 B CN112181291 B CN 112181291B
Authority
CN
China
Prior art keywords
data
storage
write
storage controller
target
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
CN202010924212.4A
Other languages
English (en)
Other versions
CN112181291A (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.)
Macrosan Technologies Co Ltd
Original Assignee
Macrosan Technologies 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 Macrosan Technologies Co Ltd filed Critical Macrosan Technologies Co Ltd
Priority to CN202010924212.4A priority Critical patent/CN112181291B/zh
Publication of CN112181291A publication Critical patent/CN112181291A/zh
Application granted granted Critical
Publication of CN112181291B publication Critical patent/CN112181291B/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/0658Controller construction 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/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]

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

数据回写方法、装置、电子设备及机器可读存储介质
技术领域
本申请涉及存储技术领域,尤其涉及数据回写方法、装置、电子设备及机器可读存储介质。
背景技术
重删技术,全称重复数据删除全称,也称为智能压缩或单一实例存储,是一种自动搜索重复数据,将相同数据只保留唯一的副本,以达到消除冗余数据、省存储空间的存储技术。
发明内容
本申请提供一种数据回写方法,所述方法应用于搭载了至少两个存储控制器的存储系统;其中,所述存储系统为重删存储系统,各个存储控制器分别管理各自对应的写缓存空间,各个存储控制器分别管理的写缓存空间之间互为镜像,各个存储控制器各自管理不同的目标存储卷,所述方法包括:
响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与所述数据回写指令对应的目标回写数据;
对所述目标回写数据执行分片得到对应的若干个数据分片,确定与各个数据分片分别对应归属的目标存储控制器;
如果确定的目标存储控制器与确定数据分片归属目标存储控制器的存储控制器为同一存储控制器,则由所述同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。
可选的,所述对所述目标回写数据执行分片得到对应的若干个数据分片,包括:
基于预设容量大小,对所述目标回写数据执行分片得到对应的容量大小相同的若干个数据分片。
可选的,在响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令之前,还包括:
响应于针对目标存储卷的写访问,将所述写访问携带的数据写入至写缓存空间中;
将已写入至写缓存空间中的数据执行数据镜像,同步至其它存储控制器管理的写缓存空间中,并针对所述写访问返回对应的写成功回应。
可选的,所述确定与各个数据分片分别对应归属的目标存储控制器,包括:
获取所述重删存储系统搭载的存储控制器个数的数量值;
获取各个数据分片中指定位置的预设长度的目标数据;
将获取的所述目标数据的数据内容转换为整数值,并将该整数值与所述数量值执行取模运算,得到与各个数据分片分别对应的存储控制器编号;
基于得到的存储控制器编号,将与各个数据分片分别对应存储控制器编号所指示的存储控制器,确定为与各个数据分片分别对应归属的目标存储控制器。
可选的,各个存储控制器分别对应各自管理的指纹库;
所述由所述同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷,包括:
由所述同一存储控制器计算与确定的数据分片对应的数据指纹;
以计算得到的数据指纹作为查找索引,在存储控制器本地对应管理的指纹库中查找是否存在匹配的数据指纹;如果存在匹配的数据指纹,则建立该匹配的数据指纹与该数据分片之间的映射关系。
可选的,还包括:
如果不存在匹配的数据指纹,则将计算得到的数据指纹更新至存储控制器本地对应管理的指纹库中,并建立该计算得到的数据指纹与该数据分片之间的映射关系。
可选的,所述建立该计算得到的数据指纹与该数据分片之间的映射关系,包括:
将该数据分片写入至在目标存储卷中为该数据分片分配的目标存储地址所指示的存储空间中;
建立该计算得到的数据指纹与该数据分片的目标存储地址之间的映射关系。
可选的,所述重删存储系统为全局重删存储系统。
本申请还提供一种数据回写装置,所述装置应用于搭载了至少两个存储控制器的存储系统;其中,所述存储系统为重删存储系统,各个存储控制器分别管理各自对应的写缓存空间,各个存储控制器分别管理的写缓存空间之间互为镜像,各个存储控制器各自管理不同的目标存储卷,所述装置包括:
确定模块,响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与所述数据回写指令对应的目标回写数据;
所述确定模块进一步,对所述目标回写数据执行分片得到对应的若干个数据分片,确定与各个数据分片分别对应归属的目标存储控制器;
回写模块,如果确定的目标存储控制器与确定数据分片归属目标存储控制器的存储控制器为同一存储控制器,则由所述同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。
可选的,所述确定模块进一步:
基于预设容量大小,对所述目标回写数据执行分片得到对应的容量大小相同的若干个数据分片。
可选的,在响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令之前,所述装置还包括:
同步模块,响应于针对目标存储卷的写访问,将所述写访问携带的数据写入至写缓存空间中;
将已写入至写缓存空间中的数据执行数据镜像,同步至其它存储控制器管理的写缓存空间中,并针对所述写访问返回对应的写成功回应。
可选的,所述确定模块进一步:
获取所述重删存储系统搭载的存储控制器个数的数量值;
获取各个数据分片中指定位置的预设长度的目标数据;
将获取的所述目标数据的数据内容转换为整数值,并将该整数值与所述数量值执行取模运算,得到与各个数据分片分别对应的存储控制器编号;
基于得到的存储控制器编号,将与各个数据分片分别对应存储控制器编号所指示的存储控制器,确定为与各个数据分片分别对应归属的目标存储控制器。
可选的,各个存储控制器分别对应各自管理的指纹库;
所述回写模块进一步:
由所述同一存储控制器计算与确定的数据分片对应的数据指纹;
以计算得到的数据指纹作为查找索引,在存储控制器本地对应管理的指纹库中查找是否存在匹配的数据指纹;如果存在匹配的数据指纹,则建立该匹配的数据指纹与该数据分片之间的映射关系。
可选的,所述回写模块进一步:
如果不存在匹配的数据指纹,则将计算得到的数据指纹更新至存储控制器本地对应管理的指纹库中,并建立该计算得到的数据指纹与该数据分片之间的映射关系。
可选的,所述回写模块进一步:
将该数据分片写入至在目标存储卷中为该数据分片分配的目标存储地址所指示的存储空间中;
建立该计算得到的数据指纹与该数据分片的目标存储地址之间的映射关系。
可选的,所述重删存储系统为全局重删存储系统。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,基于响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与数据回写指令对应的目标回写数据;对目标回写数据执行分片得到对应的若干个数据分片,确定与各个数据分片分别对应归属的目标存储控制器;如果确定的数据分片对应归属的目标存储控制器与响应于数据回写指令的存储控制器为同一存储控制器,则由同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。在将写缓存空间中的数据回写至目标存储卷的过程中,通过数据分片的数据内容唯一确定对应归属的存储控制器,可以将数据指纹计算从单个存储控制器分散至多个存储控制器上,充分利用多个存储控制器的硬件资源并发执行数据分片的数据指纹计算,同时减少了各个存储控制器间数据分片及其数据指纹的重复数据传输,提高了重删系统的性能。
附图说明
图1是一示例性实施例提供的一种基于多控制器的重删系统的数据回写的过程示意图;
图2是一示例性实施例提供的一种数据回写方法的流程图;
图3是一示例性实施例提供的另一种基于多控制器的重删系统的数据回写的过程示意图;
图4是一示例性实施例提供的一种电子设备的硬件结构图;
图5是一示例性实施例提供的一种数据回写装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的数据回写的相关技术,进行简要说明。
请参见图1,图1是本申请一实施例提供的一种基于多控制器的重删系统的数据回写的过程示意图。
需要说明的是,图1中仅以重删系统包括两个存储控制器为示例,在实际应用中,存在重删系统可能包括超过两个存储控制器的情况。
如图1所示,重删存储系统包括至少两个存储控制器(SP1、SP2),各个存储控制器分别管理各自对应的写缓存空间(SP1管理Cache1、SP2管理Cache2),各个存储控制器分别对应各自管理的指纹库(SP1管理SP1指纹库、SP2管理SP2指纹库;各个存储控制器分别管理的写缓存空间之间互为镜像(写缓存空间Cache1和写缓存空间Cache2互为镜像),存储卷1被SP1管理,存储卷2被SP2管理。
需要说明的是,各个写缓存空间之间互为镜像,主要用于当某一存储控制器故障被其它存储控制器进行接管时,将写缓存空间中缓存的数据及时回写至存储卷中。
如图1所示,针对Cache1中缓存的待回写至存储卷的数据分片D1,由SP1先计算数据分片D1对应的指纹,再根据计算出来的指纹,基于指纹与存储控制器的归属设置,来判断该指纹对应归属的存储控制器的指纹库。例如,在如图1所示的双存储控制器中根据指纹的奇偶来判断归属存储控制器,也即,当指纹为奇数时,该指纹归属SP1管理;当指纹为偶数时,该指纹归属SP2管理。
如图1所示,当判断出指纹应归属SP1指纹库时(当指纹为奇数时),依据计算出来的指纹到SP1指纹库中查找是否存在匹配指纹,如果SP1指纹库中存在匹配指纹,则建立起存储卷1中的存储数据的逻辑地址到该指纹的映射;如果SP1指纹库中不存在匹配指纹,则由将D1从Cache1回写至存储卷1。类似地,当判断出指纹应归属SP2指纹库时(当指纹为偶数时),则SP1将D1及其指纹从SP1传输至SP2,以由SP2在SP2指纹库中查找是否存在匹配指纹,如果SP2指纹库中存在匹配指纹,则建立起存储卷2中的存储数据的逻辑地址到该指纹的映射;如果SP2指纹库中不存在匹配指纹,则将D1从Cache2回写至存储卷2。
如图1所示,针对Cache1中缓存的待回写至存储卷的数据分片D2,执行与以上描述的针对Cache1中缓存的待回写至存储卷的数据分片D1的类似过程,具体不再赘述。如图1所示,当判断出D2的指纹应归属SP2指纹库时(当指纹为偶数时),则SP1将D2及其指纹从SP1传输至SP2,以由SP2在SP2指纹库进一步查找是否存在匹配指纹,并基于是否存在匹配指纹,确定是否将D2执行数据回写至存储卷2。
基于图1所示的过程,由于将写缓存空间中数据回写是在存储卷对应归属的存储控制器上执行,并根据计算写缓存空间中的数据分片的指纹,以及基于指纹与存储控制器的归属设置,来确定指纹库归属的控制器;如果数据分片计算得到的指纹不归属本地存储控制器,则需要将该数据分片及其对应指纹传输至归属的存储控制器。
然而,由于各个存储控制器分别管理的写缓存空间之间互为镜像,数据分片在归属的存储控制器中的写缓存空间中实际上已经存在,而如图1所示的数据分片及其指纹的跨存储控制器的传输过程,对存储控制器间的传输通道形成了多余的消耗,导致传输通道利用率下降、更容易成为瓶颈,从而限制了重删存储系统的性能。
基于此,本申请旨在提出一种,在重删存储系统中,基于与目标回写数据分片后得到的数据分片,无需先计算数据分片的指纹,而是通过数据分片直接确定对应归属的目标存储控制器,并由归属的目标存储控制器进一步对数据分片进行重删计算及数据回写至目标存储卷的技术方案。
在实现时,重删存储系统搭载了至少两个存储控制器,各个存储控制器分别管理各自对应的写缓存空间,各个存储控制器分别管理的写缓存空间之间互为镜像,各个存储控制器各自管理不同的目标存储卷。
进一步地,重删存储系统响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与所述数据回写指令对应的目标回写数据。
进一步地,重删存储系统对所述目标回写数据执行分片得到对应的若干个数据分片,确定与各个数据分片分别对应归属的目标存储控制器。
进一步地,如果确定的目标存储控制器与确定数据分片归属目标存储控制器的存储控制器为同一存储控制器,则由所述同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。
在以上方案中,基于响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与数据回写指令对应的目标回写数据;对目标回写数据执行分片得到对应的若干个数据分片,确定与各个数据分片分别对应归属的目标存储控制器;如果确定的数据分片对应归属的目标存储控制器与响应于数据回写指令的存储控制器为同一存储控制器,则由同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。在将写缓存空间中的数据回写至目标存储卷的过程中,通过数据分片的数据内容唯一确定对应归属的存储控制器,可以将数据指纹计算从单个存储控制器分散至多个存储控制器上,充分利用多个存储控制器的硬件资源并发执行数据分片的数据指纹计算,同时减少了各个存储控制器间数据分片及其数据指纹的重复数据传输,提高了重删系统的性能。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图2,图2是本申请一实施例提供的一种数据回写方法的流程图,所述方法应用于搭载了至少两个存储控制器的存储系统;其中,所述存储系统为重删存储系统,各个存储控制器分别管理各自对应的写缓存空间,各个存储控制器分别管理的写缓存空间之间互为镜像,各个存储控制器各自管理不同的目标存储卷;上述方法执行以下步骤:
步骤202、响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与所述数据回写指令对应的目标回写数据。
步骤204、对所述目标回写数据执行分片得到对应的若干个数据分片,确定与各个数据分片分别对应归属的目标存储控制器。
步骤206、如果确定的目标存储控制器与确定数据分片归属目标存储控制器的存储控制器为同一存储控制器,则由所述同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。
在本说明书中,上述存储系统,是指包括至少两个存储控制器的重删存储系统。
例如,请参见图1所示,上述存储系统,具体可以为包括两个存储控制器的重删存储系统。当然在实际应用中,该重删存储系统还可以包括两个以上的存储控制器。
在本说明书中,上述重删存储系统,是指启用重删技术的存储系统。
在示出的一种实施方式中,上述重删存储系统可以为全局重删存储系统。
其中,全局重删,是指整个重删存储系统中的重复数据只保留一份;相对而言,局部重删,是指将单个存储卷的内部重复数据删除或者将单个存储控制器管理的多个存储卷的内部重复数据删除,局部重删只是在局部范围内保留一份数据,而在更大的范围内存在重复的数据,比如:多个存储卷之间、多个存储控制器之间。
在本说明书中,上述重删存储系统包括的各个存储控制器分别管理各自对应的写缓存空间,各个存储控制器分别管理的写缓存空间之间互为镜像,各个存储控制器各自管理不同的目标存储卷。
例如,请参见图1所示,重删存储系统包括SP1、SP2分别管理各自对应的Cache1、Cache2;其中,Cache1与Cache2互为镜像;SP1、SP2分别管理各自对应的存储卷1、存储卷2。
在示出的一种实施方式中,上述重删存储系统接收并响应于针对目标存储卷的写访问,将所述写访问携带的数据写入至写缓存空间中,并将已写入至写缓存空间中的数据执行数据镜像,同步至其它存储控制器管理的写缓存空间中,并针对所述写访问返回对应的写成功回应。
例如,以上述重删存储系统为图1所示为例,SP1可以接收并响应于针对存储卷1的写访问A,将该写访问携带的数据写入至Cache1中,并将已写入至Cache1中的数据执行数据镜像,同步至SP2管理的Cache2中,并针对该写访问返回对应的写成功回应。
当然,在实际应用中,与以上示例类似的,SP2可以接收并响应于针对存储卷2的写访问B,将该写访问携带的数据写入至Cach2中,并将已写入至Cache2中的数据执行数据镜像,同步至SP1管理的Cache1中,并针对该写访问返回对应的写成功回应。
请参见图3,图3是本申请一实施例提供的另一种基于多控制器的重删系统的数据回写的过程示意图。
图3与图1的重删存储系统的架构类似,区别主要在于SP1、SP2可以各自分别基于Cache1、Cache2中的数据分片(D1、D2)的数据内容,直接确定数据分片(D1、D2)分别归属的存储控制器,当确定出数据分片(D1、D2)归属SP2时,SP1无需将数据分片(D1、D2)及其指纹从SP1传输至SP2。
在本说明书中,在将已写入至写缓存空间中的数据执行数据镜像,同步至其它存储控制器管理的写缓存空间中后,上述重删存储系统接收并响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与上述数据回写指令对应的目标回写数据。
例如,以如图3所示的重删存储系统为例,SP1、SP2并行接收并响应于将Cache1、Cache2中的数据回写至存储卷的数据回写指令,确定与该数据回写指令中对应的目标回写数据,比如,该目标回写数据为Cache1、Cache2中分别包括的D1和D2的回写数据。
在本说明书中,进一步地,上述重删存储系统对上述目标回写数据执行分片得到对应的若干个数据分片。
接着以上示例继续举例,针对Cache1、Cache2中分别包括的目标回写数据,SP1、SP2分别将Cache1、Cache2中分别包括的目标回写数据,执行分片得到对应的2个数据分片(D1、D2)。
在示出的一种实施方式中,在对上述目标回写数据执行分片得到对应的若干个数据分片的过程中,上述重删存储系统基于预设容量大小,对上述目标回写数据执行分片得到对应的容量大小相同的若干个数据分片。
接着以上示例继续举例,SP1、SP2分别将Cache1、Cache2中分别包括的目标回写数据,基于预设容量大小(比如:1KB等),执行分片得到对应的2个容量大小(预设容量大小)相同的数据分片(D1、D2)。
在本说明书中,在得到与上述目标回写数据对应的若干个数据分片后,上述重删存储系统确定与各个数据分片分别对应归属的目标存储控制器。
接着以上示例继续举例,针对Cache1、Cache2中分别包括的目标回写数据,SP1、SP2分别将Cache1、Cache2中分别包括的目标回写数据,执行分片得到对应的2个数据分片(D1、D2),并由在SP1、SP2各自在本地分别确定与数据分片D1、D2分别对应归属的目标存储控制器。比如:SP1在本地确定与数据分片D1对应归属的目标存储控制器为SP1、与数据分片D2对应归属的目标存储控制器为SP2;SP2在本地确定与数据分片D1对应归属的目标存储控制器为SP1、与数据分片D2对应归属的目标存储控制器为SP2。
在示出的一种实施方式中,在上述重删存储系统确定与各个数据分片分别对应归属的目标存储控制器的过程中,上述重删存储系统具体执行以下步骤:
步骤a、获取上述重删存储系统搭载的存储控制器个数的数量值。
例如,以如图3所示的重删存储系统为例,SP1、SP2分别获取重删存储系统搭载的存储控制器个数的数量值为2。
步骤b、获取各个数据分片中指定位置的预设长度的目标数据。
接着以上示例继续示例,以各个数据分片的容量大小为1KB为例,SP1、SP2分别、获取各个容量大小为1KB的数据分片中指定位置的预设长度的目标数据。比如:以每个1KB的数据分片中预设的固定位置的1个或多个的字节的数据作为目标数据。
步骤c、将获取的上述目标数据的数据内容转换为整数值,并将该整数值与所述数量值执行取模运算,得到与各个数据分片分别对应的存储控制器编号。
接着以上示例继续示例,以每个1KB的数据分片中预设的固定位置的1个字节的数据作为目标数据为例,将获取的该目标数据的数据内容转换为整数值,并将该整数值与2(数量值)执行取模运算,得到与各个数据分片(D1、D2)分别对应的存储控制器编号(0、1)。
步骤d、基于得到的存储控制器编号,将与各个数据分片分别对应存储控制器编号所指示的存储控制器,确定为与各个数据分片分别对应归属的目标存储控制器。
接着以上示例继续示例,以存储控制器编号0对应SP1、存储控制器编号1对应SP2为例,基于得到的存储控制器编号(0、1),将与各个数据分片分别(D1、D2)对应存储控制器编号所指示的存储控制器(SP1、SP2),确定为与各个数据分片分别对应归属的目标存储控制器。也即,SP1确定Cache1中D1对应归属的目标存储控制器为SP1,Cache1中D2对应归属的目标存储控制器为SP2;SP2确定Cache2中D1对应归属的目标存储控制器为SP1,Cache2中D2对应归属的目标存储控制器为SP2。
在本说明书中,如果确定的目标存储控制器与确定数据分片归属目标存储控制器的存储控制器为同一存储控制器,则由上述同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。
例如,以SP1确定Cache1中D1对应归属的目标存储控制器为SP1,Cache1中D2对应归属的目标存储控制器为SP2为例,确定的数据分片D1对应归属的目标存储控制器SP1与确定数据分片D1归属目标存储控制器SP1的存储控制器SP1为同一存储控制器,则由存储控制器SP1对确定的数据分片D1执行重删计算后,并确定是否将该确定的数据分片D1回写至存储卷1;而确定的数据分片D2对应归属的目标存储控制器SP2与确定数据分片D1归属目标存储控制器SP1的存储控制器SP1不是同一存储控制器,则存储控制器SP1对确定的数据分片D2不执行任何处理。
又例如,以SP2确定Cache2中D1对应归属的目标存储控制器为SP1,Cache2中D2对应归属的目标存储控制器为SP2为例,确定的数据分片D1对应归属的目标存储控制器SP1与确定数据分片D1归属目标存储控制器SP2的存储控制器SP1不是同一存储控制器,则存储控制器SP2对确定的数据分片D1不执行任何处理;而确定的数据分片D2对应归属的目标存储控制器SP2与确定数据分片D2归属目标存储控制器SP2的存储控制器SP2是同一存储控制器,则存储控制器SP2对确定的数据分片D2执行重删计算后,并确定是否将该确定的数据分片D2回写至存储卷2。
在示出的一种实施方式中,上述重删存储系统包括的各个存储控制器分别对应各自管理的指纹库。例如,请参见图3所示,存储控制器SP1对应管理SP1指纹库,存储控制器SP2对应管理SP2指纹库。
在示出的一种实施方式中,在对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷的过程中,上述同一存储控制器具体执行以下步骤:
步骤1、由上述同一存储控制器计算与确定的数据分片对应的数据指纹。
例如,如图3所示,以确定的数据分片D1对应归属的目标存储控制器SP1与确定数据分片D1归属目标存储控制器SP1的存储控制器SP1为同一存储控制器为例,由存储控制器SP1计算与数据分片D1对应的数据指纹H1。
又例如,如图3所示,以确定的数据分片D2对应归属的目标存储控制器SP2与确定数据分片D2归属目标存储控制器SP2的存储控制器SP2为同一存储控制器为例,由存储控制器SP2计算与数据分片D2对应的数据指纹H2。
步骤2、以计算得到的数据指纹作为查找索引,在存储控制器本地对应管理的指纹库中查找是否存在匹配的数据指纹;如果存在匹配的数据指纹,则建立该匹配的数据指纹与该数据分片之间的映射关系。
例如,以计算得到的数据指纹为H1为例,SP1以数据指纹H1作为查找索引,在存储控制器SP1本地对应管理的SP1指纹库中查找是否存在匹配的数据指纹M1;如果存在匹配的数据指纹M1,则建立该匹配的数据指纹M1与数据分片D1之间的映射关系。
又例如,以计算得到的数据指纹为H2为例,SP2以数据指纹H2作为查找索引,在存储控制器SP2本地对应管理的SP2指纹库中查找是否存在匹配的数据指纹M2;如果存在匹配的数据指纹M2,则建立该匹配的数据指纹M2与数据分片D2之间的映射关系。
步骤3、如果不存在匹配的数据指纹,则将计算得到的数据指纹更新至存储控制器本地对应管理的指纹库中,并建立该计算得到的数据指纹与该数据分片之间的映射关系。
例如,以计算得到的数据指纹为H1为例,在存储控制器SP1本地对应管理的SP1指纹库中查找不存在匹配的数据指纹,则存储控制器SP1将计算得到的数据指纹H1更新至存储控制器SP1本地对应管理的SP1指纹库中,并建立该计算得到的数据指纹H1与该数据分片D1之间的映射关系。
又例如,以计算得到的数据指纹为H2为例,在存储控制器SP2本地对应管理的SP2指纹库中查找不存在匹配的数据指纹,则存储控制器SP2将计算得到的数据指纹H2更新至存储控制器SP2本地对应管理的SP2指纹库中,并建立该计算得到的数据指纹H2与该数据分片D2之间的映射关系。
在示出的一种实施方式中,在建立该计算得到的数据指纹与该数据分片之间的映射关系的过程中,上述重删存储系统中的各个存储控制器将该数据分片写入至在目标存储卷中为该数据分片分配的目标存储地址所指示的存储空间中,并建立该计算得到的数据指纹与该数据分片的目标存储地址之间的映射关系。
例如,以计算得到的数据指纹为H1并且SP1指纹库中不存在与H1匹配的数据指纹为例,在建立计算得到的数据指纹H1与数据分片D1之间的映射关系的过程中,存储控制器SP1将数据分片D1写入至在存储卷1中为数据分片该分配的目标存储地址A所指示的存储空间中,并建立该计算得到的数据指纹H1与数据分片D1的目标存储地址A之间的映射关系。
又例如,以计算得到的数据指纹为H2并且SP2指纹库中不存在与H2匹配的数据指纹为例,在建立计算得到的数据指纹H2与数据分片D2之间的映射关系的过程中,存储控制器SP2将数据分片D2写入至在存储卷2中为数据分片该分配的目标存储地址B所指示的存储空间中,并建立该计算得到的数据指纹H2与数据分片D2的目标存储地址B之间的映射关系。
需要说明的是,建立计算得到的数据指纹与对应的数据分片的目标存储地址之间的映射关系,具体可以包括在指纹库中创建数据指纹与对应的数据分片的目标逻辑地址(LBA)的间接映射关系,后续再通过建立LBA与PBA的地址映射关系,将数据分片的数据内容写入与LBA对应的PBA。建立计算得到的数据指纹与对应的数据分片的目标存储地址之间的映射关系,具体还可以包括在指纹库中创建数据指纹与对应的数据分片的目标物理地址(PBA)的直接映射关系,将数据分片的数据内容直接写入与数据指纹对应的PBA,无需建立LBA与PBA的地址映射关系。
在以上技术方案中,基于响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与数据回写指令对应的目标回写数据;对目标回写数据执行分片得到对应的若干个数据分片,确定与各个数据分片分别对应归属的目标存储控制器;如果确定的数据分片对应归属的目标存储控制器与响应于数据回写指令的存储控制器为同一存储控制器,则由同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。在将写缓存空间中的数据回写至目标存储卷的过程中,通过数据分片的数据内容唯一确定对应归属的存储控制器,可以将数据指纹计算从单个存储控制器分散至多个存储控制器上,充分利用多个存储控制器的硬件资源并发执行数据分片的数据指纹计算,同时减少了各个存储控制器间数据分片及其数据指纹的重复数据传输,提高了重删系统的性能。
例如,将图3与图1进行对比查看,图3相比图1主要区别在于,在图3中,各个存储控制器(SP1、SP2)可以并行地直接基于写缓存空间(Cache1、Cache2)中镜像存在的不同的数据分片(D1、D2)的数据内容直接计算数据指纹并确定对应归属的目标存储控制器,并对于归属的目标存储控制器为本存储控制器的数据分片,进行重删计算及确定是否回写处理。避免了如图1所示的各个存储控制器(SP1、SP2)间数据分片及其数据指纹的重复数据传输,提高了重删系统的性能。
与上述方法实施例相对应,本申请还提供了数据回写装置的实施例。
与上述方法实施例相对应,本说明书还提供了一种数据回写装置的实施例。本说明书的数据回写装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书的数据回写装置所在电子设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图5是本说明书一实施例示出的一种数据回写装置的框图。
请参考图5,数据回写装置50可以应用在前述图4所示的电子设备中,所述装置应用于搭载了至少两个存储控制器的存储系统;其中,所述存储系统为重删存储系统,各个存储控制器分别管理各自对应的写缓存空间,各个存储控制器分别管理的写缓存空间之间互为镜像,各个存储控制器各自管理不同的目标存储卷;所述装置包括:
确定模块501,响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与所述数据回写指令对应的目标回写数据;
所述确定模块501进一步,对所述目标回写数据执行分片得到对应的若干个数据分片,确定与各个数据分片分别对应归属的目标存储控制器;
回写模块502,如果确定的目标存储控制器与确定数据分片归属目标存储控制器的存储控制器为同一存储控制器,则由所述同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。
在本实施例中,所述确定模块501进一步:
基于预设容量大小,对所述目标回写数据执行分片得到对应的容量大小相同的若干个数据分片。
在本实施例中,在响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令之前,所述装置还包括:
同步模块503(图5中未示出),响应于针对目标存储卷的写访问,将所述写访问携带的数据写入至写缓存空间中;
将已写入至写缓存空间中的数据执行数据镜像,同步至其它存储控制器管理的写缓存空间中,并针对所述写访问返回对应的写成功回应。
在本实施例中,所述确定模块501进一步:
获取所述重删存储系统搭载的存储控制器个数的数量值;
获取各个数据分片中指定位置的预设长度的目标数据;
将获取的所述目标数据的数据内容转换为整数值,并将该整数值与所述数量值执行取模运算,得到与各个数据分片分别对应的存储控制器编号;
基于得到的存储控制器编号,将与各个数据分片分别对应存储控制器编号所指示的存储控制器,确定为与各个数据分片分别对应归属的目标存储控制器。
在本实施例中,各个存储控制器分别对应各自管理的指纹库;
所述回写模块502进一步:
由所述同一存储控制器计算与确定的数据分片对应的数据指纹;
以计算得到的数据指纹作为查找索引,在存储控制器本地对应管理的指纹库中查找是否存在匹配的数据指纹;如果存在匹配的数据指纹,则建立该匹配的数据指纹与该数据分片之间的映射关系。
在本实施例中,所述回写模块502进一步:
如果不存在匹配的数据指纹,则将计算得到的数据指纹更新至存储控制器本地对应管理的指纹库中,并建立该计算得到的数据指纹与该数据分片之间的映射关系。
在本实施例中,所述回写模块502进一步:
将该数据分片写入至在目标存储卷中为该数据分片分配的目标存储地址所指示的存储空间中;
建立该计算得到的数据指纹与该数据分片的目标存储地址之间的映射关系。
在本实施例中,所述重删存储系统为全局重删存储系统。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (11)

1.一种数据回写方法,所述方法应用于搭载了至少两个存储控制器的存储系统;其中,所述存储系统为重删存储系统,各个存储控制器分别管理各自对应的写缓存空间,各个存储控制器分别管理的写缓存空间之间互为镜像,各个存储控制器各自管理不同的目标存储卷,所述方法包括:
响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与所述数据回写指令对应的目标回写数据;
对所述目标回写数据执行分片得到对应的若干个数据分片,依据所述重删存储系统搭载的存储控制器个数和各个数据分片中指定位置的目标数据,获得各个数据分片分别对应的存储控制器编号;
依据所述存储控制器编号确定与各个数据分片分别对应归属的目标存储控制器;
如果确定的目标存储控制器与确定数据分片归属目标存储控制器的存储控制器为同一存储控制器,则由所述同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。
2.根据权利要求1所述的方法,所述对所述目标回写数据执行分片得到对应的若干个数据分片,包括:
基于预设容量大小,对所述目标回写数据执行分片得到对应的容量大小相同的若干个数据分片。
3.根据权利要求1所述的方法,在响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令之前,还包括:
响应于针对目标存储卷的写访问,将所述写访问携带的数据写入至写缓存空间中;
将已写入至写缓存空间中的数据执行数据镜像,同步至其它存储控制器管理的写缓存空间中,并针对所述写访问返回对应的写成功回应。
4.根据权利要求1所述的方法,所述依据所述重删存储系统搭载的存储控制器个数和各个数据分片中指定位置的目标数据,获得各个数据分片分别对应的存储控制器编号包括:
获取所述重删存储系统搭载的存储控制器个数的数量值;
获取各个数据分片中指定位置的预设长度的目标数据;
将获取的所述目标数据的数据内容转换为整数值,并将该整数值与所述数量值执行取模运算,得到与各个数据分片分别对应的存储控制器编号;
所述依据所述存储控制器编号确定与各个数据分片分别对应归属的目标存储控制器包括:基于得到的存储控制器编号,将与各个数据分片分别对应存储控制器编号所指示的存储控制器,确定为与各个数据分片分别对应归属的目标存储控制器。
5.根据权利要求1所述的方法,各个存储控制器分别对应各自管理的指纹库;
所述由所述同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷,包括:
由所述同一存储控制器计算与确定的数据分片对应的数据指纹;
以计算得到的数据指纹作为查找索引,在存储控制器本地对应管理的指纹库中查找是否存在匹配的数据指纹;如果存在匹配的数据指纹,则建立该匹配的数据指纹与该数据分片之间的映射关系。
6.根据权利要求5所述的方法,还包括:
如果不存在匹配的数据指纹,则将计算得到的数据指纹更新至存储控制器本地对应管理的指纹库中,并建立该计算得到的数据指纹与该数据分片之间的映射关系。
7.根据权利要求6所述的方法,所述建立该计算得到的数据指纹与该数据分片之间的映射关系,包括:
将该数据分片写入至在目标存储卷中为该数据分片分配的目标存储地址所指示的存储空间中;
建立该计算得到的数据指纹与该数据分片的目标存储地址之间的映射关系。
8.根据权利要求1所述的方法,所述重删存储系统为全局重删存储系统。
9.一种数据回写装置,所述装置应用于搭载了至少两个存储控制器的存储系统;其中,所述存储系统为重删存储系统,各个存储控制器分别管理各自对应的写缓存空间,各个存储控制器分别管理的写缓存空间之间互为镜像,各个存储控制器各自管理不同的目标存储卷,所述装置包括:
确定模块,响应于将写缓存空间中的数据回写至目标存储卷的数据回写指令,确定与所述数据回写指令对应的目标回写数据;
所述确定模块进一步,对所述目标回写数据执行分片得到对应的若干个数据分片,依据所述重删存储系统搭载的存储控制器个数和各个数据分片中指定位置的目标数据,获得各个数据分片分别对应的存储控制器编号;
依据所述存储控制器编号确定与各个数据分片分别对应归属的目标存储控制器;
回写模块,如果确定的目标存储控制器与确定数据分片归属目标存储控制器的存储控制器为同一存储控制器,则由所述同一存储控制器对确定的数据分片执行重删计算后,并确定是否将该确定的数据分片回写至目标存储卷。
10.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至8任一项所述的方法。
11.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至8任一项所述的方法。
CN202010924212.4A 2020-09-04 2020-09-04 数据回写方法、装置、电子设备及机器可读存储介质 Active CN112181291B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010924212.4A CN112181291B (zh) 2020-09-04 2020-09-04 数据回写方法、装置、电子设备及机器可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010924212.4A CN112181291B (zh) 2020-09-04 2020-09-04 数据回写方法、装置、电子设备及机器可读存储介质

Publications (2)

Publication Number Publication Date
CN112181291A CN112181291A (zh) 2021-01-05
CN112181291B true CN112181291B (zh) 2022-08-02

Family

ID=73925776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010924212.4A Active CN112181291B (zh) 2020-09-04 2020-09-04 数据回写方法、装置、电子设备及机器可读存储介质

Country Status (1)

Country Link
CN (1) CN112181291B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015089728A1 (zh) * 2013-12-17 2015-06-25 华为技术有限公司 重复数据处理方法、装置及存储控制器和存储节点
CN104536702B (zh) * 2014-12-31 2017-12-15 华为技术有限公司 一种存储阵列系统及数据写请求处理方法
CN106610790B (zh) * 2015-10-26 2020-01-03 华为技术有限公司 一种重复数据删除方法及装置
CN107870922B (zh) * 2016-09-23 2022-02-22 伊姆西Ip控股有限责任公司 一种用于数据去重的方法、设备和系统
CN110750211B (zh) * 2019-09-05 2021-05-04 华为技术有限公司 一种存储空间的管理方法及装置

Also Published As

Publication number Publication date
CN112181291A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
CN108459826B (zh) 一种处理io请求的方法及装置
US11481121B2 (en) Physical media aware spacially coupled journaling and replay
CN111078147B (zh) 一种缓存数据的处理方法、装置、设备及存储介质
US8930648B1 (en) Distributed deduplication using global chunk data structure and epochs
US9330108B2 (en) Multi-site heat map management
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
US10489289B1 (en) Physical media aware spacially coupled journaling and trim
CN110096227B (zh) 数据存储方法、数据处理方法、装置、电子设备及计算机可读介质
CN105224528B (zh) 基于图计算的大数据处理方法和装置
CN109977129A (zh) 多级数据缓存方法及设备
US10310904B2 (en) Distributed technique for allocating long-lived jobs among worker processes
CN106326229B (zh) 一种嵌入式系统的文件存储方法和装置
US9807168B2 (en) Distributed shared log for modern storage servers
CN112000426B (zh) 一种数据处理方法及装置
US10289321B1 (en) Bad block table recovery in a solid state drives
CN110187834B (zh) 重删副本的数据处理方法、装置、电子设备
CN111813813B (zh) 一种数据管理方法、装置、设备及存储介质
CN105677252B (zh) 读数据的方法、数据处理方法及相关存储设备
CN116194900A (zh) 高速缓存技术
CN114676072A (zh) 数据处理方法以及装置
CN113064919B (zh) 数据处理方法、数据存储系统、计算机设备及存储介质
CN112181291B (zh) 数据回写方法、装置、电子设备及机器可读存储介质
US10073874B1 (en) Updating inverted indices
US11874795B2 (en) Targetless snapshot virtual replication data pointer table
CN108694209B (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