CN109445681A - 数据的存储方法、装置和存储系统 - Google Patents

数据的存储方法、装置和存储系统 Download PDF

Info

Publication number
CN109445681A
CN109445681A CN201810983555.0A CN201810983555A CN109445681A CN 109445681 A CN109445681 A CN 109445681A CN 201810983555 A CN201810983555 A CN 201810983555A CN 109445681 A CN109445681 A CN 109445681A
Authority
CN
China
Prior art keywords
data
storage
target
memory
storage region
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.)
Granted
Application number
CN201810983555.0A
Other languages
English (en)
Other versions
CN109445681B (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 CN201810983555.0A priority Critical patent/CN109445681B/zh
Publication of CN109445681A publication Critical patent/CN109445681A/zh
Priority to EP19855114.5A priority patent/EP3839716B1/en
Priority to PCT/CN2019/098256 priority patent/WO2020042850A1/zh
Priority to US17/183,657 priority patent/US12008263B2/en
Application granted granted Critical
Publication of CN109445681B publication Critical patent/CN109445681B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0688Non-volatile semiconductor memory arrays
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1218Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
    • G11B2020/1238Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc track, i.e. the entire a spirally or concentrically arranged path on which the recording marks are located
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1291Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting serves a specific purpose
    • G11B2020/1292Enhancement of the total storage capacity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种数据的存储方法、装置和存储系统,该方法应用于存储系统,存储系统包括至少一个第一存储器,存储系统还包括第二存储器,至少一个第一存储器包括多个存储区域,多个存储区域中每个存储区域是进行垃圾回收的单元,该方法通过限定目标存储区域中存储的有效数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度,使得目标存储区域中存储的有效数据的失效时间比较集中,在以目标存储区域进行垃圾回收的过程中,有利于减少迁移有效数据占用的时间,以提高垃圾回收的效率。

Description

数据的存储方法、装置和存储系统
技术领域
本申请涉及信息技术领域,并且更具体地,涉及数据的存储方法、装置和存储系统。
背景技术
在存储系统中,数据安全是衡量存储系统性能的一大指标。为了使得数据能够安全地被存储在存储系统中,现有技术中提供了很多数据保护机制。例如,纠删码原理,即采用纠删码(erasure coded,EC)编码的方式对原始数据进行编码生成多个数据分片,并将数据分片存储至多个存储器中,当多个存储器中有一个存储器故障,导致该存储器中的数据丢失后,可以通过其他存储器中存储的数据分片,对上述丢失的数据进行恢复。又例如,镜像存储,即以镜像的方式进行数据存储。在存储系统的主节点和备节点中分别存储一份相同的数据,如此,当主节点中的一个存储器故障导致数据丢失后,可以从备节点中将上述丢失的数据复制到主节点的其他存储器中。
然而,无论是通过EC的方式还是镜像的方式对丢失的数据进行恢复时,恢复后的数据都是随机的存储在存储器的存储区域中的,导致最终存储区域中存储的数据的失效时间差别非常大。如此,通过垃圾回收(garbage collection,GC)机制,以存储区域作为垃圾回收的基本单元,回收存储区域中无效数据占用的存储区域时,需要先将该存储区域中的有效数据迁移至其他存储区域后,才能对待回收的存储区域进行垃圾回收,导致垃圾回收占用了大量的时间,效率非常低。
发明内容
本申请提供一种数据的存储方法和装置,有利于降低垃圾回收占用的时间,提高垃圾回收的效率。
第一方面,提供了一种数据的存储方法,所述方法应用于存储系统,所述存储系统包括至少一个第一存储器,所述存储系统还包括第二存储器,所述至少一个第一存储器包括多个存储区域,所述多个存储区域中每个存储区域是进行垃圾回收的单元,所述方法包括:在所述第二存储器出现数据故障后,获取待恢复的多个目标有效数据的失效时间,以及对所述多个目标有效数据进行恢复,所述失效时间用于指示有效数据变为无效数据的时间;从所述多个存储区域中选择目标存储区域,并将恢复后的所述多个目标有效数据中的至少部分目标有效数据存储至所述目标存储区域,其中,在把所述至少部分目标有效数据存储至所述目标存储区域之后,所述目标存储区域存储的有效数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度。
在将多个目标有效数据存储目标存储区域之前,目标存储区域可以是没有存储数据的空白的存储区域,还可以是已经存储了一部分数据的存储区域。
上述目标有效数据存储的有效数据,可以包括上述多个有目标有效数据中的至少部分目标有效数据,还可以包括除上述至少部分目标有效数据之外的其他数据,该其他有效数据可以是目标存储区域在存储上述至少部分目标有效数据之前存储有的数据,还可以是在目标存储区域存储了上述至少部分目标有效数据之后,通过追加写的方式新写入的数据。
上述目标存储区域中存储的有效数据的失效时间中:最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度,具体分为以下三种情况。
情况一:若在本次存入至少部分目标有效数据之前,目标存储区域已存有有效数据,则在本次存入至少部分目标有效数据之后,本次存入的有效数据和已有的有效数据组成的集合中:有效数据的最早的失效时间与有效数据的最晚的失效时间之间的时间长度,小于或等于预设的时间长度。
情况二:若在本次存入至少部分目标有效数据之前,所述目标存储区域不存在有效数据。本次存入的有效数据中,有效数据的最早的失效时间与有效数据的最晚的失效时间之间的时间长度,小于或等于预设的时间长度。
情况三:若在本次存入至少部分目标有效数据之后,所述目标存储区域中又继续存储了其他有效数据,则本次存储的至少部分目标有效数据和上述其他有效数据组成的集合中:有效数据的最早失效时间与有效数据的最晚的失效时间之间的时间长度,小于或等于预设的时间长度。
需要说明的是,上述三种情况还可以结合,例如,情况三可以分别和情况一、情况二结合。若情况三和情况一结合时,目标存储区域中可以存储了三部分数据,即在至少部分目标有效数据之前存储至目标存储区域中的有效数据,至少部分目标有效数据本身,以及在至少部分目标有效数据之后存储至目标存储区域中的其他有效数据,即至少部分目标有效数据之前存储至目标存储区域中的有效数据,至少部分目标有效数据本身,以及在至少部分目标有效数据之后存储至目标存储区域中的其他有效数据组成的集合中,有效数据的最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度。
在本申请实施例中,通过限定目标存储区域中存储的有效数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度,使得目标存储区域中存储的有效数据的失效时间比较集中,在以目标存储区域进行垃圾回收的过程中,有利于减少迁移有效数据占用的时间,以提高垃圾回收的效率。
具体地,在以存储区域为单位,进行垃圾回收的过程中,如果垃圾回收的时间早于上述最早的失效时间,那么上述存储区域不需要被回收。如果垃圾回收的时间晚于上述最晚的失效时间,那么上述存储区域中的数据全部变为无效数据,可以直接被回收,不需要执行迁移有效数据的步骤。如果垃圾回收的时间位于最早的失效时间和最晚的失效时间之间,则由于存储区域中存储的数据的失效时间较集中,从宏观的角度看,每个存储区域中需要迁移的有效数据的数据量,少于传统的恢复数据存储机制中需要迁移的有效数据的数据量。
在一种可能的实现方式中,在把所述至少部分目标有效数据存储至所述目标存储区域之后,目标存储区域中存储的有效数据的失效时间还可以全部相同,如此,若目标存储区域中的数据全部失效,需要进行垃圾回收时,无需再执行迁移有效数据的步骤,最大程度的减少了垃圾回收过程中,迁移有效数据占用的时间。
在一种可能的实现方式中,所述多个存储区域中存储的数据通过顺序写的方式写入。
在一种可能的实现方式中,所述至少一个第一存储器以及所述第二存储器是叠瓦式磁记录SMR硬盘,所述多个存储区域中的每个存储区域是顺序区Szone。
在一种可能的实现方式中,所述至少一个存储器是固态硬盘SSD,所述多个存储区域中的每个存储区域是块block。
在一种可能的实现方式中,所述方法还包括:根据所述多个目标有效数据中每个有效数据的所述失效时间,确定所述多个目标有效数据的存储顺序,所述存储顺序用于指示所述多个目标有效数据中准备存储至所述目标存储区域中的数据被全部写入后,再向下一个存储区域中写准备存储至所述下一个存储区域中的全部有效数据,所述下一个存储区域为所述多个存储区域中除所述目标存储区域之外的存储区域;所述从所述多个存储区域中选择目标存储区域,并将恢复后的所述多个目标有效数据中的至少部分目标有效数据存储至所述目标存储区域,包括:从所述多个存储区域中选择目标存储区域,并按照所述存储顺序,将所述至少部分目标有效数据存储至所述目标存储区域。
在本申请实施例中,按照存储顺序将至少部分目标有效数据存储至目标存储区域,存储顺序用于指示所述多个目标有效数据中准备存储在同一存储区域的数据被连续地写入。避免了在存储多个目标有效数据的过程中,相邻写入的目标有效数据是存储在不同目标存储区域中的数据,导致在存储相邻写入的目标有效数据的过程中需要在不同的目标存储区域中来回切换,有利于提高存储目标有效数据的效率。尤其,对于SMR硬盘而言,当存储相邻写入的目标有效数据分别在不同的目标存储空间中,会造成SMR硬盘的磁头摆动,导致存储数据的时间增长,严重影响SMR硬盘写数据的性能。
在一种可能的实现方式中,所述多个目标有效数据中任一个目标有效数据的所述失效时间,存储在所述任一个目标有效数据对应的数据分片的元数据中,所述任一个目标有效数据与所述任一个目标有效数据对应的数据分片是对原始数据通过纠删码编码生成的。
在一种可能的实现方式中,所述失效时间通过数据的生命周期和数据的写入时间表示。上述数据的生命周期可以根据数据所属的业务确定,属于不同的业务的数据都有各自对应的生命周期。
第二方面,提供了一种数据存储的装置,所述装置包括用于执行上述方法的各个模块。
第三方面,提供了一种存储系统,所述存储系统包括用于执行上述方法的各个模块。
第四方面,提供了一种存储系统,包括至少一个处理器和至少一个存储器。该至少一个存储器用于存储计算机程序,该至少一个处理器用于从存储器中调用并运行该计算机程序,使得该存储系统执行上述方法。
需要说明的是,上述至少一个处理器和至少一个存储器可以位于多个不同的存储节点中,还可以位于相同的存储节点中。
第五方面,提供了一种存储系统,包括至少一个处理器和至少一个存储器。该至少一个存储器用于存储计算机程序,该至少一个处理器用于从存储器中调用并运行该计算机程序,使得该存储系统执行上述方法。
第六方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
需要说明的是,上述计算机程序代码可以全部或者部分存储在第一存储介质上,其中第一存储介质可以与处理器封装在一起的,也可以与处理器单独封装,本申请实施例对此不作具体限定。
第七方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
附图说明
图1是本申请实施例适用的存储系统的架构图。
图2示出了基于随机存储机制存储恢复数据的存储结果的示意图。
图3是各失效时间之间的时间顺序的示意图。
图4是本申请实施例的数据的存储方法示意性流程图。
图5是本申请实施例的时间属性的结构的示意图。
图6是本申请实施例的恢复数据的存储结果的示意图。
图7是本申请实施例的数据的存储装置的示意图。
图8是本申请实施例的控制器的示意图。
具体实施方式
为了便于理解本申请,先简单介绍下本申请涉及的名词。
一、垃圾回收
一种管理存储空间的机制。当存储空间的剩余存储空间不够时,可以通过垃圾回收机制删除存储空间中存储的无效数据,以达到回收存储资源的目的,回收后的存储资源可以用于存储其他有效数据,以提高存储空间利用率。
二、无效数据和有效数据
无效数据可以理解为是需要从存储系统中删除的数据。例如,可以是生命周期到期的数据,或者说是过了失效时间的数据。
有效数据可以理解为是存储系统需要继续存储的数据。例如,可以是生命周期未到期的数据,或者说是未到失效时间的数据。
三、存储区域
存储区域可以是垃圾回收的回收单位,即对存储器进行垃圾回收时的基本单元,例如,可以是对存储器进行垃圾回收的最小单元的整数倍,还可以是对存储器进行垃圾回收的最小单元。
当存储器为叠瓦式磁记录(shingled magnetic recording)硬盘时,垃圾回收的基本单元可以包括至少一个顺序区(squential zone,Szone),每个顺序区的大小通常为256M。当存储器为固态硬盘(solid state drives,SSD)时,垃圾回收的基本单元可以包括至少一个块(block)。
下面将结合附图,对本申请中的技术方案进行描述。
先结合图1介绍本申请实施例适用的存储系统的架构。图1是本申请实施例适用的分布式存储系统的架构图。图1所示的分布式存储系统100包括多个存储节点110和控制器120。
多个存储节点110,即存储节点1至存储节点n,其中每个存储节点中可以设置有多个存储器。在上述存储节点1至存储节点中设置有m个存储器,即存储器1至存储器m,存储节点可以通过各自的存储器为数据提供存储空间,其中n和m为大于1的正整数。
上述存储节点具体可以是分布式存储系统中的存储节点,例如存储服务器。上述存储节点还可以是集群存储系统中的存储节点,此时,上述任一个存储节点可以作为主节点,而其他存储节点可以作为该主节点的镜像节点(又称备节点)。
控制器120,用于对数据对丢失的数据进行恢复。
需要说明的是,上述控制器可以是独立于存储节点具有控制功能的控制器,上述控制器还可以是位于某个存储节点中的控制器。例如,上述存储系统为分布式系统,控制器可以是由至少一个处理器组成的,该至少一个处理器可以分布在至少一个存储节点(服务器)中。上述存储系统为集群存储系统时,控制器可以位于主节点,例如是主节点中的处理器。
若上述存储系统中的某一存储器出现数据故障,导致存储器中存储的数据丢失,控制器可以通过数据保护机制(例如,EC,或者镜像存储),根据存储系统中其他存储器中存储的数据对丢失的数据进行恢复,并将恢复后的数据随机的存储至存储系统中。
这种随机地将恢复后的数据存储在存储系统的机制,导致存储系统中的每个目标存储区域中存储的恢复数据的失效时间也是随机的。在以存储区域为单元进行垃圾回收的过程中,待回收的存储区域中通常仅有小部分数据到了失效时间,变成无效数据,剩余的数据还是有效数据,此时,则需要等待将大量的有效数据从待回收的存储区域迁移至其他存储区域后,才能对该待回收的存储区域进行垃圾回收。
例如,图2示出了基于随机存储机制存储恢复数据的存储结果的示意图。假设上述多个存储器中的存储器2中存储有数据a至数据p,其中,数据a、数据b、数据c以及数据d的失效时间为第一失效时间,数据e、数据f、数据g以及数据h的失效时间为第二失效时间,数据i、数据j、数据k以及数据l的失效时间为第三失效时间,数据m、数据n、数据o以及数据p的失效时间为第四失效时间,且第一失效时间、第二失效时间、第三失效时间以及第四失效时间之间的时间顺序如图3所示。
当存储器2故障,导致存储器2中存储的数据a至数据p丢失,则需要通过其他存储器中存储的数据,对存储器2中丢失的数据进行恢复,并将恢复后的数据随机存储至存储器1的存储区域1、存储器3的存储区域2、存储器4存储区域3以及存储器5的存储区域4中,最终存储区域1中存储有数据a、数据e、数据i以及数据n,存储区域2中存储有数据c、数据f、数据k以及数据p,存储区域3中存储有数据d、数据h、数据l以及数据m,存储区域4中存储有数据b、数据g、数据j以及数据o。若在第一失效时间与第二失效时间之间的时间段内,对上述4个存储区域进行垃圾回收,即仅有存储区域1中的数据a、存储区域2中的数据c、存储区域3中的数据d以及存储区域4中的数据b失效,其余的数据均为有效数据,则在回收上述4个存储区域之前,需要将每个存储区域中的有效数据迁移至其他存储区域中。如此,大量的数据迁移,导致垃圾回收占用了大量的时间,效率非常低。
为了减少垃圾回收占用的时间,本申请提供了一种新的存储恢复数据的技术。在该技术中,将失效时间比较集中的恢复数据(即下文中的目标有效数据),存储在相同的存储区域(即下文的目标存储区域)中,在以存储区域为单位进行垃圾回收时,有利于减少迁移有效数据占用的时间,提高垃圾回收的效率。避免了传统的存储恢复数据的方法中,恢复数据被随机存储在存储区域中,导致每个存储区域中存储的恢复数据的失效时间也是随机的,在以存储区域为单位进行垃圾回收的过程中,存储系统中的各个存储区域中通常仅有零散的部分数据失效,使得需要进行迁移的有效数据的数据量较大。
下文结合图4介绍本申请实施例的数据的存储方法,该方法应用于存储系统(例如,图1所示的存储系统)。为了便于描述,将存储系统中正常工作的存储器称为第一存储器,将存储系统中出现数据故障的存储器称为第二存储器,其中正常工作的存储器中包括多个存储区域。
图4是本申请实施例的数据的存储方法示意性流程图。图4所示的方法可以存储系统中具有控制功能的设备执行,例如,图1所示的控制器。图4所示的方法包括步骤410和步骤420。
410,在第二存储器出现数据故障后,获取待恢复的多个目标有效数据的失效时间,以及对多个目标有效数据进行恢复。
上述失效时间用于指示有效数据变为无效数据的时间,可以是直接存储在存储系统中的,上述失效时间还可以通过时间属性的方式间接地存储在存储系统中,例如,上述时间属性可以包括数据的生命周期以及数据的写入时间,其中数据的生命周期用于指示在存储系统中存储该数据的总时长,写入时间用于指示该数据写入存储系统的时间,则以写入时间为生命周期的起始时刻,经过生命周期指示的总时长后,生命周期的结束时刻即为失效时间。
上述数据的生命周期可以根据数据所属的业务确定,属于不同的业务的数据都有各自对应的生命周期。
在EC的场景中,通常会将还未存储至存储系统中的原始数据进行EC编码,生成多个数据分片,由于这多个数据分片都是基于原始数据生成的,并且在向存储系统中写这多个数据分片时,多个数据分片是被连续地写入存储系统中不同的存储器,也就是说,这多个数据的写入时间也是相同的,因此,上述多个数据分片中每个分片的失效时间是相同的。
当第二存储器出现数据故障,导致第二存储器中存储的上述多个数据分片中的目标有效数据分片(即目标有效数据)丢失,则可以从存储系统存储的多个数据分片中的其他数据分片中获得目标有效数据分片的失效时间。
需要说明的是,存储系统为分布式存储系统时,分布式存储系统的客户端在接收到用户写入的数据后,在通过EC编码将用户写入的数据分割为多个数据分片后,便可以根据业务数据所属的业务在每个数据分片的元数据中添加生命周期。
当分布式存储系统中的每个存储节点(包括数据分片节点和冗余分片节点),在接收到上述多个数据分片中的至少部分数据分片后,在向存储节点存储数据分片的过程中,可以在每个数据分片的元数据中添加写入时间。
若上述多个数据分片的元数据中直接存储的是每个数据分片的失效时间,则可以由上述各个存储节点在写数据分片的过程中,在数据分片的元数据中直接添加失效时间。
在镜像存储的场景中,数据不仅需要存储在主节点中,还需要在备节点中备份主节点中的数据,由于备节点中存储的数据是主节点中存储的数据的副本,那么主节点中存储的数据与备节点中存储的该数据的副本数据的失效时间是相同的。
当第二存储器(例如,主节点中的任意存储器)出现数据故障,导致第二存储器中存储的目标有效数据丢失,则可以从备节点中获取目标有效数据的失效时间。
当第二存储器出现数据故障时,为了能够获取待恢复的多个目标有效数据的失效时间,在向存储系统中存储数据的过程中,需要在数据对应的元数据中添加该数据的失效时间,或者添加用于指示该数据的失效时间的时间属性,例如,数据的生命周期以及数据的写入时间。下文结合图5介绍本申请实施例的时间属性的结构的示意图。需要说明的是,图5所示的时间属性的结构仅仅是一种可能的实现方式,该时间属性的结构还可以有其他的实现方式。
从图5所示的时间属性的结构的示意图中,可以看出,时间属性总共可以占用17比特(bit),其中生命周期可以占用5bit,写入时间可以占用12bit,其中写入时间的单位可以为天,则该时间属性结构可以支持25=32种不同生命周期的业务,可以表示212(天)=10(年)的数据写入量。
上述对目标有效数据进行恢复可包括根据存储系统中存储的数据,对多个目标有效数据进行恢复。
在EC场景中,可以通过对存储系统中存储多个数据分片进行EC解码,恢复上述多个目标有效数据,其具体的解码方式可以参照传统的EC解码方式,本申请实施例对此不再详细说明。
在镜像存储的场景中,可以从备节点中将多个目标有效数据进行复制,以恢复上述多个目标有效数据。
另外,上述恢复数据的执行过程与步骤410以及步骤420中选择目标存储区域之间的时间关系比较灵活,例如,恢复数据的执行过程可以在步骤410之前进行,恢复数据的执行过程还可以在选择目标存储区域之前进行,恢复数据的执行过程还可以在选择目标存储区域之后进行,恢复数据的执行过程还可以在步骤410之后进行,本申请实施例对此不作具体限定。当恢复数据的执行过程在步骤410之前进行时,上述多个目标有效数据的失效时间可以直接从恢复后的数据的元数据中获取。
420,从多个存储区域中选择目标存储区域,并将恢复后的多个目标有效数据中的至少部分目标有效数据发送至目标存储区域所在的存储器,其中,在把至少部分目标有效数据存储至目标存储区域之后,目标存储区域存储的有效数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度。
在将多个目标有效数据存储目标存储区域之前,目标存储区域可以是没有存储数据的空白的存储区域,还可以是已经存储了一部分数据的存储区域。
上述目标有效数据存储的有效数据,可以包括上述多个有目标有效数据中的至少部分目标有效数据,还可以包括除上述至少部分目标有效数据之外的其他数据,该其他有效数据可以是目标存储区域在存储上述至少部分目标有效数据之前存储有的数据,还可以是在目标存储区域存储了上述至少部分目标有效数据之后,通过追加写的方式新写入的数据。
上述目标存储区域中存储的有效数据的失效时间中:最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度,具体分为以下三种情况。
情况一:若在本次存入至少部分目标有效数据之前,目标存储区域已存有有效数据,则在本次存入至少部分目标有效数据之后,本次存入的有效数据和已有的有效数据组成的集合中:有效数据的最早的失效时间与有效数据的最晚的失效时间之间的时间长度,小于或等于预设的时间长度。
情况二:若在本次存入至少部分目标有效数据之前,所述目标存储区域不存在有效数据。本次存入的有效数据中,有效数据的最早的失效时间与有效数据的最晚的失效时间之间的时间长度,小于或等于预设的时间长度。
情况三:若在本次存入至少部分目标有效数据之后,所述目标存储区域中又继续存储了其他有效数据,则本次存储的至少部分目标有效数据和上述其他有效数据组成的集合中:有效数据的最早失效时间与有效数据的最晚的失效时间之间的时间长度,小于或等于预设的时间长度。
需要说明的是,上述三种情况还可以结合,例如,情况三可以分别和情况一、情况二结合。若情况三和情况一结合时,目标存储区域中可以存储了三部分数据,即在至少部分目标有效数据之前存储至目标存储区域中的有效数据,至少部分目标有效数据本身,以及在至少部分目标有效数据之后存储至目标存储区域中的其他有效数据,即至少部分目标有效数据之前存储至目标存储区域中的有效数据,至少部分目标有效数据本身,以及在至少部分目标有效数据之后存储至目标存储区域中的其他有效数据组成的集合中,有效数据的最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度。
上述目标存储区域存储的有效数据可以包括多个有目标有效数据中的部分目标有效数据,目标存储区域存储的有效数据可以包括多个目标有效数据中的全部目标有效数据。
如上文所述,若目标存储区域原本为空白的存储区域,那么可以直接将上述至少部分目标有效数据存储至目标存储区域。若目标存储区域原本存储有数据,那么需要确保目标有效存储区域中即将存储的数据和已经存储的数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度。
在本申请实施例中,通过限定目标存储区域中存储的有效数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度,使得目标存储区域中存储的有效数据的失效时间比较集中,在以目标存储区域进行垃圾回收的过程中,有利于减少迁移有效数据占用的时间,以提高垃圾回收的效率。
具体地,在以存储区域为单位,进行垃圾回收的过程中,如果垃圾回收的时间早于上述最早的失效时间,那么上述存储区域不需要被回收。如果垃圾回收的时间晚于上述最晚的失效时间,那么上述存储区域中的数据全部变为无效数据,可以直接被回收,不需要执行迁移有效数据的步骤。如果垃圾回收的时间位于最早的失效时间和最晚的失效时间之间,则由于存储区域中存储的数据的失效时间较集中,从宏观的角度看,每个存储区域中需要迁移的有效数据的数据量,少于传统的恢复数据存储机制中需要迁移的有效数据的数据量。
当然,目标存储区域中存储的有效数据的失效时间还可以全部相同,即目标存储区域中存储的数据要么同时变为失效数据,要么就都是有效数据,如此,若目标存储区域中的数据全部失效,需要进行垃圾回收时,无需再执行迁移有效数据的步骤,最大程度的减少了垃圾回收过程中,迁移有效数据占用的时间。
在通过时间属性指示失效时间时,上述失效时间相同的数据可以是生命周期和写入时间相同的数据,上述失效时间相同的数据还可以是写入时间不同,生命周期不同,但是生命周期的结束时间相同的数据,例如剩余生命周期相同,并且恢复数据的时间相同的数据,其中剩余生命周期指示数据在恢复之后还剩的有效时间,即以恢复数据的时间为起点,经过剩余生命周期,剩余生命周期的结束时刻即为该数据的失效时间。
图6是本申请实施例的恢复数据的存储结果的示意图。图6所示的存储结果中以用p表示的生命周期(period),和用t表示的写入时间(write time)指示数据失效时间。假设上述多个存储器中的存储器2中存储有数据a至数据p,其中,数据a、数据b、数据c以及数据d的失效时间为第一失效时间,用(p1,t1)表示;数据e、数据f、数据g以及数据h的失效时间为第二失效时间,用(p1,t2)表示;数据i、数据j、数据k以及数据l的失效时间为第三失效时间,用(p2,t1)表示;数据m、数据n、数据o以及数据p的失效时间为第四失效时间,用(p2,t2)表示。
基于上述目标存储区域中存储的有效数据的失效时间还可以全部相同的存储策略,将存储器2中丢失的数据进行恢复,并将恢复后的数据分别存储至存储器1中的存储区域1,存储器3中的存储区域2,存储器4中的存储区域3以及存储器5中的存储区域4。从图6所示的存储结果中可以看出存储区域1至存储区域4中,每个存储区域中存储的数据的生命周期相同,且每个存储区域中存储的数据的写入时间也相同。
上述多个存储区域可以位于一个或多个第一存储器中。另外,上述至少一个第一存储器和第二存储器位于一个存储节点中,上述至少一个第一存储器和第二存储器还可以位于不同的存储节点中,本申请实施例对此不作限定。
上述存储多个目标有效数据的失效时间的存储器可以与存储目标有效数据的存储器(即目标存储区域所在的存储器)是相同的存储器;上述存储多个目标有效数据的失效时间的存储器可以与存储目标有效数据的存储器(即目标存储区域所在的存储器)是不同的存储器,本申请实施例对此不作限定。
上述存储失效时间的存储器所在的存储节点可以与至少一个第一存储器位于相同的存储节点中,上述存储失效时间的存储器所在的存储节点还可以与至少一个第一存储器所在的存储节点不同。
上述执行步骤410以及步骤420的控制器所在的存储节点,可以与目标存储区域所在的存储节点是相同的存储节点,也就是说,该存储节点中的第二存储器出现数据故障后,可以由该服务器中的控制器通过执行上述步骤410和步骤420将目标有效数据存储至目标存储区域。
上述执行步骤410和步骤420的控制器所在的存储节点,还可以与目标存储区域所在的存储节点是不同的存储节点,也就是说,控制器可以将恢复后的至少部分目标有效数据发送至目标存储区域所在的存储节点,由目标存储区域所在的存储节点将至少部分目标有效数据存储至目标存储区域。
上述执行步骤410和步骤420的控制器所在的存储节点可以与第二存储器所在的存储节点是相同的存储节点,上述执行步骤410和步骤420的控制器所在的存储节点可以与第二存储器所在的存储节点是不同的存储节点。
需要说明的是,上述存储用于恢复目标有效数据的数据的存储区域,可以与目标存储区域在相同的存储节点,甚至相同的存储器中。上述存储用于恢复目标有效数据的数据的存储区域,可以与目标存储区域位于不同的存储节点。
对于支持顺序写的存储介质(例如SMR的Szone,以及SSD)而言,在通过顺序写的方式写数据过程中,同一数据流的数据会被自然地写入连续的存储空间,如此,每个目标存储区域中存储的数据的失效时间通常是相同的,即使每个目标存储区域中存储的数据的失效时间不完全相同,通常也是比较集中的。在以目标存储区域为单位进行垃圾回收的过程中,有效数据的迁移量通常也不是很大。但是,如前文所述,存储恢复数据的过程中,由于恢复数据的随机存储,导致目标存储区域中存储的恢复后的数据的失效时间也同样是随机的,因此,本申请实施例的方法也同样适用上述支持顺序写的存储介质。
需要说明的是,本发明实施例中所提及的存储器可以是“顺序写介质”例如SSD或者SMR,此外还可以是“追加写”(append)的存储器。例如,对于非顺序写的存储器(例如普通硬盘驱动器(hard disk drive,HDD)),可以通过软件(例如存储管理软件)在逻辑上规定数据以追加写的方式写入存储器中,在这种情况下,也适用本发明实施例。在追加写的存储器中,新写入的数据不能直接覆盖已有数据,例如新写入的数据追加在存储器已有数据之后进行存储。
在向目标存储区域中存储目标有效数据的过程中,通常可以将需要存储在同一目标存储区域中的数据连续地写入。避免了在存储多个目标有效数据的过程中,相邻写入的目标有效数据是存储在不同目标存储区域中的数据,导致在存储相邻写入的目标有效数据的过程中需要在不同的目标存储区域中来回切换,有利于提高存储目标有效数据的效率。尤其,对于SMR硬盘而言,当存储相邻写入的目标有效数据分别在不同的目标存储空间中,会造成SMR硬盘的磁头摆动,导致存储数据的时间增长,严重影响SMR硬盘写数据的性能。
因此,在向目标存储区域中存储目标有效数据之前,可以先根据多个目标有效数据的失效时间确定多个目标有效数据的存储顺序,基于存储顺序,将多个目标有效数据中准备存储在同一存储区域的目标有效数据连续地写入目标存储区域。
即,根据所述多个目标有效数据中每个有效数据的所述失效时间,确定所述多个目标有效数据的存储顺序,所述存储顺序用于指示所述多个目标有效数据中准备存储至所述目标存储区域中的数据被全部写入后,再向下一个存储区域中写准备存储至所述下一个存储区域中的全部有效数据,所述下一个存储区域为所述多个存储区域中除所述目标存储区域之外的存储区域;步骤420,还包括:从所述多个存储区域中选择目标存储区域,并按照所述存储顺序,将所述至少部分目标有效数据存储至所述目标存储区域。
上述存储顺序的具体排序方式可以与前文介绍的存储策略相配合使用。例如,若存储策略为将失效时间相同的目标有效数据存储在相同的存储区域时,上述存储顺序具体可以指示将失效时间相同的目标有效数据被连续的写入。又例如,若存储策略为将失效时间位于预设时间长度阈值内的目标有效数据存储在相同的存储区域中,则上述存储顺序可以指示将满足该存储策略的目标有效数据被连续的写入。
需要说明的是,上述建立存储顺序的过程可以在恢复完成多个目标有效数据后,再按照存储顺序,将恢复后的目标有效数据存储中目标存储区域。上述建立存储顺序的过程还可以在恢复多个目标有效数据之前执行。
若上述建立存储顺序的过程在恢复多个目标有效数据之后执行,则可以根据失效时间,将会存储至一个存储区域中的数据汇聚至一个数据集合,暂时存储起来。然后,以数据集合为单位将数据集合中的目标有效数据依次向存储区域中存储。
若上述建立存储顺序的过程在恢复多个目标有效数据之前执行,此时,多个目标有效数据分片还没有被恢复,可以通过调整数据恢复的顺序以达到调整存储顺序的目的。
下面以目标存储区域中存储的有效数据的失效时间相同为例,介绍调整数据的存储顺序的方法。由于上述失效时间,或者用于指示失效时间的时间属性都可以被作为键(key)添加在数据的元数据中,因此,可以复用传统的哈希(hash)算法,对多个目标有效数据的键进行hash,如此,可以将携带相同键的数据hash到相同的桶中,然后以桶为单位,对多个目标有效数据进行恢复,并将恢复后的目标有效数据存储至该桶对应的目标存储区域中。
例如,分别于2018年6月2日向第二存储器中写入需要存储10天的数据,于2018年6月1日向第二存储器中写入需要存储10天的数据,于2018年6月2日向第二存储器中写入需要存储30天的数据,则上述数据的元数据中存储的时间属性(生命周期以及写入时间)分别为1020180602、1020180601以及3020180602。
第二存储器数据故障时,可以从存储系统中获取需要恢复的数据的时间属性分别为1020180602、1020180601以及3020180602,并将上述时间属性分别作为key进行hash,那么2018年6月2日写入需要存储10天的数据、2018年6月1日写入需要存储10天的数据以及2018年6月2日写入需要存储30天的数据,分别会hash到1020180602、1020180601以及3020180602为key的hash桶。然后,按照hash桶的顺序,分别依次恢复1020180602、1020180601、3020180602桶上的数据,如此,便能将上述存储至相同存储区域的数据相继写入。
上文结合图1至图6详细介绍了本申请实施例的数据的存储方法,下文结合图7和图8详细地描述本申请实施例的数据的存储装置。需要说明的是,图7和图8所示的装置可以实现上述方法中各个步骤,为了简洁,在此不再赘述。
图7是本申请实施例的数据的存储装置的示意图。图7所示的装置700可以应用于存储系统,所述存储系统包括至少一个第一存储器,所述存储系统还包括第二存储器,所述至少一个第一存储器包括多个存储区域,所述多个存储区域中每个存储区域是进行垃圾回收的单元。装置700可以包括:处理单元710。
处理单元710,用于在所述第二存储器出现数据故障后,获取待恢复的多个目标有效数据的失效时间,所述失效时间用于指示有效数据变为无效数据的时间;
所述处理单元710,还用于从所述多个存储区域中选择目标存储区域,并将恢复后的所述多个目标有效数据中的至少部分目标有效数据存储至所述目标存储区域,其中,在把所述至少部分目标有效数据存储至所述目标存储区域之后,所述目标存储区域存储的有效数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度。
在本申请实施例中,通过限定目标存储区域中存储的有效数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度,使得目标存储区域中存储的有效数据的失效时间比较集中,在以目标存储区域进行垃圾回收的过程中,有利于减少迁移有效数据占用的时间,以提高垃圾回收的效率。
在一种可能的实现方式中,在把所述至少部分目标有效数据存储至所述目标存储区域之后,所述目标存储区域存储的有效数据的所述失效时间相同。
在一种可能的实现方式中,所述多个存储区域中存储的数据通过顺序写的方式写入。
在一种可能的实现方式中,所述至少一个第一存储器以及所述第二存储器是叠瓦式磁记录SMR硬盘,所述多个存储区域中的每个存储区域是顺序区Szone。
在一种可能的实现方式中,所述至少一个存储器是固态硬盘SSD,所述多个存储区域中的每个存储区域是块block。
在一种可能的实现方式中,所述处理单元,还用于:根据所述多个目标有效数据中每个有效数据的所述失效时间,确定所述多个目标有效数据的存储顺序,所述存储顺序用于指示所述多个目标有效数据中准备存储在同一存储区域的数据被连续地写入;以及从所述多个存储区域中选择目标存储区域,并按照所述存储顺序,将所述至少部分目标有效数据存储至所述目标存储区域。
在一种可能的实现方式中,所述多个目标有效数据中任一个目标有效数据的所述失效时间,存储在所述任一个目标有效数据对应的数据分片的元数据中,所述任一个目标有效数据与所述任一个目标有效数据对应的数据分片是对原始数据通过纠删码编码生成的。
在一种可能的实现方式中,所述失效时间通过数据的生命周期和数据的写入时间表示。
在可选的实施例中,上述装置700还可以是控制器800,具体地,所述处理单元710可以为至少一个处理器820。所述控制器800还可以包括至少一个存储器810和至少一个输入/输出接口830,具体如图8所示。
图8是本申请实施例的控制器的示意图。图8所示的控制器800可以包括:至少一个存储器810、至少一个处理器820和至少一个输入/输出接口830。其中,至少一个存储器810、至少一个处理器820、和至少一个输入/输出接口830通过通信连接相连,该至少一个存储器810用于存储程序指令,该至少一个处理器820用于执行该存储器820存储的程序指令,以控制至少一个输入/输出接口830接收输入的数据和信息,输出操作结果等数据。
该存储器810可以包括只读存储器和随机存取存储器,并向处理器820提供指令和数据。处理器820的一部分还可以包括非易失性随机存取存储器。例如,处理器820还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器810,处理器820读取存储器810中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,本申请实施例中,该处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例还提供一种存储系统。该存储系统的架构图可以参见图1。所述存储系统包括至少一个第一存储器,所述存储系统还包括第二存储器,所述至少一个第一存储器包括多个存储区域,所述多个存储区域中每个存储区域是进行垃圾回收的单元。所述存储系统可以包括:处理单元和处理单元。
处理单元,用于在所述第二存储器出现数据故障后,获取待恢复的多个目标有效数据的失效时间,所述失效时间用于指示有效数据变为无效数据的时间;
处理单元,用于从所述多个存储区域中选择目标存储区域,并将恢复后的所述多个目标有效数据中的至少部分目标有效数据存储至所述目标存储区域,其中,在把所述至少部分目标有效数据存储至所述目标存储区域之后,所述目标存储区域存储的有效数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度。
上述存储系统中涉及3种存储节点,即出现数据故障的第二存储器所在的存储节点,目标存储区域所在的存储节点以及处理单元和处理单元所在的存储器节点。
上述3种存储节点可以是相同的存储节点(为了便于描述,下文暂时称为第一存储节点)此时,第一存储节点中的第二存储器出现数据故障后,第一存储节点中的控制器再将恢复后的上述至少部分目标有效数据存储至第一存储节点中的目标存储区域中。此时,上述存储系统至少包括一个存储节点,即第一存储节点。
上述3种存储节点还可以是不同的存储节点,例如,第二存储器所在的存储节点与处理单元和处理单元所在的存储节点为相同的存储节点可以是相同的存储节点(又称第二存储节点),但第二存储节点与目标存储区域所在的存储节点(又称第三存储节点)是不同的存储节点,也就是说,第二存储节点中的第二存储器出现数据故障之后,第二存储器可以通过处理单元以及处理单元对多个目标有效数据进行数据恢复,并将恢复后的多个目标有效数据中的至少部分目标有效数据发送至第三存储节点,以便第三存储节点将上述至少部分目标有效数据存储至目标存储区域。此时,上述存储系统至少包括两个存储节点,即第二存储节点和第三存储节点。
在本申请实施例中,通过限定目标存储区域中存储的有效数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度,使得目标存储区域中存储的有效数据的失效时间比较集中,在以目标存储区域进行垃圾回收的过程中,有利于减少迁移有效数据占用的时间,以提高垃圾回收的效率。
在一种可能的实现方式中,在把所述至少部分目标有效数据存储至所述目标存储区域之后,所述目标存储区域存储的有效数据的所述失效时间相同。
在一种可能的实现方式中,所述多个存储区域中存储的数据通过顺序写的方式写入。
在一种可能的实现方式中,所述至少一个第一存储器以及所述第二存储器是叠瓦式磁记录SMR硬盘,所述多个存储区域中的每个存储区域是顺序区Szone。
在一种可能的实现方式中,所述至少一个存储器是固态硬盘SSD,所述多个存储区域中的每个存储区域是块block。
在一种可能的实现方式中,所述处理单元,还用于:根据所述多个目标有效数据中每个有效数据的所述失效时间,确定所述多个目标有效数据的存储顺序,所述存储顺序用于指示所述多个目标有效数据中准备存储在同一存储区域的数据被连续地写入;以及从所述多个存储区域中选择目标存储区域,并按照所述存储顺序,将所述至少部分目标有效数据存储至所述目标存储区域。
在一种可能的实现方式中,所述多个目标有效数据中任一个目标有效数据的所述失效时间,存储在所述任一个目标有效数据对应的数据分片的元数据中,所述任一个目标有效数据与所述任一个目标有效数据对应的数据分片是对原始数据通过纠删码编码生成的。
在一种可能的实现方式中,所述失效时间通过数据的生命周期和数据的写入时间表示。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solidstate disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种数据的存储方法,其特征在于,所述方法应用于存储系统,所述存储系统包括至少一个第一存储器,所述存储系统还包括第二存储器,所述至少一个第一存储器包括多个存储区域,所述多个存储区域中每个存储区域是进行垃圾回收的单元,
所述方法包括:
在所述第二存储器出现数据故障后,获取待恢复的多个目标有效数据的失效时间,以及对所述多个目标有效数据进行恢复,所述失效时间用于指示有效数据变为无效数据的时间;
从所述多个存储区域中选择目标存储区域,并将恢复后的所述多个目标有效数据中的至少部分目标有效数据发送至所述目标存储区域所在的存储器,
其中,在把所述至少部分目标有效数据存储至所述目标存储区域之后,所述目标存储区域存储的有效数据的失效时间中:最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度。
2.如权利要求1所述的方法,其特征在于,在把所述至少部分目标有效数据存储至所述目标存储区域之后,所述目标存储区域存储的有效数据的所述失效时间相同。
3.如权利要求1或2所述的方法,其特征在于,所述多个存储区域中存储的数据通过顺序写的方式写入。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述至少一个第一存储器以及所述第二存储器是叠瓦式磁记录SMR硬盘,所述多个存储区域中的每个存储区域是顺序区Szone。
5.如权利要求1-3中任一项所述的方法,其特征在于,所述至少一个存储器是固态硬盘SSD,所述多个存储区域中的每个存储区域是块block。
6.如权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
根据所述多个目标有效数据中每个有效数据的所述失效时间,确定所述多个目标有效数据的存储顺序,所述存储顺序用于指示所述多个目标有效数据中准备存储至所述目标存储区域中的数据被全部写入后,再向下一个存储区域中写准备存储至所述下一个存储区域中的全部有效数据,所述下一个存储区域为所述多个存储区域中除所述目标存储区域之外的存储区域;
所述从所述多个存储区域中选择目标存储区域,并将恢复后的所述多个目标有效数据中的至少部分目标有效数据存储至所述目标存储区域,包括:
从所述多个存储区域中选择目标存储区域,并按照所述存储顺序,将所述至少部分目标有效数据存储至所述目标存储区域。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述目标存储区域存储的有效数据包括所述至少部分目标有效数据和/或其他数据,所述其他数据包括在向目标存储区域存储所述至少部分目标有效数据之前存储至所述目标存储区域中的数据,和/或在向目标存储区域存储所述至少部分目标有效数据之后存储至所述目标存储区域中的数据。
8.如权要求1-7中任一项所述的方法,其特征在于,所述多个目标有效数据中任一个目标有效数据的所述失效时间,存储在所述任一个目标有效数据对应的数据分片的元数据中,所述任一个目标有效数据与所述任一个目标有效数据对应的数据分片是对原始数据通过纠删码编码生成的。
9.如权利要求1-8中任一项所述的方法,其特征在于,所述失效时间通过数据的生命周期和数据的写入时间表示。
10.一种存储系统,其特征在于,所述存储系统包括至少一个第一存储器,所述存储系统还包括第二存储器,所述至少一个第一存储器包括多个存储区域,所述多个存储区域中每个存储区域是进行垃圾回收的单元,
所述存储系统包括:
处理单元,用于在所述第二存储器出现数据故障后,获取待恢复的多个目标有效数据的失效时间,以及对所述多个目标有效数据进行恢复,所述失效时间用于指示有效数据变为无效数据的时间;
所述处理单元,还用于从所述多个存储区域中选择目标存储区域,并将恢复后的所述多个目标有效数据中的至少部分目标有效数据发送至所述目标存储区域所在的存储器,
其中,在把所述至少部分目标有效数据存储至所述目标存储区域之后,所述目标存储区域存储的有效数据的失效时间中最早的失效时间与最晚的失效时间之间的时间长度小于或等于预设的时间长度。
11.如权利要求10所述的装置,其特征在于,在把所述至少部分目标有效数据存储至所述目标存储区域之后,所述目标存储区域存储的有效数据的所述失效时间相同。
12.如权利要求10或11所述的装置,其特征在于,所述多个存储区域中存储的数据通过顺序写的方式写入。
13.如权利要求10-12中任一项所述的装置,其特征在于,所述至少一个第一存储器以及所述第二存储器是叠瓦式磁记录SMR硬盘,所述多个存储区域中的每个存储区域是顺序区Szone。
14.如权利要求10-12中任一项所述的装置,其特征在于,所述至少一个存储器是固态硬盘SSD,所述多个存储区域中的每个存储区域是块block。
15.如权利要求10-14中任一项所述的装置,其特征在于,所述处理单元,还用于:
根据所述多个目标有效数据中每个有效数据的所述失效时间,确定所述多个目标有效数据的存储顺序,所述存储顺序用于指示所述多个目标有效数据中准备存储至所述目标存储区域中的数据被全部写入后,再向下一个存储区域中写准备存储至所述下一个存储区域中的全部有效数据,所述下一个存储区域为所述多个存储区域中除所述目标存储区域之外的存储区域;以及
从所述多个存储区域中选择目标存储区域,并按照所述存储顺序,将所述至少部分目标有效数据存储至所述目标存储区域。
16.如权要求10-15中任一项所述的装置,其特征在于,所述多个目标有效数据中任一个目标有效数据的所述失效时间,存储在所述任一个目标有效数据对应的数据分片的元数据中,所述任一个目标有效数据与所述任一个目标有效数据对应的数据分片是对原始数据通过纠删码编码生成的。
17.一种计算机可读介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如权利要求1-9中任一项所述的方法。
18.一种存储系统,其特征在于,所述存储系统包括至少一个处理器和至少一个存储器,所述至少一个存储器用于存储计算机程序,所述至少一个处理器用于从至少一个存储器中调用并运行该计算机程序,使得该存储系统执行如权利要求1-9中任一项所述的方法。
CN201810983555.0A 2018-08-27 2018-08-27 数据的存储方法、装置和存储系统 Active CN109445681B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810983555.0A CN109445681B (zh) 2018-08-27 2018-08-27 数据的存储方法、装置和存储系统
EP19855114.5A EP3839716B1 (en) 2018-08-27 2019-07-30 Data storage method and apparatus and storage system
PCT/CN2019/098256 WO2020042850A1 (zh) 2018-08-27 2019-07-30 数据的存储方法、装置和存储系统
US17/183,657 US12008263B2 (en) 2018-08-27 2021-02-24 Garbage collection and data storage method and apparatus, and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810983555.0A CN109445681B (zh) 2018-08-27 2018-08-27 数据的存储方法、装置和存储系统

Publications (2)

Publication Number Publication Date
CN109445681A true CN109445681A (zh) 2019-03-08
CN109445681B CN109445681B (zh) 2021-05-11

Family

ID=65532785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810983555.0A Active CN109445681B (zh) 2018-08-27 2018-08-27 数据的存储方法、装置和存储系统

Country Status (4)

Country Link
US (1) US12008263B2 (zh)
EP (1) EP3839716B1 (zh)
CN (1) CN109445681B (zh)
WO (1) WO2020042850A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020042850A1 (zh) * 2018-08-27 2020-03-05 华为技术有限公司 数据的存储方法、装置和存储系统
CN112714031A (zh) * 2021-03-29 2021-04-27 中南大学 一种基于带宽感知的故障节点快速修复方法
CN113687774A (zh) * 2021-07-19 2021-11-23 锐捷网络股份有限公司 空间回收方法、装置及设备
CN113900590A (zh) * 2021-09-28 2022-01-07 重庆紫光华山智安科技有限公司 叠瓦式磁盘存储方法、装置、设备及介质
WO2022110196A1 (zh) * 2020-11-30 2022-06-02 华为技术有限公司 一种数据处理方法、装置及系统
CN117591011A (zh) * 2023-10-31 2024-02-23 深圳大学 基于瓦块重叠的数据回储优化方法、装置、设备及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102667738A (zh) * 2009-10-09 2012-09-12 提琴存储器公司 具有多个raid组分条的内存系统及其方法
CN105045523A (zh) * 2014-04-15 2015-11-11 三星电子株式会社 存储控制器、存储装置和系统及操作存储控制器的方法
US20150347029A1 (en) * 2014-05-30 2015-12-03 Sandisk Enterprise Ip Llc Identification of Hot Regions to Enhance Performance and Endurance of a Non-Volatile Storage Device
CN105677243A (zh) * 2015-12-31 2016-06-15 华为技术有限公司 数据写入装置及方法
CN106951375A (zh) * 2016-01-06 2017-07-14 北京忆恒创源科技有限公司 在存储系统中删除快照卷的方法及装置
CN107391774A (zh) * 2017-09-15 2017-11-24 厦门大学 基于重复数据删除的日志文件系统的垃圾回收方法
CN107515728A (zh) * 2016-06-17 2017-12-26 清华大学 发挥闪存设备内部并发特性的数据管理方法和装置
CN107766180A (zh) * 2017-09-22 2018-03-06 成都华为技术有限公司 存储介质的管理方法、装置及可读存储介质
US20180107593A1 (en) * 2015-04-28 2018-04-19 Nec Corporation Information processing system, storage control apparatus, storage control method, and storage control program

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526448B1 (en) * 1998-12-22 2003-02-25 At&T Corp. Pseudo proxy server providing instant overflow capacity to computer networks
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
JP5066199B2 (ja) * 2010-02-12 2012-11-07 株式会社東芝 半導体記憶装置
US8316176B1 (en) * 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
FI124455B (fi) * 2010-04-20 2014-09-15 Tellabs Oy Menetelmä ja laite verkko-osoitteiden konfiguroimiseksi
US20120030260A1 (en) * 2010-07-30 2012-02-02 Maohua Lu Scalable and parallel garbage collection method and system for incremental backups with data de-duplication
US8886990B2 (en) * 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
CN102439572B (zh) * 2011-10-27 2014-04-02 华为技术有限公司 控制缓存映射的方法及缓存系统
CN103577338B (zh) * 2013-11-14 2016-06-29 华为技术有限公司 一种回收垃圾数据的方法及存储设备
US9501393B2 (en) * 2014-01-27 2016-11-22 Western Digital Technologies, Inc. Data storage system garbage collection based on at least one attribute
US9705990B2 (en) * 2014-06-05 2017-07-11 Toyota Jidosha Kabushiki Kaisha Transfer of digital data to mobile software systems
US9600409B2 (en) * 2014-08-29 2017-03-21 EMC IP Holding Company LLC Method and system for garbage collection in a storage system based on longevity of stored data
CN104391661A (zh) * 2014-12-12 2015-03-04 西安三星电子研究有限公司 向固态硬盘写入数据的方法及设备
US9734051B2 (en) * 2015-02-16 2017-08-15 Quantum Corporation Garbage collection and defragmentation for solid state drives (SSD) and shingled magnetic recording (SMR) drives
US10261725B2 (en) * 2015-04-10 2019-04-16 Toshiba Memory Corporation Storage system capable of invalidating data stored in a storage device thereof
US10650024B2 (en) * 2015-07-30 2020-05-12 Google Llc System and method of replicating data in a distributed system
CN106548789B (zh) * 2015-09-17 2019-05-17 伊姆西公司 用于操作叠瓦式磁记录设备的方法和装置
CN105204783B (zh) * 2015-10-13 2018-12-07 华中科技大学 一种基于数据生存期的固态盘垃圾回收方法
US20170153842A1 (en) * 2015-12-01 2017-06-01 HGST Netherlands B.V. Data allocation in hard drives
KR102533389B1 (ko) * 2016-02-24 2023-05-17 삼성전자주식회사 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템
US10339044B2 (en) * 2016-03-30 2019-07-02 Sandisk Technologies Llc Method and system for blending data reclamation and data integrity garbage collection
US9880745B2 (en) * 2016-06-21 2018-01-30 International Business Machines Corporation Reducing concurrency of garbage collection operations
US10467134B2 (en) * 2016-08-25 2019-11-05 Sandisk Technologies Llc Dynamic anneal characteristics for annealing non-volatile memory
US10740294B2 (en) * 2017-01-12 2020-08-11 Pure Storage, Inc. Garbage collection of data blocks in a storage system with direct-mapped storage devices
US10496293B2 (en) * 2017-03-14 2019-12-03 International Business Machines Corporation Techniques for selecting storage blocks for garbage collection based on longevity information
CN109445681B (zh) * 2018-08-27 2021-05-11 华为技术有限公司 数据的存储方法、装置和存储系统
CN111562880A (zh) * 2019-02-14 2020-08-21 英韧科技(上海)有限公司 一种数据存储装置、系统及数据写入方法
US11392309B2 (en) * 2019-10-18 2022-07-19 SK Hynix Inc. Memory system for performing migration operation and operating method thereof

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102667738A (zh) * 2009-10-09 2012-09-12 提琴存储器公司 具有多个raid组分条的内存系统及其方法
CN105045523A (zh) * 2014-04-15 2015-11-11 三星电子株式会社 存储控制器、存储装置和系统及操作存储控制器的方法
US20150347029A1 (en) * 2014-05-30 2015-12-03 Sandisk Enterprise Ip Llc Identification of Hot Regions to Enhance Performance and Endurance of a Non-Volatile Storage Device
US20180107593A1 (en) * 2015-04-28 2018-04-19 Nec Corporation Information processing system, storage control apparatus, storage control method, and storage control program
CN105677243A (zh) * 2015-12-31 2016-06-15 华为技术有限公司 数据写入装置及方法
CN106951375A (zh) * 2016-01-06 2017-07-14 北京忆恒创源科技有限公司 在存储系统中删除快照卷的方法及装置
CN107515728A (zh) * 2016-06-17 2017-12-26 清华大学 发挥闪存设备内部并发特性的数据管理方法和装置
CN107391774A (zh) * 2017-09-15 2017-11-24 厦门大学 基于重复数据删除的日志文件系统的垃圾回收方法
CN107766180A (zh) * 2017-09-22 2018-03-06 成都华为技术有限公司 存储介质的管理方法、装置及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHIN-HSIEN WU: "A demand-based caching method for garbage collection in flash-memory embedded systems", 《2017 IEEE 6TH GLOBAL CONFERENCE ON CONSUMER ELECTRONICS (GCCE)》 *
方才华: "全程优化的固态硬盘垃圾回收方法", 《计算机应用》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020042850A1 (zh) * 2018-08-27 2020-03-05 华为技术有限公司 数据的存储方法、装置和存储系统
US12008263B2 (en) 2018-08-27 2024-06-11 Huawei Technologies Co., Ltd. Garbage collection and data storage method and apparatus, and storage system
WO2022110196A1 (zh) * 2020-11-30 2022-06-02 华为技术有限公司 一种数据处理方法、装置及系统
CN112714031A (zh) * 2021-03-29 2021-04-27 中南大学 一种基于带宽感知的故障节点快速修复方法
CN112714031B (zh) * 2021-03-29 2021-06-22 中南大学 一种基于带宽感知的故障节点快速修复方法
CN113687774A (zh) * 2021-07-19 2021-11-23 锐捷网络股份有限公司 空间回收方法、装置及设备
CN113900590A (zh) * 2021-09-28 2022-01-07 重庆紫光华山智安科技有限公司 叠瓦式磁盘存储方法、装置、设备及介质
CN113900590B (zh) * 2021-09-28 2023-01-31 重庆紫光华山智安科技有限公司 叠瓦式磁盘存储方法、装置、设备及介质
CN117591011A (zh) * 2023-10-31 2024-02-23 深圳大学 基于瓦块重叠的数据回储优化方法、装置、设备及介质

Also Published As

Publication number Publication date
EP3839716A4 (en) 2021-10-20
US12008263B2 (en) 2024-06-11
WO2020042850A1 (zh) 2020-03-05
CN109445681B (zh) 2021-05-11
EP3839716B1 (en) 2024-09-25
US20210181992A1 (en) 2021-06-17
EP3839716A1 (en) 2021-06-23

Similar Documents

Publication Publication Date Title
CN109445681A (zh) 数据的存储方法、装置和存储系统
US12067256B2 (en) Storage space optimization in a system with varying data redundancy schemes
CN106407040B (zh) 一种远程数据复制方法及系统
US10977124B2 (en) Distributed storage system, data storage method, and software program
CN102405460B (zh) 虚拟存储系统及其运行方法
CN104123100B (zh) 控制存储设备阵列中的数据存储
CN101488104B (zh) 一种实现高效安全存储的系统和方法
US10825477B2 (en) RAID storage system with logical data group priority
US8719520B1 (en) System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity
CN110750382B (zh) 用于提高数据修复性能的最小存储再生码编码方法及系统
US6393516B2 (en) System and method for storage media group parity protection
US20200026439A1 (en) Method, device, and computer program product for reading data
US10353787B2 (en) Data stripping, allocation and reconstruction
CN113176858B (zh) 数据处理方法、存储系统及存储设备
JPH09319528A (ja) データ記憶システムにおけるデータの再配置方法、そのシステムに記憶されたデータのアクセス方法及びデータ記憶システム
TWI772311B (zh) 固態儲存器容量管理系統與方法
CN110383251A (zh) 存储系统、计算机可读记录介质、系统的控制方法
US11474919B2 (en) Method for managing multiple disks, electronic device and computer program product
KR20110093035A (ko) 플래시 주소 변환 장치 및 그 방법
CN113377292B (zh) 一种单机存储引擎
CN104182176A (zh) 一种独立磁盘冗余阵列raid5的快速扩容方法
JP2006331076A (ja) データ記憶システム及び記憶方法
US20210334183A1 (en) Method, device, and storage medium for managing stripe in storage system
US20200133514A1 (en) Proactive copy in a storage environment
US11163642B2 (en) Methods, devices and computer readable medium for managing a redundant array of independent disks

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