将预先存在数据导入存储池供新存储方案使用的方法和系统的制作方法

文档序号:6369056阅读:148来源:国知局
专利名称:将预先存在数据导入存储池供新存储方案使用的方法和系统的制作方法
技术领域
本发明总体上涉及改进的数据处理装置和方法,并且更具体地涉及用于将先前存储方案的预先存在的数据导入存储池以供新的存储方案使用的机制。
背景技术
随着新的数据存储管理方案引入到客户环境中,常常需要维护对旧存储管理方案内创建的预先存在的数据的继续使用。通常以三种方式之一来处理该对预先存在的数据的继续使用。在第一选项中,并行维持预先存在的存储管理方案与新存储管理方案。该选项限制了客户,因为较新的存储管理方案所具有的新功能不能与在较旧的存储管理方案继续管理下的预先存在的数据共享。此外,该选项引入附加的管理复杂度,因为旧存储管理方案 必须与新存储管理方案一同维护。在第二选项中,可将数据转储到原始格式介质,例如磁带,并继而就如其为新数据一样再导入新存储管理方案中。由于所涉及到的大量的数据和在系统之间(例如在主系统和原始格式介质系统之间)移动数据并继而从原始格式介质系统移回配置有新存储管理方案的系统所需的时间,该方案往往是不切实际的。作为第三选项,可开发新的存储管理方案,从而确保与旧存储管理方案的兼容性,并因此仅附加到预先存在的存储管理方案。该选项常常将用户限制在来自ー个专有供应商的产品线,即,客户仅能从同一个供应商获得存储管理方案,因为客户需要对预先存在的数据进行访问的向后兼容性,并且由于新存储管理方案局限于提供向后兼容性的要求,所以通常不扩展对预先存在的数据的数据管理能力。这主要是因为存储管理方案中的数据常常紧密地联系在一起,并且由专属于预先存在的存储管理方案的内部存储方案元数据来描述。

发明内容
在一个说明性实施例中,在数据处理系统中提供了一种用于将预先存在的数据导入利用当前存储管理系统的存储系统的方法,所述当前存储管理系统与用于创建预先存在的数据的原始存储管理系统不同。所述方法包括将ー个或多个数据存储设备就地集成到存储系统中,而不修改存储在ー个或多个数据存储设备上的预先存在的数据。所述方法进ー步包括基于预先存在的数据中的数据的线性级数(linear progression)创建用于预先存在的数据的元数据。此外,所述方法包括使用创建的元数据执行目标为预先存在的数据的读访问请求。此外,所述方法包括通过将写访问请求重定向到在另一存储位置中创建的预先存在的数据的副本,执行目标为预先存在的数据的写访问请求。在其它说明性实施例中,提供了ー种包括计算机可用或可读介质的计算机程序产品,所述计算机可用或可读介质具有计算机可读程序。当计算机可读程序在计算设备上执行时,通过执行上文关于所述方法的说明性实施例概述的操作中的各种操作及其组合,使得所述计算设备将预先存在的数据导入利用当前存储管理系统的存储系统,所述当前存储管理系统与用于创建预先存在的数据的原始存储管理系统不同。在又一说明性实施例中,提供了系統/装置,其包括存储管理系统和存储系统,所述存储系统包括存储有使用所述存储管理系统创建的数据的ー个或多个第一数据存储设备。存储管理系统被配置为执行上文关于所述方法说明性实施例概述的操作中的各种操作及其组合。将在下文对本发明的示例实施例的详细描述中描述本发明的这些和其它特点和优点,或者鉴于下文对本发明的示例性实施例的详细描述,本发明的这些和其它特点和优点对本领域技术人员将变得明显。


当结合附图进行阅读时,通过參照下文对说明性实施例的详细描述,本发明以及使用的优选方式和进ー步的其的目标和优点将最佳地得到理解,其中 图I是其中可以实现说明性实施例的方面的示例分布式数据处理系统的图形化表不;图2是其中可以实现说明性实施例的方面的示例数据处理系统的框图;图3是根据一个说明性实施例的多层数据存储系统的示例图;以及图4是概述了根据ー个说明性实施例的、用于将预先存在的LUN导入利用新存储管理系统的多层存储系统中的示例操作的流程图。
具体实施例方式通过提供用于将先前存储方案的预先存在的数据“就地”导入供新的存储方案使用的存储池的机制,说明性实施例解决了现有技术中的问题。术语“就地”意为无需将数据转储成中间原始格式介质上的原始格式,而是数据可继续驻留在其在较旧存储管理方案下最初所驻留的完全相同的物理介质上。将根据对应于逻辑单元编号(LUN)的存储设备中所提供的数据描述所述说明性实施例。LUN是分配给存储系统的逻辑单元的编号。存储系统的逻辑单元包括通过小型计算机系统接ロ(SCSI)协议或类似协议(诸如Fibre Channel或iSCSI)来寻址的一个或多个存储设备。LUN可用干支持读/写操作的任何设备,诸如磁带机、硬盘、固态盘等,但是最常见的是用于指代在存储区域网络(SAN)中创建的逻辑盘。尽管LUN是ー个或多个物理存储设备上的一组存储位置的实际逻辑标识符,但是术语LUN常常用于指代物理设备或逻辑盘本身,并且在此也将使用此惯例。根据在此描述的说明性实施例,将“就地”存储“旧”数据的ー个或多个预先存在的LUN(即,一组或多组存储位置)导入具有新存储管理池的多层存储系统的分离的非元数据存储层,即,可包括在先前存储管理系统下创建的预先存在的或“旧”数据以及在新存储管理系统下创建的“新”数据的多个LUN的集合。在具有新存储管理池的多层存储系统的元数据存储层内维护用于描述预先存在的LUN的线性布局的元数据。通过新存储管理元数据可容易地描述预先存在的LUN的线性布局,并且使用新元数据描述执行对预先存在的LUN的任何访问。一旦通过使用新元数据描述的新存储管理池开始发生访问,则可将新存储管理系统的高级能力(诸如快照、克隆等)应用干“旧”数据。以此方式,新元数据“缠绕”预先存在的LUN,从而使得新存储管理系统的新功能可以运用干“旧”数据,而无需实现上文关于现有技术描述的低效率的、复杂的或不切实际的机制。此外,说明性实施例的机制的使用允许对预先存在的或“旧”数据进行新的修改,以重定向到新存储管理池中的不同的及新的LUN。也就是说,当对预先存在的或“旧”数据执行新的修改时,可对新存储管理池的新LUN中的旧数据的新的副本执行该修改,并且随后可将对所述数据的未来访问重定向到数据的此新的副本。以此方式,可将预先存在的或“旧”数据逐渐地迁移到使用新存储管理系统的新元数据的新存储管理池的新LUN上。如本领域的技术人员将理解的那样,可将本发明具体化为系统、方法或计算机程序产品。相应地,本发明的方面可采取以下形式全硬件实施例、全软件实施例(包括固件、常驻软件、微代码等)或组合软件与硬件方面的实施例,其在本文中通常均可称为“电路”、“模块”或“系統”。此外,本发明的方面可采取计算机程序产品的形式,其具体化为其上具有计算机可用程序代码的任何一个或多个计算机可读介质。
可利用一个或多个计算机可读介质的任意組合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限干,电子、磁性、光学、电磁、红外或半导体系统、装置、设备,或前述任意适当的组合。计算机可读存储介质的更具体的示例(非穷举性列表)将包括下列各项具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或闪存)、光纤、便携式紧致盘只读存储器(CDROM)、光学存储设备、磁性存储设备或前述的任意适当的组合。在本文献的上下文中,计算机可读存储介质可以是能够包含或存储供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任何有形介质。计算机可读信号介质可包括例如在基带中或作为载波的一部分、其中具有计算机可读程序代码的传播的数据信号。这种传播的信号可采取各种形式,包括但不限干电磁、光学或其任意适当的组合。计算机可读信号介质可以是任何计算机可读介质,其并非计算机可读存储介质并且可传达、传播或传送供指令执行系统、装置或设备使用的或与指令执行系统、装置或设备结合使用的程序。可使用任何适当的介质来传输计算机可读介质上所具有的计算机代码,所述介质包括但不限于,无线、有线线路、光纤电缆、射频(RF)等或其任意适当的组合。可以以ー种或多种编程语言的任何组合来编写用于执行本发明方面的操作的计算机程序代码,所述语言包括面向对象的编程语言,诸如Java 、Smalltalk 、C++等,以及常规的过程编程语言,诸如“ C”编程语言或类似编程语言。程序代码可以作为单机软件包全部在用户的计算机上或部分地在用户的计算机上执行,或者部分地在用户的计算机上且部分地在远程计算机上或全部在远程计算机或服务器上执行。在后一种情况下,可通过任何类型的网络将远程计算机连接到用户的计算机,该任何类型的网络包括局域网(LAN)或广域网(WAN),或者可连接到外部计算机(例如,使用因特网服务供应商通过因特网)。下文參照根据本发明的说明性实施例的方法、装置(系统)和计算机程序产品的流程示和/或框图来描述本发明的方面。将理解,可通过计算机程序指令来实现流程示和/或框图中的各个块以及流程示和/或框图中的块的组合。可将这些计算机程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生机器,从而使得在经由计算机或其它可编程数据处理装置的处理器执行所述指令时,所述指令创建用于实现流程图和/或一个或多个框图块中所指定的功能/动作的装置。还可将这些计算机程序指令存储在计算机可读介质中,所述计算机可读介质可引导计算机、其它可编程数据处理装置或其它设备以特定的方式运行,从而使得存储在计算机可读介质中的指令产生包括实现流程图和/或一个或多个框图块中所指定的功能/动作的指令的制品。还可将计算机程序指令载入计算机、其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列的操作步骤以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或ー个或多个框图块中所指定的功能/动作的过程。附图中的流程图和框示了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。就这点而言,流程图或框图中的各个块可表示代码 的模块、片段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。还应注意,在ー些备选实现中,块中所标注的功能的执行可不同于附图中所标注的顺序。例如,实际上,可大体上同时执行图中连续示出的两个块,或者取决于所涉及的功能,有时可以按照相反的顺序执行所述块。还应注意,可以通过执行指定功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合,来执行框图和/或流程示的各个块以及框图和/或流程示中的块的组合。因此,可在许多不同类型的数据处理环境中利用所述说明性实施例,所述数据处理环境包括分布式数据处理环境、单个数据处理设备等。为了提供对说明性实施例的特定元件和功能进行描述的上下文,下文提供图I和图2作为其中可实现说明性实施例的方面的示例环境。应理解,图I-图2仅为示例,并且并不g在声明或暗示关于其中可实现本发明的方面或实施例的环境的任何限制。可对所描绘的环境进行诸多修改,而不背离本发明的精神和范围。现在參照附图,图I描绘了其中可实现说明性实施例的方面的示例分布式数据处理系统的图形化表示。分布式数据处理系统100可包括其中可实现说明性实施例的方面的计算机的网络。分布式数据处理系统100包含至少ー个网络102,该网络102是用于在分布式数据处理系统100内连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可包括诸如有线、无线通信链路或光纤电缆之类的连接。在所描绘的示例中,服务器104和服务器106连同存储单元108 —起连接到网络102。此外,客户端110、112和114也连接到网络102。这些客户端110、112和114例如可以是个人计算机、网络计算机等。在所描绘的示例中,服务器104向客户端110、112和114提供诸如引导文件、操作系统镜像和应用程序之类的数据。在所描绘的示例中,客户端110、112和114是服务器104的客户端。分布式数据处理系统100可以包括未示出的附加服务器、客户端和其它设备。在所描绘的示例中,分布式数据处理系统100是具有网络102的因特网,该因特网表示使用传输控制协议/因特网协议(TCP/IP)成套协议彼此通信的网络和网关的世界范围的汇集。因特网的中心是主节点或主计算机之间的高速数据通信线路的主干,所述主干由上千商业的、政府的、教育的以及其它对数据和消息进行路由的计算机系统构成。当然,分布式数据处理系统100还可以被实现为包括大量不同类型的网络,例如,内联网、局域网(LAN)、广域网(WAN)等。如上述,图I g在作为示例,而不是对本发明的不同实施例的架构限制,并且因此,图I中所示的特定元件不应被看作是关于可以实现本发明的说明性实施例的环境的限制。现在參照图2,其示出其中可实现说明性实施例的方面的示例数据处理系统的框图。数据处理系统200是诸如图I中的客户端110之类的计算机的示例,在该数据处理系统200中可以定位实现本发明的说明性实施例的过程的计算机可用代码或指令。在所描绘的示例中,数据处理系统200采用集线器架构,该架构包括北桥和存储器控制器集线器(NB/MCH)202以及南桥和输入/输出(I/O)控制器集线器(SB/ICH)204。处理单元206、主存储器208和图形处理器210连接到NB/MCH 202。图形处理器210可通过加速图形端ロ(AGP)连接到NB/MCH 202。在所描绘的示例中,局域网(LAN)适配器212连接到SB/ICH 204。音频适配器 216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM) 224、硬盘驱动器(HDD) 226、⑶-ROM驱动器230、通用串行总线(USB)端口和其它通信端ロ 232,以及PCI/PCIe设备234通过总线238和总线240连接到SB/ICH 204。PCI/PCIe设备例如可以包括用于笔记本式计算机的以太网适配器、内插卡和PC卡。PCI使用卡总线控制器,而PCIe则不使用卡总线控制器。ROM 224例如可以是闪速基本输入/输出系统(BIOS)。HDD 226 和 CD-ROM 驱动器 230 通过总线 240 连接到 SB/ICH 204。HDD 226 和CD-ROM驱动器230例如可以使用集成驱动电子设备(IDE)或串行高级技术附件(SATA)接ロ。超级1/0(SIO)设备236可以连接到SB/1CH 204。操作系统在处理单元206上运行。操作系统协调并提供对图2中的数据处理系统200内的各种组件的控制。作为客户端,操作系统可以是可商购的操作系统,诸如MicrosoftWindows 7 (Microsoft和Windows是微软公司在美国和/或其它国家的商标)。可结合操作系统运行面向对象的编程系统(诸如Java编程系统)并且从Java程序或在数据处理系统200上执行的应用程序向操作系统提供调用(Java是Oracle和/或其附属公司的商标)。作为服务器,数据处理系统200例如可以是运行高级交互式执行(AIX )操作系统或 LINUX 操作系统的IBM eServer System p 计算机系统(IBM、eServer、System p,和AIX是国际商用机器公司在美国和/或其它国家的商标,并且LINUX是Linus Torvalds在美国和/或其它国家的注册商标)。数据处理系统200可以是对称多处理器(SMP)系统,其包括处理单元206中的多个处理器。备选地,可采用单个处理器系统。用于操作系统、面向对象的编程系统和应用程序或程序的指令位于诸如HDD 226之类的存储设备上,并且可被载入主存储器208以由处理单元206执行。可由处理单元206使用计算机可用程序代码执行本发明的说明性实施例的过程,所述计算机可用程序代码可以位于诸如主存储器208、ROM 224之类的存储器中,或位于例如ー个或多个外围设备226和230中。总线系统(诸如图2中所示出的总线238或总线240)可包括ー个或多个总线。当然,可使用任何类型的如下通信结构或架构来实现总线系统,所述通信结构或架构在附着于所述结构或架构的不同组件或设备之间提供以用于数据传输。诸如图2的调制解调器222或网络适配器212之类的通信単元可包括用于传送和接收数据的ー个或多个设备。存储器可以是例如,主存储器208、ROM 224,或诸如在图2中的NB/MCH 202中可找到的之类的高速缓冲存储器。本领域的普通技术人员将理解,图I-图2中的硬件可取决于实现而变化。除了图I-图2中所描绘的硬件外或替代图1-2中所描绘的硬件,还可使用其它内部硬件或外围设备,诸如闪速存储器、等效非易失性存储器或光盘驱动器等。除了上文提及的SMP系统,所述说明性实施例的过程还可应用于多处理器数据处理系统,而不背离本发明的精神和范围。此外,数据处理系统200可采取大量不同的数据处理系统中的任何系统的形式,所述数据处理器包括客户端计算设备、服务器计算设备、平板计算机、膝上型计算机、电话或其它通信设备、个人数字助理(PDA)等。在一些说明性示例中,数据处理系统200可以是例如配置有闪速存储器以提供用于存储操作系统文件和/或用户生成的数据的非易失性 存储器的便携式设备。本质上,数据处理系统200可以是没有架构限制的任何已知或以后研发的数据处理系统。如上所述,说明性实施例提供用于将预先存在的数据“就地”导入与新存储管理系统相关联的新存储管理池的机制。例如,再次參照图1,假设计算系统(诸如服务器104和/或106)具有相关联的多层数据存储系统,诸如可存储在一个或多个网络附加存储单元108或与服务器104和/或106中的ー个或多个相关联的其它存储设备中。在一个说明性实施例中,多层数据存储系统是集群文件系统和存储池系统,如下文将描述的那样。图3是根据一个说明性实施例的多层数据存储系统的示例图。如图3中所示,多层数据存储系统300是具有配置在层或组310、320和330中的存储设备集312_316、322_328和332-338的存储系统,其中每个层或组可具有不同的性能,并且可配置用于存储不同类型的数据。例如,在一个说明性实施例中,多层存储系统300的低层330可与非频繁访问的数据相关联,中间层320可与较频繁访问的数据相关联,顶层310可与高速缓存数据或频繁访问的数据相关联,等等。存储设备的每个层310、320和330可包括相同或不同类型的一个或多个物理存储设备312-316、322-328和332-338。例如,多层存储系统300的低层330可包括用于存档目的的相对低速硬盘驱动器,而由于其相对高速访问性能,多层存储系统的顶层310可包括固态盘(SSD)等。可使用具有更多或更少的层和不同类型存储设备的其它类型的多层结构300,而不背离说明性实施例的精神和范围。根据ー个说明性实施例,多层存储系统300是集群文件系统和存储池系统的组合,其中LUN为存储池的一部分,并且存储的总计容量表现为对集群文件系统的可用存储空间。存储池包括多个存储层310、320和330,并且取决于诸如访问使用率等之类的性能标准,可将特定的数据置于特定的层上。因此,如上文所讨论的,可将非频繁访问的数据置于存储层330中,而将频繁访问的数据置于存储层310中。根据说明性实施例,多层存储系统300包括用于存储元数据(即,对存储在其它层310,320和330中的数据进行描述的数据)的多层存储系统300的一个或多个存储设备的层305。这被称为系统存储层305,并且如果用户在多层存储系统300的特定实现中未明确地建立独有存储层,则实际上可存储元数据以及用户数据。除系统存储层305以外的所有其它层310、320和330仅包含用户数据。因此,用户数据的描述性元数据看起来是(并且可以实际上是)可与元数据所描述的用户数据分离地存储。由于用户数据的元数据与实际用户数据本身分离地存储,所以可将预先存在的LUN中的预先存在的数据“就地”导入存储池,而最初导入的LUN没有数据移动。根据说明性实施例,当被导入具有新存储管理系统的新存储系统300吋,预先存在的或“旧”数据可被“就地”带到新存储系统300中,而无数据移动。也就是说,可将物理存储设备带到系统300中而无修改。新存储管理系统可利用与用来创建预先存在的或“旧”数据的先前存储管理系统使用的元数据不兼容的元数据,以用于描述存储系统300中的数据。也就是说,对于存储管理系统,所采用的存储虚拟化方案在其用于将虚拟转换到物理数据寻址的布局和操作能力上有所变化。例如,一些存储管理系统虚拟化方案(诸如说明性实施例的示例的预先存在的或“旧”数据存储管理系统)相当地简化,并且除了将ー组物理盘呈现为ー个虚拟LUN(所述虚拟LUN只是物理盘的级联)之外,其几乎不具有虚拟化能力。诸如用于描述说明性实施例的示例的新存储管理系统之类的其它存储管理系统虚拟化方案可能相当复杂,并且具有复杂的如下复杂元数据能力,所述复杂元数据能力允许对多个LUN进行复杂的数据布局, 并且允许物理数据位置的移动,而同时在运行时间内仍呈现不变的虚拟布局。应理解,这仅是示例,并且说明性实施例的使用无需复杂度的相对差别,只是用于创建预先存在的或“旧”数据的存储管理系统的元数据与存储系统300的新存储管理系统的元数据不兼容。可将存储有预先存在的或“旧”数据的物理存储设备并入存储系统300作为与元数据层305分离的独有存储层340,并且在一些说明性实施例中,与多层存储系统300中的其它层310、320和330分离。在其它说明性实施例中,预先存在的或“旧”数据也可以是存储有配置为供新存储管理系统使用的数据的层的一部分。预先存在的或“旧”数据的LUN与存储管理系统360中的接ロ 350相关联,从而使得当读取所述LUN时,将其作为数据的线性级数和与所述数据相关联的偏移(offset)来访问。可将接ロ 350和存储管理系统360实现为软件、硬件或软件与硬件的任意組合。在一个说明性实施例中,将接ロ 350和存储管理系统360实现为由ー个或多个数据处理系统的一个或多个处理器来执行的软件指令。接ロ 350构建对LUN内的数据的线性级数进行详细描述的ー组元数据370,并且在出现在文件系统内的单一文件对象370下对该元数据进行组合。元数据370表示地址和偏移到物理存储设备上的物理存储位置的一対一映射,即,不存在针对导入的预先存在的数据的虚拟化假设。因此,在元数据370中标识出的偏移提供在存储有LUN的物理存储设备上直接指向数据的物理位置的元数据指针。应注意,在对在此阐述的说明性实施例的描述中,假设LUN表示实际物理存储设备,但是说明性实施例并不局限于此。而是,如果用于创建预先存在的数据的存储管理系统支持存储虚拟化方案,则LUN实际上可以是虚拟LUN。因此,当构建对导入的LUN的映射吋,假设为线性布局,这是因为这是外部存储系统所服务的LUN存取器的语义,并且因此,偏移可以指定外部存储控制器内的物理LUN的虚拟映射。再次參照图3,将用于导入的LUN的元数据集合构建为数据的线性级数和与所述数据相关联的偏移有效地给出用于LUN的新的访问名。当通过存储管理系统360读取所述LUN(例如,响应于经由虚拟输入/输出服务器(VIOS) 304的来自逻辑分区(LPAR)客户端302的读请求)时,存储管理系统360的元数据地址转换机制362指向位干与元数据指针相关联的偏移处的预先存在的LUN数据。当写入LUN时,存储管理系统360对写(ROW)操作实现重定向。也就是说,当存在对预先存在的LUN的写入时,生成预先存在的LUN中的预先存在的数据的快照380,即,表示生成数据副本的特定时间的数据状态的数据瞬时副本。在多层存储系统300的相同或不同层310、320、330或340中的新位置处生成预先存在的数据382的副本。继而将对预先存在的数据的修改应用于相同或不同的层310、320、330或340中的数据的新位置。用如下元数据386对“旧”数据的元数据进行更新,该元数据386将对数据(“旧”或修改)的访问重定向到数据382的修改的副本的新位置。该新元数据386采取新存储管理系统360所使用的格式和类型,并且实现新存储管理系统360所实现的任何虚拟化,即,新元数据386利用由新存储管理系统360所实现的用户/虚拟地址空间内的用户空间或虚拟地址,该地址可由地址转换机制362转换成用于对数据382的修改的副本的新位置进行访问的物理地址。
应注意,存储系统能够在存储有在先前存储管理系统下创建的预先存在的数据的LUN和存储有在当前存储管理系统下创建的数据的这些LUN的副本之间进行区分。可以按照大量不同的方式来完成该过程。其中可以实现该过程的ー种方式是通过使用快照和批号(generation number)标签。也就是说,快照可以及时保留特定时间点处的元数据树。无论何时数据块“生干”在说明性实施例的存储系统中(即,其被首次分配),该数据库就与批号(例如批次323)相关联。用指向刚刚分配的块的元数据对批次进行标记,从而使得元数据例如从根本上标识处于位置LUN 20、偏移0x23234的块10,以及标识将此块10分配作为批次323的一部分。当快照被创建时,存储系统从根本上设定将要保存并且不删除批次323或早期批次内的块的条件。当快照被创建时,批次号递增,从而使得在快照之后分配的数据块具有更后的批号,例如,324。因此,存储系统总是可以辨识需要保存哪些数据块,例如,预先存在的或“旧”LUN上的块,以及时间点快照不保存的、并且可以就地更新的块。以此方式,可将预先存在的LUN中的预先存在的数据“就地”导入多层存储系统300中,而不对数据读访问所需的数据进行修改。用于在这些预先存在的LUN上定位数据的元数据使用一対一的地址映射,其中元数据中的地址或指针指向LUN的数据的线性级数内的物理位置。如果数据未被修改,则不更新或移动预先存在的LUN中的预先存在的数据,并且所述数据“就地”保留。如果由于诸如对数据正在执行的写入而正在修改数据,则数据仅移动到另一存储位置,例如,多层存储系统300的另ー层。在这种情况下,生成数据的快照,并且在多层存储系统300的新位置创建数据的副本。对新位置处的数据的副本进行修改,而快照保留恰好在执行修改之前的时间处的数据的原始状态。更新与所述数据相关联的元数据,以指向数据副本的新位置,从而使得在该新数据上执行对数据的未来访问。因此,预先存在的LUN中的预先存在的数据可以递增地迁移到多层存储系统300中,从而使得可以关于所迁移的数据执行新存储管理系统360的新能力。例如,在实现新存储管理系统360之前,由于创建其的先前存储管理系统的限制而不能成为快照主体的LUN现在可以通过说明性实施例的机制和递增迁移能力成为此类高级能力的主体。此外,VIOS304可将迁移的数据或LUN作为新的块设备(例如LUN)呈现给客户端LPAR客户端302。图4是概述了根据ー个说明性实施例的、将预先存在的LUN导入利用新存储管理系统的多层存储系统的示例操作。例如,可以通过多层存储系统的存储管理系统执行图4的操作。如图4中所示,操作开始于预先存在的LUN到多层存储系统的“就地”导入(步骤410)。在用于预先存在的LUN的系统存储层内生成预先存在的LUN的元数据,假定数据的线性级数具有直接指向预先存在的LUN上的数据的物理存储位置的元数据指针(步骤420)。此后,确定是否接收到指向预先存在的LUN的访问请求(步骤430)。如果没有,则操作返回步骤430并且等候接收到访问请求。如果接收到访问请求,则确定所述访问请求是读还是写(步骤440)。如果访问请求是读访问,则将元数据用干“就地”访问来自预先存在的LUN的数据,而不移动所述数据或修改预先存在的LUN的元数据(步骤450)。继而,操作针对将要接收的未来访问请求返回步骤430。如果访问请求是写访问请求(步骤440),则在预先存在的LUN中创建数据的副本,并且在多层存储系统内分离的存储位置中生成新的数据的副本(步骤460)。更新元数据以 指向数据副本的新位置(步骤470)。此后,对新位置中的数据的副本执行由写访问请求做出的修改(步骤480)。所述操作继而终止。应当理解,此后,经由更新的元数据,对同一个数据的读和写访问被指向数据的副本所在的新位置。因此,说明性实施例提供用于从预先存在的LUN或数据的其它物理或逻辑分组将预先存在的数据“就地”导入利用新的或与用于创建预先存在的LUN中的预先存在的数据的存储管理系统不同的存储管理系统的存储系统中的机制。说明性实施例提供用于预先存在的数据从预先存在的LUN向在新存储管理系统下配置的新的LUN逐渐和递增迁移的机制,基于该机制,可实现新存储管理系统的新能力。由此,说明性实施例避免了上文关于已知机制所讨论的缺点。应理解,尽管根据多层存储系统和作为LUN提供的数据来描述说明性实施例,但是说明性实施例和本发明并不局限于此。相反,说明性实施例可用于任何如下存储系统架构,在该存储系统架构中,预先存在的数据可分离地存储或可与在存储系统的存储管理系统下创建的数据区别化存储,从而使得可以根据上述机制处理预先存在的数据。这种存储系统可以是单层存储系统或多层存储系统。此外,除了 LUN之外,还可使用数据的其它分组或逻辑布置,而不背离说明性实施例的精神和范围。例如,可以基于存储系统的层等进行数据的分组或逻辑布置。如上文所提到的,应理解,说明性实施例可采取全硬件实施例、全软件实施例或包含硬件和软件元件这两者的实施例的形式。在一个示例实施例中,以软件或程序代码(包括但不限于固件、常驻软件、微代码等)实现说明性实施例的机制。适用于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接耦合到存储器元件的至少ー个处理器。存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储设备以及对至少ー些程序代码提供临时存储以便減少在执行期间必须从大容量存储设备获取代码的次数的高速缓冲存储器。可将输入/输出(或I/O)设备(包括但不限于,键盘、显示器、指点设备等)直接或通过中介I/o控制器耦合到系统。还可将网络适配器耦合到所述系统,以使得通过中介专用或公用网络能够将数据处理系统变为耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器和以太网卡仅是网络适配器的当前可用类型中的ー些。已经出于图示和描述的目的呈现了对本发明的描述,并且该描述并不g在是穷举性的或将 本发明限制在所公开的形式。诸多修改和变型对本领域普通技术人员而言将是明显的。选择和描述实施例以便最佳地说明本发明和实际应用的原理,并且使得本领域的其它普通技术人员能够理解用于各种实施例以及具有适用于特定预期用途的各种修改的本发明。
权利要求
1.ー种在数据处理系统中用于将预先存在的数据导入利用当前存储管理系统的存储系统的方法,所述当前存储管理系统与用于创建预先存在的数据的原始存储管理系统不同,所述方法包括 将ー个或多个数据存储设备就地集成到所述存储系统中,而不修改存储在所述ー个或多个数据存储设备上的所述预先存在的数据; 基于所述预先存在的数据中的数据的线性级数创建用于所述预先存在的数据的元数据; 使用所述创建的元数据执行目标为所述预先存在的数据的读访问请求;以及 通过将写访问请求重定向到在另一存储位置中创建的所述预先存在的数据的副本,执行目标为所述预先存在的数据的所述写访问请求。
2.如权利要求I所述的方法,其中执行写访问请求进ー步包括 在另一存储位置中创建所述预先存在的数据的副本,其中仅响应于目标为所述预先存在的数据的写访问请求,创建所述预先存在的数据的所述副本。
3.如权利要求2所述的方法,其中所述存储系统是多层数据存储系统,并且其中在与存储所述预先存在的数据的所述ー个或多个存储设备所在的层不同的所述多层数据存储系统的层中,创建所述预先存在的数据的所述副本。
4.如权利要求2所述的方法,进ー步包括 响应于在另一存储位置中创建所述预先存在的数据的所述副本,更新所述创建的元数据以指向所述预先存在的数据的所述副本。
5.如权利要求I所述的方法,其中创建的所述元数据具有对应于所述当前存储管理系统的配置,所述配置是与和用于创建所述预先存在的数据的所述原始存储管理系统对应的元数据不同的配置。
6.如权利要求I所述的方法,进ー步包括 使用所述预先存在的数据的所述创建的元数据,对所述预先存在的数据执行所述当前存储管理系统支持而所述原始存储管理系统不支持的操作。
7.如权利要求I所述的方法,其中所述存储系统是多层数据存储系统,并且其中将所述创建的元数据存储在所述多层数据存储系统的第一层中,所述创建的元数据与存储在集成到所述多层数据存储系统的第二层中的所述ー个或多个数据存储设备上的所述预先存在的数据分离。
8.如权利要求I所述的方法,其中所述存储系统是多层数据存储系统,并且其中将存储所述预先存在的数据的所述ー个或多个数据存储设备集成到所述多层数据存储系统中,作为所述多层数据存储系统内的独有层。
9.如权利要求I所述的方法,其中所述存储系统是多层数据存储系统,并且其中将存储所述预先存在的数据的所述ー个或多个数据存储设备集成到所述多层数据存储系统中,作为存储有配置为供所述当前存储管理系统使用的数据的ー个或多个存储设备的层的ー部分,从而使得所述层包括具有配置为供所述当前存储管理系统使用的数据的ー个或多个存储设备,以及具有配置为供所述原始存储管理系统使用的所述预先存在的数据的ー个或多个存储设备。
10.一种系统,包括存储管理系统;以及 存储系统,包括存储有使用所述存储管理系统创建的数据的ー个或多个第一数据存储设备;其中,所述存储管理系统被配置为 将存储有使用先前存储管理系统创建的预先存在的数据的ー个或多个第二数据存储设备就地集成到所述存储系统中,而不修改存储在所述ー个或多个第二数据存储设备上的所述预先存在的数据; 基于所述预先存在的数据中的数据的线性级数创建用于所述预先存在的数据的元数据; 使用所述创建的元数据执行目标为所述预先存在的数据的读访问请求;以及 通过将写访问请求重定向到在另一存储位置中创建的所述预先存在的数据的副本,执行目标为所述预先存在的数据的所述写访问请求。
11.如权利要求10所述的系统,其中通过下列步骤将所述存储管理系统进一歩配置为执行写访问请求 在另一存储位置中创建所述预先存在的数据的副本,其中仅响应于目标为所述预先存在的数据的写访问请求,创建所述预先存在的数据的所述副本。
12.如权利要求11所述的系统,其中所述存储系统是多层数据存储系统,并且其中在与存储所述预先存在的数据的所述ー个或多个存储设备所在的层不同的所述多层数据存储系统的层中,创建所述预先存在的数据的所述副本。
13.如权利要求11所述的系统,其中所述存储管理系统被进一歩配置为响应于在另一存储位置中创建所述预先存在的数据的所述副本,更新所述创建的元数据以指向所述预先存在的数据的所述副本。
14.如权利要求10所述的系统,其中所创建的所述元数据具有对应于所述存储管理系统的配置,所述配置是与和用于创建所述预先存在的数据的所述先前存储管理系统对应的元数据不同的配置。
15.如权利要求10所述的系统,其中所述存储管理系统被进一歩配置成使用所述预先存在的数据的所述创建的元数据,对所述预先存在的数据执行所述存储管理系统支持而所述先前存储管理系统不支持的操作。
16.如权利要求10所述的系统,其中所述存储系统是多层数据存储系统,并且其中将所述创建的元数据存储在所述多层数据存储系统的第一层中,所述创建的元数据与存储在集成到所述多层数据存储系统的第二层中的所述ー个或多个第二数据存储设备上的所述预先存在的数据分离。
17.如权利要求10所述的系统,其中所述存储系统是多层数据存储系统,并且其中将存储有所述预先存在的数据的所述ー个或多个第二数据存储设备集成到所述多层数据存储系统中,作为所述多层数据存储系统内的独有层。
18.如权利要求10所述的系统,其中所述存储系统是多层数据存储系统,并且其中将存储有所述预先存在的数据的所述ー个或多个第二数据存储设备集成到所述多层数据存储系统中,作为存储有配置为供所述存储管理系统使用的数据的ー个或多个数据存储设备的层的一部分,从而使得所述层包括具有配置为供所述存储管理系统使用的数据的ー个或多个存储设备,以及具有配置为供所述先前存储管理系统使用的所述预先存在的数据的ー个或多个存储设备。
19.如权利要求10所述的系统,其中所述系统是网络附加存储系统。
全文摘要
本发明涉及用于将先前存储方案的预先存在的数据导入存储池以供新的存储方案使用的方法和系统。提供用于将预先存在的数据导入利用当前存储管理系统的存储系统的机制,所述当前存储管理系统与用于创建预先存在的数据的原始存储管理系统不同。将一个或多个数据存储设备就地集成到所述存储系统中,而不修改存储在所述一个或多个数据存储设备上的所述预先存在的数据。基于所述预先存在的数据中的数据的线性级数创建用于所述预先存在的数据的元数据。使用创建的元数据执行目标为所述预先存在的数据的读访问请求。通过将写访问请求重定向到在另一存储位置中创建的所述预先存在的数据的副本,执行目标为所述预先存在的数据的所述写访问请求。
文档编号G06F12/08GK102831075SQ20121013576
公开日2012年12月19日 申请日期2012年5月3日 优先权日2011年5月4日
发明者J·E·阿德金斯, D·J·克拉夫特, T·S·马修斯, F·L·尼科尔斯三世 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1