CN107484427B - 用于处理存储设备中分条的方法和存储设备 - Google Patents
用于处理存储设备中分条的方法和存储设备 Download PDFInfo
- Publication number
- CN107484427B CN107484427B CN201680003123.8A CN201680003123A CN107484427B CN 107484427 B CN107484427 B CN 107484427B CN 201680003123 A CN201680003123 A CN 201680003123A CN 107484427 B CN107484427 B CN 107484427B
- Authority
- CN
- China
- Prior art keywords
- data
- stripe
- unit
- striping
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, 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)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
一种用于处理存储设备中分条的方法和存储设备,该方法包括:确定该存储设备中满足垃圾回收条件的至少两个分条,该至少两个分条中的每个分条包括需要进行垃圾回收的分条单元与不需要进行垃圾回收的分条单元;分别从该每个分条中确定至少一个不需要进行垃圾回收的分条单元;计算确定出的不需要进行垃圾回收的分条单元中的数据的校验数据;将该校验数据存储到空闲的第一分条单元中,该第一分条单元与该确定出的不需要进行垃圾回收的分条单元构成该存储设备中新的分条。该方法在对分条进行垃圾回收的场景中,能够有效减少数据搬移量,从而减少存储设备的写操作,降低存储设备的性能开销。
Description
技术领域
本发明实施例涉及计算机存储领域,并且更具体地,涉及一种用于处理存储设备中分条的方法和存储设备。
背景技术
独立硬盘冗余阵列(Redundant Array of Independent Disks,RAID)是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘)的技术,RAID能够提供比单个硬盘更高的存储性能和数据备份性能。RAID中的数据是以分条(Stripe)形式分布的,分条可以理解为硬盘阵列中两个或多个分区上一组位置相关的分块,该分块也可称为分条单元(Stripe Unit,SU),即分条由多个分条单元组成。一个分条中包含用于存储数据的分条单元和用于存储数据的校验数据的分条单元。
在由固态硬盘(Solid State Disk,SSD)组成的RAID中,当要修改分条中的数据时,通常采取重定向写(Redirect On Write,ROW)的方式,即将新数据写入新的空闲地址,对应地,原来地址中的数据就变成无效数据。当分条中的无效数据量达到一定阈值时,会触发对该分条的垃圾回收(Garbage Collection,GC)。
传统技术中,在对一个分条进行垃圾回收时,需要首先将该分条中存在的所有有效数据搬移到其他空闲的分条中,然后回收该分条,这样会产生大量数据搬移量,即会增加存储设备的写操作,造成较大性能开销。
发明内容
本发明实施例提供一种用于处理存储设备中分条的方法和存储设备,能够在对分条进行垃圾回收场景中,有效减少数据搬移量,减少写操作,降低性能开销。
第一方面提供了一种用于处理存储设备中分条的方法,所述方法包括:
确定所述存储设备中满足垃圾回收条件的至少两个分条,所述至少两个分条中的每个分条包括需要进行垃圾回收的分条单元与不需要进行垃圾回收的分条单元;
分别从所述每个分条中确定至少一个不需要进行垃圾回收的分条单元;
计算确定出的不需要进行垃圾回收的分条单元中的数据的校验数据;
将所述校验数据存储到空闲的第一分条单元中,所述第一分条单元与所述确定出的不需要进行垃圾回收的分条单元构成所述存储设备中新的分条。
在本申请中,在对分条进行垃圾回收的场景中,将至少两个分条中不需要进行垃圾回收的分条单元组建成新的分条,且不对该新的分条做垃圾回收处理,相应地,没有数据搬移操作,因此,在对分条进行垃圾回收的场景中,本申请能够有效减少数据搬移量,从而减少存储设备的写操作,降低存储设备的性能开销。
此外,在本申请中,通过将至少两个分条中不需要进行垃圾回收的分条单元中的数据的校验数据写入空闲的第一分条单元中,从而使得该第一分条单元与不需要进行垃圾回收的分条单元组建为新的分条,而不需要额外大量的写操作将原来分条单元中的数据搬移到空闲的分条单元中来组建该新的分条,因此能够在一定程度上提高存储设备的存储空间利用率。
在上述实现方式中,不需要进行垃圾回收的分条单元指的是分条中无效数据量小于第一预设阈值的分条单元;对应地,需要进行垃圾回收的分条单元指的是分条中无效数据量大于或等于所述第一预设阈值的分条单元。或者,不需要进行垃圾回收的分条单元也可以指的是分条中有效数据量大于第二预设阈值的分条单元;对应地,需要进行垃圾回收的分条单元指的是分条中有效数据量小于或等于所述第二预设阈值的分条单元。应理解,对于不同的分条,用于判断一个分条单元是否需要垃圾回收的预设阈值(所述第一预设阈值或所述第二预设阈值)可以相同,也可以不同。用于判断一个分条单元是否需要垃圾回收所涉及的无效数据量,表示一个分条单元中无效数据的大小与该分条单元中所有数据的大小的比值,也可以直接表示该分条单元中无效数据的大小。用于判断一个分条单元是否需要垃圾回收所涉及的有效数据量,表示一个分条单元中有效数据的大小与该分条单元中所有数据的大小的比值,也可以直接表示该分条单元中有效数据的大小。
在上述各个实现方式中,所述垃圾回收条件表示要对存储设备中的分条进行垃圾回收时分条要满足的条件。具体地,所述垃圾回收条件可以指一个分条中的无效数据量达到垃圾回收阈值,或者,所述垃圾回收条件也可以指一个分条中的某一个或多个分条单元发生异常,例如缺少可对应的物理硬盘数据块等。
应理解,在所述垃圾回收条件为一个分条中的某一个或多个分条单元发生异常的情况下,需要进行垃圾回收的分条单元指的是发生异常的分条单元,不需要进行垃圾回收的分条单元指的是没有发生异常的分条单元。
结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
在所述需要进行垃圾回收的分条单元中包括有效数据的情况下,将所述需要进行垃圾回收的分条单元中的有效数据搬移到所述存储设备中空闲的第二分条单元中,并回收所述需要进行垃圾回收的分条单元;
在所述需要进行垃圾回收的分条单元不包括有效数据的情况下,回收所述需要进行垃圾回收的分条单元。
在本申请中,针对所述需要进行垃圾回收的分条单元,如果这些分条单元中包括有效数据,先将有效数据搬移到空闲的分条单元中,然后回收这些分条单元;如果这些分条单元中不包括有效数据,可以直接将这些分条单元进行回收。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述新的分条的大小与所述至少两个分条中每个分条的大小均相同;或者,所述新的分条的大小与所述至少两个分条中至少一个分条的大小相同;或者,所述新的分条的大小与所述至少两个分条中每个分条的大小均不同。
结合第一方面或第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述新的分条为使用廉价硬盘冗余阵列RAID技术生成的分条。
结合第一方面或第一方面的第一种或第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述新的分条为使用纠删码技术生成的分条。
结合第一方面的第一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:
释放逻辑单元号LUN与所述需要进行垃圾回收的分条单元之间的映射关系。
应理解,在所述需要进行垃圾回收的分条单元中包括有效数据的情况下,所述方法还包括:
建立所述LUN与所述第二分条单元之间的映射关系。
第二方面提供一种存储设备,该存储设备用于执行上述第一方面或第一方面的任一方面的可能实现方式中的方法。
具体地,该存储设备可以包括用于执行第一方面或第一方面的任一可能的实现方式中的方法的模块。
第三方面提供一种存储设备,所述存储设备包括控制器和多个分条,所述控制器用于:
确定所述多个分条中满足垃圾回收条件的至少两个分条,所述至少两个分条中的每个分条包括需要进行垃圾回收的分条单元与不需要进行垃圾回收的分条单元;
分别从所述每个分条中确定至少一个不需要进行垃圾回收的分条单元;
计算所述确定出的不需要进行垃圾回收的分条单元中的数据的校验数据;
将所述计算得到的所述校验数据存储到空闲的第一分条单元中,其中,所述确定出的不需要进行垃圾回收的分条单元与所述第一分条单元构成所述存储设备中新的分条。
在本申请中,在对分条进行垃圾回收的场景中,将至少两个分条中不需要进行垃圾回收的分条单元组建成新的分条,且不对该新的分条做垃圾回收处理,相应地,没有数据搬移操作,因此,在对分条进行垃圾回收的场景中,本申请能够有效减少数据搬移量,从而减少存储设备的写操作,降低存储设备的性能开销。
此外,在本申请中,通过将至少两个分条中不需要进行垃圾回收的分条单元中的数据的校验数据写入空闲的第一分条单元中,从而使得该第一分条单元与不需要进行垃圾回收的分条单元组建为新的分条,而不需要额外大量的写操作将原来分条单元中的数据搬移到空闲的分条单元中来组建该新的分条,因此能够在一定程度上提高存储设备的存储空间利用率。
结合第三方面,在第三方面的第一种可能的实现方式中,所述控制器还用于,在所述需要进行垃圾回收的分条单元中包括有效数据的情况下,将所述需要进行垃圾回收的分条单元中的有效数据搬移到所述存储设备中空闲的第二分条单元中,并擦除所述需要进行垃圾回收的分条单元中的数据,回收所述需要进行垃圾回收的分条单元;
在所述需要进行垃圾回收的分条单元不包括有效数据的情况下,擦除所述需要进行垃圾回收的分条单元中的数据,回收所述需要进行垃圾回收的分条单元。
具体的,在第三方面各实现方式中,控制器具体包括处理器和存储器,处理器执行存储器中的计算机指令用于实现第三方面各实现方式(操作)。本领域技术人员可知,其他实现方式也可以实现本发明实施例中的控制器的实现方式(操作)。如通过现场可编程门阵列(Field Programmable Gate Array,FPGA)或其他硬件执行本发明实施例中控制器的全部实现方式(操作),或者,FPGA或其他硬件与处理器分别执行本发明实施例控制器的部分实现方式(操作),以实现本发明实施例描述的控制器的实现方式(操作)。
在第三方面各实现方式中,分条是控制器对存储设备中的存储空间进行条带化管理的结果。
相应地,第四方面提供了一种非易失性存储介质,所述非易失性存储介质中存储有计算机指令,第三方面各种实现方式中的处理器执行所述计算机指令,用于实现第三方面各实现方式(操作)。
基于上述各个实现方式,在本申请中,在对分条进行垃圾回收的场景中,将至少两个分条中不需要进行垃圾回收的分条单元组建成新的分条,且不对该新的分条做垃圾回收处理,相应地,没有数据搬移操作,因此,在对分条进行垃圾回收的场景中,本申请能够有效减少数据搬移量,从而减少存储设备的写操作,降低存储设备的性能开销。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1示出了现有技术中的分条的示意图。
图2示出了根据本发明实施例提供的用于处理存储设备中分条的方法的示意图。
图3示出了根据本发明实施例提供的存储设备的示意性框图。
图4示出了根据本发明实施例提供的存储设备的另一示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
本发明实施例提供的用于处理存储设备中分条(Stripe)的方法可以应用于以Stripe作为管理方式的存储设备,例如为固态硬盘(Solid State Disk,SSD)组成的存储阵列、或SSD本身、或叠瓦式磁记录(Shingled Magneting Recording,SMR)盘组成的存储阵列等。
Stripe是一种将多个硬盘(单个盘中,则为多个存储介质)合并为一个卷的方法,Stripe可以理解为硬盘阵列(或硬盘)中两个或多个分区上一组位置相关的分块,该分块也可称为SU,即Stripe由多个SU组成。Stripe是对存储空间进行条带化管理的结果,具体可以参见本领域技术人员对Stripe的理解。SU均与硬盘中的块(Block)有对应关系,示例性的,如图1所示,Stripe 0包括3个SU,这3个SU分别对应于图1中102所指一行中的硬盘a中的数据块(即Block)、硬盘b中的数据块和硬盘中的校验数据块;Stripe 1包括3个SU,这3个SU分别对应于图1中104所指一行中的硬盘a中的数据块、硬盘b中的校验数据块和硬盘c中的数据块;Stripe3包括3个SU,这3个SU分别对应于图1中106所指一行中的硬盘a中的数据块、硬盘b中的数据块和硬盘c中的校验数据块;Stripe 3包括3个SU,这3个SU分别对应于图1中108所指一行中的硬盘a中的校验数据块、硬盘b中的数据块和硬盘c中的数据块。
作为示例而非限定,图1中所示的存储设备例如为SSD存储阵列,例如图1中所示的硬盘a、b、c均为SSD。为了便于理解和描述,下面以本发明实施例应用于基于SSD的存储设备为例进行说明,但是本领域技术人员根据本发明实施例的教导可以很清楚地理解,本发明实施例的方法同样可以应用于其它以Stripe作为管理方式的存储设备,这样的应用均落入本发明的保护范围内。
SSD是一种以闪存作为存储介质的新型存储系统,闪存并没有像磁头一样的机械部件,其随机访问模式和顺序访问模式的开销是相当的,因此,SSD比传统硬盘具有更大的性能优势。闪存具有先擦除才能再写入的特性,例如,当要在闪存中更新数据时,在数据的旧值未被擦除之前,是不能在数据的旧值所在的物理地址写入数据的新值的,即需要先将数据的旧值擦除,才可以在数据的旧值所在的物理地址写入数据的新值。但是,闪存还有个特性是,读、写操作以页为单位、擦除操作以块(包括多个页)为单位。换句话说,要实现在数据的旧值所在的物理地址写入数据的新值,需要对数据的旧值所在的整个块(通常为64K或128K)上的数据进行擦除,然后才能在已擦除状态的块中写入数据的新值。但是,首先,擦除块的代价是非常巨大的,因为虽然闪存中的块可以进行反复擦除,但是每个块的擦除次数是有限的,闪存的寿命是按擦除次数计算的,例如多阶存储单元(Multi-Level Cell,MLC)闪存的寿命一般在1000-10000次,单阶存储单元(Single-Level Cell,SLC)闪存的寿命则在10万次左右。其次,如果要擦除的块中还包括有效数据的,则擦除该块之前需要先将有效数据读出,然后写入新的块地址,这个过程称为数据搬移,数据搬移会产生写入放大(Writeamplification,WA),即实际写入的数据量将要大于需要写入SSD的数据量,写入放大是一种不期望的现象。针对上述问题,现有技术中,通常采取重定向写(Redirect On Write,ROW)的方式,即当覆盖写数据时,要写的数据重定向写入新的空闲地址,对应地,原来地址上的数据就变成无效数据。
如图1所示,由SSD组成的存储阵列包括控制器以及与控制器连接的SSD(假设图1中所示的硬盘均为SSD)。其中,控制器用于将SSD划分成多个Stripe(如图1中所示的Stripe0、Stripe1、Stripe2和Stripe3),再使用Stripe为主机提供逻辑单元号(Logic UnitNumber,LUN)。LUN可以看作是主机可以访问的一个逻辑硬盘,也可称之为逻辑空间单元,也是用户可以实现读写的空间。如图1所示,一个Stripe包括多个SU,每个SU均会有块(Block)与之对应。应理解,当主机在LUN中进行写操作时,对应的数据会写入SU,对应地会写入相应的块中。当对Stripe进行垃圾回收时,也会回收对应的块,即擦除对应的块,并释放其存储空间。
具体地,图1中所示的控制器例如为RAID控制器,则图1所示的Stripe0、Stripe1、Stripe2和Stripe3均为基于RAID技术组建的分条。
图2示出了根据本发明实施例提供的存储设备垃圾回收的方法的示意图。
在S21中,确定存储设备中满足垃圾回收条件的两个分条Stripe1与Stripe2,Stripe1与Stripe2中分别包括需要进行垃圾回收的SU(例如Stripe1中的SU10和SU12,Stripe2中的SU21和SU23)与不需要进行垃圾回收的SU(例如Stripe1中的SU11和SU13,Stripe2中的SU20和SU22)。
具体地,例如覆盖写数据操作引起Stripe1与Stripe2中产生无效数据,例如用户要更新Stripe1的SU10中存储的数据,通过将SU10中存储的数据的更新数据写入其他空白地址中,导致SU10中存储的数据变为无效数据。当Stripe1与Stripe2中的无效数据量都达到垃圾回收阈值,就会触发Stripe1与Stripe2的垃圾回收操作。如图2所示,Stripe1与Stripe2中各个SU的无效数据量不均衡,将Stripe1中的SU10和SU12确定为需要垃圾回收的SU,将Stripe1中的SU11和SU13确定为不需要垃圾回收的SU,将Stripe2中的SU21和SU23确定为需要垃圾回收的SU,将Stripe2中的SU20和SU22确定为不需要垃圾回收的SU。
在S22中,将Stripe1中不需要垃圾回收的SU11和SU13以及Stripe2中不需要垃圾回收的SU20和SU22,组建为新的分条(如图2中所示的Stripe4)。
具体地,计算SU11、SU13、SU20和SU22中的数据的校验数据,并将该校验数据存储于空闲的SU(图2未示出存储校验数据的SU)中,使得SU11、SU13、SU20、SU22与存储校验数据的SU形成新的分条Stripe4(图2未示出Stripe4中存储校验数据的分条单元)。
可选地,在本发明实施例中,组建的新的分条(Stripe4)为使用RAID技术形成的分条,或者为使用纠删码(Erasure Coding,EC)技术形成的分条。
应理解,使用RAID技术形成的分条意味着该分条中存储数据的SU和存储校验数据的SU之间符合特定的RAID等级的关系,如构成RAID5、RAID6或RAID10等。使用EC技术形成的分条意味着该分条中存储的校验数据是使用特定的EC算法计算SU11、SU13、SU20和SU22中的数据得到的,从而使存储校验数据的SU与SU11、SU13、SU20和SU22形成新的分条。
在S23中,将Stripe1中需要垃圾回收的SU12中的有效数据搬移到空闲分条(如图2所示的Stripe3)中。应理解,该空闲的分条可以是指未写入数据的分条,也可以是未写满数据的分条。
在S24中,擦除SU10、SU12、SU21和SU23中的数据,然后释放SU10、SU12、SU21和SU23的存储空间,即回收了SU10、SU12、SU21和SU23。
因此,在本发明实施例中,在对分条进行垃圾回收的场景中,将至少两个分条中不需要进行垃圾回收的分条单元组建成新的分条,并不对该新的分条做回收,从而能够减少数据搬移量,从而减少存储设备的写操作,降低存储设备的性能开销。同时,通过将至少两个分条中不需要进行垃圾回收的分条单元中的数据的校验数据写入空闲的第一分条单元中,从而使得该第一分条单元与不需要进行垃圾回收的分条单元组建为新的分条,而不需要额外大量的写操作将原来分条单元中的数据搬移到空闲的分条单元中来组建该新的分条,因此能够在一定程度上提高存储设备的存储空间利用率。
具体地,在S21中,确定存储设备中满足垃圾回收条件的Stripe1与Stripe2。其中,所述垃圾回收条件可以指一个分条中的无效数据量达到垃圾回收阈值,例如,图2中所示的Stripe1中的无效数据量占Stripe1中总数据量的比例达到80%(假设垃圾回收阈值为80%),就触发对Stripe1的垃圾回收处理。
在所述垃圾回收条件为一个分条中的无效数据量达到垃圾回收阈值的情况下,需要进行垃圾回收的SU指的是分条中无效数据量大于或等于预设阈值的SU;不需要进行垃圾回收的SU指的是Stripe中无效数据量小于预设阈值的SU。对于不同的Stripe,用于判断一个SU是否需要垃圾回收的预设阈值可以相同,也可以不同。
可选地,所述垃圾回收条件也可以指一个分条中的某一个或多个分条单元发生异常,例如缺少可对应的物理硬盘数据块等。一个Stripe中某个SU对应的块所在的盘发生故障,或者一个Stripe中某个SU对应的块不可用,这个Stripe就满足垃圾回收条件,需要对其进行垃圾回收。
在所述垃圾回收条件指一个分条中的某一个或多个分条单元发生异常的情况下,需要进行垃圾回收的SU指的是发生上述异常的SU;不需要进行垃圾回收的SU指的是没有发生上述异常的SU。
因此,在本发明实施例中,仅回收分条中发生异常的分条单元,而将分条中没有发生异常的分条单元与其他分条中没有发生异常的分条单元组建为新的分条,降低了数据搬移量,从而有效减少了存储设备的写操作,进而降低存储设备的性能开销。
在S22中,根据Stripe1中不需要垃圾回收的SU11和SU13以及Stripe2中不需要垃圾回收的SU20和SU22,组建新的分条(如图2中所示的Stripe4)。可选地,在本发明实施例中,该新的分条的大小与Stripe1或Stripe2的大小相同;或者该新的分条的大小与Stripe1和Stripe2中一个的大小相同;或者该新的分条的大小与Stripe1和Stripe2的大小均不同。
应理解,Stripe的大小指的是阵列(例如图1所示的RAID)能够写到一组并行硬盘的数据容量之和。
应理解,步骤S23与S24可以统称为对需要垃圾回收的分条单元进行垃圾回收的过程。
可选地,在本发明实施例中,在所述需要进行垃圾回收的分条单元中包括有效数据的情况下,将所述需要进行垃圾回收的分条单元中的有效数据搬移到所述存储设备中空闲的第二分条单元中,并擦除所述需要进行垃圾回收的分条单元中的数据,回收所述需要进行垃圾回收的分条单元;
在所述需要进行垃圾回收的分条单元不包括有效数据的情况下,擦除所述需要进行垃圾回收的分条单元中的数据,回收所述需要进行垃圾回收的分条单元。
具体地,以图3所示场景为例,由于Stripe1中需要垃圾回收的SU12中包括有效数据,因此,在回收SU12之前,需要先将SU12上的有效数据搬移到其他空闲的分条(如图3中所示的Stript3),然后才能回收SU12,即擦除SU12中的数据,释放其对应的存储空间。而Stripe1中需要垃圾回收的SU10、以及Stripe2中需要垃圾回收的SU21和SU23中不包括有效数据,均为无效数据,因此,可以直接回收SU10、SU21和SU23,即擦除SU10和SU12、SU21和SU23中的数据,并释放其对应的存储空间。换句话说,对于需要垃圾回收的SU12,步骤S23和S24均要执行,但是对于需要垃圾回收的SU10、SU21和SU23无需执行S23,直接执行S24即可。
可选地,在S23中,将Stripe1与Stripe2中无效数据量大于第一阈值的SU中的有效数据搬移到空闲的SU中。空闲的SU可以是指未写入数据的SU,也可以是未写满数据的SU。
可选地,在本发明实施例中,可以根据SU的位图来判断SU中的有效数据量与无效数据量,以便于确定SU是否需要进行垃圾回收。应理解,SU的位图用于标识SU中哪些数据是有效的。例如SU的空间大小为1M,SU的最小管理粒度(即SU的数据地址的粒度)为4K,那么SU的位图包括1M/4K=256个位,例如将无效数据对应的位置为“0”,有效数据对应的位置为“1”,这样,这样通过SU的位图中包括的位信息,就可以分辨出SU中的数据哪些是有效的,哪些是无效的,进而也可以确定该SU中的有效数据量和无效数据量。
具体地,在S22中,根据Stripe1中的SU11的ID所绑定的盘ID,将SU11的ID挂入到该盘ID对应的盘的链表上,对于每一个要重组的分条单元都执行类似的动作;将存储SU11、SU13、SU20和SU22中数据的校验数据的SU的ID所绑定的盘ID挂入该盘ID对应的链表上。为SU11、SU13、SU20和SU22以及存储SU11、SU13、SU20和SU22中数据的校验数据的SU分配一个新的Stripe ID(即Stripe4),并建立这些不同盘的链表上的SU的ID与该新的Stripe的ID之间的绑定关系。
应理解,Stripe的大小,即一个Stripe包括的SU的数量,可以一个固定值,也可以是一个根据存储设备的策略的变量。例如,使用RAID技术构成的Stripe,可根据不同的RAID级别,Stripe中包含不同数量的SU。
还应理解,如果LUN包括Stripe1和Stripe2,则存储设备在搬移处理与重组处理之后,存储设备释放LUN与Stripe1中的SU10和SU12,以及Stripe2中的SU21和SU23之前的映射关系,并且建立LUN与存储SU11、SU13、SU20和SU22中数据的校验数据的SU的映射。
还应理解,存储设备将SU10、SU12、SU21和SU23进行垃圾回收后,SU10、SU12、SU21和SU23可以用来写入新的数据。
因此,在本发明实施例中,在对分条进行垃圾回收的场景中,将至少两个分条中不需要进行垃圾回收的分条单元组建成新的分条,并非对分条中每个分条单元都做有效数据搬移,从减少数据搬移,降低存储设备性能开销;同时,通过将至少两个分条中不需要进行垃圾回收的分条单元中的数据的校验数据写入空闲的第一分条单元中,从而使得该第一分条单元与不需要进行垃圾回收的分条单元组建为新的分条,而不需要额外大量的写操作将原来分条单元中的数据搬移到空闲的分条单元中来组建该新的分条,因此能够在一定程度上提高存储设备的存储空间利用率。
作为示例而非限定,图2示出了对两个满足垃圾回收条件的分条进行处理的情形,本发明实施例并非限定于此,例如,还可以对三个或更多个满足垃圾回收条件的分条采用本发明实施例提供的方法进行处理。
上文结合图2以重定向写的存储系统为例,描述了本发明实施例提供的用于处理存储设备中分条的方法,应理解,根据本发明实施例提供的用于处理存储设备中分条的方法的应用范围并非仅限定于重定向写产生无效数据的场景,只要是分条中产生了无效数据需要垃圾回收的情形,都可以应用本发明实施例提供的用于处理存储设备中分条的方法。
图3示出了根据本发明实施例提供的存储设备300的示意性框图,该存储设备300包括:
确定模块310,用于确定该存储设备中满足垃圾回收条件的至少两个分条,该至少两个分条中的每个分条包括需要进行垃圾回收的分条单元与不需要进行垃圾回收的分条单元;
该确定模块310还用于,分别从该每个分条中确定至少一个不需要进行垃圾回收的分条单元;
计算模块320,用于计算该确定模块确定出的不需要进行垃圾回收的分条单元中的数据的校验数据;
分条组建模块330,用于将该校验数据存储到空闲的第一分条单元中,该第一分条单元与该确定出的不需要进行垃圾回收的分条单元构成该存储设备中新的分条。
因此,在本发明实施例中,在本申请中,在对分条进行垃圾回收的场景中,将至少两个分条中不需要进行垃圾回收的分条单元组建成新的分条,且不对该新的分条做垃圾回收处理,相应地,没有数据搬移操作,因此,在对分条进行垃圾回收的场景中,本申请能够有效减少数据搬移量,从而减少存储设备的写操作,降低存储设备的性能开销。
可选地,在本发明实施例中,该设备300还包括:
分条回收模块340,用于在该需要进行垃圾回收的分条单元中包括有效数据的情况下,将该需要进行垃圾回收的分条单元中的有效数据搬移到该存储设备中空闲的第二分条单元中,并回收该需要进行垃圾回收的分条单元;
该分条回收模块340还用于,在该需要进行垃圾回收的分条单元不包括有效数据的情况下,回收该需要进行垃圾回收的分条单元。
在本发明实施例中,针对该需要进行垃圾回收的分条单元,如果这些分条单元中包括有效数据,先将有效数据搬移到空闲的分条单元中,然后回收该需要进行垃圾回收的分条单元;如果这些分条单元中不包括有效数据,可以直接进行回收。
可选地,在本发明实施例中,该新的分条为使用廉价硬盘冗余阵列RAID技术生成的分条。
可选地,在本发明实施例中,该新的分条为使用纠删码技术生成的分条。
应理解,根据本发明实施例的处理无效数据的设备300中的各个模块的上述和其它操作和/或功能分别为了实现图2所示方法的相应流程,为了简洁,在此不再赘述。
如图4所示,本发明实施例还提供了一种存储设备400,所述存储设备400包括控制器410和多个分条420。具体地,所述控制器410包括处理器411、存储器412和总线系统413,其中,处理器411与存储器412通过总线系统413相连。该存储器412用于存储计算机指令,该处理器411用于执行该存储器412存储的计算机指令,通过执行该存储器412中存储的计算机指令用于实现控制器410的执行的下面的操作。本领域技术人员可知,其他实现方式也可以实现本发明实施例中的控制器410。如通过现场可编程门阵列(Field ProgrammableGate Array,FPGA)或其他硬件执行本发明实施例中控制器410的全部操作,或者,FPGA或其他硬件与处理器411分别执行本发明实施例控制器410的部分操作,以实现本发明实施例描述的控制器410的操作。该控制器410用于:
确定所述多个分条420中满足垃圾回收条件的至少两个分条,所述至少两个分条中的每个分条包括需要进行垃圾回收的分条单元与不需要进行垃圾回收的分条单元;
分别从所述每个分条中确定至少一个不需要进行垃圾回收的分条单元;
计算所述确定出的不需要进行垃圾回收的分条单元中的数据的校验数据;
将所述计算得到的所述校验数据存储到空闲的第一分条单元中,其中,所述确定出的不需要进行垃圾回收的分条单元与所述第一分条单元构成所述存储设备中新的分条。
应理解,该多个分条420可以对应于图1中所示资源池中的多个分条(Stripe0、Stripe1、Stripe2、Stripe3)。
Stripe是控制器对存储设备中的存储空间进行条带化管理的结果,具体可以参见本领域技术人员对Stripe的理解。
在本发明实施例中,在对分条进行垃圾回收的场景中,将至少两个分条中不需要进行垃圾回收的分条单元组建成新的分条,且不对该新的分条做垃圾回收处理,相应地,没有数据搬移操作,因此,在对分条进行垃圾回收的场景中,本申请能够有效减少数据搬移量,从而减少存储设备的写操作,降低存储设备的性能开销。
此外,在本发明实施例中,通过将至少两个分条中不需要进行垃圾回收的分条单元中的数据的校验数据写入空闲的第一分条单元中,从而使得该第一分条单元与不需要进行垃圾回收的分条单元组建为新的分条,而不需要额外大量的写操作将原来分条单元中的数据搬移到空闲的分条单元中来组建该新的分条,因此能够在一定程度上提高存储设备的存储空间利用率。
可选地,在本发明实施例中,所述处理器411还用于,在所述需要进行垃圾回收的分条单元中包括有效数据的情况下,将所述需要进行垃圾回收的分条单元中的有效数据搬移到所述存储设备中空闲的第二分条单元中,并擦除所述需要进行垃圾回收的分条单元中的数据,回收所述需要进行垃圾回收的分条单元;
在所述需要进行垃圾回收的分条单元不包括有效数据的情况下,擦除所述需要进行垃圾回收的分条单元中的数据,回收所述需要进行垃圾回收的分条单元。
可选地,在本发明实施例中,该存储设备400中的分条是基于廉价硬盘冗余阵列RAID技术或纠删码EC技术生成的。
因此,在本发明实施例中,在对分条进行垃圾回收的场景中,将至少两个分条中不需要进行垃圾回收的分条单元组建成新的分条,且不对该新的分条做垃圾回收处理,相应地,没有数据搬移操作,因此,在对分条进行垃圾回收的场景中,本申请能够有效减少数据搬移量,从而减少存储设备的写操作,降低存储设备的性能开销。
应理解,根据本发明实施例的存储设备400对应于本发明实施例提供的存储设备300,该存储设备400用于实现图2中所示方法的相应流程,为了简洁,在此不再赘述。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种用于处理存储设备中分条的方法,其特征在于,包括:
确定所述存储设备中满足垃圾回收条件的至少两个分条,所述至少两个分条中的每个分条包括需要进行垃圾回收的分条单元与不需要进行垃圾回收的分条单元;
分别从所述每个分条中确定至少一个不需要进行垃圾回收的分条单元;
计算确定出的不需要进行垃圾回收的分条单元中的数据的校验数据;
将所述校验数据存储到空闲的第一分条单元中,所述第一分条单元与所述确定出的不需要进行垃圾回收的分条单元构成所述存储设备中新的分条,且不迁移所述确定出的不需要进行垃圾回收的分条单元。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述需要进行垃圾回收的分条单元中包括有效数据的情况下,将所述需要进行垃圾回收的分条单元中的有效数据搬移到所述存储设备中空闲的第二分条单元中,并回收所述需要进行垃圾回收的分条单元;
在所述需要进行垃圾回收的分条单元不包括有效数据的情况下,回收所述需要进行垃圾回收的分条单元。
3.根据权利要求1或2所述的方法,其特征在于,所述新的分条为使用廉价硬盘冗余阵列RAID技术生成的分条。
4.根据权利要求1或2所述的方法,其特征在于,所述新的分条为使用纠删码技术生成的分条。
5.一种存储设备,其特征在于,包括:
确定模块,用于确定所述存储设备中满足垃圾回收条件的至少两个分条,所述至少两个分条中的每个分条包括需要进行垃圾回收的分条单元与不需要进行垃圾回收的分条单元;
所述确定模块还用于,分别从所述每个分条中确定至少一个不需要进行垃圾回收的分条单元;
计算模块,用于计算所述确定模块确定出的不需要进行垃圾回收的分条单元中的数据的校验数据;
存储模块,用于将所述校验数据存储到空闲的第一分条单元中,所述第一分条单元与所述确定出的不需要进行垃圾回收的分条单元构成所述存储设备中新的分条,且不迁移所述确定出的不需要进行垃圾回收的分条单元。
6.根据权利要求5所述的存储设备,其特征在于,所述存储设备还包括:
回收模块,用于在所述需要进行垃圾回收的分条单元中包括有效数据的情况下,将所述需要进行垃圾回收的分条单元中的有效数据搬移到所述存储设备中空闲的第二分条单元中,并回收所述需要进行垃圾回收的分条单元;
所述回收模块还用于,在所述需要进行垃圾回收的分条单元不包括有效数据的情况下,回收所述需要进行垃圾回收的分条单元。
7.根据权利要求5或6所述的存储设备,其特征在于,所述新的分条为使用廉价硬盘冗余阵列RAID技术生成的分条。
8.根据权利要求5或6所述的存储设备,其特征在于,所述新的分条为使用纠删码技术生成的分条。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/078693 WO2017173623A1 (zh) | 2016-04-07 | 2016-04-07 | 用于处理存储设备中分条的方法和存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107484427A CN107484427A (zh) | 2017-12-15 |
CN107484427B true CN107484427B (zh) | 2020-11-06 |
Family
ID=60000228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680003123.8A Active CN107484427B (zh) | 2016-04-07 | 2016-04-07 | 用于处理存储设备中分条的方法和存储设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11157365B2 (zh) |
EP (2) | EP3336706B1 (zh) |
CN (1) | CN107484427B (zh) |
WO (1) | WO2017173623A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10297274B2 (en) * | 2016-06-01 | 2019-05-21 | Spectra Logic, Corp. | Shingled magnetic recording raid scheme |
CN108415853A (zh) * | 2018-03-15 | 2018-08-17 | 深圳市江波龙电子有限公司 | 一种垃圾回收的方法、装置及存储设备 |
CN109496300B (zh) * | 2018-03-23 | 2021-11-19 | 华为技术有限公司 | 一种存储介质垃圾回收方法、存储介质和程序产品 |
CN110688323B (zh) * | 2018-07-06 | 2023-11-17 | 华为技术有限公司 | 一种系统控制器和系统垃圾回收方法 |
WO2020007030A1 (zh) | 2018-07-06 | 2020-01-09 | 华为技术有限公司 | 一种系统控制器和系统垃圾回收方法 |
CN109814805B (zh) * | 2018-12-25 | 2020-08-25 | 华为技术有限公司 | 存储系统中分条重组的方法及分条服务器 |
KR20210076497A (ko) | 2019-12-16 | 2021-06-24 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11734175B2 (en) * | 2019-08-22 | 2023-08-22 | SK Hynix Inc. | Storage device and method of operating the same |
US11762769B2 (en) | 2019-09-20 | 2023-09-19 | SK Hynix Inc. | Memory controller based on flush operation and method of operating the same |
CN113918378A (zh) * | 2020-07-10 | 2022-01-11 | 华为技术有限公司 | 数据存储方法、存储系统、存储设备及存储介质 |
US11314416B1 (en) * | 2020-10-23 | 2022-04-26 | EMC IP Holding Company LLC | Defragmentation of striped volume in data storage system |
US11966608B2 (en) | 2021-11-15 | 2024-04-23 | Samsung Electronics Co., Ltd. | Memory controller with improved data reliability and memory system including the same |
CN114415981B (zh) * | 2022-03-30 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种多控存储系统的io处理方法、系统及相关组件 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090204846A1 (en) * | 2008-02-12 | 2009-08-13 | Doug Baloun | Automated Full Stripe Operations in a Redundant Array of Disk Drives |
US9158670B1 (en) * | 2011-06-30 | 2015-10-13 | Western Digital Technologies, Inc. | System and method for dynamically adjusting garbage collection policies in solid-state memory |
US9251067B1 (en) * | 2012-11-01 | 2016-02-02 | Western Digital Technologies, Inc. | High speed trim command processing in a solid state drive |
US9430376B2 (en) * | 2012-12-26 | 2016-08-30 | Western Digital Technologies, Inc. | Priority-based garbage collection for data storage systems |
CN103135946B (zh) * | 2013-03-25 | 2014-11-26 | 中国人民解放军国防科学技术大学 | 基于ssd的大规模存储系统中的文件布局方法 |
US20190042405A1 (en) * | 2013-06-21 | 2019-02-07 | Western Digital Technologies, Inc. | Storing data based on writing frequency in data storage systems |
CN103577338B (zh) * | 2013-11-14 | 2016-06-29 | 华为技术有限公司 | 一种回收垃圾数据的方法及存储设备 |
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 | 华为技术有限公司 | 一种存储设备垃圾回收的方法及设备 |
US9542119B2 (en) * | 2014-07-09 | 2017-01-10 | Toshiba Corporation | Solid-state mass storage media having data volumes with different service levels for different data types |
US9811413B2 (en) * | 2014-07-30 | 2017-11-07 | Apple Inc. | Orphan block management in non-volatile memory devices |
CN104794070B (zh) * | 2015-04-23 | 2017-10-31 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 |
US9870285B2 (en) * | 2015-11-18 | 2018-01-16 | International Business Machines Corporation | Selectively de-straddling data pages in non-volatile memory |
US9996268B2 (en) * | 2015-12-18 | 2018-06-12 | Toshiba Memory Corporation | Memory system and control method of the same |
-
2016
- 2016-04-07 EP EP16897557.1A patent/EP3336706B1/en active Active
- 2016-04-07 EP EP20215878.8A patent/EP3859507A1/en active Pending
- 2016-04-07 CN CN201680003123.8A patent/CN107484427B/zh active Active
- 2016-04-07 WO PCT/CN2016/078693 patent/WO2017173623A1/zh active Application Filing
-
2018
- 2018-04-18 US US15/956,063 patent/US11157365B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20180239671A1 (en) | 2018-08-23 |
EP3336706B1 (en) | 2021-06-30 |
EP3336706A4 (en) | 2019-03-20 |
WO2017173623A1 (zh) | 2017-10-12 |
US11157365B2 (en) | 2021-10-26 |
CN107484427A (zh) | 2017-12-15 |
EP3859507A1 (en) | 2021-08-04 |
EP3336706A1 (en) | 2018-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107484427B (zh) | 用于处理存储设备中分条的方法和存储设备 | |
JP6300132B2 (ja) | ガベージデータを収集するための方法及び記憶装置 | |
US9910748B2 (en) | Rebuilding process for storage array | |
CN106681934B (zh) | 一种存储设备垃圾回收的方法及设备 | |
US20150212752A1 (en) | Storage system redundant array of solid state disk array | |
EP2942713A1 (en) | Storage system and storage apparatus | |
US20150378886A1 (en) | Software-defined ssd and system using the same | |
US8677093B2 (en) | Method and apparatus to manage tier information | |
CN109358809B (zh) | 一种raid数据存储系统及方法 | |
US20060112221A1 (en) | Method and Related Apparatus for Data Migration Utilizing Disk Arrays | |
CN102722340A (zh) | 数据处理方法、装置及系统 | |
EP3120250A1 (en) | Solid state drive operations | |
CN108255414B (zh) | 固态硬盘访问方法及装置 | |
US20170199680A1 (en) | System and method of write amplification factor mitigation and flash lifespan extension | |
CN107665097B (zh) | 一种固态硬盘分区的方法、装置及计算机可读存储介质 | |
KR101029704B1 (ko) | 플래시 메모리 관리 방법 | |
US20140164697A1 (en) | Mainframe Storage Apparatus That Utilizes Thin Provisioning | |
CN109558066B (zh) | 存储系统中恢复元数据的方法和装置 | |
JP6476959B2 (ja) | ストレージ制御装置、ストレージシステム、および制御プログラム | |
CN110737395B (zh) | I/o管理方法、电子设备和计算机可读存储介质 | |
CN114415968B (zh) | 存储系统及其数据写入方法 | |
JP6556980B2 (ja) | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム | |
US8478938B2 (en) | Performing data writes in parity protected redundant storage arrays | |
CN111124290A (zh) | 应用于闪存存储装置的冗余方法及闪存存储装置 | |
CN116069266B (zh) | 磁盘漫游控制方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |