数据存储池的碎片整理的制作方法

xiaoxiao2020-7-22  26

数据存储池的碎片整理的制作方法
【专利摘要】本公开涉及数据存储池的碎片整理。在包括至少一个存储控件和其中数据以卷的形式存储的数据储存器的计算机实现的数据存储系统中,至少多个卷具有至少一些自由空间,并且多个卷的组构成池。响应于碎片整理请求,存储控件发起数据从池的迁移以生成额外的自由空间。在数据的迁移之后,计算池的数据的碎片化,并确定池的现存自由空间的量。将现存自由空间的量与自由空间阈值进行比较,其中,自由空间阈值与所计算的碎片化相关。如果所述比较表明自由空间的量低于阈值,则将溢出卷添加到池;否则,保持池完整不变,而不添加溢出卷。然后,发起对池的碎片整理。
【专利说明】数据存储池的碎片整理
【技术领域】
[0001]本发明涉及计算机实现的数据存储,更特别地,涉及对于这样的数据存储的数据的碎片整理。
【背景技术】
[0002]更新数据存储系统的串行设备上的数据存储通常导致被称为碎片化的现象发生,数据存储系统的两个示例是磁盘存储和RAID (独立磁盘冗余阵列)系统。例如,当诸如数据集的文件第一次被创建时,如果可以得到毗连区,诸如磁盘或RAID系统上的一系列磁道或柱面,则计算机实现的系统将使该文件被分配给该毗连区。然而,当用户添加第一文件的数据或更新第一文件的数据时,在该盘上的另一物理位置处的一些额外的空间被分配用于添加或更新,并且该文件的过时部分可以被删除,从而既由于删除而导致原始文件的数据的碎片化,又由于数据的放置而导致添加的或更新的数据的碎片化。
[0003]随着更多的数据和文件被添加、删除和修改,碎片化趋向于随时间积聚。因此,开发了碎片整理算法,这些碎片整理算法对碎片化数据进行分析,并且以将数据的部分放置在删除区域中以重组该数据的方式移动数据,从而使得该数据既更加毗连,又在适当的序列中。碎片整理算法的若干示例中的几个包括Dino Software的“Real Time Defrag”、Computer Associates 的“Compaktor,,和 International Business Machines Corp.的“DFDSS Defrag”。
[0004]在本文中,术语“自由空间”用作本领域术语,该术语表示其数据已被删除的存储空间或所添加的没有数据的存储空间,从而使得该空间“自由”并且可用于存储数据。

【发明内容】

[0005]提供对于对数据存储系统的数据进行碎片整理的请求做出响应的方法、数据存储系统和计算机程序产品。
[0006]在一个实施例中,在包括至少一个存储控件和其中数据以卷的形式存储的数据储存器的计算机实现的数据存储系统中,至少多个卷具有至少一些自由空间,并且多个卷的组构成池,以下步骤被执行:
[0007]发起数据从池的迁移以生成额外的自由空间;
[0008]在数据的迁移之后,计算池的数据的碎片化;
[0009]确定池的现存自由空间的量;
[0010]将现存自由空间的量与自由空间阈值进行比较,自由空间阈值与所计算的碎片化相关;
[0011]如果所述比较指示自由空间的量低于阈值,则将溢出卷添加到池中;并且
[0012]否则,保持池完整不变,而不添加溢出卷;以及
[0013]发起对池的碎片整理。
[0014]在另一实施例中,另外将溢出卷(如果有的话)识别为临时卷,并且在对池进行碎片整理之后,从池移除这些溢出卷。
[0015]在又一实施例中,其中,自由空间阈值包括标称阈值,所计算的碎片化调整自由空间阈值以增大或减小自由空间阈值。
[0016]在另一实施例中,该调整包括值的范围。
[0017]在又一实施例中,值的范围在与所计算的碎片化的索引相关的值之间调整。
[0018]在另一实施例中,根据以下公式确定自由空间阈值(T):
[0019](T) =(池的总存储容量)X (标称阈值)X {0.5至1.5的范围}
[0020]其中,所述范围内的值基于所计算的碎片化的索引。
[0021]在另一实施例中,所计算的碎片化的索引是添加到所述范围的底部的从0至1.0的值。
[0022]在又一实施例中,所计算的碎片化是碎片的估计数量与池的数据存储容量的比率。
[0023]在另一实施例中,数据包括具有多个数据集的卷,每个数据集具有至少一个数据区间,并且其中,根据池的数据区间的数量减去池的数据集的数量来确定碎片的估计数量。
[0024]为了更充分地理解本发明,应当参照以下结合附图进行的详细描述。
【专利附图】

【附图说明】
[0025]图1是示出由不同类型的计算和数据存储设备构成的计算机实现的系统的一个实施例的闻级框图;
[0026]图2是示出用于提供对图1的多个数据存储设备中的至少一个数据存储设备的碎片整理的计算机实现的系统的一个实施例的高级框图;
[0027]图3是描绘操作图1和图2的系统的示例性方法的流程图;
[0028]图4是图1和图2的系统的数据卷的图解说明;和
[0029]图5是图1和图2的系统的数据卷的另一图解说明。
【具体实施方式】
[0030]在以下关于附图的描述中以优选实施例描述本发明,在附图中,相似的编号表示相同的或类似的元件。尽管就用于实现本发明的目标的最佳模式对本发明进行描述,但是本领域技术人员将意识到,可以在不脱离本发明的精神或范围的情况下鉴于这些教导来实现各种变型。
[0031]参照图1,示出了计算机实现的系统100的示例。该系统是许多计算机实现的系统之一,其可以实现本发明以在该系统中的至少一个数据存储设备的碎片整理期间提供数据的时点副本。系统架构100被呈现以显示可以受益于本文中所公开的装置和方法的各种类型的计算设备。系统架构100仅作为示例而呈现,并非意图限制。实际上,本文中所公开的装置和方法可以应用于多种不同的计算设备,不限于本文中所示的那些计算设备。
[0032]如所示,示例性系统架构100包括通过网络104互连的一个或多个计算机处理器102、106。网络104可以包括例如局域网(LAN)、广域网(WAN)、互联网、内联网等。在某些实施例中,计算机处理器102、106可以包括客户端计算机处理器102和服务器计算机处理器106这两者。在示例中,客户端计算机102发起通信会话,而服务器计算机处理器106等待来自客户端计算机处理器102的请求。在某些实施例中,计算机处理器102和/或服务器处理器106可以与一个或多个内部或外部数据存储系统112 (例如,硬盘驱动器、固态驱动器、磁带驱动器、库等)连接。这些计算机处理器102、106和直接附连的存储系统112可以使用诸如ATA、SATA, SCS1、SAS、Fibre Channel等的协议进行通信。
[0033]在某些实施例中,系统架构100可以包括在服务器处理器106背后的存储网络108,诸如存储区域网络(SAN)或LAN(例如,当使用网络附连的存储器时)。这个网络108可以将服务器处理器106连接到一个或多个数据存储系统110,诸如硬盘驱动器或固态驱动器的阵列110a,包括RAID (独立磁盘冗余阵列)阵列、磁带库110b、单独的硬盘驱动器IlOc或固态驱动器110c、磁带驱动器或库110d、CD-ROM库、虚拟磁带库等。为了访问存储系统110,服务器处理器106可以通过从服务器处理器106上的一个或多个端口到存储系统110上的一个或多个端口的物理连接进行通信。连接可以通过开关、光纤、直接连接等。在某些实施例中,服务器处理器106和存储系统110可以使用诸如Fibre Channel (FC)的联网标准进行通信。
[0034]参照图2,示出了用于提供数据处理以提供对图1的多个数据存储设备中的至少一个数据存储设备的碎片整理的计算机实现的系统200的一个实施例。计算机实现的系统200可以在图1的任一设备或系统(包括客户端系统102、服务器处理器106、存储系统110和附连的储存器112)中或者在通过网络104连接的另一计算机实现的系统中实现。如所示,计算机实现的系统200包括提供数据处理的一个或多个模块。这些模块可以被安置在一个或多个计算机处理器和一个或多个相关联的其中包含非暂时性计算机可用程序代码的计算机可用存储介质处。下文中讨论计算机处理器和计算机可用存储介质的细节。计算机实现的系统200可以接收命令、信息和计算机可用程序代码,并且将命令、通知和信息提供给一个或多个主机或主机终端206。这些模块可以被并入存储控件210的应用中,或者可以包括存储控件210的应用,这些模块可包括独立单元或者包括主机、服务器处理器、存储系统或附连的储存器的一部分。
[0035]这些模块可以包括与主机系统和碎片整理应用接口连接的模块220以及与数据储存器240接口连接的模块230,数据储存器240包括通过碎片整理应用对其数据进行碎片整理并且包括可不具有活动数据的额外卷的一个存储设备或多个存储设备。
[0036]尽管示为被分组在一起,但是如以上所讨论的,这些模块和其他元件可以散布在各种计算机处理器和系统之中。
[0037]在一个实施例中,数据储存器240的数据包括具有多个数据集的卷的一个或多个池,每个数据集具有至少一个数据区间。
[0038]特别地,存储控件210实现响应模块250,响应模块250对命令做出响应,并且通过接口 220向主机206请求信息并从主机206接收信息。数据管理模块260调用将数据从一种类型的数据储存器移动到另一种类型的数据储存器的数据管理进程,诸如InternationalBusiness Machines Corp.的“HSM”。作为一个示例,“HSM”找到已老化到满足特定阈值的数据,并将它移动到活动级别较低的数据储存器,例如,从硬盘驱动器的RAID排布移动到磁带库。
[0039]本文中的数据管理关于整个数据池进行。
[0040]自由空间模块270确定数据池的碎片化,确定池中的现存自由空间的量,并对碎片化和自由空间进行各种动作。
[0041]碎片整理模块280例如通过调用碎片整理进程来发起碎片整理,碎片整理进程诸如 Dino Software 的 “Real Time Defrag,,、Computer Associates 的 “Compaktor” 和International Business Machines Corp.的“DFDSS Defrag”。碎片整理模块可以允许用户选择关于用于池的碎片整理进程的选项。用户可以通过碎片整理进程来选择将被进行碎片整理的对象和池中一些被移动的数据对象的放置。
[0042]如以上所讨论的,数据储存器240可以包括一个或多个数据存储池,每个数据存储池具有多个卷。在一个实施例中,可不具有活动数据的额外卷包括若干“溢出”卷290,这些“溢出”卷290是不包含活动数据并且不属于任何一个池的卷。
[0043]如本领域的技术人员所已知的,计算机实现的数据储存器使用基于硬盘驱动器储存器的过去的物理布局(诸如“磁道”和“柱面”)但是比现代物理储存器更小的测量和寻址。为了适应大量数据存储,寻址被以各种方式扩展。一个示例在International BusinessMachines Corp.的“z/OS”系统中实现为允许存储大于65,520个柱面的卷的“EAV”或可扩展可寻址卷。在这种环境下,前65,520个柱面以上的空间被称为“柱面管理空间”,是扩展的寻址空间。对于任何z/0S寻址方案中的扩展寻址,能够使用柱面管理空间的数据集被称为是符合条件的。EAV卷具有被称为“磁道管理”区的用于较小数据集的区域、以及以21个柱面为单位分配用于较大数据集的“块”管理存储区域。
[0044]数据集包括一个或多个区间,并且数据集可以存在于一个卷或多个卷中。反之,卷具有多个数据集,这些数据集具有至少一个数据区间。卷的容量通常通过被分配给该卷的或者实际上被该卷使用的柱面的数量进行测量。
[0045]参照图2和图3,响应模块250对例如由主机系统206发起的对于数据储存器240的卷池的碎片整理操作300做出响应。如以上所讨论的,碎片整理是对于一个级别的数据储存器的操作或处理,该操作或处理获取随时间碎片化的数据,并以将数据的部分放置在删除区域中以重组该数据的方式对成碎片的数据进行分析,以使得该数据更加毗连并且在适当的序列中。用户206可以通过JCL成批作业或者通过TSO命令来指定池碎片整理命令。在该命令中,用户指定包括将被进行碎片整理的池的存储组名称。在步骤300中,响应模块组织存储系统的操作以适应碎片整理操作。这可以包括发信号通知数据存储操作的提前完成或暂停。
[0046]在步骤305中,数据管理模块260调用数据管理进程(诸如以上所讨论的“HSM”)来找到已老化到满足特定阈值的数据,并将它移动到活动级别较低的数据储存器240,例如,从包含数据池的硬盘驱动器的RAID排布移动到磁带库并且移出池。数据的移动通常基于数据集进行,并且打开数据池内的自由空间。自由空间在VTOC中通常被识别为删除的数据。
[0047]一旦数据管理进程完成并且该处理在步骤310中返回到碎片整理操作,则步骤315运行自由空间模块270以测量并确定将被进行碎片整理的池的数据的碎片化。
[0048]碎片化与数据在一段时间期间被更新和改变之后该数据的复杂度相关。数据可以一开始为具有单个区间的数据集,但是随着时间过去,随着更多的数据和文件被添加、删除和修改,数据集变为由物理上分散的额外的区间构成。
[0049]确定池的碎片化的步骤315的一个实施例是通过计算碎片的估计数量与池的数据存储容量的比率。
[0050]在数据包括具有多个数据集的卷,每个数据集具有至少一个数据区间的情况下,根据池的数据区间的数量减去池的数据集的数量来确定碎片的估计数量。
[0051]池的数据存储容量可以是构成池的柱面的数量。
[0052]在另一实施例中,基于每个卷上的区间来计算碎片化,这可应用于卷的碎片整理。通过计算区间的数量和这些区间的大小来计算碎片化估计。区间的数量除以这些区间的平均大小给出每个卷的碎片化度量。区间的数量越少并且区间的大小越大,卷的碎片化值越小。
[0053]步骤315的一个实施例是组合整个池上的卷碎片化计算。
[0054]在步骤320中,确定池的现存自由空间的量。自由空间是卷中的包含已被删除的数据或者不包含数据的空间。
[0055]确定自由空间和碎片化这两者的工具是International Business MachinesCorp.的“LSPACE”。LSPACE提供关于卷大小、卷上的自由空间、VTOC和INDEX的自由空间、碎片化信息(诸如区间和数据集的数量)等的信息。还提供关于磁道管理空间的大小及其自由空间统计数据的信息。LSPACE宏返回参数列表中的状态信息(诸如LSPACE子函数、返回码和理由码)。诸如“EXPMSG”和“XEXPMSG”的选项创建LSPACE宏基于卷提供自由空间和卷空间信息所需的扩展消息返回区。对于具有柱面管理空间的卷,自由空间信息被作为用于整个卷的自由空间和用于磁道管理空间的自由空间返回。这两组自由空间数据对于不具有柱面管理空间的卷将是相同的。LSPACE还可以返回诸如格式、数据集控制块、区间和自由区间的总数或碎片索引的信息。
[0056]可替换地,文件分配表(FAT)可以提供起始和结束柱面范围,并且包括可以用于基于卷提供自由空间和空间信息以确定自由空间和碎片化这两者的自由空间指针。
[0057]在步骤325中,自由空间模块270确定自由空间阈值。
[0058]在一个实施例中,自由空间阈值包括标称阈值,并且所计算的碎片化调整自由空间阈值以增大或减小自由空间阈值。
[0059]在另一实施例中,调整包括值的范围。
[0060]在又一实施例中,值的范围在与所计算的碎片化的索引相关的值之间调整。在另一实施例中,根据以下公式确定自由空间阈值(T):
[0061](T) =(池的总存储容量)X (标称阈值)X {0.5至1.5的范围}
[0062]其中,所述范围内的值基于所计算的碎片化的索引。
[0063]因此,所计算的碎片化的索引是添加到所述范围的底部的从0至1.0的值。
[0064]参照图4和图5,示出了两种不同的数据布局。为了便于说明,数据被示为池的代表性虚拟卷,而没有示出数据的物理散布。池实际上有可能包括数百个或数千个卷。
[0065]图4的数据示出活动类型的数据,在该活动类型的数据中,代表性卷401-404和406-407包括100个数据集和500至1000个区间,每个卷具有10,000个柱面的容量。卷405被示为“空”,意味着其数据集已经例如在该卷的VTOC中被标记为删除。“空”卷的来源可以是步骤260的数据管理,或者该卷可以是将讨论的“溢出”卷。
[0066]图5的数据示出活动性较低类型的数据,在该活动性较低类型的数据中,代表性卷501-503和505-507包括100个数据集和100至200个区间,每个卷具有10,000个柱面的容量。卷504被示为“空”,意味着其数据集已经例如在该卷的VTOC中被标记为删除。“空”卷的来源可以是步骤260的数据管理,或者该卷可以是将讨论的“溢出”卷。
[0067]参照图2、图3、图4和图5,在步骤325中,自由空间模块270使用在步骤315中确定的信息来确定自由空间阈值。
[0068]在一个实施例中,自由空间阈值一开始被用户设置为标称值,或者通过默认设置来建立。标称值可以包括用户根据经验找到的值,该值为最适合用户对用户通常必须对其进行碎片整理的类型的数据进行碎片整理所需的值。作为一个示例,进行碎片整理所需的标称值可以包括池内25%的自由空间。
[0069]在一个实施例中,根据池内的实际数据对标称值进行调整。在一个实施例中,调整是根据基于碎片化的索引的范围的,并且,例如,是标称值的0.5至1.5倍。如果标称值是25%,则调整范围是(25%) X {0.5至1.5}或者从12.5%至37.5%的值范围。
[0070]在一个实施例中,从标称值开始的值调整基于与所估计的碎片化相关的索引。作为一个示例,索引可以为0至1.0,并且被添加到调整范围的底部。在一个实施例中,索引可以与所估计的数据的碎片化线性或指数相关,或者包括与所估计的数据的碎片化的任何其他非线性关系。在一个示例中,碎片化包括区间的数量减去数据集的数量以提供碎片的估计数量,以及碎片的数量除以池的容量。因此,碎片化值将是一个小的分数。
[0071]在一个实施例中,为了说明的目的,通过仅使用图4的代表性卷,步骤315确定在构成池的具有数据401 - 404和406 - 407的卷中存在具有4,500个区间的600个数据集。如果已通过数据管理步骤305使“空”卷405为空,则步骤315还确定池的容量为70,000个柱面。
[0072]通过使用以上示例性碎片化确定,区间的数量(4,500)减去数据集的数量(600)给出碎片的估计数量(3,900),并且将该结果除以池的容量(70,000)给出(0.0557)的碎片化值。
[0073]在一个实施例中,为了说明的目的,通过仅使用图5的代表性卷,步骤315确定在构成池的具有数据501 - 503和505 - 507的卷中存在具有900个区间的250个数据集。如果“空”卷504不存在,则步骤315还确定池的容量为60,000个柱面。
[0074]通过使用以上示例性碎片化确定,区间的数量(900)减去数据集的数量(250)给出碎片的估计数量(650),并且将该结果除以池的容量(60,000)给出(0.0011)的碎片化值。
[0075]如以上所讨论的,索引可以与所估计的数据的碎片化线性或指数相关,或者包括与所估计的数据的碎片化的任何其他非线性关系。在一个示例中,索引与所估计的数据的碎片化线性相关,并且当碎片化包括“0.0000”时,索引的范围从“0”开始,当碎片化包括“0.1000”时,索引的范围从“I”开始。
[0076]通过使用以上示例,索引将对于图4的池的数据包括(0.56)且对于图5的池的数据包括(0.01)。
[0077]在一个实施例中,索引值被添加到范围的底部,包括:对于图4的池的数据,(0.56)被添加到(0.5)以等于(1.06),以及对于图5的池的数据,(0.01)被添加到(0.5)以等于(0.51)。
[0078]确定索引值的公式基于所估计的池的数据的碎片化,并且可以不同于以上所呈现的公式。
[0079]在一个实施例中,根据以下公式确定自由空间阈值(T):
[0080]⑴=(池的总存储容量)X (标称阈值)X {0.5至1.5的范围}
[0081 ] 其中,所述范围内的值基于所计算的碎片化的索引。
[0082]使用这些值确定自由空间阈值包括将索引值乘以标称阈值以及将所得的百分比乘以池的容量。对于图4的池的数据,计算包括(70,000个柱面)X (25%) X (1.06)以获得(18,550个柱面)的阈值(T)。对于图5的池的数据,计算包括(60,000个柱面)X (25%) X (0.51)以获得(7,650个柱面)的阈值(T)。
[0083]与索引一起用于建立步骤325的阈值(T)的度量的单位可以不同于以上单位,其中阈值(T)表示可与在步骤320中确定的现存自由空间的量进行比较的度量的单位。
[0084]步骤330将在步骤320中确定的现存自由空间与在步骤325中确定的阈值进行比较。在步骤335中,自由空间模块270利用该比较来确定是添加“溢出”卷,还是命令用现存自由空间进行碎片整理。如果在步骤320中确定的池的现存自由空间小于阈值,则在步骤340中添加“溢出”卷。在一个实施例中,所添加的溢出卷的数量是使阈值被超过所需的数量。
[0085]通过使用图5的池作为示例,在阈值为(7,650个柱面)的情况下,如果在步骤320中确定的自由空间小于该阈值,则仅需要从“溢出”卷290添加一个“溢出”卷504到池,所添加的“溢出”卷提供10,000个柱面。作为替代方案,“溢出”卷可以来自上溢卷池。
[0086]一旦来自现存自由空间的自由空间或来自现存自由空间与所添加的(多个)“溢出”卷的组合的自由空间超过阈值,处理移动到由模块280执行的步骤350。如果(多个)“溢出”卷被使用,则相同数量的现存卷被标记为将在碎片整理进程期间变为空的卷,以使得它们可以在碎片整理进程完成时被从池中移除。该标记可以包括VTOC中卷要使其内容被移除的指示。
[0087]碎片整理模块280例如通过调用碎片整理进程来发起碎片整理。一些示例包括 Dino Software 的 “Real Time Defrag”、Computer Associates 的 “Compaktor” 和International Business Machines Corp.的 “DFDSS Defrag”。在一个实施例中,碎片整理模块另外允许用户选择关于用于池的碎片整理进程的选项。这些选项包括通过碎片整理进程对被进行碎片整理的对象的选择和对于池中被移动的一些数据对象的放置。
[0088]对选项和参数的选择可以从用户接收,并且由响应模块250转发。
[0089]在一个实施例中,“Reduce_Multi”选项(如果被设置的话)指示当前驻留在多个卷上的数据集应当被分配在尽可能少的卷上。选择这个选项的原因可以包括更易于备份以及减少一些操作期间的串行化约束。因为条式数据集是出于性能原因而设立的,所以这个选项将不适用于条式数据集。因为非条式多卷数据集不在整个卷上使1/0条纹化,所以对于减少所分配的卷而言,不存在性能牵连。
[0090]“Freespace_Preference”选项(如果被设置的话)允许用户指定用户想如何在存储池内分布自由空间。例如,其允许用户指定将在每一个卷上留下的自由空间的最小量。例如,“Freespace_Preference (5) ”意指用户想在池的每个卷上留下最小5%的自由空间。因此,当在碎片整理期间分配数据时,不允许超过卷的空间的95%的分配。如果在“溢出”卷返回之后用户在池中不具有满足指定值的足够空间,则响应模块250向用户发出错误消息。在步骤315和320被执行之后,池中总的可用空间是已知的。
[0091]“Empty_Vol_Preference”选项允许用户指定表示在“溢出”卷返回之后池中留下的空卷的最小数量的数值。如果用户想使用不同池中的那个空间,则在碎片整理之后,可以移除这些卷,或者可以在池中留下这些卷以允许对于单个卷的大的分配。如果用户使用这个选项,则具有最大的自由空间和最小量的分配数据集的这些卷在池碎片整理期间将使所有这些数据集被移出这些卷。如果用户结合每一卷的“Freespace_Preference”指定了过高数量的空卷,则错误消息被再次发出以指示总的池空间不足。
[0092]“EAV_Uplift”是如果数据集满足最小大小标准,则如以上所讨论的那样将它们移动到柱面管理储存器的选项。对于现存的柱面管理数据集,假定空间在那仍可用,它们在碎片整理之后将继续驻留在柱面管理储存器中。这个选项还允许“溢出”卷被作为以上所讨论的扩展可寻址卷添加,这将使得在碎片整理期间有额外的EAV空间可用。
[0093]“Retry_in_Use”是包括重试移动当前在使用中的数据集的次数的参数。如果在最大重试次数之后数据集仍在使用中,则不移动该数据集。
[0094]步骤360包括在碎片整理完成之后来自碎片整理进程的返回,步骤360将所返回的卷识别为“溢出”卷。这允许这些“溢出”卷可用于另一碎片整理中。
[0095]本领域的普通技术人员将意识到,本文中所公开的本发明的实施例(包括图2的用于在图1的系统100内进行碎片整理的计算机实现的系统200)和本文中所提供的功能可以实现为系统、方法或计算机程序产品。因此,本发明的实施例可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微码等)或者它们的组合(诸如组合软件和硬件方面的实施例)的形式,这些实施例在本文中可以被统称为“电路”、“模块”或“系统”。此外,本发明的实施例可以采取包含在一个或多个其上包含计算机可读程序代码的计算机可读介质中的计算机程序产品的形式。
[0096]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的示例(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0097]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0098]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0099]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0100]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)?
[0101]计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上以使一系列操作步骤在该计算机、其他可编程装置或其他设备上执行以产生计算机实现的过程,以使得在该计算机或其他可编程装置上执行的指令提供用于实现流程图和/或一个框图块或多个框图块中所指定的 功能/动作的过程。
[0102]本领域技术人员将理解,可以对以上所讨论的方法进行改变,包括对步骤的排序的改变。此外,本领域的技术人员将理解,可以利用与本文中所示的那些组件布置不同的特定的组件布置。
[0103]本领域的技术人员将理解,可以对以上所讨论的方法进行改变,包括对步骤的排序的改变。此外,本领域的技术人员将理解,可以利用与本文中所示的那些组件布置不同的特定的组件布置。
[0104]尽管已详细地说明了本发明的优选实施例,但是应当明白,本领域的技术人员可以在不脱离如权利要求书中所阐述的本发明的范围的情况下想到对于这些实施例的修改和变化。
【权利要求】
1.在包括至少一个存储控件和其中数据以卷的形式存储的数据储存器的计算机实现的数据存储系统中,至少多个所述卷具有至少一些自由空间,并且多个卷的组构成池,一种方法包括: 发起数据从池的迁移以生成额外的自由空间; 在所述数据的迁移之后,计算所述池的数据的碎片化; 确定所述池的现存自由空间的量; 将所述现存自由空间的量与自由空间阈值进行比较,所述自由空间阈值与所计算的碎片化相关; 如果所述比较表明所述自由空间的量低于所述阈值,则将溢出卷添加到所述池;并且 否则,保持所述池完整不变,而不添加溢出卷;以及发起对所述池的碎片整理。
2.根据权利要求1所述的方法,另外包括以下步骤:将所述溢出卷,如果有的话,识别为临时卷,并且在对所述池进行所述碎片整理之后,从所述池移除所述溢出卷。
3.根据权利要求1所述的方法,其中,所述自由空间阈值包括标称阈值,并且所计算的碎片化调整所述自由空间阈值以增大或减小所述自由空间阈值。
4.根据权利要求3所述的方法,其中,所述调整包括值的范围。
5.根据权利要求4所述的方法,其中,所述值的范围在与所计算的碎片化的索引相关的值之间调整。
6.根据权利要求1所述的方法,其中,根据以下公式确定所述自由空间阈值(T): (T) =(池的总存储容量)X (标称阈值)X {0.5至1.5的范围}` 其中,所述范围内的值基于所计算的碎片化的索引。
7.根据权利要求6所述的方法,其中,所计算的碎片化的索引是添加到所述范围的底部的从0至1.0的值。
8.根据权利要求7所述的方法,其中,所计算的碎片化是碎片的估计数量与所述池的数据存储容量的比率。
9.根据权利要求8所述的方法,其中,所述数据包括具有多个数据集的卷,每个所述数据集具有至少一个数据区间,并且其中,根据所述池的数据区间的数量减去所述池的数据集的数量来确定碎片的所述估计数量。
10.一种数据存储系统,包括: 数据储存器,其中,数据被以卷的形式存储,至少多个所述卷具有至少一些自由空间,并且多个卷的组构成池;和 至少一个存储控件,所述至少一个存储控件执行以下步骤: 发起数据从池的迁移以生成额外的自由空间; 在所述数据的迁移之后,计算所述池的数据的碎片化; 确定所述池的现存自由空间的量; 将所述现存自由空间的量与自由空间阈值进行比较,所述自由空间阈值与所计算的碎片化相关; 如果所述比较表明所述自由空间的量低于所述阈值,则将溢出卷添加到所述池;并且 否则,保持所述池完整不变,而不添加溢出卷;以及发起对所述池的碎片整理。
11.根据权利要求10所述的数据存储系统,其中,所述存储控件另外执行以下步骤:将所述溢出卷,如果有的话,识别为临时卷,并且在对所述池进行所述碎片整理之后,从所述池移除所述溢出卷。
12.根据权利要求10所述的数据存储系统,其中,所述自由空间阈值包括标称阈值,并且所计算的碎片化调整所述自由空间阈值以增大或减小所述自由空间阈值。
13.根据权利要求12所述的数据存储系统,其中,所述调整包括值的范围。
14.根据权利要求13所述的数据存储系统,其中,所述值的范围在与所计算的碎片化的索引相关的值之间调整。
15.根据权利要求10所述的数据存储系统,其中,根据以下公式确定所述自由空间阈值(T): (T) =(池的总存储容量)X (标称阈值)X {0.5至1.5的范围} 其中,所述范围内的值基于所计算的碎片化的索引。
16.根据权利要求15所述的数据存储系统,其中,所计算的碎片化的索引是添加到所述范围的底部的从0至1.0的值。
17.根据权利要求16所述的数据存储系统,其中,所计算的碎片化是碎片的估计数量与所述池的数据存储容量的比率。
18.根据权利要求17所述的数据存储系统,其中,所述数据包括具有多个数据集的卷,每个所述数据集具有至少一个数据区间,并且其中,根据所述池的数据区间的数量减去所述池的数据集的数量来确定碎片的所述估计数量。
19.一种包括程序代码的计算机程序,当所述程序在计算机上运行时所述程序代码适于执行权利要求1至9中的任何 一项的方法步骤。
20.在包括至少一个存储控件和其中数据以卷的形式存储的数据储存器的计算机实现的数据存储系统中,至少多个所述卷具有至少一些自由空间,并且多个卷的组构成池,一种方法包括: 计算所述池的数据的碎片化; 确定所述池的现存自由空间的量; 将所述现存自由空间的量与自由空间阈值进行比较,所述自由空间阈值与所计算的碎片化相关; 如果所述比较表明所述自由空间的量低于所述阈值,则将溢出卷添加到所述池;并且 否则,保持所述池完整不变,而不添加溢出卷;以及 如果数据集在碎片整理期间满足最小大小标准,则允许用户选择将它们移动到柱面管理储存器的选项,并发起对所述池的碎片整理。
【文档编号】G06F12/02GK103562881SQ201280025520
【公开日】2014年2月5日 申请日期:2012年4月18日 优先权日:2011年5月25日
【发明者】D·C·雷德, M·D·史密斯 申请人:国际商业机器公司

最新回复(0)