用于最小化存储系统和其设备内的SSD中的碎片化的方法技术方案

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

A method for minimizing fragmentation in SSDs in storage systems and devices

A method to help reduce memory fragmentation in solid-state devices, non-temporary computer-readable media and devices, including identifying allocated areas within address ranges to write data from caches. Next, determine whether the identified allocation area includes previously stored data. When it is determined that the identified allocation area includes previously stored data, previously stored data is read from the identified allocation area. Next, the write data from the cache and the read data previously stored are written back to the identification allocation area sequentially through the address range.

【技术实现步骤摘要】
【国外来华专利技术】用于最小化存储系统和其设备内的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)、或软盘、硬盘、CDROM、DVDROM或者由被耦合到处理器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),但是其他类型和数量的系统、设备、组件和/或其他拓扑中的其他元件可以被使用。应当理解,本文描述的示例的系统是针对示例性的目的,因为如本领域普通技术人员将理解的,被用于实现该示例的具体硬件和软件的许多变型是可行的。另外,在任何示例中,两个或多个计算系统或设备可以替代系统或设备中的任何一个。相应地,分布式处理的原理和优点(诸如冗余和复制)也可以根据需要而被实现,以增加示例的设备和系统的鲁棒性和性能。示例也可以被实现在使用任何合适的接口机制和业务本文档来自技高网...

【技术保护点】
1.一种用于减少固态设备(SSD)中的碎片化的方法,所述方法包括:由存储管理计算设备标识地址范围内的分配区域,以从高速缓存写入数据;由所述存储管理计算设备确定何时在标识的所述分配区域中存在先前被存储的数据;当所述确定指示标识的所述分配区域包括先前被存储的数据时,由所述存储管理计算设备读取标识的所述分配区域中的所述先前被存储的数据;以及由所述存储管理计算设备将来自所述高速缓存的所述写入数据以及读取的所述先前被存储的数据两者顺序地通过所述地址范围写回到标识的所述分配区域中。

【技术特征摘要】
【国外来华专利技术】2016.06.28 US 15/195,0931.一种用于减少固态设备(SSD)中的碎片化的方法,所述方法包括:由存储管理计算设备标识地址范围内的分配区域,以从高速缓存写入数据;由所述存储管理计算设备确定何时在标识的所述分配区域中存在先前被存储的数据;当所述确定指示标识的所述分配区域包括先前被存储的数据时,由所述存储管理计算设备读取标识的所述分配区域中的所述先前被存储的数据;以及由所述存储管理计算设备将来自所述高速缓存的所述写入数据以及读取的所述先前被存储的数据两者顺序地通过所述地址范围写回到标识的所述分配区域中。2.根据权利要求1所述的方法,还包括:当所述先前被存储的数据未被确定为在标识的所述分配区域中存在时,由所述存储管理计算设备只将来自所述高速缓存的写入数据顺序地通过所述地址范围写入到标识的所述分配区域。3.根据权利要求1或2所述的方法,还包括:由所述存储管理计算设备接收来自客户端计算设备的写入数据操作。4.根据权利要求3所述的方法,还包括:由所述存储管理计算设备将接收的所述写入数据操作高速缓存在所述高速缓存中;以及由所述存储管理计算设备确定所述高速缓存何时已达到阈值存储器大小。5.根据权利要求4所述的方法,还包括:当所述高速缓存被确定为已达到所述阈值存储器大小时,由所述存储管理计算设备标识所述分配区域以从所述高速缓存转移数据。6.一种其上存储有指令的非暂时性计算机可读介质,所述指令用于减少固态设备(SSD)中的碎片化,所述指令包括可执行代码,所述可执行代码在由处理器执行时,使得所述处理器执行步骤,所述步骤包括:标识地址范围内的分配区域以从高速缓存写入数据;确定何时在标识的所述分配区域中存在先前被存储的数据;当所述确定指示标识的所述分配区域包括先前被存储的数据时,读取标识的所述分配区域中所述先前被存储的数据;以及将来自所述高速缓存的所述写入数据以及读取的所述先前被存储的数据两者顺序地通过所述地址范围写回到标识的所述分配区域中。7.根据权利要求6所述的介质,还包括:当所述先前被存储的数据未被确定为在标识的所述分配区域中存在时,只将来自所述高速缓存的写入数据顺序地通过所述地址范围写入到标识的所述分配区域。8.根据权利要求6或7所...

【专利技术属性】
技术研发人员:R·德罗纳拉朱S·古普塔K·斯特林A·戈伊尔
申请(专利权)人:NETAPP股份有限公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1