首页> 中国专利> 将预先存在数据导入存储池供新存储方案使用的方法和系统

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

摘要

本发明涉及用于将先前存储方案的预先存在的数据导入存储池以供新的存储方案使用的方法和系统。提供用于将预先存在的数据导入利用当前存储管理系统的存储系统的机制,所述当前存储管理系统与用于创建预先存在的数据的原始存储管理系统不同。将一个或多个数据存储设备就地集成到所述存储系统中,而不修改存储在所述一个或多个数据存储设备上的所述预先存在的数据。基于所述预先存在的数据中的数据的线性级数创建用于所述预先存在的数据的元数据。使用创建的元数据执行目标为所述预先存在的数据的读访问请求。通过将写访问请求重定向到在另一存储位置中创建的所述预先存在的数据的副本,执行目标为所述预先存在的数据的所述写访问请求。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-08-05

    授权

    授权

  • 2013-02-06

    实质审查的生效 IPC(主分类):G06F12/08 申请日:20120503

    实质审查的生效

  • 2012-12-19

    公开

    公开

说明书

技术领域

本发明总体上涉及改进的数据处理装置和方法,并且更具体地涉及 用于将先前存储方案的预先存在的数据导入存储池以供新的存储方案 使用的机制。

背景技术

随着新的数据存储管理方案引入到客户环境中,常常需要维护对旧 存储管理方案内创建的预先存在的数据的继续使用。通常以三种方式之 一来处理该对预先存在的数据的继续使用。在第一选项中,并行维持预 先存在的存储管理方案与新存储管理方案。该选项限制了客户,因为较 新的存储管理方案所具有的新功能不能与在较旧的存储管理方案继续 管理下的预先存在的数据共享。此外,该选项引入附加的管理复杂度, 因为旧存储管理方案必须与新存储管理方案一同维护。

在第二选项中,可将数据转储到原始格式介质,例如磁带,并继而 就如其为新数据一样再导入新存储管理方案中。由于所涉及到的大量的 数据和在系统之间(例如在主系统和原始格式介质系统之间)移动数据 并继而从原始格式介质系统移回配置有新存储管理方案的系统所需的 时间,该方案往往是不切实际的。

作为第三选项,可开发新的存储管理方案,从而确保与旧存储管理 方案的兼容性,并因此仅附加到预先存在的存储管理方案。该选项常常 将用户限制在来自一个专有供应商的产品线,即,客户仅能从同一个供 应商获得存储管理方案,因为客户需要对预先存在的数据进行访问的向 后兼容性,并且由于新存储管理方案局限于提供向后兼容性的要求,所 以通常不扩展对预先存在的数据的数据管理能力。这主要是因为存储管 理方案中的数据常常紧密地联系在一起,并且由专属于预先存在的存储 管理方案的内部存储方案元数据来描述。

发明内容

在一个说明性实施例中,在数据处理系统中提供了一种用于将预先 存在的数据导入利用当前存储管理系统的存储系统的方法,所述当前存 储管理系统与用于创建预先存在的数据的原始存储管理系统不同。所述 方法包括:将一个或多个数据存储设备就地集成到存储系统中,而不修 改存储在一个或多个数据存储设备上的预先存在的数据。所述方法进一 步包括:基于预先存在的数据中的数据的线性级数(linear progression) 创建用于预先存在的数据的元数据。此外,所述方法包括:使用创建的 元数据执行目标为预先存在的数据的读访问请求。此外,所述方法包括: 通过将写访问请求重定向到在另一存储位置中创建的预先存在的数据 的副本,执行目标为预先存在的数据的写访问请求。

在其它说明性实施例中,提供了一种包括计算机可用或可读介质的 计算机程序产品,所述计算机可用或可读介质具有计算机可读程序。当 计算机可读程序在计算设备上执行时,通过执行上文关于所述方法的说 明性实施例概述的操作中的各种操作及其组合,使得所述计算设备将预 先存在的数据导入利用当前存储管理系统的存储系统,所述当前存储管 理系统与用于创建预先存在的数据的原始存储管理系统不同。

在又一说明性实施例中,提供了系统/装置,其包括存储管理系统 和存储系统,所述存储系统包括存储有使用所述存储管理系统创建的数 据的一个或多个第一数据存储设备。存储管理系统被配置为执行上文关 于所述方法说明性实施例概述的操作中的各种操作及其组合。

将在下文对本发明的示例实施例的详细描述中描述本发明的这些 和其它特点和优点,或者鉴于下文对本发明的示例性实施例的详细描 述,本发明的这些和其它特点和优点对本领域技术人员将变得明显。

附图说明

当结合附图进行阅读时,通过参照下文对说明性实施例的详细描 述,本发明以及使用的优选方式和进一步的其的目标和优点将最佳地得 到理解,其中:

图1是其中可以实现说明性实施例的方面的示例分布式数据处理 系统的图形化表示;

图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)、 可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式紧致盘只 读存储器(CDROM)、光学存储设备、磁性存储设备或前述的任意适 当的组合。在本文献的上下文中,计算机可读存储介质可以是能够包含 或存储供指令执行系统、装置或设备使用或与指令执行系统、装置或设 备结合使用的程序的任何有形介质。

计算机可读信号介质可包括例如在基带中或作为载波的一部分、其 中具有计算机可读程序代码的传播的数据信号。这种传播的信号可采取 各种形式,包括但不限于:电磁、光学或其任意适当的组合。计算机可 读信号介质可以是任何计算机可读介质,其并非计算机可读存储介质并 且可传达、传播或传送供指令执行系统、装置或设备使用的或与指令执 行系统、装置或设备结合使用的程序。

可使用任何适当的介质来传输计算机可读介质上所具有的计算机 代码,所述介质包括但不限于,无线、有线线路、光纤电缆、射频(RF) 等或其任意适当的组合。

可以以一种或多种编程语言的任何组合来编写用于执行本发明方 面的操作的计算机程序代码,所述语言包括面向对象的编程语言,诸如 JavaTM、SmalltalkTM、C++等,以及常规的过程编程语言,诸如“C”编 程语言或类似编程语言。程序代码可以作为单机软件包全部在用户的计 算机上或部分地在用户的计算机上执行,或者部分地在用户的计算机上 且部分地在远程计算机上或全部在远程计算机或服务器上执行。在后一 种情况下,可通过任何类型的网络将远程计算机连接到用户的计算机, 该任何类型的网络包括局域网(LAN)或广域网(WAN),或者可连 接到外部计算机(例如,使用因特网服务供应商通过因特网)。

下文参照根据本发明的说明性实施例的方法、装置(系统)和计算 机程序产品的流程图图示和/或框图来描述本发明的方面。将理解,可 通过计算机程序指令来实现流程图图示和/或框图中的各个块以及流程 图图示和/或框图中的块的组合。可将这些计算机程序指令提供给通用 计算机、专用计算机或其它可编程数据处理装置的处理器以产生机器, 从而使得在经由计算机或其它可编程数据处理装置的处理器执行所述 指令时,所述指令创建用于实现流程图和/或一个或多个框图块中所指 定的功能/动作的装置。

还可将这些计算机程序指令存储在计算机可读介质中,所述计算机 可读介质可引导计算机、其它可编程数据处理装置或其它设备以特定的 方式运行,从而使得存储在计算机可读介质中的指令产生包括实现流程 图和/或一个或多个框图块中所指定的功能/动作的指令的制品。

还可将计算机程序指令载入计算机、其它可编程数据处理装置或其 它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列 的操作步骤以产生计算机实现的过程,从而使得在计算机或其它可编程 装置上执行的指令提供用于实现流程图和/或一个或多个框图块中所指 定的功能/动作的过程。

附图中的流程图和框图图示了根据本发明的各种实施例的系统、方 法和计算机程序产品的可能实现的架构、功能和操作。就这点而言,流 程图或框图中的各个块可表示代码的模块、片段或部分,其包括用于实 现指定逻辑功能的一个或多个可执行指令。还应注意,在一些备选实现 中,块中所标注的功能的执行可不同于附图中所标注的顺序。例如,实 际上,可大体上同时执行图中连续示出的两个块,或者取决于所涉及的 功能,有时可以按照相反的顺序执行所述块。还应注意,可以通过执行 指定功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组 合,来执行框图和/或流程图图示的各个块以及框图和/或流程图图示中 的块的组合。

因此,可在许多不同类型的数据处理环境中利用所述说明性实施 例,所述数据处理环境包括分布式数据处理环境、单个数据处理设备等。 为了提供对说明性实施例的特定元件和功能进行描述的上下文,下文提 供图1和图2作为其中可实现说明性实施例的方面的示例环境。应理解, 图1-图2仅为示例,并且并不旨在声明或暗示关于其中可实现本发明的 方面或实施例的环境的任何限制。可对所描绘的环境进行诸多修改,而 不背离本发明的精神和范围。

现在参照附图,图1描绘了其中可实现说明性实施例的方面的示例 分布式数据处理系统的图形化表示。分布式数据处理系统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)等。如上述,图1旨 在作为示例,而不是对本发明的不同实施例的架构限制,并且因此,图 1中所示的特定元件不应被看作是关于可以实现本发明的说明性实施例 的环境的限制。

现在参照图2,其示出其中可实现说明性实施例的方面的示例数据 处理系统的框图。数据处理系统200是诸如图1中的客户端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、CD-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)接口。超级I/O(SIO)设备236可以连 接到SB/ICH 204。

操作系统在处理单元206上运行。操作系统协调并提供对图2中的 数据处理系统200内的各种组件的控制。作为客户端,操作系统可以是 可商购的操作系统,诸如Microsoft Windows 7(Microsoft和Windows 是微软公司在美国和/或其它国家的商标)。可结合操作系统运行面向对 象的编程系统(诸如Java编程系统)并且从Java程序或在数据处理系 统200上执行的应用程序向操作系统提供调用(Java是Oracle和/或其 附属公司的商标)。

作为服务器,数据处理系统200例如可以是运行高级交互式执行 操作系统或LINUX操作系统的eServerTM System计算 机系统(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 中可找到的之类的高速缓冲存储器。

本领域的普通技术人员将理解,图1-图2中的硬件可取决于实现而 变化。除了图1-图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现在可以通过 说明性实施例的机制和递增迁移能力成为此类高级能力的主体。此外, VIOS 304可将迁移的数据或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控制器耦合到系统。还可将网络适配器 耦合到所述系统,以使得通过中介专用或公用网络能够将数据处理系统 变为耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、 线缆调制解调器和以太网卡仅是网络适配器的当前可用类型中的一些。 已经出于图示和描述的目的呈现了对本发明的描述,并且该描述并不旨 在是穷举性的或将本发明限制在所公开的形式。诸多修改和变型对本领 域普通技术人员而言将是明显的。选择和描述实施例以便最佳地说明本 发明和实际应用的原理,并且使得本领域的其它普通技术人员能够理解 用于各种实施例以及具有适用于特定预期用途的各种修改的本发明。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号