用于精简供应存储的高效分配和回收的方法和系统技术方案

技术编号:10237239 阅读:174 留言:0更新日期:2014-07-18 23:24
本发明专利技术涉及一种用于精简供应存储的高效分配和回收的方法和系统。本发明专利技术的实施例涉及数据存储系统中的数据存储块的粒度管理。在一个方面,采用状态值以跟踪“已使用”、“空闲”和“自由索取”存储块。将具有已存储数据的存储块标识为已使用,将可用于存储数据的存储块标识为空闲,以及将已删除先前存储的数据并尚未被回收的存储块标识为自由索取。在映射上维护这些值以跟踪所述数据存储系统中的每个数据块。确定可用自由索取数据块的优先顺序,以便在可用空闲数据块上进行数据块分配以实现高效存储,包括实现高效数据块回收并最小化面向回收的碎片整理所需的数据移动。

【技术实现步骤摘要】
用于精简供应存储的高效分配和回收的方法和系统
本专利技术涉及精简供应存储(thin-provisionedstorage)的数据存储块的高效管理,这种管理使用虚拟化技术以使存储空间看似多于实际可用空间。更具体地说,采用状态值促进数据存储块的粒度管理,包括数据存储块的分配和回收,以便在使用精简供应存储时实现更高的效率。
技术介绍
在数据管理中,数据存储块是存储设备上作为单位操纵的一组存储字节。存储块的大小通常为512字节,然而大小可以变化。通常作为逻辑盘(或卷)分配存储。每个逻辑盘具有大小。通过包含的逻辑盘中的逻辑块地址(LBA)访问逻辑盘中的块。传统的存储设备为其所有块的逻辑盘预分配物理空间。这可能是浪费的,因为使用该逻辑盘的应用实际上可能未将数据写入到该逻辑盘中的许多块或者甚至多数块,或者在很长一段时间之后才写入数据。为了解决这种效率低下,精简供应存储设备仅当数据写入到其对应的逻辑块地址时才分配存储块。这种分配通常以更大单位(例如大于数据块,称为分区)进行,然而不同存储产品可以使用其它术语,其大小可以从数以百计的千字节到千兆字节的存储空间。当写入分区中的任何块时,分配分区的所有块的物理空间。为存储控制器上的分区分配物理空间之后,被分配空间保持分配状态直到数据存储系统向存储控制器通知可以回收该分区中的所有块。最新的数据存储系统并不标识已经具有已索取空间的空闲块。就存储控制器而言,不能将包含已索取空间的空闲数据块与未包含已索取空间的空闲数据块进行区分。具有已索取空间的空闲块可以保持未使用,而没有已索取空间的其它空闲数据块变为已使用,从而导致分配额外的物理存储
技术实现思路
本专利技术包括一种用于存储块分配的粒度管理的方法、系统和计算机程序产品。在一个方面,维护映射以便跟踪数据存储系统中的数据块的状态值。每个块均在所述映射中具有状态值。所述状态值标识所述数据块的分配状态。所述状态值是“已使用”、“空闲”或“自由索取(claimedfree)”。“已使用”块值标识具有已存储数据的数据块。“空闲”块值标识可用于存储数据的数据块,其在存储设备上没有已索取空间。“自由索取”块值标识先前用于存储数据的数据块,其在存储设备上具有已索取空间,但可被重用以存储新的数据,因为先前写入的数据后来已被删除。使用具有状态值自由索取或空闲的块来满足需要一个或多个数据存储块的写入事务。更具体地说,搜索块分配映射以便获得具有状态值自由索取或空闲的块,并且根据所述状态确定块分配的优先顺序。如果具有自由索取状态值的块可用,则使用该块满足所述事务,否则使用具有空闲状态值的数据块满足所述事务。从下面结合附图的对本专利技术的目前优选实施例的详细描述,本专利技术的其它特性和优点将变得显而易见。附图说明在此参考的附图形成本说明书的一部分。附图中示出的特性旨在仅说明本专利技术的某些实施例而不是本专利技术的所有实施例,除非另外明确指示。不以其它方式进行相反的暗示,这些附图是:图1是示出用于分配数据块的方法的流程图;图2是示出用于取消分配数据块的方法的流程图;图3是示出用于存储回收的方法的流程图;图4是示出用于分区感知(partitionaware)数据块分配的方法的流程图;图5是示出用于优化分区感知数据块分配的方法的流程图;图6是示出用于分区感知存储回收的方法的流程图;图7是示出用于优化分区感知存储碎片整理(defragmentation)的方法的流程图;图8是示出嵌入计算机系统中以支持存储的高效分配和回收的工具的框图;以及图9是示出用于实现本专利技术的一个实施例的系统的框图。具体实施方式将很容易地理解,通常在此处附图中描述和示出的本专利技术的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的装置、系统和方法的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。将本说明书中描述的功能单元标记为管理器。管理器可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备之类的可编程硬件设备中实现。管理器还可以在软件中实现,以便由各种类型的处理器处理。例如,标识的具有可执行代码的管理器可以包括一个或多个物理或逻辑的计算机指令块,所述块可以例如组织为对象、过程、函数或其它结构。然而,标识的管理器的可执行代码不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当所述指令被逻辑地结合时,将包括所述管理器并实现所述管理器所声称的目的。实际上,具有可执行代码的管理器可以是单个指令或多个指令,并且甚至可以分布在数个不同的代码段上、多个不同的应用中,以及跨数个存储设备。同样,操作数据可以在管理器中被标识和在此示出,并且可以包括在任何适当的形式中并组织在任何适当类型的数据结构中。操作数据可以被收集为单个数据集,或可以分布在包括不同存储设备的不同位置上,并且可以至少部分地作为电子信号存在于系统或网络中。本说明书中对“一个选择实施例”、“一个实施例”或“一实施例”的引用指结合该实施例描述的特定特性、结构或特征被包括在本专利技术的至少一个实施例中。因此,本说明书的各种位置中出现的短语“一个选择实施例”、“在一个实施例中”或“在一实施例中”并非一定都指同一实施例。此外,所述特性、结构或特性可以以任何适当的方式组合在一个或多个实施例中。在以下描述中,提供了大量特定的细节,例如拓扑管理器、钩子管理器、存储拓扑管理器、资源利用管理器、应用管理器、导向器等的实例,以便彻底理解本专利技术的实施例。但是,相关
的技术人员将认识到,可以在没有一个或多个特定的细节的情况下实现本专利技术,或者可以通过其它方法、组件、材料等实现本专利技术。在其它情况下,未详细示出或描述公知的结构、材料或操作以避免使本专利技术的各方面变得模糊不清。通过参考附图,将最佳地理解示出的本专利技术实施例,其中在整个说明书中相似部件由相似标号指定。以下描述仅是实例,并且仅示出与在此要求保护的本专利技术一致的设备、系统和过程的某些选定实施例。在以下实施例描述中,对附图进行参考,这些附图形成实施例的一部分,并且通过示例的方式示出其中可以实现本专利技术的特定实施例。应该理解,可以使用其它实施例,因为可以进行结构更改而不偏离本专利技术的范围。应该理解,数据块是形成可标识的数据单位的一组连续位或字节。每个数据块具有状态值,可以根据数据块的特征更改该状态值。状态值包括:已使用、空闲和自由索取。为当前正在使用并且在存储控制器上具有已索取空间的数据块分配已使用状态值。为当前未使用并且在存储控制器上没有已索取空间的数据块(也称为空闲数据块)分配空闲状态值。为当前未使用但在存储控制器上具有已索取空间的数据块分配自由索取状态值。空闲状态值和自由索取状态值均指可用于接收数据以便存储的数据块。使用自由索取块的优点是它不需要在存储控制器上分配其它物理空间。如果标记数据块的分配状态不同于先前标记该数据块的分配状态,则数据块呈现新标记的分配状态。因此,状态值表征数据块及其可用性以便支持写入事务。应该理解,数据分区是存储控制器的分配单位。数据分区包括一个或多个数据块。数据分区中的每个数据块具有上面描述的状态值。图1是示出用于将数据分配给可用数据块的方法的流程图(100)。响应于需要将数据存储在数据存储装置中的事务,请求数据块分本文档来自技高网
...
用于精简供应存储的高效分配和回收的方法和系统

【技术保护点】
一种方法,包括:维护映射以便跟踪数据存储系统中的数据块的状态,每个块均在所述映射中具有状态值,所述状态值选自包括以下项的组:已使用、空闲以及自由索取,其中已使用块是具有已存储数据和已索取空间的数据块,空闲块是没有已索取空间的未使用块,以及自由索取块是具有已索取空间的未使用块;响应需要一个或多个块的写入事务,包括:搜索所述映射以便获得一个或多个块以满足所述事务,所述一个或多个块选自包括以下项的组:自由索取、空闲以及它们的组合;以及从所搜索的映射中选择一个或多个块,包括确定选择所述块的优先顺序,其中使用一个或多个自由索取块满足主要选择,以及使用一个或多个空闲块满足次要选择;以及在选择所述一个或多个块之后,将所选择的块的所述状态值更改为已使用。

【技术特征摘要】
2013.01.15 US 13/741,8541.一种用于数据块的分配和回收的方法,包括:维护映射以便跟踪数据存储系统中的数据块的状态,每个块均在所述映射中具有状态值,所述状态值选自包括以下项的组:已使用、空闲以及自由索取,其中已使用块是具有已存储数据和已索取空间的数据块,空闲块是没有已索取空间的未使用块,以及自由索取块是具有已索取空间的未使用块;响应需要一个或多个块的写入事务,包括:搜索所述映射以便获得一个或多个块以满足所述事务,所述一个或多个块选自包括以下项的组:自由索取块、空闲块以及它们的组合;以及从所搜索的映射中选择一个或多个块,包括确定选择所述块的优先顺序,其中,自由索取块优先于空闲块而被选择;以及在选择所述一个或多个块之后,将所选择的块的所述状态值更改为已使用。2.根据权利要求1的方法,还包括回收自由索取块,其中,所述回收自由索取块包括:标识所述自由索取块,回收所标识的块,以及将所标识的块的所述状态值更改为空闲。3.根据权利要求1的方法,还包括响应于数据分区中的块的状态从空闲更改为已使用,将所述分区中的所有其它空闲块的状态更改为自由索取。4.根据权利要求1的方法,还包括在检测到数据分区中的所有块均具有自由索取的状态值之后,回收所述分区,回收所述分区包括:回收所述分区中的所有块,并将所述分区中的所有自由索取块的所述值更改为空闲。5.根据权利要求1的方法,还包括创建数据分区的索引以便针对所述索引中表示的每个数据分区跟踪空闲块数量,并且确定从具有最少数量的自由索取块的分区之一选择块的优先顺序。6.根据权利要求1的方法,还包括对数据分区进行碎片整理,包括在具有至少一个自由索取块和至少一个已使用块两者的两个或更多分区之间移动块,其中所述碎片整理最小化具有至少一个自由索取块和至少一个已使用块两者的分区的总数。7.一种用于数据块的分配和回收的装置,包括适合于执行权利要求1-6中的任一权利要求所述的用于数据块的分配和回收的方法的模块。8.一种用于数据块的分配和回收的系统,包括:处理单元...

【专利技术属性】
技术研发人员:L·S·栾F·B·施穆克
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1