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

文档序号:6535245阅读:305来源:国知局
用于精简供应存储的高效分配和回收的方法和系统的制作方法
【专利摘要】本发明涉及一种用于精简供应存储的高效分配和回收的方法和系统。本发明的实施例涉及数据存储系统中的数据存储块的粒度管理。在一个方面,采用状态值以跟踪“已使用”、“空闲”和“自由索取”存储块。将具有已存储数据的存储块标识为已使用,将可用于存储数据的存储块标识为空闲,以及将已删除先前存储的数据并尚未被回收的存储块标识为自由索取。在映射上维护这些值以跟踪所述数据存储系统中的每个数据块。确定可用自由索取数据块的优先顺序,以便在可用空闲数据块上进行数据块分配以实现高效存储,包括实现高效数据块回收并最小化面向回收的碎片整理所需的数据移动。
【专利说明】用于精简供应存储的高效分配和回收的方法和系统
【技术领域】
[0001]本发明涉及精简供应存储(thin-provisioned storage)的数据存储块的高效管理,这种管理使用虚拟化技术以使存储空间看似多于实际可用空间。更具体地说,采用状态值促进数据存储块的粒度管理,包括数据存储块的分配和回收,以便在使用精简供应存储时实现更高的效率。
【背景技术】
[0002]在数据管理中,数据存储块是存储设备上作为单位操纵的一组存储字节。存储块的大小通常为512字节,然而大小可以变化。通常作为逻辑盘(或卷)分配存储。每个逻辑盘具有大小。通过包含的逻辑盘中的逻辑块地址(LBA)访问逻辑盘中的块。传统的存储设备为其所有块的逻辑盘预分配物理空间。这可能是浪费的,因为使用该逻辑盘的应用实际上可能未将数据写入到该逻辑盘中的许多块或者甚至多数块,或者在很长一段时间之后才写入数据。为了解决这种效率低下,精简供应存储设备仅当数据写入到其对应的逻辑块地址时才分配存储块。这种分配通常以更大单位(例如大于数据块,称为分区)进行,然而不同存储产品可以使用其它术语,其大小可以从数以百计的千字节到千兆字节的存储空间。当写入分区中的任何块时,分配分区的所有块的物理空间。
[0003]为存储控制器上的分区分配物理空间之后,被分配空间保持分配状态直到数据存储系统向存储控制器通知可以回收该分区中的所有块。最新的数据存储系统并不标识已经具有已索取空间的空闲块。就存储控制器而言,不能将包含已索取空间的空闲数据块与未包含已索取空间的空闲数据块进行区分。具有已索取空间的空闲块可以保持未使用,而没有已索取空间的其它空闲数据块变为已使用,从而导致分配额外的物理存储。

【发明内容】

[0004]本发明包括一种用于存储块分配的粒度管理的方法、系统和计算机程序产品。
[0005]在一个方面,维护映射以便跟踪数据存储系统中的数据块的状态值。每个块均在所述映射中具有状态值。所述状态值标识所述数据块的分配状态。所述状态值是“已使用”、“空闲”或“自由索取(claimed free)”。“已使用”块值标识具有已存储数据的数据块。“空闲”块值标识可用于存储数据的数据块,其在存储设备上没有已索取空间。“自由索取”块值标识先前用于存储数据的数据块,其在存储设备上具有已索取空间,但可被重用以存储新的数据,因为先前写入的数据后来已被删除。使用具有状态值自由索取或空闲的块来满足需要一个或多个数据存储块的写入事务。更具体地说,搜索块分配映射以便获得具有状态值自由索取或空闲的块,并且根据所述状态确定块分配的优先顺序。如果具有自由索取状态值的块可用,则使用该块满足所述事务,否则使用具有空闲状态值的数据块满足所述事务。
[0006]从下面结合附图的对本发明的目前优选实施例的详细描述,本发明的其它特性和优点将变得显而易见。【专利附图】

【附图说明】
[0007]在此参考的附图形成本说明书的一部分。附图中示出的特性旨在仅说明本发明的某些实施例而不是本发明的所有实施例,除非另外明确指示。不以其它方式进行相反的暗示,这些附图是:
[0008]图1是示出用于分配数据块的方法的流程图;
[0009]图2是示出用于取消分配数据块的方法的流程图;
[0010]图3是示出用于存储回收的方法的流程图;
[0011]图4是示出用于分区感知(partition aware)数据块分配的方法的流程图;
[0012]图5是示出用于优化分区感知数据块分配的方法的流程图;
[0013]图6是示出用于分区感知存储回收的方法的流程图;
[0014]图7是示出用于优化分区感知存储碎片整理(defragmentation)的方法的流程图;
[0015]图8是示出嵌入计算机系统中以支持存储的高效分配和回收的工具的框图;以及
[0016]图9是示出用于实现本发明的一个实施例的系统的框图。
【具体实施方式】
[0017]将很容易地理解,通常在此处附图中描述和示出的本发明的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的装置、系统和方法的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。
[0018]将本说明书中描述的功能单元标记为管理器。管理器可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备之类的可编程硬件设备中实现。管理器还可以在软件中实现,以便由各种类型的处理器处理。例如,标识的具有可执行代码的管理器可以包括一个或多个物理或逻辑的计算机指令块,所述块可以例如组织为对象、过程、函数或其它结构。然而,标识的管理器的可执行代码不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当所述指令被逻辑地结合时,将包括所述管理器并实现所述管理器所声称的目的。
[0019]实际上,具有可执行代码的管理器可以是单个指令或多个指令,并且甚至可以分布在数个不同的代码段上、多个不同的应用中,以及跨数个存储设备。同样,操作数据可以在管理器中被标识和在此示出,并且可以包括在任何适当的形式中并组织在任何适当类型的数据结构中。操作数据可以被收集为单个数据集,或可以分布在包括不同存储设备的不同位置上,并且可以至少部分地作为电子信号存在于系统或网络中。
[0020]本说明书中对“ 一个选择实施例”、“ 一个实施例”或“一实施例”的引用指结合该实施例描述的特定特性、结构或特征被包括在本发明的至少一个实施例中。因此,本说明书的各种位置中出现的短语“一个选择实施例”、“在一个实施例中”或“在一实施例中”并非一定都指同一实施例。
[0021 ] 此外,所述特性、结构或特性可以以任何适当的方式组合在一个或多个实施例中。在以下描述中,提供了大量特定的细节,例如拓扑管理器、钩子管理器、存储拓扑管理器、资源利用管理器、应用管理器、导向器等的实例,以便彻底理解本发明的实施例。但是,相关【技术领域】的技术人员将认识到,可以在没有一个或多个特定的细节的情况下实现本发明,或者可以通过其它方法、组件、材料等实现本发明。在其它情况下,未详细示出或描述公知的结构、材料或操作以避免使本发明的各方面变得模糊不清。
[0022]通过参考附图,将最佳地理解示出的本发明实施例,其中在整个说明书中相似部件由相似标号指定。以下描述仅是实例,并且仅示出与在此要求保护的本发明一致的设备、系统和过程的某些选定实施例。
[0023]在以下实施例描述中,对附图进行参考,这些附图形成实施例的一部分,并且通过示例的方式示出其中可以实现本发明的特定实施例。应该理解,可以使用其它实施例,因为可以进行结构更改而不偏离本发明的范围。
[0024]应该理解,数据块是形成可标识的数据单位的一组连续位或字节。每个数据块具有状态值,可以根据数据块的特征更改该状态值。状态值包括:已使用、空闲和自由索取。为当前正在使用并且在存储控制器上具有已索取空间的数据块分配已使用状态值。为当前未使用并且在存储控制器上没有已索取空间的数据块(也称为空闲数据块)分配空闲状态值。为当前未使用但在存储控制器上具有已索取空间的数据块分配自由索取状态值。空闲状态值和自由索取状态值均指可用于接收数据以便存储的数据块。使用自由索取块的优点是它不需要在存储控制器上分配其它物理空间。如果标记数据块的分配状态不同于先前标记该数据块的分配状态,则数据块呈现新标记的分配状态。因此,状态值表征数据块及其可用性以便支持写入事务。
[0025]应该理解,数据分区是存储控制器的分配单位。数据分区包括一个或多个数据块。数据分区中的每个数据块具有上面描述的状态值。
[0026]图1是示出用于将数据分配给可用数据块的方法的流程图(100)。响应于需要将数据存储在数据存储装置中的事务,请求数据块分配(102 )。在一个实施例中,对数据块分配的请求是响应于写入事务。为了满足数据块分配请求,首先进行搜索以便获得自由索取块以满足事务(104)。在一个实施例中,搜索一个或多个自由索取块包括至少需要尽量多的可用存储空间以便满足事务,在此也称为数据块分配请求。在步骤(104)的搜索之后,确定自由索取块是否可用于满足事务(106)。对步骤(106)的判定的肯定响应之后,分配自由索取数据块以便满足事务(108)。分配自由索取块时,自由索取块不再可用于其它存储,并且存储块的状态值从“自由索取”更改为“已使用”(110)。对步骤(106)的判定的否定响应之后,分配空闲块以便满足事务(112)。分配空闲块时,空闲块不再可用于其它存储。空闲块的状态值从“空闲”更改为“已使用”(114)。因此,针对块分配请求,自由索取数据块的优先级高于空闲数据块以实现更高效的存储。
[0027]数据块的状态值不仅随着图1中示出的块分配而更改,而且还随着块取消分配而更改。图2是示出用于块取消分配的方法的流程图(200),其中块的状态从“已使用”更改为“自由索取”。为了处理取消分配(202),将要进行取消分配的块标记为“自由索取”(204)。因此,块取消分配的过程涉及更改块(多个)的状态。
[0028]通过存储回收过程,可以回收存储控制器分配给自由索取块的物理存储空间。图3是示出用于回收指定为自由索取块的数据块的方法的流程图(300)。该存储回收过程可以以多种不同的方式执行,包括但不限于定期阈值驱动或命令驱动。在一个实施例中,当累积某一数量的自由索取空间时,或者当存储控制器剩余设置数量的空闲空间时,可以触发阈值驱动的回收。启动搜索以便获得数据存储装置中的自由索取块(302),并且判定是否存在自由索取块(304)。否定响应之后,终止搜索或重复的搜索。但是,肯定响应之后,将自由索取块(多个)更改为空闲块(多个),并且通知存储控制器回收这些块(多个)使用的物理空间(360)。在一个实施例中,在步骤(306)的状态更改可以包括多个自由索取块。因此,存储回收将自由索取块(多个)的状态值更改为空闲。
[0029]数据块是数据存储单元中的存储粒度单位。在存储控制器上,可以将数据块分组成较大的存储分配单位,称为数据分区。数据存储块状态值的方面可以扩展到数据分区。图4是示出用于响应于将数据块存储组织成数据分区而分配数据块的方法的流程图(400)。响应于数据块分配请求(402),进行搜索以便获得足以存储被请求数据的自由索取块(多个)(404)。在步骤(404)的搜索之后,判定是否存在可用自由索取块(406)。对步骤(406)的肯定响应之后,分配自由索取块(408),并且将自由索取块的状态值从“自由索取”更改为“已使用”(410)。对步骤(406)的否定响应之后,分配可用空闲块(412),并且在分配之后,将空闲块的状态从“空闲”更改为“已使用”(414)。在步骤(414)的状态值更改之后,将与在步骤(414)分配的块属于同一分区中的所有其它空闲块标记为“自由索取”(416)。分配自由索取块的优先级高于空闲块,这将产生更高效的存储,因为最小化存储控制器中的存储分配的增加。如果空闲块不可用,则采用控制器以便分配一个或多个其它空闲块以满足事务。因此,针对数据分配,自由索取数据块的优先级高于空闲数据块,并且包含任何已使用块的分区将所有空闲块更改为自由索取块。
[0030]图5是示出用于响应于数据分区的存储组织而优化数据块分配的方法的流程图(500)。图5具有与其结合的图4的所有元素。响应于数据块分配请求(502),采用搜索以便确定数据分区中的所有可用自由索取块足以满足块分配请求(504)。如果存在至少一个可用自由索取块,则从具有最少数量的自由索取块(多于一个)的已发现数据分区分配自由索取块(508),并且将自由索取块的状态值从“自由索取”更改为“已使用”(510)。对步骤(506)的否定响应之后,分配数据分区中的可用空闲块(512),并且在分配之后,将空闲块的状态从“空闲”更改为“已使用”(514)。在步骤(514)的状态值更改之后,将与被分配块(多个)在同一分区中的所有其它块标记为“自由索取”(516)。在一个实施例中,通过为了跟踪每个数据分区中的空闲块数量而维护的索引,发现具有最少数量的自由索取块的自由索取分区。所述索引能够确定数据分区中的块分配的优先顺序。这确保更容易地填充包含数据并具有自由索取块的分区,并且将其余自由索取块布置在更少的分区中。因此,响应于数据分配请求,通过在具有最少数量的自由索取块的分区中填充数据块,高效地存储数据。
[0031]图6是示出用于在数据分区内组织的数据存储装置中回收自由索取块的方法的流程图(600)。对仅具有自由索取块的数据分区的块状态映射或索引进行扫描(602)。判定任何指定的数据分区是否满足搜索条件(604)。在一个实施例中,在步骤(604)的条件是仅具有自由索取块的分区。否定响应之后,终止所述方法。但是,肯定响应之后,通知存储控制器回收这些分区并且将这些分区中的所有块标记为空闲块(606)。因此,回收被确定为仅包含自由索取块的数据分区,方式为:将该数据分区中的所有自由索取块的状态值更改为空闲块。
[0032]图7是示出用于重新安排数据块分配以便减少包含已使用块的数据分区的总数的方法的流程图(700)。该过程在此称为碎片整理。针对具有至少一个自由索取块和至少一个已使用块两者的所有数据分区采用搜索(702)。判定是否发现满足该准则的至少两个数据分区(704)。否定响应之后,确定不需要碎片整理并且终止所述方法。肯定响应之后,将已使用块从更空的数据分区移动到更满的数据分区(706)。如果数据分区比更满的数据分区包含更少的已使用块,则该数据分区被视为更空。因此,通过分区优化的碎片整理的过程,最小化存储装置中的部分使用的数据分区的数量,其中将已使用块从更空的数据分区移动到一个或多个更满的数据分区。因此,某些分区可能变成全空,即,分区中的所有数据块均具有状态值自由索取。这些分区然后可以被立即回收,或者在根据图6的下一次回收扫描期间被回收。
[0033]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0034]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0035]计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0036]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0037]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN) —连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0038]上面参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0039]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0040]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0041]如图1-7中所示,提供一种方法以便管理数据存储系统中的数据存储块的分配和回收。通过以状态值标识和使用数据存储块,提高分配效率,该状态值反映先前使用的可用于支持写入事务的数据存储块。现在参考图8,它是示出具有用于支持数据存储块的高效分配和回收的工具的系统的框图(800)。
[0042]数据存储系统(810)在一个或多个服务器上运行,其包括通过总线(816)与存储器(814)通信的处理单元(812)。数据存储系统通过总线或网络(805)与一个或多个存储控制器(840)通信。尽管示出一个存储控制器(840),但数据存储系统(810)可以使用任意数量的存储控制器。存储控制器(多个)可以在也可以不在运行数据存储系统的相同服务器(多个)上运行。在该实例中,存储控制器(840)包含三个物理盘(850)、(860)和(870),并且将它们配置成两个逻辑卷,逻辑单元编号为LUNO和LUNl。尽管存储控制器被示出具有两个逻辑卷,但本发明不应限于在此示出的逻辑卷数量。取决于存储工作负载和使用的虚拟化技术,每个物理盘可以包含也可以不包含被配置的逻辑卷的相同部分(多个)。
[0043]在数据存储系统(810)本地的系统中提供分配映射(890),以便跟踪数据存储块的分配状态。在一个实施例中,针对每个支持的文件系统维护单独的分配映射。在此处所示的实例中,数据存储装置支持单个文件系统,并且针对该文件系统维护分配映射(890)。
[0044]在数据存储系统(810)的本地提供功能单元(880)以便支持存储控制器(840)中的数据存储块的分配和回收,并且功能单元(880)与处理单元(812)通信。功能单元(880)具有用于管理数据存储块的工具,这些工具包括:维护管理器(882)、事务管理器(884),并且在一个实施例中,包括回收管理器(886)。维护管理器(882)维护分配映射以便跟踪数据存储系统(810)中的数据存储块的状态值。在一个实施例中,维护管理器(882)将两个或更多数据块组织成一个数据分区,并且维护数据分区中的每个数据块的状态值。在一个实施例中,维护管理器(882)响应于分区中的块的状态从空闲更改为已使用,将分区中的所有其它空闲块的状态更改为自由索取。在另一个实施例中,维护管理器(882)从数据分区分配自由索取块。因此,维护管理器(882)维护分配映射(890)以便跟踪数据块的状态值,并且在有限的情况下更改数据块的状态值。
[0045]提供与维护管理器(882)通信的事务管理器(884),并且事务管理器(884)用于满足需要一个或多个数据存储块的写入事务。更具体地说,事务管理器(884)搜索维护管理器(882)维护的分配映射(890)以便获得满足写入事务的块。在一个实施例中,事务管理器(884)搜索自由索取块,并且如果未发现自由索取块,则针对空闲块进行搜索。事务管理器(884)进一步使用已发现的块满足写入事务。在一个实施例中,维护管理器(882)创建索引以便跟踪数据分区中的空闲块的数量,并且事务管理器(884)针对在数据分区中提供的最少数量的自由索取块,确定在索引中标识的块分配的优先顺序。因此,事务管理器(884)用于响应于写入事务,进行搜索并且分配数据块(多个)。
[0046]在一个实施例中,提供与维护管理器(882 )通信的回收管理器(886 )。回收管理器(886)回收自由索取块,包括回收管理器(886)标识自由索取块,通知存储控制器(840)回收标识的块,并且将标识的块的状态值更改为空闲。维护管理器(882)在分配映射(890)中记录该更改。在一个实施例中,仅当标识了仅包含自由索取块的数据分区时,回收管理器(886)才回收数据块。在该实施例中,回收管理器(886)将数据分区中的所有自由索取块的状态值更改为空闲块,并且维护管理器(882)在分配映射(890)中记录该更改。因此,在上面描述的情况中,回收管理器(886)将自由索取块更改为空闲块,以便回收数据存储装置中的空闲空间。
[0047]如上面标识的,维护管理器(882)、事务管理器(884)和回收管理器(886)在下文中称为工具,用作用于支持文本数据的自主分类的元件。工具(882)- (886)被示出位于数据存储系统(810)本地的存储器(814)中,并且与存储控制器(840)通信。但是,工具(882)- (886)可以作为硬件工具位于存储器(814)的外部,或者它们可以实现为硬件和软件的组合。同样,在一个实施例中,工具(882)- (886)可以组合成单个功能项,其包括单独项的功能。如在此示出的,工具(882)- (886)的每一个被示出在数据存储系统(810)的本地。但是,在一个实施例中,它们可以共同或单独跨网络或多个机器分布,并且用作一个单元以便对文本数据进行自主分类。因此,这些工具可以实现为软件工具、硬件工具或者软件和硬件工具的组合。
[0048]现在参考图9的框图,现在针对实现本发明的一个实施例描述其它详细信息。计算机系统包括一个或多个处理器,例如处理器(902)。处理器(902)连接到通信基础架构(904)(例如,通信总线、交叉母线或网络)。
[0049]计算机系统可以包括显示接口(906),其转发来自通信基础架构(904)(或来自帧缓冲器(未示出))的图形、文本和其它数据,以便在显示单元(908)上显示。计算机系统还包括主存储器(910),优选地为随机存取存储器(RAM),并且还可以包括辅助存储器(912)。辅助存储器(912)例如可以包括硬盘驱动器(914)和/或可移动存储驱动器(916),例如表示软盘驱动器、磁带驱动器或光盘驱动器。可移动存储驱动器(916)以所属【技术领域】普通技术人员公知的方式来读写可移动存储单元(918)。可移动存储单元(918)例如表示软盘、压缩盘、磁带或光盘等,其可由可移动存储驱动器(916)读写。应该理解,可移动存储单元(918)包括其中存储计算机软件和/或数据的计算机可读介质。
[0050]在备选实施例中,辅助存储器(912)可以包括其它类似的装置,以便允许将计算机程序或其它指令加载到计算机系统。此类装置例如可以包括可移动存储单元(920)和接口(922)。此类装置的实例可以包括程序包和包接口(例如在视频游戏设备中)、可移动存储器芯片(例如EPROM或PR0M)和关联的插槽,以及允许将软件和数据从可移动存储单元(920)传输到计算机系统的其它可移动存储单元(920)和接口(922)。[0051]计算机系统还可以包括通信接口(924)。通信接口(924)允许在计算机系统和外部设备之间传输软件和数据。通信接口(924)的实例可以包括调制解调器、网络接口(例如以太网卡)、通信端口或PCMCIA插槽和卡等。通过通信接口(924)传输的软件和数据采用信号形式,所述信号例如可以是电、电磁、光信号或其它能够由通信接口(924)接收的信号。通过通信路径(即,信道)(926)将这些信号提供给通信接口(924)。该通信路径(926)承载信号,并且可以使用电线或电缆、光纤、电话线路、移动电话链路、射频(RF)链路和/或其它通信信道来实现。
[0052]在本文件中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”用于泛指介质,例如主存储器(910)和辅助存储器(912)、可移动存储驱动器(916)以及安装在硬盘驱动器(914)中的硬盘。
[0053]计算机程序(也称为计算机控制逻辑)被存储在主存储器(910)和/或辅助存储器(912)中。还可以通过通信接口(924)接收计算机程序。当运行时,此类计算机程序使计算机系统能够执行在此讨论的本发明的特性。具体地说,当运行时,计算机程序使处理器(902)能够执行计算机系统的特性。因此,此类计算机程序表示计算机系统的控制器。
[0054]附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0055]在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组合的存在或增加。
[0056]以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了对本发明的描述,但所述描述并非旨在是穷举的或是将本发明限于所公开的形式。在不偏离本发明的范围和精神的情况下,对于所属【技术领域】的普通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定使用时,使得所属【技术领域】的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。因此,增强的云计算模型支持灵活进行事务处理,包括但不限于优化存储系统,并且响应于优化后的存储系统而处理事务。
[0057]备选实施例(多个)
[0058]应该理解,尽管在此出于示例目的描述了本发明的特定实施例,但可以在不偏离本发明的精神和范围的情况下进行各种修改。因此,本发明的保护范围仅由以下权利要求及其等同物来限制。
【权利要求】
1.一种方法,包括: 维护映射以便跟踪数据存储系统中的数据块的状态,每个块均在所述映射中具有状态值,所述状态值选自包括以下项的组:已使用、空闲以及自由索取,其中已使用块是具有已存储数据和已索取空间的数据块,空闲块是没有已索取空间的未使用块,以及自由索取块是具有已索取空间的未使用块; 响应需要一个或多个块的写入事务,包括:搜索所述映射以便获得一个或多个块以满足所述事务,所述一个或多个块选自包括以下项的组:自由索取、空闲以及它们的组合;以及 从所搜索的映射中选择一个或多个块,包括确定选择所述块的优先顺序,其中使用一个或多个自由索取块满足主要选择,以及使用一个或多个空闲块满足次要选择;以及 在选择所述一个或多个块之后,将所选择的块的所述状态值更改为已使用。
2.根据权利要求1的方法,还包括回收自由索取块,包括标识所述自由索取块,所述标识所述自由索取块包括:回收所标识的块;以及将所标识的块的所述状态值更改为空闲。
3.根据权利要求1的方法,还包括响应于数据分区中的块的状态从空闲更改为已使用,将所述分区中的所有其它空闲块的状态更改为自由索取。
4.根据权利要求1的方法,还包括在检测到数据分区中的所有块均具有值自由索取之后,回收所述分区,回收所述分区包括:回收所述分区中的所有块,并将所述分区中的所有自由索取块的所述值更改为空闲。
5.根据权利要求1的方法,还包括创建数据分区的索引以便针对所述索引中表示的每个数据分区跟踪空闲块数量,并且确定从具有最少数量的自由索取块的分区之一选择块的优先顺序。
6.根据权利要求1的方法,还包括对数据分区进行碎片整理,包括在具有至少一个自由索取块和至少一个已使用块两者的两个或更多分区之间移动块,其中所述碎片整理最小化具有至少一个自由索取块和至少一个已使用块两者的分区的总数。
7.一种装置,包括适合于执行权利要求1-6中的任一权利要求的模块。
8.一种系统,包括: 处理单元,其与数据存储装置通信,并且与映射通信; 功能单元,其与存储器和处理单元通信,所述功能单元具有用于支持数据分类的工具,所述工具包括: 维护管理器,其用于维护所述映射以便跟踪数据存储系统中的数据块的状态值,所述状态值选自包括以下项的组:已使用、空闲以及自由索取,其中已使用块是具有已存储数据和已索取空间的块,空闲块是没有已索取空间的未使用块,以及自由索取块是具有已索取空间的未使用块;以及 事务管理器,其与所述维护管理器通信,所述事务管理器用于满足需要一个或多个块的与入事务,包括: 搜索所述映射以便获得满足所述事务的块,所述搜索包括一个或多个块,所述一个或多个块选自包括以下项的组:自由索取、空闲以及它们的组合; 从所搜索的映射中选择一个或多个块,包括确定选择所述块的优先顺序,其中使用一个或多个自由索取块满足主要选择,以及使用一个或多个空闲块满足次要选择;以及在选择所述一个或多个块之后,将所选择的块的所述状态值更改为已使用。
9.根据权利要求8的系统,还包括回收管理器回收自由索取块,包括:所述回收管理器标识所述自由索取块,通知存储控制器回收所标识的块,以及将所标识的块的所述状态值更改为空闲。
10.根据权利要求8的系统,还包括所述维护管理器响应于数据分区中的块的状态从空闲更改为已使用,将所述分区中的所有其它空闲块的状态更改为自由索取。
11.根据权利要求8的系统,还包括回收管理器,其与所述维护管理器通信,所述回收管理器在检测到分区中的所有块均具有状态值自由索取之后,回收所述分区,其中回收所述分区包括:通知存储控制器回收所述分区中的所有块,以及将所述分区中的所有自由索取块的所述状态值更改为空闲。
12.根据权利要求8的系统,还包括所述功能单元优化分区的分配,包括:所述维护管理器创建分区的索引以针对所述索引中表示的每个分区跟踪空闲块的数量,以及所述事务管理器确定从具有最少数量的自由索取块的分区之一选择块的优先顺序。
13.根据权利要求8的系统,还包括碎片整理管理器对分区进行碎片整理,包括在具有至少一个自由索取块和至少一个已使用块两者的两个或更多分区之间移动块,其中所述碎片整理最小化具有已使用块和自由索取块两者的分区的总数。
【文档编号】G06F12/02GK103927261SQ201410008215
【公开日】2014年7月16日 申请日期:2014年1月8日 优先权日:2013年1月15日
【发明者】L·S·栾, F·B·施穆克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1