CN112684975B - 一种数据存储方法及装置 - Google Patents

一种数据存储方法及装置 Download PDF

Info

Publication number
CN112684975B
CN112684975B CN201910999337.0A CN201910999337A CN112684975B CN 112684975 B CN112684975 B CN 112684975B CN 201910999337 A CN201910999337 A CN 201910999337A CN 112684975 B CN112684975 B CN 112684975B
Authority
CN
China
Prior art keywords
fingerprint
data
storage medium
data block
speed storage
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
CN201910999337.0A
Other languages
English (en)
Other versions
CN112684975A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910999337.0A priority Critical patent/CN112684975B/zh
Priority to CN202210864136.1A priority patent/CN115237347A/zh
Priority to PCT/CN2020/121843 priority patent/WO2021073635A1/zh
Priority to EP20877442.2A priority patent/EP4030273A4/en
Publication of CN112684975A publication Critical patent/CN112684975A/zh
Priority to US17/720,479 priority patent/US11886729B2/en
Application granted granted Critical
Publication of CN112684975B publication Critical patent/CN112684975B/zh
Priority to US18/534,230 priority patent/US20240103747A1/en
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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

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

一种数据存储方法及装置
技术领域
本申请涉及存储领域,尤其涉及一种数据存储方法及装置。
背景技术
在存储技术领域,面临的挑战来自于用户不断增长的容量和性能要求。随着数据量的不断增长,需要不断的购买存储设备,增加存储成本。对于数据生命周期的各个环节,数据的性能也有不同的诉求,需要不断的对数据进行调整。比如在生产阶段需要部署在高性能存储设备上,在归档阶段需要搬移数据到低性能廉价存储设备上。如何简化数据管理、提升存储性能、降低设备成本是当前存储技术的难题。
为了提升储性能、降低成本、简化管理,目前比较普遍的方式是采用分级存储技术。采用高性能的固态驱动器(Solid State Disk或Solid State Drive,SSD)和低性能大容量的机械盘组成混合存储池的技术,通过数据的冷热识别技术和迁移技术把热数据和冷数据分别存放在SSD和机械盘中,这是一种平衡成本和性能解决方案。但是,运用分级存储技术时,会在不同的存储介质中分别执行数据重删操作,重删效果差,导致可能在不同的存储介质中同时存储相同的数据块,造成存储空间的浪费。
发明内容
本申请实施例提供一种数据存储方法及装置,采用本申请实施例的方案能够通过在存储阵列中,生成全局指纹表用于对数据进行重删,提升数据重删效果和存储效率。
第一方面,本申请实施例提供一种数据存储方法,运用于存储阵列,所述存储阵列包括高速存储介质和低速存储介质,所述方法包括:
接收数据写入请求,所述数据写入请求中携带待写数据,所述待写数据包括至少一个数据块;
计算每个数据块的指纹,所述指纹用于唯一标识每个数据块;
确定所述每个数据块的指纹是否存在指纹表中,所述指纹表中包括存储在所述高速存储介质中的数据块对应指纹及存储在所述低速存储介质中的数据块对应的指纹;
对所述待写数据执行重删操作,所述重删操作为:将指纹存在于所述指纹表中的数据块指向所述指纹表中的指纹对应数据块的存储地址,并从所述待写数据中删除其指纹存在于所述指纹表中的数据块;
将经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质。
在本申请实施例中,通过生成全局指纹表,使得存储在高速存储介质和低速存储介质中的数据块共用同一个指纹表进行重复数据删除操作,避免了同样的数据块在不同的存储介质中重复生成指纹,且在不同的存储介质中进行重复存储,提升了存储效率,节省了存储空间。
在一种可行的实施例中,所述方法还包括:
将所述待写数据中不存在于所述指纹表中的数据块的指纹添加至所述指纹表;
当经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质后,将所述待写数据中其指纹不在所述指纹表中的数据块的存储地址添加至所述指纹表。
在一种可行的实施例中,所述方法还包括:
对于指纹存在于所述指纹表中的数据块,根据对所述数据块的读取次数递增所述数据块的指纹的热度计数;
对于热度计数大于第一阈值的指纹,若所述指纹对应的数据块的存储地址为所述低速存储介质,则将所述指纹对应的数据块从所述低速存储介质迁移至所述高速存储介质;
将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述高速存储介质中的地址。
在一种可行的实施例中,所述方法还包括:
对于热度计数小于第二阈值的指纹,若所述指纹对应的数据块的存储地址为所述高速存储介质,则将所述指纹对应的数据块从所述高速存储介质迁移至所述低速存储介质;
将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述低速存储介质中的地址。
在一种可行的实施例中,所述指纹表存储在所述高速存储介质中。
第二方面,本申请实施例提供了一种装置,
所述存储装置包括高速存储介质和低速存储介质,具体包括:
接收单元,用于接收数据写入请求,所述数据写入请求中携带待写数据,所述待写数据包括至少一个数据块;
计算单元,用于计算每个数据块的指纹,所述指纹用于唯一标识每个数据块;
确定单元,用于确定所述每个数据块的指纹是否存在指纹表中,所述指纹表中包括存储在所述高速存储介质中的数据块对应指纹及存储在所述低速存储介质中的数据块对应的指纹;
重删单元,用于对所述待写数据执行重删操作,所述重删操作为:将指纹存在于所述指纹表中的数据块指向所述指纹表中的指纹对应数据块的存储地址,并从所述待写数据中删除其指纹存在于所述指纹表中的数据块;
存储单元,用于将经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质。
在一种可行的实施例中,所述确定单元还用于:
将所述待写数据中不存在于所述指纹表中的数据块的指纹添加至所述指纹表;
当经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质后,将所述待写数据中其指纹不在所述指纹表中的数据块的存储地址添加至所述指纹表。
在一种可行的实施例中,所述装置还包括迁移单元,用于:
对于指纹存在于所述指纹表中的数据块,根据对所述数据块的读取次数递增所述数据块的指纹的热度计数;
对于热度计数大于第一阈值的指纹,若所述指纹对应的数据块的存储地址为所述低速存储介质,则将所述指纹对应的数据块从所述低速存储介质迁移至所述高速存储介质;
将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述高速存储介质中的地址。
在一种可行的实施例中,所述迁移单元还用于:
对于热度计数小于第二阈值的指纹,若所述指纹对应的数据块的存储地址为所述高速存储介质,则将所述指纹对应的数据块从所述高速存储介质迁移至所述低速存储介质;
将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述低速存储介质中的地址。
在一种可行的实施例中,所述指纹表存储在所述高速存储介质中。
第三方面,本申请实施例提供了一种装置,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,使得所述装置执行如第一方面所述的任一方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质包括程序指令,所述程序指令在计算机上运行时,使所述计算机执行如第一方面所述的任一方法。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种IT系统示意图;
图2为本申请实施例提供的一种存储阵列的结构示意图;
图3A为本申请实施例提供的一种基于全闪存架构的前台重删方案示意图;
图3B是本申请实施例提供的一种基于机械盘架构的后台重删方案示意图;
图4为本申请实施例提供的一种分级存储方案示意图;
图5为本申请实施例提供的一种数据存储方法流程示意图;
图6为本申请实施例提供的一种数据存储过程示意图;
图7为本申请实施例提供的一种指纹表匹配过程示意图;
图8为本申请实施例提供的一种跨系统存储架构示意图;
图9为本申请实施例提供的一种数据迁移方法过程示意图;
图10为本申请实施例提供的一种数据迁移过程示意图;
图11A为本申请实施例提供的一种数据存储装置的结构示意图;
图11B为本申请实施例提供的另一种数据存储装置的结构示意图;
图12为本申请实施例提供的一种装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案说明。
本申请实施例的应用场景为互联网技术(Internet Technology,IT)系统,如图1所示,图1为本申请实施例提供的一种IT系统示意图,该系统由用户终端10、应用服务器20、存储阵列40、管理员30以及网络50组成。应用服务器20可以是虚拟服务器或物理服务器,负责应用数据的计算,并把数据保存到存储阵列中。存储阵列40基于固态硬盘、传统机械盘或者是磁带库等介质组成,用于持久化保存应用数据。存储阵列和应用服务器之间的访问协议可以是通用网络文件系统(Common Internet File System,CIFS)、网络文件系统(Network File System,NFS)、小型计算机系统接口(Internet Small Computer SystemInterface,iSCSI)、光纤通道(Fiber Channel,FC)等协议。
图2为本申请实施例提供的一种存储阵列40的结构示意图,如图2所示,存储阵列40中包括输入设备401,输出设备402和中央处理器403(central processing unit,CPU),CPU中包括运算器和控制器,且与内存404和外存405连接,外存405包括高速存储介质和低速存储介质。其中高速存储介质以SSD为代表,低速存储介质以硬盘驱动器(Hard DiskDrive,HDD)为代表。
存储架构包括全闪存架构、机械盘架构和分级存储架构,在全闪存架构中,只允许接入SSD,在机械盘架构中,只包括硬盘驱动器(Hard Disk Drive,HDD)。在分级存储架构中,通过在逻辑存储层对需要存储的数据进行存储路径规划,即可将数据根据不同的存储策略存储到SSD或者HDD中。本申请实施例中的存储阵列40正是一种分级存储架构。
在采用分级存储技术的前提下,为了更进一步提升存储阵列40利用率,可以对待写入数据进行重删操作。重删操作的过程为:首先,在存储阵列接收到待写入数据时,将待写入数据切割为等长的数据块(为方便描述,以下将待写入数据所包括的数据块称为“待写数据块“),数据块的长度例如可以为4KB、8KB或16KB等,然后计算每个待写数据块的特征值,即指纹,不同数据块的指纹集合组成指纹表,指纹表中还包括每个指纹对应的引用计数和所述指纹所表示的数据块的存储地址。所述引用计数用于表示指纹被不同待写入数据使用的次数。在计算出待写数据块的指纹后,将每个待写数据块的指纹与指纹表中的指纹进行对比,如果待写入数据块的指纹与指纹表中已存储的指纹匹配,说明存储器中已经存储了所述待写数据块,则从待写入数据中删除所述待写数据块,并将所删除的数据块在所述待写入数据中的位置指向所述指纹表中与所删除的数据块的指纹匹配的指纹,然后增加一次与所删除的数据块的指纹匹配的指纹的引用计数,如果所述指纹表中不存在所述待写数据块的指纹,则将所述待写数据块的指纹添加至所述指纹表,并在所述待写数据块存储至存储器后,将所述待写数据块在所述存储器的存储地址记录在所述指纹表中。
重删可以选择两种处理方式:一种基于全闪存架构的前台重删方案;另外一种是基于机械盘架构的后台重删方案。请参阅图3A,图3A为本申请实施例提供的一种基于全闪存架构的前台重删方案示意图,由于全闪存架构中,SSD的读写速度比较块,所以一般采用前台重删的方案。如图3A所示,在待写数据写入高速存储介质时根据内存中的指纹表对待写数据进行重删,并将完成重删的数据存储到所述高速存储介质中。这个过程因为是在数据块存入物理介质之前进行的重复数据删除,因此为前台重删。
请参阅图3B,图3B是本申请实施例提供的一种基于机械盘架构的后台重删方案示意图。由于在机械盘架构中,HDD的读写速度比较慢,所以采用后台重删,以减少重删对IO的影响。如图3B所示,先将待写数据写入低速存储介质,然后对已写入数据根据指纹表进行重删,删除已写入数据中与指标表中的指纹对应的数据块相同的数据块。这个过程因为是在数据存入物理介质之后进行的重复数据删除,因此为后台重删。
本申请实施例中的存储阵列中既包括SSD,又包括HDD,两种重删技术都能选择。但是,后台重删是后台进行数据删除的,所以存在数据删除的迟滞性,且先将未删除数据存入物理介质中,那么物理介质必然要预留额外的存储空间,导致空间放大问题。其次,在数据写入物理介质之后进行数据重删,必然带来额外的硬盘读写操作,最终导致硬盘寿命降低。因此,考虑到SSD的性能优势和后台重删的劣势,本申请实施例中的分级存储选择前台重删技术。请参阅图4,图4为本申请实施例提供的一种分级存储方案示意图,如图4所示,是一种基于前台重删技术的分级存储方法,其中的存储介质包括高速存储介质和低速存储介质,待写数据根据写入配置策略被存入高速存储介质或者低速存储介质。但是这种分级存储方法仍然存在问题:高速存储介质和低速存储介质分别存储了一个指纹表,这两个指纹表互相之间无法感知。不同的待写文件根据写入配置策略被分别写入高速存储介质和低速存储介质,但是不同的待写数据中可能包括同样的数据块,而同样的数据块被同时存储到高速存储介质和低速存储介质,造成数据块的重复存储。这样无疑会降低存储效率,增加存储空间消耗。
基于上述问题,请参阅图5,图5为本申请实施例提供的一种数据存储方法流程示意图,运用于图2所示的存储阵列,所述存储阵列包括高速存储介质和低速存储介质,如图5所示,该方法包括如下步骤:
501、存储阵列接收数据写入请求,所述数据写入请求中携带待写数据,所述待写数据包括至少一个数据块。
存储阵列接收应用服务器提交的数据写入请求,然后解析获得写入请求中携带的待写数据,其中待写数据中包括一个或多个数据块。存储阵列接收到不同的待写数据会被写入逻辑单元号(Logical Unit Number,LUN)中的多个逻辑区块地址(Logical BlockAddress,LBA)中,或者被写入网络附属存储(Network Attached Storage,NAS)生成的文件系统中的多级文件目录指示的地址中,存储阵列根据这些逻辑存储空间对应的写入配置策略确定其中存储的数据被存储到高速存储介质或低速存储介质。其中,写入配置策略可以根据LBA的写入频度确定,LBA写入频度越高,说明该LBA的修改次数越多,其中存储的数据为常修改数据,在写入频度大于预设频度时,为了保证高频度写入性能要求,确定LBA中的数据存入高速存储介质。或者,写入配置策略可以根据文件系统下的文件属性确定,例如文件属性为“归档文件”,可以将其存入低速存储介质。
502、存储阵列计算每个数据块的指纹,所述指纹用于唯一标识每个数据块。
根据前述描述可知,每个数据块的指纹用来唯一标识数据块,因此数据块的指纹可以是数据块经过哈希值运算获得的哈希值,或者是数据块中的数据进行单词计数、概率分布统计或者数值平均值计算等方法计算获得指纹。
503、存储阵列确定所述每个数据块的指纹是否存在指纹表中,所述指纹表中包括存储在所述高速存储介质中的数据块对应指纹及存储在所述低速存储介质中的数据块对应的指纹。
在将待写数据中的数据块存储到物理存储介质之前,需要对其进行重删操作,以便减少同样的数据块重复存储带来的存储空间消耗。如前所述,重删时将待写数据中的数据块的指纹与指纹表中的已有指纹进行比对,确定数据块的指纹是否存在指纹表中。
与图4中高速存储介质和低速存储介质分别生成各自的指纹表不同,请参阅图6,图6为本申请实施例提供的一种数据存储过程示意图,如图6所示,本申请实施例生成的指纹表为全局指纹表,在该全局指纹表中,包括所有存储到高速存储介质和低速存储介质中的数据块对应的指纹。待写数据中的数据块进行重删时,都与该全局指纹表进行指纹匹配,以确定待写数据中的数据块是否已经存储到高速存储介质或低速存储介质中。
可选的,该全局指纹表存储在高速存储介质中,这样在处理器读取指纹表至内存时,可以保证高效率和低时延,提升数据存储效率。
504、对所述待写数据执行重删操作,所述重删操作为:将指纹存在于所述指纹表中的数据块指向所述指纹表中的指纹对应数据块的存储地址,并从所述待写数据中删除其指纹存在于所述指纹表中的数据块。
具体地,请参阅图7,图7为本申请实施例提供的一种指纹表匹配过程示意图,如图7所示,全局指纹表是一个包含存储在物理存储介质中的数据块对应的多个已有指纹的数据列表,待写数据中的数据块的指纹与列表中的已有指纹进行依次匹配,匹配结果包括两个,指纹表中的已有指纹与数据块的指纹完全相同,或者指纹表中的已有指纹与数据块的指纹不同。
在将数据块的指纹与全局指纹表中的已有指纹进行匹配时,如果全局指纹表中存在于数据块的指纹相同的已有指纹,说明指纹对应的数据块已经在高速存储介质或低速存储介质中存储过了,不需要对数据块进行再次存储,从待写数据中删除该数据块。反之,如果全局指纹表中不存在与数据块的指纹相同的已有指纹,说明指纹对应的数据块还未在高速存储介质或低速存储介质中存储过,需要将该数据块进行保留,以便后续存储到物理存储介质中。
另外,全局指纹表中除了包括物理存储介质中存储的数据块对应的指纹外,还包括指纹对应的数据块的存储地址,存储地址为指纹对应的数据块在高速存储介质或者低速存储介质中的存储地址,在本申请实施例中可以为SSD或HDD。全局指纹表中还包括指纹对应的引用计数,引用计数用来记录指纹被用于进行数据块重删的次数,在所述指纹被第一次记录至所述指纹表中时,则所述引用计数为1,后续,所述指纹每被用于一次重删操作,则所述引用次数递增一次。例如,指纹a对应数据块A,当将数据块存储至存储介质时,将指纹a添加至全局指纹表,并将指纹a对应的应用计数记录为1,当后续接收到待写数据ABC时,由于数据块A的指纹与指纹表中的指纹a相同,则用所述指纹a对待写数据进行重删操作,即将所述待写数据中的数据块A删除,并将所述待写数据中的数据块A用指针指向指纹表中指纹a对应的物理地址,例如①BC,其中①为指纹a对应的指针,同时将所述指纹a的引用计数递增为2。同理,当后续接收到待写数据AEF时,则利用所述指纹a对所述待写数据AEF进行重删后为①EF,并将所述指纹a的引用计数递增为3。
505、将经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质。
对待写数据进行重删后,经过重删操作的待写数据中包括多个去重数据块。根据前述写入配置策略确定将去重数据块写入高速存储介质或低速存储介质,完成数据块的存储过程。
或者,在将待写数据存储到物理介质之前,还可以采用数据压缩技术对待写数据中的数据块进行压缩,再将压缩后的数据块存储到物理介质中。数据压缩是通过LZ4等压缩算法把原始数据中的冗余信息剔除,以节省存储空间。数据重删和数据压缩可以结合使用,先重删后压缩,可以最大化缩减数据占用空间。
可见,在本申请实施例中,通过生成全局指纹表,使得存储在高速存储介质和低速存储介质中的数据块共用同一个指纹表进行重复数据删除操作,避免了同样的数据块在不同的存储介质中重复生成指纹,且在不同的存储介质中进行重复存储,提升了存储效率,节省了存储空间。
另外,在一种可能的情况下,高速存储介质和低速存储介质可能存在于不同的存储系统或存储阵列中,但两个存储系统和存储阵列相互连接。请参阅图8,图8为本申请实施例提供的一种跨系统存储架构示意图,如图8所示,高速存储介质和低速存储介质为两个不同的独立系统,同样的,为了减少在不同存储系统或存储阵列中分别生成指纹表,造成同样的数据块在两个指纹表中都生成指纹而造成的重删效率低下和重复存储问题,可以在其中一个存储系统或存储阵列中生成一个全局指纹表,而另一个存储系统或存储阵列中的待写数据全部发送到包括全局指纹表的存储系统或存储阵列中进行重复数据删除,获得去重数据块,最后将去重数据块发回存储到其对应的存储系统或存储阵列中即可。
其中,为了提升重删效率,可以在高速存储介质中生成全局指纹。全局指纹表用于对高速存储介质中的待写入数据进行重删存储的同时,低速存储介质中的待写数据发送到高速存储介质中进行重删,然后将低速存储介质中的待写数据对应的重删后的数据块发送回低速存储介质进行存储即可。该实施例能够有效提升跨系统的存储介质的重删和存储效率。
请参阅图9,图9为本申请实施例提供的一种数据迁移方法过程示意图,如图9所示,在上述通过全局指纹表进行数据重复删除和存储后,还可以进行数据迁移,该方法包括如下步骤:
511、对于指纹存在于所述指纹表中的数据块,存储阵列根据对所述数据块的读取次数递增所述数据块的指纹的热度计数;
512、对于在预设时间内热度计数大于第一阈值的指纹,若所述指纹对应的数据块的存储地址为所述低速存储介质,存储阵列则将所述指纹对应的数据块从所述低速存储介质迁移至所述高速存储介质;
513、存储阵列将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述高速存储介质中的地址;
514、对于在预设时间内热度计数小于第二阈值的指纹,若所述指纹对应的数据块的存储地址为所述高速存储介质,存储阵列则将所述指纹对应的数据块从所述高速存储介质迁移至所述低速存储介质;
515、存储阵列将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述低速存储介质中的地址。
在根据上述步骤501~505将待写数据存储到高速存储介质和低速存储介质后,数据块还会被读取使用,根据数据块的读取次数递增热度计数值,进而根据热度计数结果可以将数据块分为冷数据和热数据,其中冷数据为热度计数结果小于预设值的数据块,热数据为热度计数结果大于或等于预设值的数据块。对应热数据,应该将其存储在高速存储介质中,以满足高速访问的要求,对于冷数据,可以将其存储在低速存储介质中,降低高速存储介质的存储压力。
目前,对于文件存储系统及对象存储系统,以文件或者对象为粒度进行数据的存储,对数据的统计也是以文件或者对象为粒度进行统计的,但是一般文件或者对象比较大,所以在存储至存储介质的时候,需要将文件或者对象分成多个数据块进行重删,这样,重删后的数据可能指向多个指纹,当一个文件或者对象的热度发生变化,例如由冷数据变为热数据时,需要将该文件或者对象迁移至高速存储介质,但是该文件或者对象的指纹有可能还执行其他冷数据,所以,在迁移所述文件或者对象时,需要恢复所述重删后的文件,如果该文件或者对象在存储前还进行了压缩,还要先进行解压缩。在文件或者对象恢复后,则将恢复后的文件或者对象迁移至高速存储介质,而将所述文件或者对象存储至所述高速存储介质之前又要进行一次重删及压缩,这样,不但需要多次做重删压缩,消耗计算资源,而且在数据迁移后,原来只存储在低速存储介质中的数据,需要同时存储在高速介质及低速介质中,所以造成存储空间的放大请参阅图10,图10为本申请实施例提供的一种数据迁移过程示意图,如图10所示,有2个待写数据,分别为文件1和文件2,假设文件1包括数据块AXXX,文件2也包括数据块AXXX。文件1和文件2在进行存储时,根据写入配置策略确定两者对应的存储介质都为高速存储介质。文件1经过高速存储介质中的指纹表进行重删时,将其中的数据块AXXX的指纹与指纹表进行匹配,如果指纹表中不存在与AXXX的指纹匹配的已有指纹,则将AXXX的指纹写入指纹表,同时将AXXX存入高速存储介质。如果指纹表中的已有指纹1与AXXX的指纹匹配成功,说明高速存储介质中已经存储了AXXX,删除文件1中的AXXX,同时指纹1的引用计数加1。同样的,文件2经过高速存储介质中的指纹表进行重删时,因为AXXX已经存储在高速存储介质中,因此删除文件2中的AXXX,同时AXXX对应的指纹1的引用计数加1。完成文件1和文件2的存储。之后,对文件1经过一段时间的热度统计,确定了文件1中的数据为冷数据,而文件2中的数据为仍然为热数据。那么需要将文件1对应的数据从高速存储介质迁移到低速存储介质。在对文件1进行迁移时,首先需要对文件1进行还原,即将文件1在经过重删后用于存储的数据1还原为文件1,如果数据1为压缩数据,还需要进行解压缩,其中数据1包括多个数据块。然后将恢复后的文件1拷贝至低速存储介质,在文件1存储至低速存储介质时,还是需要通过低速存储介质中存储的指纹表对文件1进行数据重删,在确定低速存储介质中指纹表中不包含AXXX对应的指纹后,则需要将AXXX存储在低速存储介质中,如此,原来包括在两个文件中的数据AXXX在迁移前只需要在高速存储介质中存储一份,而在文件1迁移至低速存储介质后,需要同时在高速存储介质及低速存储介质中存储,从而产生空间放大。另外,在文件1迁移至低速存储介质后,还需要进行一次重删,影响迁移效率。
在本申请实施例中,在使用全局指纹表的前提下,通过对指纹表中的指纹进行热度计数,即根据指纹表中的指纹对应的数据块的读取次数对数据块对应指纹的进行热度计数。当指纹在预设时间内的热度计数大于第一阈值时,确定指纹对应的数据块为热数据,当指纹在预设时间内的热度计数小于第二阈值时,确定数据为冷数据,第一阈值≥第二阈值,其中当第一阈值等于第二阈值时,说明数据块只有热数据或冷数据两种状态。当第一阈值大于第二阈值时,说明数据块可以为热数据或冷数据,也可以为中间状态,当数据块为中间状态时,保持数据块的当前存储位置不进行迁移。
在这个过程中,通过对指纹表中指纹的热度计数结果判定数据块为冷数据或热数据,因为同一个指纹表中每一个指纹都是唯一的,那么对于指纹的热度计数结果也是唯一的,指纹对应的数据块也只会有一个状态,为热数据、冷数据或中间状态数据,因此数据块也只会存储在一个存储介质中,避免了在高速存储介质和低速存储介质中对同一个数据块的重复存储造成的空间放大。同样的,因为高速存储介质和低速存储介质共享同一个全局指纹表,数据迁移过程中也不需要进行多次数据重删,在数据块进行迁移后,修改指纹对应的物理地址,而不用修改指纹表和引用计数,有效提升了迁移效率。
另外,如果存储到物理存储介质中的数据块是进行压缩后的数据块。在传统的数据迁移过程中,以文件或者对象为单位进行热度统计后,如果确定需要对文件进行迁移,那么需要对压缩数据块进行解压缩还原为原始文件再将原始文件进行迁移,迁移完成后再对原始文件进行压缩存储。这个过程需要进行反复解压和压缩,造成迁移效率低下。
在本申请实施例中,根据全局指纹表中指纹的热度计数确定指纹对应的数据块为热数据或者冷数据,然后根据指纹定位到存储在物理存储介质中的压缩数据块,并直接对压缩数据块进行迁移即可,不需要进行数据块的反复解压和再压缩,进一步提升了迁移效率。
可见,在本申请实施例中,通过对全局指纹表中的指纹进行热度计数,并根据热度计数结果确定是否对指纹对应的数据块进行迁移,能够有效避免对同一数据块的重复存储造成的空间放大问题。同时能有效避免重复存储时多余的重删操作和压缩与解压缩操作,提升数据迁移效率。
参见图11A,图11A为本申请实施例提供的一种数据存储装置的结构示意图。所述存储装置包括高速存储介质和低速存储介质,如图11A所示,装置600具体包括:
接收单元601,用于接收数据写入请求,所述数据写入请求中携带待写数据,所述待写数据包括至少一个数据块;
计算单元602,用于计算每个数据块的指纹,所述指纹用于唯一标识每个数据块;
确定单元603,用于确定所述每个数据块的指纹是否存在指纹表中,所述指纹表中包括存储在所述高速存储介质中的数据块对应指纹及存储在所述低速存储介质中的数据块对应的指纹;
重删单元604,用于对所述待写数据执行重删操作,所述重删操作为:将指纹存在于所述指纹表中的数据块指向所述指纹表中的指纹对应数据块的存储地址,并从所述待写数据中删除其指纹存在于所述指纹表中的数据块;
存储单元605,用于将经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质。
可见,本申请实施例提供的装置,通过生成全局指纹表,使得存储在高速存储介质和低速存储介质中的数据块共用同一个指纹表进行重复数据删除操作,避免了同样的数据块在不同的存储介质中重复生成指纹,且在不同的存储介质中进行重复存储,提升了存储效率,节省了存储空间。
在一个可选的示例中,所述确定单元603还用于:
将所述待写数据中不存在于所述指纹表中的数据块的指纹添加至所述指纹表;
当经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质后,将所述待写数据中其指纹不在所述指纹表中的数据块的存储地址添加至所述指纹表。
在一个可选的示例中,如图11B所示的另一种数据存储装置的结构示意图,所述装置600还包括迁移单元606,用于:
对于指纹存在于所述指纹表中的数据块,根据对所述数据块的读取次数递增所述数据块的指纹的热度计数;
对于热度计数大于第一阈值的指纹,若所述指纹对应的数据块的存储地址为所述低速存储介质,则将所述指纹对应的数据块从所述低速存储介质迁移至所述高速存储介质;
将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述高速存储介质中的地址。
在一个可选的示例中,所述迁移单元606还用于:
对于热度计数小于第二阈值的指纹,若所述指纹对应的数据块的存储地址为所述高速存储介质,则将所述指纹对应的数据块从所述高速存储介质迁移至所述低速存储介质;
将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述低速存储介质中的地址。
在一个可选的示例中,所述指纹表存储在所述高速存储介质中。
需要说明的是,上述各单元(接收单元601、计算单元602、确定单元603、重删单元604、存储单元605,以及迁移单元606)用于执行上述方法的相关步骤。
在本实施例中,装置600是以单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。此外,以上接收单元601、计算单元602、确定单元603、重删单元604、存储单元605,以及迁移单元606可通过图12所示的装置700的处理器701来实现。
如图12所示,装置700可以以图12中的结构来实现,该装置700包括至少一个处理器701,至少一个存储器702以及至少一个通信接口703。所述处理器701、所述存储器702和所述通信接口703通过所述通信总线连接并完成相互间的通信。
处理器701可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。
通信接口703,可以用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器702可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器702用于存储执行以上方案的应用程序代码,并由处理器701来控制执行。所述处理器701用于执行所述存储器702中存储的应用程序代码。
存储器702存储的代码可执行以上提供的数据存储装置执行上述数据存储方法,比如:接收数据写入请求,根据数据写入请求和数据写入配置策略确定写入数据对应的目标存储介质;对写入数据按照数据块进行指纹获取操作,确定数据块对应的指纹,指纹用于唯一标识数据块;将指纹与全局指纹表中的已有指纹进行匹配,全局指纹表存储在高速存储介质中;根据匹配结果对数据块进行重复数据删除,获得去重数据块;将去重数据块存储到目标存储介质中。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种数据传输速率的调整方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本申请的限制。

Claims (11)

1.一种数据存储方法,其特征在于,运用于存储阵列,所述存储阵列包括高速存储介质和低速存储介质,所述方法包括:
接收数据写入请求,所述数据写入请求中携带待写数据,所述待写数据包括至少一个数据块;
计算每个数据块的指纹,所述指纹用于唯一标识每个数据块;
确定所述每个数据块的指纹是否存在指纹表中,所述指纹表中包括存储在所述高速存储介质中的数据块对应指纹及存储在所述低速存储介质中的数据块对应的指纹,其中,存储在高速存储介质和低速存储介质中的数据块共用同一个全局指纹表;
对所述待写数据执行重删操作,所述重删操作为:将指纹存在于所述指纹表中的数据块指向所述指纹表中的指纹,并从所述待写数据中删除其指纹存在于所述指纹表中的数据块;
将经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述待写数据中不存在于所述指纹表中的数据块的指纹添加至所述指纹表;
当经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质后,将指纹不在所述指纹表中的数据块的存储地址添加至所述指纹表。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
对于指纹存在于所述指纹表中的数据块,根据对所述数据块的读取次数递增所述数据块的指纹的热度计数;
对于在预设时间内热度计数大于第一阈值的指纹,若所述指纹对应的数据块的存储地址为所述低速存储介质,则将所述指纹对应的数据块从所述低速存储介质迁移至所述高速存储介质;
将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述高速存储介质中的地址。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
对于在预设时间内热度计数小于第二阈值的指纹,若所述指纹对应的数据块的存储地址为所述高速存储介质,则将所述指纹对应的数据块从所述高速存储介质迁移至所述低速存储介质;
将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述低速存储介质中的地址。
5.根据权利要求1所述的方法,其特征在于,所述指纹表存储在所述高速存储介质中。
6.一种数据存储装置,其特征在于,所述存储装置包括高速存储介质和低速存储介质,具体包括:
接收单元,用于接收数据写入请求,所述数据写入请求中携带待写数据,所述待写数据包括至少一个数据块;
计算单元,用于计算每个数据块的指纹,所述指纹用于唯一标识每个数据块;
确定单元,用于确定所述每个数据块的指纹是否存在指纹表中,所述指纹表中包括存储在所述高速存储介质中的数据块对应指纹及存储在所述低速存储介质中的数据块对应的指纹,且所述指纹表唯一存储在所述高速存储介质或所述低速存储介质中;
重删单元,用于对所述待写数据执行重删操作,所述重删操作为:将指纹存在于所述指纹表中的数据块指向所述指纹表中的指纹对应数据块的存储地址,并从所述待写数据中删除其指纹存在于所述指纹表中的数据块;
存储单元,用于将经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质。
7.根据权利要求6所述的装置,其特征在于,所述确定单元还用于:
将所述待写数据中不存在于所述指纹表中的数据块的指纹添加至所述指纹表;
当经过重删操作的所述待写数据存储至所述高速存储介质或者低速存储介质后,将指纹不在所述指纹表中的数据块的存储地址添加至所述指纹表。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括迁移单元,用于:
对于指纹存在于所述指纹表中的数据块,根据对所述数据块的读取次数递增所述数据块的指纹的热度计数;
对于热度计数大于第一阈值的指纹,若所述指纹对应的数据块的存储地址为所述低速存储介质,则将所述指纹对应的数据块从所述低速存储介质迁移至所述高速存储介质;
将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述高速存储介质中的地址。
9.根据权利要求8所述的装置,其特征在于,所述迁移单元还用于:
对于热度计数小于第二阈值的指纹,若所述指纹对应的数据块的存储地址为所述高速存储介质,则将所述指纹对应的数据块从所述高速存储介质迁移至所述低速存储介质;
将所述指纹表中被迁移的数据块的指纹对应的地址修改为所述数据块在所述低速存储介质中的地址。
10.根据权利要求6所述的装置,其特征在于,所述指纹表存储在所述高速存储介质中。
11.一种装置,其特征在于,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,使得所述装置执行如权利要求1-5任一项所述的方法。
CN201910999337.0A 2019-10-17 2019-10-17 一种数据存储方法及装置 Active CN112684975B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201910999337.0A CN112684975B (zh) 2019-10-17 2019-10-17 一种数据存储方法及装置
CN202210864136.1A CN115237347A (zh) 2019-10-17 2019-10-17 一种数据存储方法及装置
PCT/CN2020/121843 WO2021073635A1 (zh) 2019-10-17 2020-10-19 一种数据存储方法及装置
EP20877442.2A EP4030273A4 (en) 2019-10-17 2020-10-19 DATA STORAGE METHOD AND DEVICE
US17/720,479 US11886729B2 (en) 2019-10-17 2022-04-14 Data storage method and apparatus
US18/534,230 US20240103747A1 (en) 2019-10-17 2023-12-08 Data Storage Method and Apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910999337.0A CN112684975B (zh) 2019-10-17 2019-10-17 一种数据存储方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210864136.1A Division CN115237347A (zh) 2019-10-17 2019-10-17 一种数据存储方法及装置

Publications (2)

Publication Number Publication Date
CN112684975A CN112684975A (zh) 2021-04-20
CN112684975B true CN112684975B (zh) 2022-08-09

Family

ID=75445336

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210864136.1A Pending CN115237347A (zh) 2019-10-17 2019-10-17 一种数据存储方法及装置
CN201910999337.0A Active CN112684975B (zh) 2019-10-17 2019-10-17 一种数据存储方法及装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210864136.1A Pending CN115237347A (zh) 2019-10-17 2019-10-17 一种数据存储方法及装置

Country Status (4)

Country Link
US (2) US11886729B2 (zh)
EP (1) EP4030273A4 (zh)
CN (2) CN115237347A (zh)
WO (1) WO2021073635A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076068B (zh) * 2021-04-27 2022-10-21 哈尔滨工业大学(深圳) 一种数据存储方法、装置、电子设备及可读存储介质
CN113407114B (zh) * 2021-05-26 2022-03-04 青海师范大学 一种基于热数据和删除重复操作的在线扩容io调度方法
CN113721836A (zh) * 2021-06-15 2021-11-30 荣耀终端有限公司 一种数据去重方法及装置
CN114442931A (zh) * 2021-12-23 2022-05-06 天翼云科技有限公司 一种数据重删方法及系统、电子设备、存储介质
US11777519B2 (en) 2022-02-10 2023-10-03 International Business Machines Corporation Partitional data compression

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786401A (zh) * 2014-12-25 2016-07-20 中国移动通信集团公司 服务器集群系统中的数据管理方法及装置
WO2018058382A1 (zh) * 2016-09-28 2018-04-05 华为技术有限公司 一种存储系统中重复数据删除方法、存储系统及控制器
CN109918018A (zh) * 2017-12-13 2019-06-21 华为技术有限公司 一种数据存储方法及存储设备
US10346297B1 (en) * 2016-03-31 2019-07-09 EMC IP Holding Company LLC Method and system for cloud based distributed garbage collection of a deduplicated datasets

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478096B2 (en) * 2003-02-26 2009-01-13 Burnside Acquisition, Llc History preservation in a computer storage system
JP2004318288A (ja) * 2003-04-11 2004-11-11 Hitachi Ltd データ処理方法および装置ならびにその処理プログラム
US7908436B1 (en) * 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US8452932B2 (en) * 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
CN104462388B (zh) * 2014-12-10 2017-12-29 上海爱数信息技术股份有限公司 一种基于级联式存储介质的冗余数据清理方法
CN104793901B (zh) * 2015-04-09 2018-01-23 北京鲸鲨软件科技有限公司 一种存储装置及存储方法
CN109947731A (zh) * 2017-07-31 2019-06-28 星辰天合(北京)数据科技有限公司 重复数据的删除方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786401A (zh) * 2014-12-25 2016-07-20 中国移动通信集团公司 服务器集群系统中的数据管理方法及装置
US10346297B1 (en) * 2016-03-31 2019-07-09 EMC IP Holding Company LLC Method and system for cloud based distributed garbage collection of a deduplicated datasets
WO2018058382A1 (zh) * 2016-09-28 2018-04-05 华为技术有限公司 一种存储系统中重复数据删除方法、存储系统及控制器
CN109918018A (zh) * 2017-12-13 2019-06-21 华为技术有限公司 一种数据存储方法及存储设备

Also Published As

Publication number Publication date
US20240103747A1 (en) 2024-03-28
CN112684975A (zh) 2021-04-20
US20220236901A1 (en) 2022-07-28
EP4030273A1 (en) 2022-07-20
US11886729B2 (en) 2024-01-30
WO2021073635A1 (zh) 2021-04-22
EP4030273A4 (en) 2022-11-23
CN115237347A (zh) 2022-10-25

Similar Documents

Publication Publication Date Title
CN112684975B (zh) 一种数据存储方法及装置
JP5965541B2 (ja) ストレージ装置及びストレージ装置の制御方法
US9268711B1 (en) System and method for improving cache performance
WO2014030252A1 (ja) ストレージ装置及びデータ管理方法
JP2017521762A (ja) ストレージ装置、プログラム、情報処理方法
US9268693B1 (en) System and method for improving cache performance
US9268696B1 (en) System and method for improving cache performance
WO2017042978A1 (ja) 計算機システム、ストレージ装置、及びデータの管理方法
CN107423425B (zh) 一种对k/v格式的数据快速存储和查询方法
US8924642B2 (en) Monitoring record management method and device
US10585604B2 (en) Tool for selectively deploying inline compression
WO2015096847A1 (en) Method and apparatus for context aware based data de-duplication
CN114442937A (zh) 文件缓存方法、装置、计算机设备及存储介质
US11593312B2 (en) File layer to block layer communication for selective data reduction
US11513739B2 (en) File layer to block layer communication for block organization in storage
WO2023050856A1 (zh) 数据处理方法及存储系统
WO2023020136A1 (zh) 存储系统中的数据存储方法及装置
JP7323801B2 (ja) 情報処理装置および情報処理プログラム
CN114625695A (zh) 数据处理方法以及装置
CN112256657A (zh) 日志镜像方法及系统
US8886883B1 (en) System and method for improving cache performance
CN115599314B (zh) 数据冗余策略变更方法、装置、存储节点和存储介质
US9208098B1 (en) System and method for improving cache performance
CN117149723A (zh) 有序字符串表文件的压缩方法和装置
US9424175B1 (en) System and method for improving cache performance

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