扩展数据存储系统的制作方法

文档序号:6350248阅读:116来源:国知局
专利名称:扩展数据存储系统的制作方法
技术领域
本发明涉及数据存储,更具体地说,涉及具有多个数据存储装置的数据存储系统。
背景技术
要存储的数据量不断地增加。数据存储装置的范围可以从各种形式的电子存储器到诸如RAID (独立磁盘冗余阵列)、JBOD (简单磁盘捆绑)之类的盘驱动器,到光盘以及磁带驱动器和库。数据存储可用于单个主机或者例如通过网络连接存储(NAQ用于整个网络。通常,数据以与数据检索需要相关的方式存储在装置上。例如,包括主计算机处理器系统的应用或由主计算机处理器系统的应用使用的数据存储在提供高速访问的装置 (如电子存储器或盘驱动器)中。不太可能被访问的数据通常存储到光盘或磁带。光盘或磁带还可以从系统中移除并被归档。一般来说,高速数据存储装置的单位数据量的存储成本高于低速数据存储。因此,在典型数据处理系统中,提供较少量的高速数据存储,大量数据存储在低速数据存储中。典型过程是只要数据被频繁使用,便将数据存储在高速数据存储中,然后例如使用最近最少使用(LRU)算法将数据离台到诸如磁带之类的低速数据存储。通常,首先前往高速数据存储或存储服务器检索数据,如果数据不在该处,则随后将数据从低速数据存储登台 (staging)回高速数据存储以便访问。

发明内容
提供了用于数据存储系统的方法、数据处理系统、数据存储系统和计算机程序产品以便存储数据。在一个实施例中,扩展数据存储系统包括第一数据存储器和扩展数据存储器。一种用于存储来自使用实体的数据的方法包括以下步骤针对来自所述使用实体的数据在所述第一数据存储器中建立第一级别的元数据,所述第一级别的元数据标识所述数据以便由所述使用实体访问;将来自所述使用实体的所述数据存储在所述扩展数据存储器中;建立将所述数据至少描述为存储在所述扩展数据存储器中的第二级别的元数据,所述第二级别的元数据与所存储数据的所述第一级别的元数据关联;在所述第一数据存储器处使所述第一级别的元数据可由所述使用实体访问;以及使所述第二级别的元数据不可用于所述使用实体。因此,所述数据存储在所述扩展数据存储器中,少量元数据存储在所述第一数据存储器中。在进一步的实施例中,所述第一级别的元数据与存储器中的数据相关并根据需要为所述使用实体提供信息;以及所述第二级别的元数据将所述数据描述为物理地存储在所述扩展数据存储器中。另一个实施例还包括将所述第二级别的元数据存储在所述第一数据存储器和所
4述扩展数据存储器中的步骤。在进一步的实施例中,其中以数据文件的形式存储所述数据,至少以所述数据的标头的形式将所述第二级别的元数据存储在所述扩展数据存储器中。在另一个实施例中,将所述第一级别的元数据的副本存储在所述扩展数据存储器中。在又一个实施例中,所述第一级别的元数据与指向所述数据的所述第二级别的元数据的指针关联,并且所述方法还包括使所述指针不可用于所述使用实体的步骤。在又一个实施例中,在用于数据存储系统的数据处理系统中,其中所述数据存储系统包括第一数据存储器和扩展数据存储器,所述数据处理系统包括到至少一个使用实体的至少一个主机接口 ;到所述第一数据存储器和所述扩展数据存储器的至少一个数据存储接口 ;以及被配置为通过所述主机接口(多个)处理数据以便通过所述数据存储接口 (多个)存储的计算机处理系统。所述计算机处理系统被配置为执行以下步骤针对来自使用实体的数据在所述第一数据存储器中通过所述数据存储接口(多个)建立第一级别的元数据,所述第一级别的元数据标识所述数据以便由所述使用实体访问;将通过所述主机接口(多个)接收的所述使用实体的数据通过所述数据存储接口(多个)存储在所述扩展数据存储器中;建立将所述数据至少描述为存储在所述扩展数据存储器中的第二级别的元数据,所述第二级别的元数据与所存储数据的所述第一级别的元数据关联;在所述第一数据存储器处通过所述主机接口(多个)使所述第一级别的元数据可由所述使用实体访问; 以及使所述第二级别的元数据不可用于所述使用实体。又一个实施例包括数据存储系统,所述数据存储系统包括被配置为存储数据的第一数据存储器;被配置为存储数据的扩展数据存储器;以及被配置为针对所述第一数据存储器和所述扩展数据存储器处理和传输至少一个使用实体的数据的数据处理系统。所述数据处理系统被配置为执行以下步骤针对来自使用实体的数据在所述第一数据存储器中建立第一级别的元数据,所述第一级别的元数据标识所述数据以便由所述使用实体访问;将从所述使用实体接收的数据存储在所述扩展数据存储器中;建立将所述数据至少描述为存储在所述扩展数据存储器中的第二级别的元数据,所述第二级别的元数据与所存储数据的所述第一级别的元数据关联;在所述第一数据存储器处使所述第一级别的元数据可由所述使用实体访问;以及使所述第二级别的元数据不可用于所述使用实体。另一个实施例包括一种用于将来自使用实体的数据存储在扩展数据存储系统中的计算机程序产品,所述扩展数据存储系统包括第一数据存储器和扩展数据存储器。所述计算机程序产品包括具有计算机可读程序代码的计算机可读存储介质,其中在计算机处理系统上执行所述计算机可读程序代码时,导致所述计算机处理系统执行以下步骤针对来自使用实体的数据在所述第一数据存储器中建立第一级别的元数据,所述第一级别的元数据标识所述数据以便由所述使用实体访问;将来自所述使用实体的所述数据存储在所述扩展数据存储器中;建立将所述数据至少描述为存储在所述扩展数据存储器中的第二级别的元数据,所述第二级别的元数据与所存储数据的所述第一级别的元数据关联;在所述第一数据存储器处使所述第一级别的元数据可由所述使用实体访问;以及使所述第二级别的元数据不可用于所述使用实体。


现在将仅通过实例的方式参考附图描述本发明的优选实施例,这些附图是图1是主机和可以实施本发明的数据存储系统的示意图;图2是示出图1的数据存储系统中的示例性数据流的数据流图;图3是用于操作图1和2的数据存储系统的示例性数据处理系统的方块图;图4是存储在图1和2的数据存储系统中的数据的实例的示意图;图5A和5B是图4的数据的数据表项的示意图;图6是示出用于操作图1和2的数据存储系统以存储数据的示例性方法的流程图;以及图7是示出用于操作图1和2的数据存储系统以检索数据的示例性方法的流程图。
具体实施例方式在以下描述中,参考附图在优选实施例中描述本发明,其中相同的编号表示相同或相似的元素。尽管按照用于实现本发明目标的最佳方式描述本发明,但本领域的技术人员将理解,可以根据这些教导实现改变而不偏离本发明的精神或范围。参考图1,其中示出了存储主机105的数据的数据存储系统100的一个实例。主机105可以直接或可以借助网络107(例如通过网络连接存储(NAQ)连接到数据存储系统 100。一般来说,高速数据存储装置的单位数据量的存储成本高于低速数据存储。因此, 在典型数据处理系统中,提供较少量的高速数据存储,大量数据存储在低速数据存储中。典型过程是只要数据被频繁使用,便将数据存储在高速数据存储中,然后例如使用最近最少使用(LRU)算法将数据离台到诸如磁带之类的低速数据存储。通常,首先前往高速数据存储或存储服务器检索数据,如果数据不在该处,则随后将数据从低速数据存储登台回高速数据存储以便访问。参考图1和2,数据存储系统100实际上将数据108直接存储到诸如磁带之类的扩展数据存储器110。采用高速数据存储器120(在此称为第一数据存储器)存储与所存储数据关联的元数据。扩展数据存储器110可以包括磁带数据存储器,其实例包括磁带驱动器和自动库。磁带驱动器的一个实例是基于LTO技术的IBM 3580Ultrium磁带驱动器。自动数据存储库的一个实例是IBM 3584UltraScalable Tape Library。扩展数据存储器可以备选地包括其他技术,例如光盘、光盘库等。高速第一数据存储器120可以包括盘驱动器,所述盘驱动器可以是单个驱动器, 或者可以使用RAID (独立磁盘冗余阵列)协议,或者可以包括JBOD (简单磁盘捆绑)。高速数据存储器120的备选实例包括布置为SSD(固态驱动器)的闪存。还可以布置闪存以提供诸如RAID布置之类的冗余。第一数据存储器与扩展数据存储器之间的速度差别是相对的,与成本一样。数据存储系统100针对来自使用实体或主机105的数据108建立第一或访问级别的元数据、将数据108直接存储在扩展数据存储器110中,并建立将数据108描述为存储在扩展数据存储器110中的第二级别的元数据,所述第二级别的元数据与所存储数据的所述第一级别的元数据关联。形成(12 第一和第二级别的元数据以便与存储在扩展数据存储器110中的数据108相关。第一或访问级别的元数据是具有标识数据以便由使用实体访问的表项的数据库, 并根据需要为使用实体提供信息(例如,作为整体数据存储的文件系统视图)。第二级别的元数据将数据描述为物理地存储在扩展数据存储器110中,例如,描述为物理文件系统。至少第一级别的元数据存储在第一数据存储器120上。第二级别的元数据还可以存储在(但不一定与第一级别的元数据一起)第一数据存储器中和/或存储在扩展数据存储器110 中。作为一个实例,第二级别的元数据以数据的标头的形式存储在扩展数据存储器110中。 作为另一个实例,第二级别的元数据存储在扩展数据存储器内的元数据存储库中。可以与第一级别的元数据一起提供指向第一数据存储器或第二级别的存储器或两者中的第二级别的元数据的位置的指针。在第一数据存储器处使第一级别的元数据可由主机或使用实体105访问(例如, 通过使主机或使用实体可查看文件系统表项)。使第二级别的元数据不可用于使用实体,与指针(如果有)一样。术语“不可用”意味着主机无法直接访问元数据以便访问数据。可以出于其他目的(例如数据恢复)而许可访问。因此,数据108存储在扩展数据存储器110中,而少量元数据125存储在第一数据存储器120中。主机或使用实体105只能使用第一级别的元数据的访问信息访问所存储的数据。存储系统表面上具有很大容量,并可在高速数据存储器120处提供元数据访问而不必经历离台和登台过程。实际访问延迟介于存储在高速数据存储器中的数据的即时性与必须登台的数据的延迟之间。此外,可以备份第一级别的元数据128的副本并将其存储在扩展数据存储器中。 还可以备份第二级别的元数据的另一个副本并将其存储在扩展数据存储器110中。元数据的副本可以用于错误恢复或重新构建第一数据存储器120的元数据。在一个实例中,第一级别的元数据的备份副本与第二级别的元数据一起存储在数据的标头或元数据存储库或两者中。存储库可以跨扩展数据存储器110、可以针对第一和第二级别的元数据包括单独的存储库,或者可以包含所有数据或数据分区的一个或多个标头。在此,术语“标头”包括扩展数据存储器110中的任何元数据位置。为了从数据存储系统100访问所存储的数据,主机或使用实体105使用第一级别的元数据的访问信息,第一和第二级别的元数据由数据存储系统100使用指针(如果需要) 提取(130),并用于从扩展数据存储器110直接检索数据138。参考图3,图1和2的数据存储系统100包括数据处理系统140以控制数据和元数据的处理和形成。数据处理系统包括被配置为操作数据存储系统的计算机处理器系统 145,计算机处理器系统具有被配置为操作数据存储系统的计算机处理器(多个)147和被配置为存储用于操作计算机处理器(多个)的信息和计算机可读程序信息的存储器(多个)148。在此,“计算机处理器”、“计算机处理系统”或“控制”可以包括任何适合的逻辑、 可编程逻辑、微处理器以及关联或内部的存储器以响应程序指令,并且关联或内部的存储器可以包括固定或可重写存储器或数据存储设备。程序信息可以从主机或通过数据存储驱动器或盘阵列,或通过来自软盘或光盘的输入,或通过从磁带盒读取,或通过Web用户界面或其他网络连接,或通过任何其他适合的手段提供给子系统控件或存储器。因此,程序信息可以包括一个或多个包括计算机可用存储介质的程序产品,所述计算机可用存储介质具有存储在其中的计算机可用程序代码以操作数据存储系统100或类似类型的系统或设备。主机接口 150、巧4可包括一个或多个主机适配器、光纤通道端口、一个或多个 FICON端口、一个或多个ESCON端口、一个或多个SCSI端口或其他适合的端口。每个主机接口被配置为与图1的主机系统105或网络107通信以便数据处理系统可以处理来自任何主机或使用实体的I/O。在一个实例中,接口 150、巧4通过标准TCP/IP协议连接到基于以太网的网络107,并允许用户在虚拟环境中有效地将数据直接发送到磁带。数据存储接口 160、164可以包括通信链路以便与第一数据存储器120和扩展数据存储器110通信。通信链路可以包括设备适配器,例如用于串行互连(例如RS-232或 RS-422)、以太网连接、SCSI互连、ESCON互连、FICON互连、局域网(LAN)、专用广域网(WAN)、 公共广域网、存储区域网络(SAN)、传输控制协议/网际协议(TCP/IP)、因特网以及它们的组合。数据处理子系统140 的实例包括 IBM Enterprise Storage Server ,IBM Model DS 8000或其他同类系统。数据可以布置在各种不变或可变大小的数据单元中。在一个实例中,数据布置在称为“文件”的数据单元中。在其他实例中,数据布置在称为“数据集”或“盘区(extents)” 或“扇区”的数据单元中。另一个实例与寻址相关并称为逻辑单元的“LUN”。其他实例对本领域的技术人员是公知的。因此,在此使用的通用术语是“数据”或“数据文件”。在一个实施例中,参考图3、4、5A、5B和6,在步骤500,主机105提供一个命令以将数据文件200存储在数据存储系统100中,在数据处理系统140的主机接口 150、巧4处接收该命令。数据处理系统140通过执行若干功能而响应该命令,这些功能在图6中以顺序形式说明。如本领域技术人员公知的,可以全部在一个事件分组中以任何适合的顺序有效地执行所述功能。在步骤505,数据处理系统140针对数据文件200建立第一或访问级别的元数据 (其包括数据库300中的表项301的至少一部分),并通过数据存储接口 160、164将表项301 存储到第一数据存储器120。在步骤507,数据处理系统140通过主机接口 150、巧4和数据存储接口 160、164将数据文件200直接存储到扩展数据存储器110。在步骤509,数据处理系统140建立将数据文件200描述为存储在扩展数据存储器110中的第二级别的元数据, 第二级别的元数据与所存储数据的第一或访问级别的元数据关联。第二级别的元数据包括表项401的一部分。第二级别的元数据通过数据存储接口 160、164例如作为数据库400中的表项400a存储在扩展数据存储器110中。备选地或额外地,在根据步骤513的一个实施例中,表项401可以包括数据文件的标头400a,其中包括第二级别的元数据和所存储的数据文件200。将共同形成第一和第二级别的元数据以便与存储在扩展数据存储器110中的数据文件200相关。数据库400可以与扩展数据存储器110相称,或者备选地,扩展数据存储器能够存储除了数据库的数据以外的额外数据。如上所述,数据库400和扩展数据存储器可以包括被示为“带上存储”或“SoT”的磁带数据存储,或可以包括备选技术。数据库300的表项301中的第一级别的元数据表项300a标识数据文件200以便由使用实体访问,并根据需要为使用实体提供信息(例如作为整体数据存储的文件系统视图)。表项300a包括与存储中的文件相关的数据,但从用户或用户客户端的角度,包括例如文件名、文件大小、修改日期、所有者、访问权限等,如本领域技术人员所公知的。第二级别的元数据表项400a将数据文件200描述为例如由物理文件系统物理地存储在扩展数据存储器110中。表项400a与数据文件的实际存储相关,并可以包括卷、卷块位置等,如本领域的技术人员所公知的。至少将第一或访问级别的元数据300a存储在第一数据存储器120中。第二级别的元数据400a还可以作为表项301的一部分存储在(但不一定与第一或访问级别的元数据300a—起)第一数据存储器中。作为一个实例,如果第二级别的元数据与第一或访问级别元数据分离地存储在第一数据存储器120或扩展数据存储器110中,则在步骤515,可以与第一或访问级别的元数据表项300a —起提供指针,指向第一数据存储器或第二级别存储器或两者中的第二级别的元数据400a的位置。在步骤520,例如通过使主机或使用实体可查看数据库300的文件系统表项300a, 而使主机或使用实体105可访问第一或访问级别的元数据300a。使第二级别的元数据400a 不可用于使用实体,如指针(如果有)一样,即使第二级别的元数据400a和/或指针是数据库300的相同表项301的部分。因此,数据108存储在扩展数据存储器110中,而少量元数据300存储在第一数据存储器120中。在步骤525,通过到主机或使用实体105的返回指示将数据存储指示为完成。此外,在步骤530,可以备份第一级别元数据300a的副本并将其存储在扩展数据存储器110中,例如存储到扩展数据存储器中的单独数据文件中或添加到表项401中。还可以备份第二级别元数据的另一个副本并将其存储在扩展数据存储器110中。元数据副本可以用于错误恢复或恢复并重建第一数据存储器120的元数据。在一个实施例中,不会将元数据300以外的数据存储在第一数据存储器120中。存储在数据存储系统100中的所有数据都存储在扩展数据存储器110中。参考图3、4、5A、5B和7,在一个实施例中,在步骤600,主机105提供一个命令以从数据存储系统100检索数据文件。为了访问所存储的数据,主机或使用实体105使用第一级别的元数据300a的访问信息。在数据处理系统140的主机接口 150、巧4处接收具有访问信息的命令。数据处理系统140通过执行若干功能响应该命令,在一个实施例中,从步骤 605开始,访问第一级别的元数据300a以获得与所需数据相关的元数据表项301。在一个实施例中,在步骤607,数据处理系统使用所述指针访问和提取例如扩展数据存储器110的表项401的关联第二级别的元数据400a。备选地,关联的第二级别的元数据400a还位于第一数据存储器120中的所需数据的表项301中,由数据处理系统140提取第一和第二级别的元数据。在一个实施例中,在步骤610,使用所提取的第二级别的元数据400a从扩展数据存储器110检索数据文件200,并使用第一或访问级别元数据通过数据存储接口 160、164和主机接口 150、IM将所述数据文件直接发送到主机或使用实体105。所述实施方式可以包括软件、固件、微代码、硬件和/或它们的任意组合。所述实施方式可以采取在介质(例如图3的存储器148、图2的存储120和/或图3的电路147) 中实现的代码或逻辑的形式,其中所述介质可以包括硬件逻辑(例如集成电路芯片、可编程门阵列[PGA]、专用集成电路[ASIC]或其他电路、逻辑或器件)或诸如磁存储介质之类的计算机可读存储介质(例如电、磁、光、电磁、红外线或半导体系统、半导体或固态存储器、 磁带、可移动计算机软盘、随机存取存储器[RAM]、只读存储器[ROM]、硬磁盘、光盘、光盘只读存储器(CD-ROM)、光盘读/写存储器[CD-R/W]和DVD)。本领域的技术人员将理解,可以对上面讨论的方法进行更改,其中包括对步骤顺序的更改。此外,本领域的技术人员将理解,可以采用与在此所示不同的特定组件布置。尽管详细示出了本发明的优选实施例,但是显而易见的是,本领域技术人员可想到对这些实施例的修改和改变而不偏离在以下权利要求中阐述的本发明的范围。
权利要求
1.一种用于将来自使用实体的数据存储在扩展数据存储系统中的方法,所述扩展数据存储系统包括第一数据存储器和扩展数据存储器,所述方法包括以下步骤针对来自所述使用实体的数据在所述第一数据存储器中建立第一级别的元数据,所述第一级别的元数据标识所述数据以便由所述使用实体访问;将来自所述使用实体的所述数据存储在所述扩展数据存储器中; 建立将所述数据至少描述为存储在所述扩展数据存储器中的第二级别的元数据,所述第二级别的元数据与所存储数据的所述第一级别的元数据关联;在所述第一数据存储器处使所述第一级别的元数据可由所述使用实体访问;以及使所述第二级别的元数据不可用于所述使用实体。
2.如权利要求1中所述的方法,其中所述第一级别的元数据与存储器中的数据相关并根据需要为所述使用实体提供信息;以及其中所述第二级别的元数据将所述数据描述为物理地存储在所述扩展数据存储器中。
3.如权利要求1或2中所述的方法,还包括将所述第二级别的元数据存储在所述第一数据存储器和所述扩展数据存储器中的步骤。
4.如权利要求3中所述的方法,其中以数据文件的形式存储所述数据,并且至少以所述数据的标头的形式将所述第二级别的元数据存储在所述扩展数据存储器中。
5.如权利要求3中所述的方法,还包括将所述第一级别的元数据的副本存储在所述扩展数据存储器中的步骤。
6.如上述任一权利要求中所述的方法,其中所述第一级别的元数据与指向所述数据的所述第二级别的元数据的指针关联,并且还包括使所述指针不可用于所述使用实体的步马聚ο
7.一种数据存储系统,包括 第一数据存储器,配置为存储数据; 扩展数据存储器,配置为存储数据;以及数据处理系统,配置为针对所述第一数据存储器和所述扩展数据存储器处理和传输至少一个使用实体的数据,所述数据处理系统配置为执行以下步骤针对来自使用实体的数据在所述第一数据存储器中建立第一级别的元数据,所述第一级别的元数据标识所述数据以便由所述使用实体访问;将从所述使用实体接收的数据存储在所述扩展数据存储器中; 建立将所述数据至少描述为存储在所述扩展数据存储器中的第二级别的元数据,所述第二级别的元数据与所存储数据的所述第一级别的元数据关联;在所述第一数据存储器处使所述第一级别的元数据可由所述使用实体访问;以及使所述第二级别的元数据不可用于所述使用实体。
8.如权利要求7中所述的数据存储系统,其中所述第一级别的元数据与存储器中的数据相关并根据需要为所述使用实体提供信息;以及其中所述第二级别的元数据将所述数据描述为物理地存储在所述扩展数据存储器中。
9.如权利要求7中所述的数据存储系统,其中所述数据处理系统还配置为执行将所述第二级别的元数据存储在所述第一数据存储器和所述扩展数据存储器中的步骤。
10.如权利要求9中所述的数据存储系统,其中以数据文件的形式存储所述数据,并且至少以所述数据的标头的形式将所述第二级别的元数据存储在所述扩展数据存储器中。
11.如权利要求10中所述的数据存储系统,其中所述数据处理系统还配置为执行将所述第一级别的元数据的副本存储在所述扩展数据存储器中的步骤。
12.如权利要求7至11中的任一权利要求中所述的数据存储系统,其中所述第一级别的元数据与指向所述数据的所述第二级别的元数据的指针关联,以及其中所述数据处理系统还配置为执行使所述指针不可用于所述使用实体的步骤。
13.如权利要求7至12中的任一权利要求中所述的数据存储系统,其中所述扩展数据存储器包括磁带。
14.一种存储在计算机可读介质上并包括计算机程序代码的计算机程序,当所述计算机程序代码被载入计算机系统并在其上执行时,将导致所述计算机系统执行如权利要求1 至6中的任一权利要求所述的方法的所有步骤。
全文摘要
在一个实施例中,扩展数据存储系统采用第一数据存储器和扩展数据存储器。针对来自使用实体的数据建立第一级别的元数据,在所述第一数据存储器中提供所述第一级别的元数据。将来自所述使用实体的数据存储在所述扩展数据存储器中。还建立将所述数据至少描述为存储在所述扩展数据存储器中的第二级别的元数据,其中所述第二级别的元数据与所存储数据的所述第一级别的元数据关联。在所述第一数据存储器处使所述第一级别的元数据可由所述使用实体访问;以及使所述第二级别的元数据不可用于所述使用实体。因此,所述数据存储在所述扩展数据存储器中并且少量元数据存储在所述第一数据存储器中。
文档编号G06F12/08GK102483688SQ201080037878
公开日2012年5月30日 申请日期2010年8月19日 优先权日2009年8月28日
发明者S·A·艾哈迈德, S·O·布鲁姆 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1