首页> 中国专利> 用于分层存储架构的区间迁移

用于分层存储架构的区间迁移

摘要

提供了一种用于计算存储环境中多个存储池的每个之间的数据迁移的方法。通过分配给所述多个存储池的任何一个存储池的数据段之间共享的度量将所述多个存储池的每个分类。基于所述度量在所述多个存储池的所述任何一个中确定所述数据段的优先级。以预定间隔,基于所述度量,对于所述多个存储池的每个执行发现子池上具有最高优先级的数据段是否大于父池上具有最低优先级的数据段。如果是,则将所述子池上具有最高优先级的数据段提升到所述父池。类似的发现处理将所述父池上具有最高优先级的数据段降级到所述子池。

著录项

  • 公开/公告号CN102713827A

    专利类型发明专利

  • 公开/公告日2012-10-03

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201080060890.5

  • 发明设计人 D.蒙哥马利;

    申请日2010-12-21

  • 分类号G06F3/06;

  • 代理机构北京市柳沈律师事务所;

  • 代理人张晓明

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-18 06:52:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-06

    未缴年费专利权终止 IPC(主分类):G06F3/06 授权公告日:20151125 终止日期:20181221 申请日:20101221

    专利权的终止

  • 2015-11-25

    授权

    授权

  • 2012-11-28

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20101221

    实质审查的生效

  • 2012-10-03

    公开

    公开

说明书

技术领域

本发明通常涉及计算机,并且更具体地,涉及用于在使用分层架构的计算存储环境中的池之间分配和迁移数据的装置、方法和计算机程序产品实施例。

背景技术

当今社会中在各种环境中找到计算机和计算机系统。可以在家里、在工作场所、在学校、在政府以及在其它环境中找到计算环境和网络。计算环境日益增加地在一个或多个存储环境中存储数据,该存储环境在许多情况下远离呈现给用户的本地接口。

这些计算存储环境可以使用通常协同工作的许多存储设备(如盘驱动器)来存储、检索和更新大量的数据,该数据然后可以提供给请求或发送数据的主机计算机。在一些情况下,大量的数据存储子系统作为单个数据存储系统统一管理。这些子系统可以通过主机“sysplex(system complex,系统复合)”配置管理,该配置组合若干处理单元或处理单元的簇。以此方式,通常包括各种类型的存储设备的多层/多系统计算环境可以用于组织和处理大量的数据。

发明内容

当前的分层存储架构要求用户(如系统管理员)亲自管理在哪一个存储等级和相关层上将创建或迁移给定的存储单元(如卷)。因为用户不能识别动态操作环境中的存储单元的优化布置,所以在一些情况下不能实现对这样的布置的理想解决方案。

考虑以上,存在对用于存储单元的动态分配和迁移的机制的需要,从系统性能观点来看,该机制重复地并准确地确定对于存储单元布置的优化解决方案。相应地,提供各种方法、系统和计算机程序产品实施例用于计算存储环境中的多个存储池的每个之间的数据迁移。

在一个这样的实施例中,仅通过示例方式,提供了一种用于多个存储池的每个之间的数据迁移的方法。多个存储池的每个通过分配给多个存储池的任何一个存储池的数据段之间共享的度量(metric)分类。基于该度量在多个存储池的任何一个存储池中确定该数据段的优先级。以预定间隔以及基于该度量,对于多个存储池的每个执行至少一个发现处理。一个这样的处理发现多个存储池的子池上具有最高优先级的数据段是否大于多个存储池的父池上具有最低优先级的数据段。如果是,如果空间可用,则将子池上具有最高优先级的数据段提升到父池。

另一个这样的处理发现多个存储池的子池上具有最低优先级的数据段是否小于多个存储池的父池上具有最高优先级的数据段。如果是,如果空间可用,则将父池上具有最高优先级的数据段降级到父池。按照将子池上具有最高优先级的数据段提升到父池和将父池上具有最高优先级的数据段降级到子池,保留子池和父池上具有最高优先级的数据段的副本,以便允许以恒定时间迁移回来。

除了前述示例性实施例,提供了各种其它方法、系统和计算机程序产品实施例,并且提供相关优点。

附图说明

为了更容易地理解本发明的优点,将通过参考附图中图示的特定实施例呈现上面简要描述的本发明的更具体描述。要理解本发明的这些附图描绘本发明的实施例,因此不被认为是限制其范围,将通过附图的使用以额外的特征和细节描述和说明本发明,附图中:

图1图示根据特定实施例的示例性计算存储环境的方块图;

图2图示示例性分级树结构的方块图,其中例如存储树内的给定级别的节点的每个集合表示包含区间池的区间层;

图3图示包括用于区间池节点的数据结构和用于区间的数据结构的示例性数据结构;

图4图示用于分层存储环境中池之间的数据段的发现和提升的示例性方法;以及

图5图示用于分层存储环境中池之间的数据段的发现和降级的示例性方法。

具体实施方式

图示的实施例提供用于在分级的虚拟存储树内(例如经由发现和提升/降级)动态地迁移数据单元的机制。该机制用于基于各种度量(如输入/输出(I/O)请求)保持诸如负载平衡和数据的优化放置的特性。此外,图示实施例的机制提供用于“冷”数据段(如区间(extent))的快速迁移(恒定时间)。因为相同段可以存在于虚拟存储树的两个层上,所以段的提升或降级可以在将指针移到该段时迅速执行,假设该段在迁移层中没有被修改。

如将进一步描述的,本发明的一些实施例可以在树数据结构上使用并入图论的方法学,其中存储树内的给定级别的每个节点集合表示包含段池的数据段(再次例如区间)层。树的根节点可以表示包含所谓的“最热”数据的最高级别层,并且随后的子节点表示“较冷数据”。相同层(树级别)内的存储池可以称为表亲。

热和冷数据可以对应于多个数据度量,如具有最高I/O速率的数据,或者本领域普通技术人员将理解的其他度量,如读取到写入速率、对于特定存储类别(例如,高速缓存、固态驱动器(SSD)、硬盘驱动器(HDD)、独立盘的冗余阵列(RAID)等级等)在预定时间间隔上的存取。在确定池之间是否应当发生迁移操作时,用于子节点的相同数据度量比较被用于父节点。通常来说,分配给父节点的那些数据段因此展现比分配给子节点的那些更多的考虑中的特定度量的属性。

相同层(树级别)内的存储池可以称为表亲。对于一层内的给定节点集合,每个节点可以表示包含按照池的度量排序的列表的段池,并且包括列出最近提升或降级的段的两个先入/先出队列。按照迁移日期排序的队列表示在相邻池内存在以潜在地允许数据以恒定时间迁移回来的那些段,假设数据还没有修改。

对于给定池,数据段只能被删除,假设区间已经提升(存在于较高层中),并且进一步地在复制到该池时,没有足够空间存在。然后,从提升列表的底部(最老)删除数据段。在一些实施例中,如果特定段不能在父子关系内迁移,则该段可以迁移到表亲。最后,替代提升和降级操作,在父子关系内可以出现交换操作,如将进一步描述的。

现在转到图1,图示了根据某些实施例的计算存储环境100的框图。计算存储环境100包括第一计算设备,如存储服务器102,其耦合到一个或多个计算设备,如客户端104。在某些实施例中,存储服务器102和客户端104可以包括任何适当的计算设备,包括本领域已知的那些,如个人计算机、工作站、大型机、中型计算机、网络装置、掌上型计算机、电话设备、平板计算机、手持式计算机等。

在一些实施例中,存储管理器106(如国际商用机器出售的Storage(TSM))可以用于根据本发明的各方面安全地存储和管理数据段。存储管理器106可以在存储管理服务器(如TSM服务器102)或其他中运行。在一个实施例中,存储管理器可通过和/或结合示出的处理器设备105操作。本领域普通技术人员将意识到,处理器105、存储管理器106、和相关的额外处理和/或存储器组件可以预期。IBM、Tivoli和Tivoli StorageManager是IBM公司的商标或注册商标。

TSM可以提供数据存储服务给客户端(如TSM客户端104a)用于数据的管理。TSM服务器102可以存储由一个或多个TSM客户端104a发送给TSM服务器102的文件。存储管理器106和/或处理器设备105可以允许系统管理员配置存储池,其中存储池包括用于存储从TSM客户端104a接收的数据的一组设备。存储池用作用于来自TSM客户端104的存储操作的目标,并且在TSM服务器策略和用于处理的其他构造中被参考。

如所示的,多个存储设备可以组织成存储分级。存储分级内的存储介质因此可以分组成在此称为存储池的数据结构。存储分级可以组织成与一个或多个度量(如之前描述的性能度量)对应。如所示的,存储分级108可以组织,使得分级的顶部可以包括高速缓存池110,其具有最高量或质量的特定性能度量。在高速缓存池110下面,大量的SSD类别设备可以通过相同度量组织成SSD池(例如,SSD池112和114)。在SSD池112和114下面,然后可以组织第一层的盘池(例如,盘池116、118和120)。

通过展现度量的更大量、更强属性或多个属性、或者质量,第一层盘池可以位于第二层盘池(例如,盘池122、124和126)上面。在第二层盘池下面,然后可以组织额外的一层带池(例如,带池128、130和132)。下面将进一步描述对于这样的存储分级108的组织的各种考虑。在一个实施例中,系统管理员可以通过对TSM管理客户端104b或其他机构输入,帮助执行存储分级108中的这样的组织。

考虑到图1,转向图2,描绘了存储池的分级树结构200的框图。分级树结构200示出如之前描述的父子关系的和表亲-表亲关系的各种存储池。这里再次说明,各种父、子和表亲池可以对应于特定度量(如性能度量)的展现的属性。这可以包括如读取/写入比率、每特定时间的写入数量、分条和分区特性、以及其他相关测量的测量。池208在图示实施例中描绘为顶层202中的树结构200的根。在池208下面,在层204中包含额外的表亲池210和212的集合。在池210更下面,在层206中包含额外的表亲池214、216、218和220的集合。如本领域技术人员将意识到的,对于特定实现,预期包括各种表亲池的任何数量的额外层。

各种存储池208-220的每个通过各种箭头222、224、226、228、230、232、234、236、238和240相互相关,如所示的。水平箭头226、236、238和240表示相同层的池210和212、以及214、216、218和220之间的表亲关系。从左到右,表亲池可以展现增加的质量或与度量相关的属性。在层202、204和206之间,根据父子池关系,该属性可以比表亲池之间变化更显著。与水平箭头226、236、238和240相反,垂直箭头222、224、228、230、232和234表示层202、204和206每个之间的父子关系。

为了图示父池和子池以及表亲池之间的各种关系,考虑以下示例。使用预定时间间隔上的访问的示例性性能度量,可以组织各种存储池208-220的每个,使得分配给分级树的根(例如,池208)的数据段可以展现最热I/O活动性(例如,每间隔的最大数量的访问)。层204中的池210和212然后可以展现每间隔的少一定量的访问,并且池214、216、218和220可以展现每间隔的更少的访问。横跨特定层从左到右行进,左侧池(例如,池214)可以展现比右侧池(例如,池216)少的每间隔的访问,这相应地增加,直到在最右侧池(例如,池220)中实现每给定层的最大数量的访问。

相应地,然后分级中的任何一个层中的表亲池的每个包含对于考虑的特定度量的最小和最大属性、质量、数量等。例如,分配给特定存储池的特定数据段满足在该特定池中的数据段之间共享的度量的最小数量的属性等,但是不超过该特定池的度量的最大属性。

如前所述,各个层202、204、206(以及其它目前没有图示的层)的每个可以组织为不仅与特定度量一致,而且与特定池中的数据段所分配的存储介质的特性和度量之间的关系一致。例如,并且如前所述,层202可以组织为与高速缓冲等级一致。类似地,层204可以组织为与SSD类别设备和/或独立盘冗余阵列(RAID)-10等级一致。最后,层206可以组织为与带类别设备和/或RAID-5等级一致。以此方式,特定池中的各种数据段所分配的存储介质的每个根据与存储介质自身相关联的属性,还承担对层和/或池的一些关系。

转到图3,下面示出用于分级树结构中的节点(在该情况下,按照区间组织)的各种示例性数据结构。第一数据结构302包括要与分级树中的任何一个区间存储池相关联的信息。该信息包括考虑的特定区间度量、特定池中的区间的访问列表、调度为提升到较高池(例如,父池或较高的表亲池)的各种区间的提升队列、调度为降级到较低池(例如,子池或较低的表亲池)的各种区间的降级队列、以及与相关子池、表亲池和父池有关的信息。这样的信息可以保留在与特定区间池相关联的元数据中,或者可以使用本领域普通技术人员已知的其它机制与池相关联。

以类似于数据结构302的方式,与用于区间池内的特定区间的数据结构304相关联的信息包括这样的度量信息,如写入或读取计数器数据、区间被提升的最后时间(其可以具有时间戳)、以及将区间初始化为错误并且在写入时设置的标志。存储管理器106(再次参考图1)可以在分级树内的数据段的组织、提升和降级时保持并更新这样的数据结构302和304。

下面图4和5分别图示用于分级树结构中的存储池之间的数据段的发现和提升、以及分级树结构中的数据段的发现和降级的示例性方法400和500的流程图。在下面的图4和5中,发现并提升和/或降级的数据段是区间。如本领域普通技术人员将意识到的,方法400和500中的各个步骤可以以不同方式实现以适合特定应用。此外,描述的方法可以通过各种方式实现,如在计算存储环境上操作的或者与计算存储环境相关联的硬件、软件、固件或其组合。例如,方法400和500可以部分地或全部地实现为计算机程序产品,其包括在其中存储计算机可读程序代码部分的计算机可读存储介质。计算机可读存储介质可以包括盘驱动器、闪存、数字多功能盘(DVD)、致密盘(CD)和其它类型的存储介质。

首先转到图4,方法400图示了用于分级树结构中的区间的示例性发现和提升处理。方法400开始(步骤402),其中通过所有区间层的重复行进分级树结构的n级别顺序横跨,其中从最高层中的最低级别池开始(步骤404)。然后在给定层中,然后重复每个池(步骤406)。对于给定层中的任何一个池,基于考虑的度量,方法400询问具有最高“优先级”的区间(即,具有度量的最大数量、最强属性、或最大质量等的区间)是否在优先级上大于具有最低优先级的相应的父区间(步骤408)。如果不是,则该方法然后重复到给定层中的下一(向右)池。

如果情况如此,则方法400询问最常访问的区间是否未改变地存在于父降级队列中(步骤410)。如果是,则将该区间从父池的降级队列去除(步骤412),并且该区间排入到提升队列(步骤414)。从当前池的访问列表移除该区间(步骤416),并且将其添加到提升池的访问列表(步骤418)。然后,方法400重复到下一存储池(从步骤406再次开始)。

返回步骤410,如果情况并非如此,则方法400询问该区间是否将适于父池(步骤420)。如果是,则在恒定时间复制操作中将该区间复制到父池(步骤422),并且如前所述执行步骤414、416和418。可替代地,如果在父池中没有找到空间,则该方法查询父池是否包含提升的或降级的区间(步骤424)。如果是,则从子提升或降级队列中去除该区间以保持平衡并释放该区间(步骤426)。如果父池不包含提升或降级的区间,则恢复父的提升和降级队列(步骤428),并且方法400返回步骤406以通过给定层中的额外存储池重新重复。当每个区间层中的所有区间池(再次从最高到最低)已经重复时,方法400结束(步骤430)。

如本领域普通技术人员将意识到的,方法400(以及现在要描述的500)可以在按调度的间隔执行。该调度可以按照计算存储环境的各种实现出现。例如,该调度可以与高和/或低存储活动性的时段一致。该调度可以由系统管理员使用存储管理器106(图1)或通过其它类似手段配置。

现在转到图5,方法500图示了用于分级树结构中的区间的示例性发现和降级处理。方法500开始(步骤501),并且通过所有区间层的重复行进分级树结构的相反n级别顺序横跨,其中从最低层中的最低级别池开始(步骤502)。然后在给定层中,然后重复每个池(步骤504),并且对于每个给定池,重复对应的子池(步骤506)。对于给定层中的任何一个池,基于考虑的度量,方法500询问具有最低“优先级”的区间(即,具有度量的最低数量、最弱属性、或最小质量等)是否在优先级上低于具有最高优先级的相应的父区间(步骤508)。如果不是,则该方法然后重复到给定层中的下一(向右)子池(再次从步骤506开始)。

如果情况如此,则方法500询问最少访问的区间是否未改变地存在于子提升队列中(步骤510)。如果是,则将该区间从子池的降级队列去除(步骤512),并且该区间排入到降级队列(步骤514)。从当前池的访问列表移除该区间(步骤516),并且将其添加到降级池的访问列表(步骤518)。然后,方法500重复到下一存储池(从步骤504再次开始)。

返回步骤510,如果情况并非如此,则方法500询问该区间是否将适于子池(步骤520)。如果是,则在恒定时间复制操作中将该区间复制到父池(步骤522),并且如前所述执行步骤514、516和518,返回步骤504以通过给定层上的额外池重复。可替代地,如果在父池中没有找到空间,则该方法查询子池是否包含提升的或降级的区间(步骤524)。如果是,则从子提升或降级队列中去除该区间以保持平衡并释放该区间(步骤526)。如果子池不包含提升或降级的区间,则恢复子的提升和降级队列(步骤528),并且方法500返回步骤506以通过额外子池重新重复。当每个区间层中的所有区间池(再次从最低开始)已经重复时(再次从步骤502开始),方法500结束(步骤530)。

如本领域技术人员将意识到的,本发明的各方面可以体现为系统、方法或计算机程序产品。相应地,本发明的各方面可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,其在此一般可以全部称为“电路”、“模块”或“系统”。此外,本发明的各方面可以采用计算机程序产品的形式,该计算机程序产品体现在其上体现计算机可读程序代码的一个或多个计算机可读介质。

可以利用一个或多个计算机可读介质的任何组合。例如,计算机可读介质可以是(但不限于)电、磁、光、电磁、红外、或半导体系统、装置或设备,或者前述的任何适当的组合。计算机可读存储介质的更具体示例(非穷尽性列表)将包括以下:具有一个或多个接线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式致密盘只读存储器(CD-ROM)、光存储设备、磁存储设备或前述的任何适当组合。在本文的上下文中,计算机可读存储介质可以是任何刚性介质,其能够包含或存储通过或结合指令执行系统、装置或设备使用的程序。

体现在计算机可读介质上的程序代码可以使用任何适当的介质传输,该介质包括但不限于无线、有线、光纤电缆、RF等或者前述的任何适当组合。用于执行本发明的各方面的操作的计算机程序代码可以以一种或多种编程语言的任何组合编写,该编程语言包括面向对象编程语言(如Java、Smalltalk、C++等)和传统过程编程语言(如“C”编程语言或类似编程语言)。程序代码可以完全在用户的计算机上执行、作为单机的软件包部分在用户的计算机上执行、部分在用户的计算机上并且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后者情景中,远程计算机可以通过任何类型的网络连接到用户的计算机,该网络包括局域网(LAN)或广域网(WAN)、或者可以连接到外部计算机(例如,使用因特网服务提供商连接到因特网)。

以下参考根据本发明实施例的方法、装置(系统)和计算机程序代码的流程图图示和/或方块图描述了本发明的各方面。将理解的是,流程图图示和/或方块图的每个块以及流程图图示和/或方块图的每个块能够通过计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或方块图方块或多个方块中指定的功能/动作的部件。

这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质能够指导计算机、其他可编程数据处理装置或其他设备以特定方式工作,使得计算机可读介质中存储的指令产生包括实现流程图和/或方块图方块或多个方块中指定的功能/动作的指令的制造产品。计算机程序指令还可以加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程数据处理装置或其他设备上执行以便产生计算机实现的处理,使得在计算机或其他可编程数据处理装置上执行的指令提供用于实现流程图和/或方块图方块或多个方块中指定的功能/动作的处理。

上面附图中的流程图和方块图图示根据本发明各个实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或方块图中的每个方块可以表示代码的模块、片段或部分,其包括用于实现指定的(多个)逻辑功能的一个或多个可执行指令。还应当注意,在一些可替代实现中,方块中表示的功能可以不按图中所示顺序出现。例如,根据涉及的功能,连续示出的两个块实际上可以基本同时地执行,或者各方块有时候可以以相反顺序执行。还将注意的是,方块图和/或流程图图示的每个方块以及方块图和/或流程图图示中的方块的组合能够由执行专用功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合实现。

尽管已经详细图示了本发明的一个或多个实施例,但是本领域普通技术人员将意识到,可以对这些实施例进行修改和适应,而不偏离权利要求提出的本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号