CN109814805B - 存储系统中分条重组的方法及分条服务器 - Google Patents

存储系统中分条重组的方法及分条服务器 Download PDF

Info

Publication number
CN109814805B
CN109814805B CN201811589151.XA CN201811589151A CN109814805B CN 109814805 B CN109814805 B CN 109814805B CN 201811589151 A CN201811589151 A CN 201811589151A CN 109814805 B CN109814805 B CN 109814805B
Authority
CN
China
Prior art keywords
data
stripe
stripes
check
server
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
CN201811589151.XA
Other languages
English (en)
Other versions
CN109814805A (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 Cloud Computing 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 CN201811589151.XA priority Critical patent/CN109814805B/zh
Publication of CN109814805A publication Critical patent/CN109814805A/zh
Priority to EP19901639.5A priority patent/EP3889785B1/en
Priority to PCT/CN2019/103281 priority patent/WO2020134143A1/zh
Application granted granted Critical
Publication of CN109814805B publication Critical patent/CN109814805B/zh
Priority to US17/356,849 priority patent/US11899533B2/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/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
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing 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/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • 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/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
    • 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本方案公开了一种分条重组的方法,选择进行重组的多个分条满足位于相同数据存储节点的数据条带最多有一个数据条带包含有效数据,将多个分条包含有效数据的数据条带作为新的分条的数据条带的数据,为新的分条的数据条带的数据生成校验条带的校验数据,并将校验条带的校验数据存储到对应的存校验存储节点。

Description

存储系统中分条重组的方法及分条服务器
技术领域
本发明涉及信息技术领域,尤其涉及一种存储系统中分条重组的方法及分条服务器。
背景技术
分布式存储系统中包含多个存储节点,客户端接收主机发送的写请求向分布式存储系统中写入数据时,数据是以分条的形式存储到相应的存储节点的。例如,基于纠删码(Erasure Coding,EC)算法,分长中数据条带数量为N,校验条带的数量为M,分条的长度为N+M,其中N和M均为正整数。在分布式存储系统中,长度为N+M的分条包括长度相同的N+M个条带,每一个条带分布在分布式存储系统中的一个存储节点,因此一个条带分布在N+M个存储节点上。
客户端接收数据写请求,写请求用于对已经存储在某一分条的数据条带中的数据修改,通常客户端会将数据写请求中的数据写到新的分条中,从而将原分条的数据条带中的数据标记为无效。当一个分条中存储无效数据的数据条带数量达到一定值,分布式系统会对分条进行重组,将多个分条的数据条带的有效数据重组成新的分条。在这一过程中会涉及到有效数据跨存储节点搬移。
发明内容
本申请提供了一种存储系统中分条重组的方法及计算机程序产品,减少了对分条重组过程中有效数据跨节点搬移。
本申请第一方面提供了一种存储系统中的分条重组方法,该存储系统包括存储数据条带的N个数据存储节点和存储校验条带的M个校验存储节点;R个分条分布在该N+M个存储节点上,其中,每一个分条Si包含N个数据条带和M个校验条带,数据条带Dix分布在该N个数据存储节点的第x个存储节点上,校验条带Piy分布在该M个校验存储节点的第y个存储节点上;其中,N、M和R为正整数,R不小于2,i的取值为1到R中的每一个整数,x的取值为1到N中的每一个整数,y的取值为1到M中的每一个整数;分条服务器选择该R个分条;其中,该R个分条位于相同数据存储节点的数据条带Dix最多有一个数据条带包含有效数据;在该方案中,该分条服务器为该R个分条中包含有效数据的数据条带的数据生成新的分条SK的校验条带PKy的校验数据,K为不同于1到R的整数;该新的分条SK包含所述R个分条中的有效数据的数据条带和该校验条带PKy;该分条服务器将该校验条带PKy的校验数据存储到该M个校验存储节点的第y个存储节点上。在该分条重组方法中,将多个分条中包含有效数据的数据条带作为新的分条的数据条带,并且由于多个分条中位于相同数据存储节点的数据条带Dx最多有一个数据条带包含有效数据,因此,在分条重组中,不需要跨存储节点搬移数据条带的数据。
结合本申请第一方面,在一种可能的实现方式中,该方法还包括:该分条服务器将该校验条带PKy的校验数据存储到该M个校验存储节点的第y个校验存储节点上之后,该分条服务器指示存储该述R个分条的垃圾数据的数据条带所在的数据存储节点回收垃圾数据。在另一种实现方式,数据存储节点检查存储的数据条带的数据的状态,当确定数据条带的数据为垃圾数据,则启动垃圾回收。具体实现中,数据存储节点存储数据条带的数据,会建立数据条带的数据的主机访问地址与数据条带标识的映射,当数据条带的数据变为垃圾数据,则该数据条带的数据的主机访问地址与数据条带标识的映射被标记为无效,从而确定该数据条带的数据为垃圾数据。进一步的,数据存储节点对数据条带中的垃圾数据回收可以在分条服务器释放该数据条带所在的分条后进行。另一种实现方式,数据存储节点可以根据该数据存储节点中存储的数据条带的垃圾数据的数量来决定启动垃圾回收。校验存储节点也可以根据校验条带的数据是否为垃圾数据决定是否启动垃圾回收,或根据分条服务器的指示进行垃圾回收。
结合本申请第一方面及其上述可能实现方式,在另一种可能的实现方式中,分条服务器记录该新的分条与条带标识的映射,该条带标识包含该R个分条中存储有效数据的数据条带的标识以及该新的分条的校验条带的标识。
结合本申请第一方面及其上述可能实现方式,在另一种可能的实现方式中,该分条服务器释放该R个分条。该分条服务器释放R个分条后,该R个分条可以重新分配给新写入的数据。
结合本申请第一方面及其上述可能实现方式,在另一种可能的实现方式,该分条服务器确定出该分条Si,其中该分条Si包含垃圾数据的数据条带的数量满足重组阈值值。该分条服务器根据分条中包含垃圾数据的数据条带的数量判定该分条是否达到重组阈值,该分条服务器记录达到重组阈值的分条,具体实现中,可以使用链接记录达到重组阈值的分条的标识。
本申请第二方面提供了一种分条服务器,该分条服务器应用于存储系统中,该存储系统包括存储数据条带的N个数据存储节点和存储校验条带的M个校验存储节点;R个分条分布在该N+M个存储节点上,其中,每一个分条Si包含N个数据条带和M个校验条带,数据条带Dix分布在该N个数据存储节点的第x个存储节点上,校验条带Piy分布在该M个校验存储节点的第y个存储节点上;其中,N、M和R为正整数,R不小于2,i的取值为1到R中的每一个整数,x的取值为1到N中的每一个整数,y的取值为1到M中的每一个整数;该分条服务器包括接口和处理器,该接口与所述处理器通信,该处理器用于执行本申请第一方面及第一方面的各种可能实现方式。
本申请第三方面提供了一种分条服务器,该分条服务器应用于存储系统中,该存储系统包括存储数据条带的N个数据存储节点和存储校验条带的M个校验存储节点;R个分条分布在该N+M个存储节点上,其中,每一个分条Si包含N个数据条带和M个校验条带,数据条带Dix分布在该N个数据存储节点的第x个存储节点上,校验条带Piy分布在该M个校验存储节点的第y个存储节点上;其中,N、M和R为正整数,R不小于2,i的取值为1到R中的每一个整数,x的取值为1到N中的每一个整数,y的取值为1到M中的每一个整数;该分条服务器包含相应的单元,各单元用于实现本申请第一方面及第一方面的各种可能实现方式中相应的操作。
本申请第四方面提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机程序产品应用于存储系统,该存储系统包括存储数据条带的N个数据存储节点和存储校验条带的M个校验存储节点;R个分条分布在该N+M个存储节点上,其中,每一个分条Si包含N个数据条带和M个校验条带,数据条带Dix分布在该N个数据存储节点的第x个存储节点上,校验条带Piy分布在该M个校验存储节点的第y个存储节点上;其中,N、M和R为正整数,R不小于2,i的取值为1到R中的每一个整数,x的取值为1到N中的每一个整数,y的取值为1到M中的每一个整数;应用于该存储系统的分条服务器执行该计算机指令用于执行本申请第一方面及第一方面的各种可能实现方式。
附图说明
图1为本发明实施例分布式存储系统示意图;
图2为本发明实施例分布式块存储系统中服务器结构示意图;
图3为本发明实施例分布式块存储系统分区视图示意图;
图4为本发明实施例分布式块存储系统中条带与存储节点关系示意图;
图5为本发明实施例分条分布示意图;
图6为本发明实施例分条中垃圾数据示意图;
图7为本发明实施例分条重组方法流程图;
图8为本发明实施例分条重组分布示意图;
图9为本发明实施例分条服务器结构示意图。
本发明实施例
本发明实施例中的存储系统可以为分布式存储系统,如
Figure BDA0001919820080000031
Figure BDA0001919820080000032
系列,
Figure BDA0001919820080000033
9000系列。示例性的如图1所示,分布式存储系统包括多台服务器,如服务器1、服务器2、服务器3、服务器4、服务器5和服务器6,服务器间通过InfiniBand或以太网络等互相通信。本发明实施例中,分布式存储系统中的服务器又称为存储节点。在实际应用当中,分布式存储系统中服务器的数量可以根据实际需求增加,本发明实施例对此不作限定。需要说明的是,存储节点还可以是硬盘(例如磁盘、固态硬盘)、存储阵列或者服务器机框,只要能保证同一个分条的条带位于不同硬盘即可,下面仅以存储节点是服务器为例进行介绍,其他情形由于原理相同,本发明不做介绍。
分布式存储系统的服务器中包含如图2所示的结构。如图2所示,分布式存储系统中的每台服务器包含中央处理单元(Central Processing Unit,CPU)201、内存202、接口203、硬盘1、硬盘2和硬盘3,内存202中存储计算机指令,CPU201执行内存202中的计算机指令执行相应的操作。接口203可以为硬件接口,如网络接口卡(Network Interface Card,NIC)或主机总线适配器(Host Bus Adaptor,HBA)等,也可以为程序接口模块等。硬盘包含固态硬盘(Solid State Disk,SSD)、机械硬盘或者混合硬盘。机械硬盘如HDD(Hard DiskDrive),硬盘接口可以为串行高级技术连接(Serial Advanced Technology Attachment,SATA)接口,串行连接小型计算机系统接口(Serial Attached Small Computer SystemInterface,SAS)接口,光纤通道(Fiber Channel,FC)接口,快速外设互联(PeripheralComponent Interconnect-Express,PCIe)接口,或者快速非易失性存储器(Non-VolatileMemory Express,NVMe)接口等。CPU201可以由现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)或其他硬件代替,或者,FPGA或其他硬件与CPU201共同执行上述相应的操作。为方便描述,本发明实施例将CPU201与内存202称为处理器,或者将替代CPU201和内存202的硬件称为处理器,或者将CPU201和内存202以及其他硬件的组合称为处理器。
分布式存储系统中的客户端根据主机写请求向分布式存储系统写入数据或根据主机的读请求从分布式存储系统中读取数据。本发明实施例中所示的服务器可以作为客户端。另外客户端也可以由独立于图2所示的服务器的设备。本发明实施例中的主机可以为服务器、虚拟机(Virtual Machine,VM)、终端设备等,本发明实施例对此不作限定。分布式存储系统的客户端为主机提供分布式存储系统的存储资源。例如,在分布式块存储系统中,客户端为主机提供块资源,如逻辑单元,从而为主机提供数据访问操作。其中,逻辑单元又称为逻辑单元号(Logical Unit Number,LUN)。在分布式文件存储系统中,客户端为主机提供文件资源,在分布式对象存储系统中,客户端为主机提供对象资源。
本发明实施例以分布式块存储系统为例,客户端提供块协议访问接口,从而客户端提供分布式块存储接入点服务,主机可以通过客户端访问分布式块存储系统中存储资源池中的存储资源。通常,该块协议访问接口用于向主机提供逻辑单元。服务器运行分布式块存储系统程序使包含硬盘的服务器作为存储节点,用于存储客户端数据。示例性的,服务器可以以一块硬盘默认作为一个存储节点。当服务器中包含多块硬盘时,可以作为把单个服务器多个存储节点。另一种实现,服务器运行分布式块存储系统程序作为一个存储节点,本发明实施例对此不作限定。因此,存储节点的结构可参考图3及相关描述。分布式块存储系统初始化时,将哈希空间(如0~2^32,)划分为N等份,每1等份是1个分区(Partition),这N等份按照硬盘数量进行均分。例如,分布式块存储系统中N默认为3600,即分区分别为P1,P2,P3…P3600。假设当前分布式块存储系统有18块硬盘(存储节点),则每块存储节点承载200个分区。分区P包含M个存储节点Nj,分区与存储节点对应关系,即分区与分区包含的存储节点Nj的映射,也称为分区视图,如图3所示,以分区包含4个存储节点Nj为例,分区视图为“P2-存储节点N1(数据存储节点)-存储节点N2(数据存储节点)-存储节点N3(数据存储节点)-存储节点N4(校验存储节点)”。其中,j为整数1到M中的每一个值。在分布式块存储系统初始化时会分配好,后续会随着分布式块存储系统中硬盘数量的变化进行调整。客户端保存该分区视图。
根据分布式块存储系统的可靠性要求,可以使用纠删码(Erasure Coding,EC)算法提高数据可靠性,如使用3+1模式,即3个数据条带和1个校验条带组成分条。在本发明实施例中,分区以分条的形式存储数据,一个分区包含R个分条Si,其中,i为整数1到R中的每一个值。本发明实施例以P2为例进行描述。
需要说明的是,分条(stripe)是逻辑存储空间,分条(stripe)由多个条带组成,条带也称为分条单元(strip unit)。“条带的数据”专指条带中所存储的内容。
组成分条的条带中包括数据条带(data strip)和校验条带(parity strip),其中:用于存储数据(按照使用场景的不同,也可以用户数据、业务数据以及应用数据等)的条带称为数据条带,用于存储校验数据的条带称为校验条带。数据和校验数据之间存在校验关系,按照EC算法,当一部分条带中的内容出现故障或者无法读出,可以由其余条带中的内容进行恢复。本发明实施将存储数据条带的数据的存储节点称为数据存储节点,将存储校验条带的校验数据的存储节点称为校验存储节点,数据存储节点和校验存储节点统称为存储节点。
分布式块存储系统按照8千字节(Kilobyte,KB)为单位对硬盘进行分片管理,并在硬盘的元数据管理区域记录每个8KB分片的分配信息,硬盘的分片组成存储资源池。分布式块存储系统包含分条服务器,具体实现可以为分条管理程序运行在分布式块存储系统中的一台或多台服务器上。分条服务器为分区分配分条。分条服务器的结构可参考图2所示的服务器结构。仍以图4所示分区视图为例,分条服务器根据分区视图,如图4所示,以分条长度为4,即分长包含3个数据条带和1个校验条带,分条服务器为分区P2的分条Si从分区对应的存储数据条带Dix的数据存储节点Nx分配存储地址和从分区对应的校验条带Py的校验存储节点Diy分配存储地址,即存储空间,具体包括:为Di1从存储数据条带的数据存储节点N1分配存储地址,为Di2从存储数据条带的数据存储节点N2分配存储地址,为Di3从存储数据条带的数据存储节点N3分配存储地址,为Pi1从存储校验条带的校验存储节点N1(即图4中的存储节点N4)分配存储地址。另一种实现,分条服务器不为分区P2的分条Si从分区对应的存储数据条带Dix的数据存储节点Nx分配存储地址以及从分区对应的校验条带Py的存储节点Diy分配存储地址,即当客户端向存储节点写入数据时,存储数据条带的数据存储节点Nx为数据条带Dix分配存储地址,存储校验条带的校验存储节点Ny为校验条带Piy分配存储地址,x的取值为1到3中的每一个整数,y的取值为1。在本发明实施例中,为条带分配的存储地址,具体可以是存储节点中硬盘的逻辑地址,例如硬盘的逻辑块地址(Logical Block Address,LBA);另外一种实现,在支持开放通道(Open-channel)的SSD中,为条带分配的存储地址,还可以为SSD的物理地址。在另外一种实现方式中,当存储节点挂载LUN,则为条带分配的存储地址为LUN的LBA。分条元数据记录分条标识与条带标识的映射关系,即Si和数据条带Dix以及校验条带Piy的对应关系,根据该对应关系可以查找到分条Si所包含的条带。进一步的,分条服务器还记录条带和分条Si的对应关系,根据该对应关系,可以使用条带查找到分条Si,从而查询分条信息,例如Si所包含的所有条带。
为减少分条服务器管理的条带标识的数量,分条服务器为分条中条带标识分配版本号,当一个分条释放后,更新该释放后的分条中条带的条带标识版本号,从而作为新的分条中条带的条带标识。分条服务器预先为分条Si分配条带,可以减少客户端写入数据时的等待时间,从而提升分布式块存储系统的写性能。本发明实施例中,分条Si中条带在分布式块存储系统中具有唯一的标识。
本发明实施例中,以分条长度为4为例,即分长包含3个数据条带和1个校验条带。分条在存储节点上的分布如图5所示,分条S1包含数据条带D11、D12、D13和校验条带P11,分条S2包含数据条带D21、D22、D23和校验条带P21,分条S3包含数据条带D31、D32、D33和校验条带P31。其中,数据条带D11、D21和D31的数据存储在存储数据条带的数据存储节点N1,数据条带D12、D22和D32的数据存储在存储数据条带的数据存储节点N2,数据条带D13、D23和D33的数据存储在存储数据条带的数据存储节点N3,校验条带P11、P21和P31的校验数据存储在存储校验条带的校验存储节点N1。主机修改已经存储的数据,例如修改数据条带D11、D12、D22、D23、D31和D33的数据。在本发明实施例所提供的存储系统只支持追加写,即:当对已有数据仅修改时,修改数据会存储到新的数据条带中,修改数据不会占用存储修改前的数据所使用的的数据条带。在基于追加写的存储系统中,某一个数据条带中的数据发生修改写后,存储修改前的数据的数据条带中的数据变为垃圾数据,即无效数据。因此,如图6所示,数据条带D11、D12、D22、D23、D31和D33的数据被标记为垃圾数据。当分条中垃圾数据的数据量达到重组阈值,分条服务器启动分条重组操作。分条服务器根据该分条Si包含垃圾数据的数据条带的数量确定该分条Si达到重组阈值。该分条服务器根据分条中包含垃圾数据的数据条带的数量判定该分条是否达到重组阈值,该分条服务器记录达到重组阈值的分条,具体实现中,可以使用链接记录达到重组阈值的分条的标识。
在图7所示的本发明实施例中,步骤701:分条服务器选择分条。
其中,选择的分条为待重组的分条,待重组的分条满足位于相同数据存储节点的数据条带最多有一个数据条带包含有效数据。例如,分条S1、S2和S3的条带分布相同,则位于相同数据存储节点的数据条带有3组,第1组为D11、D21和D31;第2组为D12、D22和D32;第3组为D13、D23和D33。如图6所示,分条S1、S2和S3中位于相同数据存储节点的数据条带只有一个数据条带包含有效数据,因此选择分条S1、S2和S3进行重组。换句话说,之所以选择S1、S2和S3进行重组,出于以下考虑:(1)参与重组的分条都存在存储有有效数据的数据条带;(2)对于参与重组的分条所存储有有效数据的数据条带,均不位于同一个数据存储节点,也就是Diy中的y不同。
本发明实施例中,有效数据是指该数据写入数据存储节点后,该数据的主机访问地址中未再发生写操作的数据。
步骤702:将分条S1、S2和S3包含有效数据的数据条带(D21、D32和D13)作为新的分条S4的数据条带,基于与分条S1、S2和S3相同的EC算法为S4的数据条带的数据生成校验条带P41的数据。
步骤703:将校验条带P41的校验数据存储在校验存储节点N1
分条服务器记录分条S4与条带D21、D32、D13和P41的映射,条带D21、D32、D13和P41成为分条S4的条带。
在图7所示的实施例中,将数据条带D21、D32、D13重组成如图8所示的分条S4。在图8所示的分条S4中,数据条带D21、D32、D13的数据不需要移动位置,更不需要跨存储节点搬移。
进一步的,分条服务器指示存储垃圾数据的数据条带的存储节点进行垃圾回收。本发明实施例中,分条服务器指示存储数据条带D11、D12、D22、D23、D31和D33的数据的数据存储节点回收垃圾数据。进一步的,P11、P21和P31中所存储的校验数据失去了存在的意义,因此分条服务器还指示存储校验条带P11、P21和P31的校验数据的校验存储节点进行垃圾回收。存储节点进行垃圾回收后,释放垃圾数据在存储节点占用的存储空间。另一种实现,存储节点根据存储的条带的数据的状态进行垃圾回收。例如,数据存储节点检查存储的数据条带的数据的状态,当确定数据条带的数据为垃圾数据,则启动垃圾回收。具体实现中,数据存储节点存储数据条带的数据,会建立数据条带的数据的主机访问地址与数据条带标识的映射,当数据条带的数据变为垃圾数据,则该数据条带的数据的主机访问地址与数据条带标识的映射被标记为无效,从而确定该数据条带的数据为垃圾数据。进一步的,数据存储节点对数据条带中的垃圾数据回收可以在分条服务器释放该数据条带所在的分条后进行。另一种实现方式,数据存储节点可以根据该数据存储节点中存储的数据条带的垃圾数据的数量来决定启动垃圾回收。例如,数据存储节点存储的数据条带的总数量为1000个,其中,存储垃圾数据的数据条带的数量为600个,如果该数据存储节点启动垃圾回收的阈值为60%,即存储垃圾数据的数据条带数量达到60%,则启动本数据存储节点的垃圾回收。因此,分布式系统中各数据存储节点可以独立进行数据条带的垃圾回收。本发明实施例同样也适用于存储校验条带的校验存储节点的垃圾回收。本发明实施例中,一个分条与其他分条重组,原来分条的校验条带中的数据变为垃圾数据,也需要进行本发明实施例中描述的垃圾回收操作,具体实现请参考数据条带的垃圾回收操作。本发明实施例通过分条重组,可以实现多个存储节点独立进行条带的垃圾回收操作。
分条服务器释放分条S1、S2和S3。具体的,分条服务器释放分条S1、S2和S3包括:分条服务器将分条器条S1、S2和S3置为空闲状态,从而分条S1、S2和S3可以供后续分配新的数据使用。
本发明实施例提供的分条重组的方法,不需要跨存储节点进行有效数据搬移,从而提高了存储系统分条重组的性能。
本发明实施例中,选择进行重组的分条满足位于相同数据存储节点的数据条带最多有一个数据条带包含有效数据,具体实现,可以是待重组的分条满足位于相同数据存储节点的数据条带没有一个数据条带包含有效数据。在这种场景下,重组后的分条的数据条带包含空闲的数据条带,即相同位置的数据条带没有一个数据条带包含有效数据,则该相同位置的数据条带在新的分条中内容为空。本发明实施例具体实现中还可以在两个分条中进行重组。
基于上面描述,本发明实施例还提供了一种分条服务器,应用于本发明实施例中的存储系统,如分布式存储系统。存储系统包括存储数据条带的N个数据存储节点和存储校验条带的M个校验存储节点;R个分条分布在所述N+M个存储节点上,其中,每一个分条Si包含N个数据条带和M个校验条带,数据条带Dix分布在该N个数据存储节点的第x个存储节点上,校验条带Piy分布在该M个校验存储节点的第y个存储节点上;其中,N、M和R为正整数,R不小于2,i的取值为1到R中的每一个整数,x的取值为1到N中的每一个整数,y的取值为1到M中的每一个整数;如图9所示,该分条服务器包括选择单元901、生成单元902和存储单元903;其中,选择单元901用于选择该R个分条;其中,该R个分条位于相同数据存储节点的数据条带Dix最多有一个数据条带包含有效数据;生成单元902用于为该R个分条包含有效数据的数据条带的数据生成新的分条SK的校验条带PKy的校验数据,K为不同于1到R的整数;该新的分条SK包含所述R个分条中的有效数据的数据条带和该校验条带PKy;存储单元903用于将该校验条带PKy的校验数据存储到该M个校验存储节点的第y个存储节点上。
进一步的,基于图9所示的分条服务器,还包括指示单元,用于指示存储该R个分条的垃圾数据的数据条带的数据存储节点回收垃圾数据。进一步的,基于图9所示的分条服务器,还包括释放单元,用于释放该R个分条。进一步的,基于图9所示的分条服务器,还包括确定单元,用于确定出该分条Si,其中该分条Si包含垃圾数据的数据条带的数量满足重组阈值。
本发明实施例图9所示的分条服务器,一种实现可以参考本发明实施前面描述分条服务器的功能和结构。本发明实施例图9所示的分条服务器的另一种实现可以由软件模块实现,或者软件与硬件结合实现。
相应的,本发明实施例还提供了计算机可读存储介质和计算机程序产品,计算机可读存储介质和计算机程序产品中包含计算机指令用于实现本发明实施例中描述的各种方案。
本发明实施例中描述分条、数据条带、校验条带和存储节点所使用的标识只是为更清楚地描述本发明实施例,实际产品实现中并不要求一定带有类似的标识,因此,本发明实施例描述分条、数据条带、校验条带和存储节点所使用的标识并不是对本发明的限定。
本发明实施例,分条Si包含N个数据条带和M个校验条带,数据条带Dix分布在N个数据存储节点的第x个数据存储节点上,校验条带Piy分布在M个校验存储节点的第y个校验存储节点上,是指N个数据存储节点的第x个数据存储节点为数据条带Dix提供存储地址,数据条带Dix的数据存储在N个数据存储节点的第x个数据存储节点提供的存储地址,M个校验存储节点的第y个校验存储节点为校验条带Piy提供存储地址,校验条带Piy的校验数据存储在M个校验存储节点的第y个校验存储节点提供的存储地址。因此,也称为分条Si分布在N+M个存储节点上。
在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例各方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

Claims (16)

1.一种存储系统中的分条重组方法,其特征在于,所述存储系统包括存储数据条带的N个数据存储节点和存储校验条带的M个校验存储节点;R个分条分布在所述N+M个存储节点上,其中,每一个分条Si包含N个数据条带和M个校验条带,数据条带Dix分布在所述N个数据存储节点的第x个数据存储节点上,校验条带Piy分布在所述M个校验存储节点的第y个校验存储节点上;其中,N、M和R为正整数,R不小于2,i的取值为1到R中的每一个整数,x的取值为1到N中的每一个整数,y的取值为1到M中的每一个整数;
所述方法包括:
分条服务器选择所述R个分条;其中,所述R个分条位于相同数据存储节点的数据条带Dix最多有一个数据条带包含有效数据;
所述分条服务器为所述R个分条中包含有效数据的数据条带的数据生成新的分条SK的校验条带PKy的校验数据;所述新的分条SK包含所述R个分条中的有效数据的数据条带和所述校验条带PKy,K为不同于1到R的整数;
所述分条服务器将所述校验条带PKy的校验数据存储到所述M个校验存储节点的第y个校验存储节点上。
2.根据权利要求1所述的分条重组方法,其特征在于,所述分条服务器将所述校验条带PKy的校验数据存储到所述M个校验存储节点的第y个校验存储节点上之后,所述方法还包括:
所述分条服务器指示存储所述R个分条的垃圾数据的数据条带所在的数据存储节点回收垃圾数据。
3.根据权利要求2所述的分条重组方法,其特征在于,所述分条服务器将所述校验条带PKy的校验数据存储到所述M个校验存储节点的第y个校验存储节点上之后,所述方法还包括:
所述分条服务器释放所述R个分条。
4.根据权利要求1所述的分条重组方法,其特征在于,所述分条服务器选择所述R个分条之前还包括:
所述分条服务器确定出所述分条Si,其中所述分条Si包含垃圾数据的数据条带的数量满足重组阈值。
5.一种分条服务器,其特征在于,所述分条服务器应用于存储系统中,所述存储系统包括存储数据条带的N个数据存储节点和存储校验条带的M个校验存储节点;R个分条分布在所述N+M个存储节点上,其中,每一个分条Si包含N个数据条带和M个校验条带,数据条带Dix分布在所述N个数据存储节点的第x个数据存储节点上,校验条带Piy分布在所述M个校验存储节点的第y个校验存储节点上;其中,N、M和R为正整数,R不小于2,i的取值为1到R中的每一个整数,x的取值为1到N中的每一个整数,y的取值为1到M中的每一个整数;所述分条服务器包括接口和处理器,所述接口与所述处理器通信,所述处理器用于:
选择所述R个分条;其中,所述R个分条位于相同数据存储节点的数据条带Dix最多有一个数据条带包含有效数据;
为所述R个分条中包含有效数据的数据条带的数据生成新的分条SK的校验条带PKy的校验数据;所述新的分条SK包含所述R个分条中的有效数据的数据条带和所述校验条带PKy,K为不同于1到R的整数;
将所述校验条带PKy的校验数据存储到所述M个校验存储节点的第y个校验存储节点上。
6.根据权利要求5所述的分条服务器,其特征在于,所述处理器还用于指示存储所述R个分条的垃圾数据的数据条带所在的数据存储节点回收垃圾数据。
7.根据权利要求6所述的分条服务器,其特征在于,所述处理器还用于释放所述R个分条。
8.根据权利要求5所述的分条服务器,其特征在于,所述处理器还用于
确定出所述分条Si,其中所述分条Si包含垃圾数据的数据条带的数量满足重组阈值。
9.一种分条服务器,其特征在于,所述分条服务器应用于存储系统中,所述存储系统包括存储数据条带的N个数据存储节点和存储校验条带的M个校验存储节点;R个分条分布在所述N+M个存储节点上,其中,每一个分条Si包含N个数据条带和M个校验条带,数据条带Dix分布在所述N个数据存储节点的第x个数据存储节点上,校验条带Piy分布在所述M个校验存储节点的第y个校验存储节点上;其中,N、M和R为正整数,R不小于2,i的取值为1到R中的每一个整数,x的取值为1到N中的每一个整数,y的取值为1到M中的每一个整数;所述分条服务器包括选择单元、生成单元和存储单元;其中,
所述选择单元用于选择所述R个分条;其中,所述R个分条位于相同数据存储节点的数据条带Dix最多有一个数据条带包含有效数据;
所述生成单元用于为所述R个分条中包含有效数据的数据条带的数据生成新的分条SK的校验条带PKy的校验数据;所述新的分条SK包含所述R个分条中的有效数据的数据条带和所述校验条带PKy,K为不同于1到R的整数;
所述存储单元用于将所述校验条带PKy的校验数据存储到所述M个校验存储节点的第y个校验存储节点上。
10.根据权利要求9所述的分条服务器,其特征在于,所述分条服务器还包括指示单元,用于指示存储所述R个分条的垃圾数据的数据条带所在的数据存储节点回收垃圾数据。
11.根据权利要求10所述的分条服务器,其特征在于,所述分条服务器还包括释放单元,用于释放所述R个分条。
12.根据权利要求9所述的分条服务器,其特征在于,所述分条服务器还包括确定单元,用于确定出所述分条Si,其中所述分条Si包含垃圾数据的数据条带的数量满足重组阈值。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机程序产品应用于存储系统,所述存储系统包括存储数据条带的N个数据存储节点和存储校验条带的M个校验存储节点;R个分条分布在所述N+M个存储节点上,其中,每一个分条Si包含N个数据条带和M个校验条带,数据条带Dix分布在所述N个数据存储节点的第x个数据存储节点上,校验条带Piy分布在所述M个校验存储节点的第y个校验存储节点上;其中,N、M和R为正整数,R不小于2,i的取值为1到R中的每一个整数,x的取值为1到N中的每一个整数,y的取值为1到M中的每一个整数;应用于所述存储系统的分条服务器执行所述计算机指令用于执行如下步骤:
选择所述R个分条;其中,所述R个分条位于相同数据存储节点的数据条带Dix最多有一个数据条带包含有效数据;
为所述R个分条中包含有效数据的数据条带的数据生成新的分条SK的校验条带PKy的校验数据;所述新的分条SK包含所述R个分条中的有效数据的数据条带和所述校验条带PKy,K为不同于1到R的整数;
将所述校验条带PKy的校验数据存储到所述M个校验存储节点的第y个校验存储节点上。
14.根据权利要求13所述的计算机可读存储介质,其特征在于,所述分条服务器执行所述计算机指令还用于指示存储所述R个分条的垃圾数据的数据条带所在的数据存储节点回收垃圾数据。
15.根据权利要求14所述的计算机可读存储介质,其特征在于,所述分条服务器执行所述计算机指令还用于释放所述R个分条。
16.根据权利要求13所述的计算机可读存储介质,其特征在于,所述分条服务器执行所述计算机指令还用于确定出所述分条Si,其中所述分条Si包含垃圾数据的数据条带的数量满足重组阈值。
CN201811589151.XA 2018-12-25 2018-12-25 存储系统中分条重组的方法及分条服务器 Active CN109814805B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201811589151.XA CN109814805B (zh) 2018-12-25 2018-12-25 存储系统中分条重组的方法及分条服务器
EP19901639.5A EP3889785B1 (en) 2018-12-25 2019-08-29 Stripe reconstruction method in storage system and striping server
PCT/CN2019/103281 WO2020134143A1 (zh) 2018-12-25 2019-08-29 存储系统中分条重组的方法及分条服务器
US17/356,849 US11899533B2 (en) 2018-12-25 2021-06-24 Stripe reassembling method in storage system and stripe server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811589151.XA CN109814805B (zh) 2018-12-25 2018-12-25 存储系统中分条重组的方法及分条服务器

Publications (2)

Publication Number Publication Date
CN109814805A CN109814805A (zh) 2019-05-28
CN109814805B true CN109814805B (zh) 2020-08-25

Family

ID=66602456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811589151.XA Active CN109814805B (zh) 2018-12-25 2018-12-25 存储系统中分条重组的方法及分条服务器

Country Status (4)

Country Link
US (1) US11899533B2 (zh)
EP (1) EP3889785B1 (zh)
CN (1) CN109814805B (zh)
WO (1) WO2020134143A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814805B (zh) * 2018-12-25 2020-08-25 华为技术有限公司 存储系统中分条重组的方法及分条服务器
EP3971701A4 (en) * 2019-09-09 2022-06-15 Huawei Cloud Computing Technologies Co., Ltd. DATA PROCESSING METHODS IN A STORAGE SYSTEM, DEVICE AND STORAGE SYSTEM
CN115904795A (zh) * 2021-08-20 2023-04-04 华为技术有限公司 存储系统中的数据存储方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102549554A (zh) * 2009-09-29 2012-07-04 美光科技公司 基于条带的存储器操作
CN105739915A (zh) * 2014-12-29 2016-07-06 三星电子株式会社 存储系统中执行的条带重建方法和存储系统
US9405626B1 (en) * 2013-12-20 2016-08-02 Emc Corporation At risk data caching (ARDC)
CN108475232A (zh) * 2016-02-23 2018-08-31 桑迪士克科技有限责任公司 使用xcopy和多逻辑条带的优化的基于主机的垃圾收集策略的高效实现方式
US10101930B2 (en) * 2013-11-27 2018-10-16 Ngd Systems, Inc. System and method for supporting atomic writes in a flash translation layer

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225006B1 (en) * 2007-08-30 2012-07-17 Virident Systems, Inc. Methods for data redundancy across three or more storage devices
US9417823B2 (en) * 2011-07-12 2016-08-16 Violin Memory Inc. Memory system management
KR101826051B1 (ko) * 2012-02-27 2018-02-07 삼성전자주식회사 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템
CN103699337B (zh) * 2013-12-04 2017-01-18 华为技术有限公司 一种基于独立磁盘冗余阵列raid的写控制方法及系统
EP2933733A4 (en) * 2013-12-31 2016-05-11 Huawei Tech Co Ltd DATA PROCESSING METHOD AND DEVICE IN A DISTRIBUTED FILE STORAGE SYSTEM
US8949692B1 (en) * 2014-01-23 2015-02-03 DSSD, Inc. Method and system for service-aware parity placement in a storage system
CN106681934B (zh) * 2014-03-19 2020-09-11 华为技术有限公司 一种存储设备垃圾回收的方法及设备
US9671960B2 (en) * 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US9448887B1 (en) * 2015-08-22 2016-09-20 Weka.IO Ltd. Distributed erasure coded virtual file system
EP3336706B1 (en) * 2016-04-07 2021-06-30 Huawei Technologies Co., Ltd. Method and storage device for processing stripes in storage device
US10705911B2 (en) * 2017-04-24 2020-07-07 Hewlett Packard Enterprise Development Lp Storing data in a distributed storage system
WO2019071595A1 (zh) * 2017-10-13 2019-04-18 华为技术有限公司 分布式块存储系统中数据存储方法、装置及计算机可读存储介质
WO2020132849A1 (zh) * 2018-12-25 2020-07-02 华为技术有限公司 分布式存储系统中数据存储方法、装置及计算机程序产品
CN109814805B (zh) * 2018-12-25 2020-08-25 华为技术有限公司 存储系统中分条重组的方法及分条服务器
JP6947717B2 (ja) * 2018-12-27 2021-10-13 株式会社日立製作所 ストレージシステム
US10901649B2 (en) * 2019-01-23 2021-01-26 Vmware, Inc. Storage reclamation for distributed storage systems
US11748197B2 (en) * 2019-01-31 2023-09-05 Qatar Foundation For Education, Science And Community Development Data storage methods and systems
US11239864B2 (en) * 2019-07-03 2022-02-01 Vast Data Ltd. Techniques for improved erasure coding in distributed storage systems
EP4100846A4 (en) * 2020-02-03 2024-03-20 Samsung Electronics Co., Ltd. DATA MANAGEMENT SYSTEM AND CONTROL METHOD
US11150986B2 (en) * 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11314416B1 (en) * 2020-10-23 2022-04-26 EMC IP Holding Company LLC Defragmentation of striped volume in data storage system
JP2022175427A (ja) * 2021-05-13 2022-11-25 株式会社日立製作所 ストレージシステム及びストレージ管理方法
US20230237020A1 (en) * 2022-01-24 2023-07-27 Cohesity, Inc. Container-based erasure coding
US11868248B2 (en) * 2022-02-25 2024-01-09 Dell Products L.P. Optimization for garbage collection in a storage system
US11704053B1 (en) * 2022-04-06 2023-07-18 Dell Products L.P. Optimization for direct writes to raid stripes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102549554A (zh) * 2009-09-29 2012-07-04 美光科技公司 基于条带的存储器操作
US10101930B2 (en) * 2013-11-27 2018-10-16 Ngd Systems, Inc. System and method for supporting atomic writes in a flash translation layer
US9405626B1 (en) * 2013-12-20 2016-08-02 Emc Corporation At risk data caching (ARDC)
CN105739915A (zh) * 2014-12-29 2016-07-06 三星电子株式会社 存储系统中执行的条带重建方法和存储系统
CN108475232A (zh) * 2016-02-23 2018-08-31 桑迪士克科技有限责任公司 使用xcopy和多逻辑条带的优化的基于主机的垃圾收集策略的高效实现方式

Also Published As

Publication number Publication date
EP3889785A1 (en) 2021-10-06
EP3889785B1 (en) 2023-05-03
WO2020134143A1 (zh) 2020-07-02
US20210326207A1 (en) 2021-10-21
CN109814805A (zh) 2019-05-28
US11899533B2 (en) 2024-02-13
EP3889785A4 (en) 2022-01-26

Similar Documents

Publication Publication Date Title
US11379142B2 (en) Snapshot-enabled storage system implementing algorithm for efficient reclamation of snapshot storage space
US11386042B2 (en) Snapshot-enabled storage system implementing algorithm for efficient reading of data from stored snapshots
US11720264B2 (en) Compound storage system and storage control method to configure change associated with an owner right to set the configuration change
CN106708425B (zh) 分布式多模存储管理
US10082972B2 (en) Method and system for pooling, partitioning, and sharing network storage resources
US20090077327A1 (en) Method and apparatus for enabling a NAS system to utilize thin provisioning
CN109144406B (zh) 分布式存储系统中元数据存储方法、系统及存储介质
US11899533B2 (en) Stripe reassembling method in storage system and stripe server
CN112889034A (zh) 对数据块的内容驱动的分布进行擦除编码
CN110199512B (zh) 存储系统中存储设备的管理方法及装置
WO2021017782A1 (zh) 分布式存储系统访问方法、客户端及计算机程序产品
CN110325958B (zh) 分布式块存储系统中数据存储方法、装置及计算机可读存储介质
JP6653370B2 (ja) ストレージシステム
CN110199270B (zh) 存储系统中存储设备的管理方法及装置
US20210318826A1 (en) Data Storage Method and Apparatus in Distributed Storage System, and Computer Program Product
WO2021046693A1 (zh) 存储系统中数据处理方法、装置以及存储系统
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units
CN112714910B (zh) 分布式存储系统及计算机程序产品
US12032849B2 (en) Distributed storage system and computer program product

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220208

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.