CN109416663B - 用于最小化存储系统和其设备内的ssd中的碎片化的方法 - Google Patents

用于最小化存储系统和其设备内的ssd中的碎片化的方法 Download PDF

Info

Publication number
CN109416663B
CN109416663B CN201780040295.7A CN201780040295A CN109416663B CN 109416663 B CN109416663 B CN 109416663B CN 201780040295 A CN201780040295 A CN 201780040295A CN 109416663 B CN109416663 B CN 109416663B
Authority
CN
China
Prior art keywords
cache memory
computing device
processor
data
allocation 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.)
Active
Application number
CN201780040295.7A
Other languages
English (en)
Other versions
CN109416663A (zh
Inventor
R·德罗纳拉朱
S·古普塔
K·斯特林
A·戈伊尔
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.)
NetApp Inc
Original Assignee
NetApp Inc
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 NetApp Inc filed Critical NetApp Inc
Publication of CN109416663A publication Critical patent/CN109416663A/zh
Application granted granted Critical
Publication of CN109416663B publication Critical patent/CN109416663B/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/0608Saving storage space on storage systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache

Abstract

一种帮助减少固态设备中的存储器碎片化的方法、非暂时性计算机可读介质和设备,包括标识地址范围内的分配区域以从高速缓存写入数据。接下来,确定标识的分配区域是否包括先前被存储的数据。当确定标识的分配区域包括先前被存储的数据时,先前被存储的数据被从标识的分配区域读取。接下来,来自高速缓存的写入数据和先前被存储的读取数据两者顺序地通过地址范围被写回到标识的分配区域。

Description

用于最小化存储系统和其设备内的SSD中的碎片化的方法
技术领域
本申请要求于2016年6月28日提交的美国实用专利申请序列号15/195,093的优先权,并且其全部内容通过引用而被并入本文。
本技术总体上涉及数据存储管理,并且更具体地涉及用于最小化存储系统和其设备内的固态设备(SSD)中的碎片化的方法。
背景技术
将数据集重复写入到数据存储介质以及将数据集从数据存储介质擦除,使得存储空间被低效地使用并且该现象被称为数据存储介质内的碎片化。数据存储介质内的碎片化现象会降低存储容量,并且增加访问和读取时间。当计算设备没有分配足够的连续存储空间来将完整数据集编码为单个序列,而是将数据集分成在其他数据集之间的间隙中被编码的部分时,碎片化发生。通常,这些数据存储介质间隙的出现是因为删除了较早的数据集,或是将多余空间分配给另一被存储的数据集。数据存储介质被碎片化的程度在很大程度上取决于被存储在该数据存储介质上的数据集的大小和数量。
为了解决碎片化问题,现有技术使用碎片整理(defragmentation)技术,其中被写入到数据存储介质的数据集被重新排列,使得每个数据集的分段被连续地写入。遗憾的是,现有技术中使用的技术未能显著减少碎片化并且是耗时的、存储器密集型操作,这种操作在被执行时会显著降低计算机系统的性能。
附图说明
图1是具有最小化存储系统内的SSD中的碎片化的存储管理计算设备的环境的框图;
图2是图1中所示的示例性存储管理计算设备的框图;以及
图3是用于最小化存储系统内的SSD中的碎片化的方法的示例的示例性流程图。
具体实施方式
在图1中图示了具有多个客户端计算设备12(1)-12(n)、示例性存储管理计算设备14、多个存储设备16(1)-16(n)的环境10。在该特定示例中,图1中的环境10包括经由一个或多个通信网络30而被耦合的多个客户端计算设备12(1)-12(n)、存储管理计算设备14以及多个存储设备16(1)-16(n),尽管该环境可以包括其他类型和数量的系统、设备、组件和/或其他元件。用于最小化存储系统内的SSD中的碎片化的方法的示例由存储管理计算设备14执行,尽管本文图示和描述的方法可以由其他类型和/或数量的其他计算系统和设备执行。环境10可以包括其他类型和数量的其他网络元件和设备,这些网络元件和设备是本领域中通常是已知的并且在本文中将不再图示或描述。本技术提供了许多优点,包括提供用于最小化存储系统内的SSD中的碎片化的方法、非暂时性计算机可读介质和设备。
参见图2,在该示例中,存储管理计算设备14包括通过总线26而被耦合在一起的处理器18、存储器20和通信接口24,尽管存储管理计算设备14可以在其他配置中包括的其他类型和数量的元件。
基于在本文的示例中所图示和描述的分类的输入/输出请求,存储管理计算设备14的处理器18可以执行被存储在存储器20中的一个或多个编程指令以用于动态资源预留,尽管其他类型和数量的功能和/或其他操作也可以被执行。存储管理计算设备14的处理器18可以包括一个或多个中央处理器(“CPU”)或具有一个或多个处理核心的通用处理器,诸如(多个)处理器,尽管(多个)其他类型的处理器(例如,/>)也可以被使用。
存储管理计算设备14的存储器20存储用于本文所描述以及图示的本技术的一个或多个方面的编程指令和其他数据,尽管编程指令中的一些或所有编程指令也可以在别处被存储和执行。各种不同类型的存储器存储设备可以被用于存储器20,这些存储器存储设备诸如系统中的非易失性存储器、随机存取存储器(RAM)或只读存储器(ROM)、或软盘、硬盘、CD ROM、DVD ROM或者由被耦合到处理器18的磁、光或其他读取和写入系统读取和写入的其他计算机可读介质。
存储管理计算设备14的通信接口24与多个客户端计算设备12(1)-12(n)和多个存储设备16(1)-16(n)可操作地耦合并且通信,这些接口和设备通过通信网络30而被全部耦合在一起,尽管其他类型和数量的通信网络或系统具有到其他设备和元件的、其他类型和数量的连接和配置。仅以示例的方式,通信网络30可以使用以太网上的TCP/IP以及工业标准协议,包括NFS、CIFS、SOAP、XML、LDAP和SNMP,尽管其他类型和数量的通信网络可以被使用。该示例中的通信网络30可以采用任何合适的接口机制和网络通信技术,包括例如任何局域网、任何广域网(例如,互联网)、处于任何合适形式的电信业务(例如,语音、调制解调器等)、公共交换电话网(PSTN)、基于以太网的分组数据网络(PDN),以及其任何组合等。在该示例中,总线26是通用串行总线,尽管使用其他的总线类型和链路可以被使用,诸如PCI-Express或超传输总线。
多个客户端计算设备12(1)-12(n)中的每个客户端计算设备包括中央处理器(CPU)或处理器、存储器和I/O系统,它们通过总线或其他链路而被耦合在一起,尽管其他数量和类型的网络设备可以被使用。多个客户端计算设备12(1)-12(n)与用于存储管理的存储管理计算设备14通信,尽管客户端计算设备12(1)-12(n)可以与用于其他目的的存储管理计算设备14交互。以示例的方式,多个客户端计算设备12(1)-12(n)可以运行(多个)应用,这些应用可以提供接口以经由通信网络30以做出在存储管理计算设备14或多个存储设备16(1)-16(n)内访问、修改、删除、编辑、读取或写入数据的请求。
多个存储设备16(1)-16(n)中的每个存储设备包括中央处理器(CPU)或处理器、以及I/O系统,它们通过总线或其他链路而被耦合在一起,尽管其他数量和类型的网络设备可以被使用。多个存储设备16(1)-16(n)中的每个存储设备帮助存储数据,尽管多个存储设备16(1)-16(n)可以帮助诸如存储文件或数据的其他类型的操作。响应于来自存储管理计算设备14和多个客户端计算设备12(1)-12(n)的请求,各种网络处理应用(诸如,CIFS应用、NFS应用、HTTP网络数据存储设备应用、和/或FTP应用)可以在多个存储设备16(1)-16(n)上操作并且传输数据(例如,文件或网页),。应当理解,多个存储设备16(1)-16(n)可以是硬件(诸如硬盘驱动器、固态设备(SSD)或磁带)或者软件,或者可以表示可以包括内部或外部网络的、具有多个外部资源服务器的系统。尽管在该示例中图示的是多个存储设备16(1)-16(n)在存储管理计算设备14的外部,但是在其他示例中多个存储设备16(1)-16(n)可以驻留在存储管理计算设备14内。
尽管示例性网络环境10包括本文所描述和图示的多个客户端计算设备12(1)-12(n)、存储管理计算设备14、以及多个存储设备16(1)-16(n),但是其他类型和数量的系统、设备、组件和/或其他拓扑中的其他元件可以被使用。应当理解,本文描述的示例的系统是针对示例性的目的,因为如本领域普通技术人员将理解的,被用于实现该示例的具体硬件和软件的许多变型是可行的。
另外,在任何示例中,两个或多个计算系统或设备可以替代系统或设备中的任何一个。相应地,分布式处理的原理和优点(诸如冗余和复制)也可以根据需要而被实现,以增加示例的设备和系统的鲁棒性和性能。示例也可以被实现在使用任何合适的接口机制和业务技术而跨任何合适的网络扩展的计算机系统上,仅以示例方式,包括处以任何合适的形式的电信业务(例如,语音和调制解调器)、无线业务媒体、无线业务网络、蜂窝业务网络、G3业务网络、公共交换电话网(PSTN)、分组数据网络(PDN)、互联网、内联网以及其组合。
各示例还可以被体现为其上存储有指令的非暂时性计算机可读介质,指令用于如本文以示例的方式描述和说明的本技术的一个或多个方面,如本文所述的,当指令由处理器执行时使得处理器执行实现如本文的示例描述和图示的本技术的方法所必需的步骤。
现在,本文将参考图1-图3来描述用于最小化存储系统内的SSD中的碎片化的方法示例。示例性方法开始于步骤305,其中存储管理计算设备14接收来自多个客户端计算设备12(1)-12中的一个客户端计算设备的数据操作请求,诸如(以示例的方式)读取请求和写入请求,尽管存储管理计算设备14可以接收来自其他设备的其他类型和/或数量的请求。在该特定示例中,接收的数据操作请求包括对对象的写入请求,尽管存储管理计算设备14可以接收来自其他设备的其他类型和/或数量的数据操作请求。
接下来在步骤310中,存储管理计算设备14将接收的写入数据操作高速缓存到存储管理计算设备14的存储器20内的高速缓存中,尽管存储管理计算设备14可以将该操作高速缓存或以其他方式存储在其他存储器位置处。
接下来在步骤315中,在高速缓存接收的写入数据操作时,存储管理计算设备14可以确定存储器20内的高速缓存何时达到阈值大小。在该特定示例中,存储器20内的高速缓存具有存储的或以其他方式设置的阈值大小,在达到该阈值之后高速缓存不能接收进一步的数据。相应地,当存储管理计算设备14确定高速缓存尚未达到阈值大小时,则采用“否”分支回到步骤305,其中存储管理计算设备14继续接收来自多个客户端计算设备12(1)-12(n)的数据操作请求。
然而,如果回到步骤315中、当存储管理计算设备14确定高速缓存已满时,则采用“是”分支到步骤320。在步骤320中,存储管理计算设备14标识多个存储设备16(1)-16(n)中的是固态驱动器(SSD)的一个存储设备中的分配区域,尽管存储管理计算设备14可以标识其他存储器位置处的分配区域,诸如存储器20中的。在该示例中,分配区域涉及SSD中的存储器空间,其中来自高速缓存的内容可以被转移。另外在该示例中,存储管理计算设备14包括被存储在存储器20中的元数据,该元数据包括SSD内的存储器条中的地址范围,SSD可以阶段存储(stage)存储器20内的高速缓存中冲出的数据。存储管理计算设备14可以使用元数据来标识分配区域,尽管存储管理计算设备14可以使用其他类型和/或数量的信息来标识分配区域。此外,在该示例中,由存储管理计算设备14标识的分配区域的大小至少等于高速缓存中的将要被转移的数据的大小,尽管分配区域的大小可以大于被转移的数据的大小。此外,在该示例中,标识的分配区域的地址范围可以包括空闲空间与先前被存储的数据的组合(由于先前存储了碎片数据)。
接下来在步骤325中,存储管理计算设备14确定或标识高速缓存中的数据量,该数据量可以从标识的分配区域的地址范围的开始到标识的分配区域的地址范围的结尾而被顺序地转移到标识的分配区域。
在步骤330中,在遍历期间,存储管理计算设备14确定何时存在被存储在标识的分配区域的地址范围中的数据,尽管存储管理计算设备14也可以使用其他技术来进行该确定。在该示例中,由存储管理计算设备14标识的分配区域可以包括先前从存储器20内的高速缓存转移的数据,尽管标识的分配区域也可以包括其他类型和/或数量的数据。相应地,当存储管理计算设备14确定数据存在在该地址范围中时,则采用“是”分支到步骤335。
在步骤335中,存储管理计算设备14读取分配区域的地址范围中的先前被存储的数据。在该示例中,存储管理计算设备14被要求读取分配区域的地址范围中的先前被存储的数据,因为在将数据写回SSD之前必须首先读取该数据。
接下来在步骤340中,存储管理计算设备14将来自步骤335的读取数据与被要求转移到分配区域的高速缓存数据组合,尽管存储管理计算设备14可以添加其他类型和/或数量的信息。
接下来在步骤345中,存储管理计算设备14将存储器20内的高速缓存中存在的数据和所读取的、先前被存储的数据写入或转移回SSD内的标识的分配区域中。另外,回到步骤330中,当存储管理计算设备14确定在遍历期间没有找到数据时,则采用“否”分支到该步骤345。当示例性流程进行到步骤345、其中标识的分配区域的地址范围中没有数据时,存储管理计算设备14只将来自存储器20内的高速缓存的数据写入或转移到标识的分配区域。在该示例中,存储管理计算设备14开始从标识的分配区域的地址范围的开始写入或转移数据,并且继续在该地址范围中顺序地写入或转移数据。通过顺序地将数据写入分配区域,该技术能够减少多个存储设备16(1)-16(n)内的SSD中的碎片化,并且示例性方法在步骤350处结束。
相应地,如在本文中以示例方式说明和描述的,该技术提供了许多优点,包括提供用于最小化企业存储系统内的SSD中的碎片化的方法、非暂时性计算机可读介质和设备。通过将数据顺序地写入SSD中的分配区域,该技术能够显著减少SSD中的碎片化,从而增加SSD的存储器利用率。
已经如此描述了本技术的基本概念,本领域技术人员可明显看出,前述详细公开内容旨在仅以示例的方式呈现而非限制性的。尽管本文中没有明确说明,但是本领域技术人员会预期将发生各种变化、改进和修改。这些变化、改进和修改旨在由此暗示,并且在本技术的精神和范围内。另外,处理元件或序列的阐述顺序,或者数字、字母或其他名称的使用,并不旨在将要求保护的过程限制为任何顺序,除非可以在权利要求中指定。因此,本发明仅受权利要求及其等同物的限制。

Claims (18)

1.一种用于减少固态设备SSD中的碎片化的方法,所述方法包括:
在确定高速缓存存储器已满时,由计算设备从多个非易失性存储设备的一个存储设备中的地址范围内的、标识的分配区域中读取先前被存储的数据,其中所述先前被存储的数据从所述高速缓存存储器被先前转移,并且所述分配区域的大小至少等于所述高速缓存存储器的另一大小;以及
由所述计算设备将来自所述高速缓存存储器的所高速缓存的数据以及读取的所述先前被存储的数据从所述地址范围的开始起始顺序地写入到标识的所述分配区域中。
2.根据权利要求1所述的方法,还包括:当所述先前被存储的数据被确定为在标识的所述分配区域中不存在时,由所述计算设备只将来自所述高速缓存存储器的写入数据顺序地通过所述地址范围写入到标识的所述分配区域。
3.根据权利要求1或2所述的方法,还包括:由所述计算设备接收来自客户端计算设备的写入数据操作。
4.根据权利要求3所述的方法,还包括:
由所述计算设备将接收的所述写入数据操作高速缓存在所述高速缓存存储器中。
5.根据权利要求3所述的方法,还包括:由所述计算设备确定所述高速缓存存储器何时已达到高速缓存存储器大小的阈值。
6.根据权利要求5所述的方法,还包括:当所述高速缓存存储器被确定为已达到所述高速缓存存储器大小的阈值时,由所述计算设备标识所述分配区域以从所述高速缓存存储器转移其他数据。
7.一种非暂时性计算机可读介质,其上存储有指令,所述指令用于减少固态设备SSD中的碎片化,所述指令包括可执行代码,所述可执行代码在由处理器执行时,使得所述处理器:
在确定高速缓存存储器已满时,由计算设备从多个非易失性存储设备的一个存储设备中的地址范围内的、标识的分配区域中读取先前被存储的数据,其中所述先前被存储的数据从所述高速缓存存储器被先前转移,并且所述分配区域的大小至少等于所述高速缓存存储器的另一大小;以及
将来自所述高速缓存存储器的所高速缓存的数据以及读取的所述先前被存储的数据从所述地址范围的开始起始顺序地写入到标识的所述分配区域中。
8.根据权利要求7所述的非暂时性计算机可读介质,其中所述可执行代码在由处理器执行时,还使得所述处理器:当所述先前被存储的数据被确定为在标识的所述分配区域中不存在时,只将来自所述高速缓存存储器的写入数据顺序地通过所述地址范围写入到标识的所述分配区域。
9.根据权利要求7所述的非暂时性计算机可读介质,其中所述可执行代码在由处理器执行时,还使得所述处理器:接收来自客户端计算设备的写入数据操作。
10.根据权利要求9所述的非暂时性计算机可读介质,其中所述可执行代码在由处理器执行时,还使得所述处理器:将接收的所述写入数据操作高速缓存在所述高速缓存存储器中。
11.根据权利要求9所述的非暂时性计算机可读介质,其中所述可执行代码在由处理器执行时,还使得所述处理器:确定所述高速缓存存储器何时已达到高速缓存存储器大小的阈值。
12.根据权利要求11所述的非暂时性计算机可读介质,其中所述可执行代码在由处理器执行时,还使得所述处理器:当所述高速缓存存储器被确定为已达到所述高速缓存存储器大小的阈值时,标识所述分配区域以从所述高速缓存存储器转移其他数据。
13.一种存储管理计算设备,包括:
处理器;
非易失性存储器,所述非易失性存储器被耦合到所述处理器并且包括被存储在所述非易失性存储器中的编程指令,其中所述处理器被配置为执行所存储的所述编程指令以:
在确定高速缓存存储器已满时,由计算设备从多个非易失性存储设备的一个存储设备中的地址范围内的、标识的分配区域中读取先前被存储的数据,其中所述先前被存储的数据从所述高速缓存存储器被先前转移,并且所述分配区域的大小至少等于所述高速缓存存储器的另一大小;以及
将来自所述高速缓存存储器的所高速缓存的数据以及读取的所述先前被存储的数据从所述地址范围的开始起始顺序地写入到标识的所述分配区域中。
14.根据权利要求13所述的存储管理计算设备,其中所述处理器还被配置为执行所存储的所述编程指令以在所述先前被存储的数据被确定为在标识的所述分配区域中不存在时,只将来自所述高速缓存存储器的写入数据顺序地通过所述地址范围写入到标识的所述分配区域。
15.根据权利要求13所述的存储管理计算设备,其中所述处理器还被配置为执行所存储的所述编程指令以从客户端计算设备接收写入数据操作。
16.根据权利要求15所述的存储管理计算设备,其中所述处理器还被配置为执行所存储的所述编程指令以将接收的所述写入数据操作高速缓存在所述高速缓存存储器中。
17.根据权利要求15所述的存储管理计算设备,其中所述处理器还被配置为执行所存储的所述编程指令以确定所述高速缓存存储器何时已达到高速缓存存储器大小的阈值。
18.根据权利要求17所述的存储管理计算设备,其中所述处理器还被配置为执行所存储的所述编程指令以在所述高速缓存被确定为已达到所述高速缓存存储器大小的阈值时,标识所述分配区域以从所述高速缓存存储器转移其他数据。
CN201780040295.7A 2016-06-28 2017-06-09 用于最小化存储系统和其设备内的ssd中的碎片化的方法 Active CN109416663B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/195,093 2016-06-28
US15/195,093 US10430081B2 (en) 2016-06-28 2016-06-28 Methods for minimizing fragmentation in SSD within a storage system and devices thereof
PCT/US2017/036680 WO2018005041A1 (en) 2016-06-28 2017-06-09 Methods for minimizing fragmentation in ssd within a storage system and devices thereof

Publications (2)

Publication Number Publication Date
CN109416663A CN109416663A (zh) 2019-03-01
CN109416663B true CN109416663B (zh) 2023-07-21

Family

ID=59091609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780040295.7A Active CN109416663B (zh) 2016-06-28 2017-06-09 用于最小化存储系统和其设备内的ssd中的碎片化的方法

Country Status (4)

Country Link
US (3) US10430081B2 (zh)
CN (1) CN109416663B (zh)
DE (1) DE112017003232T5 (zh)
WO (1) WO2018005041A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111045732B (zh) * 2019-12-05 2023-06-09 腾讯科技(深圳)有限公司 数据处理方法、芯片、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN102648457A (zh) * 2009-12-07 2012-08-22 微软公司 使用混合存储来延伸ssd生存期
CN102968380A (zh) * 2012-11-02 2013-03-13 深圳市同洲电子股份有限公司 内存文件系统中内存分区的管理方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108590B2 (en) * 2000-01-06 2012-01-31 Super Talent Electronics, Inc. Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
US6418510B1 (en) * 2000-09-14 2002-07-09 International Business Machines Corporation Cooperative cache and rotational positioning optimization (RPO) scheme for a direct access storage device (DASD)
JP4418439B2 (ja) * 2006-03-07 2010-02-17 パナソニック株式会社 不揮発性記憶装置およびそのデータ書込み方法
KR101469512B1 (ko) * 2007-01-10 2014-12-05 모바일 세미컨덕터 코오포레이션 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템
JP5999645B2 (ja) * 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
KR101638061B1 (ko) * 2009-10-27 2016-07-08 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법
US20110320733A1 (en) 2010-06-04 2011-12-29 Steven Ted Sanford Cache management and acceleration of storage media
US20130019057A1 (en) * 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
KR101824295B1 (ko) * 2011-08-12 2018-01-31 샌디스크 테크놀로지스 엘엘씨 솔리드 스테이트 장치 가상화를 포함하는 캐시 관리
CN103827970B (zh) 2012-09-25 2016-05-18 株式会社东芝 对固态驱动器再配置数据的存储装置、存储控制器以及方法
US20140173178A1 (en) * 2012-12-19 2014-06-19 Apple Inc. Joint Logical and Physical Address Remapping in Non-volatile Memory
US9535628B2 (en) 2013-10-10 2017-01-03 Apple Inc. Memory system with shared file system
US10203876B2 (en) * 2013-11-22 2019-02-12 Nec Corporation Storage medium apparatus, method, and program for storing non-contiguous regions
US10649691B2 (en) * 2014-03-27 2020-05-12 Hitachi, Ltd. Storage system
US9483402B2 (en) * 2014-09-24 2016-11-01 Netapp, Inc. Methods and systems for dynamically controlled caching
US10235044B2 (en) * 2015-07-27 2019-03-19 Datrium, Inc. System and methods for storage data deduplication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN102648457A (zh) * 2009-12-07 2012-08-22 微软公司 使用混合存储来延伸ssd生存期
CN102968380A (zh) * 2012-11-02 2013-03-13 深圳市同洲电子股份有限公司 内存文件系统中内存分区的管理方法和装置

Also Published As

Publication number Publication date
WO2018005041A1 (en) 2018-01-04
US20220083232A1 (en) 2022-03-17
CN109416663A (zh) 2019-03-01
DE112017003232T5 (de) 2019-03-28
US10430081B2 (en) 2019-10-01
US20200019321A1 (en) 2020-01-16
US11592986B2 (en) 2023-02-28
US11132129B2 (en) 2021-09-28
US20170371556A1 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
CN110109915B (zh) 用于管理哈希表的方法、设备和计算机程序产品
CN107526743B (zh) 用于压缩文件系统元数据的方法和设备
US11003625B2 (en) Method and apparatus for operating on file
US7596659B2 (en) Method and system for balanced striping of objects
US8645335B2 (en) Partial recall of deduplicated files
TWI476676B (zh) 用於使用不同叢集尺寸的儲存裝置之檔案系統
US11397668B2 (en) Data read/write method and apparatus, and storage server
US9936017B2 (en) Method for logical mirroring in a memory-based file system
US20110219048A1 (en) Multiple File System and/or Multi-Host Single Instance Store Techniques
US11314689B2 (en) Method, apparatus, and computer program product for indexing a file
US9307024B2 (en) Efficient storage of small random changes to data on disk
CN111124270B (zh) 缓存管理的方法、设备和计算机程序产品
US8473693B1 (en) Managing ownership of memory buffers (mbufs)
US11226778B2 (en) Method, apparatus and computer program product for managing metadata migration
US11592986B2 (en) Methods for minimizing fragmentation in SSD within a storage system and devices thereof
US9984112B1 (en) Dynamically adjustable transaction log
CN110780806B (zh) 促进元数据和数据捆绑存储的原子性保证的方法和系统
US20220350779A1 (en) File system cloning method and apparatus
JP5494817B2 (ja) ストレージシステム、データ管理装置、方法及びプログラム
US20180246666A1 (en) Methods for performing data deduplication on data blocks at granularity level and devices thereof
US10970221B2 (en) Optimizing space utilization by retaining metadata in cache
US10063256B1 (en) Writing copies of objects in enterprise object storage systems
US10684786B2 (en) Methods for performing global deduplication on data blocks and devices thereof
US10019318B1 (en) Storage optimization of pre-allocated units of storage
US11704280B2 (en) Methods for replicating data and enabling instantaneous access to data and devices thereof

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