CN100359479C - 存储服务与*** - Google Patents

存储服务与*** Download PDF

Info

Publication number
CN100359479C
CN100359479C CNB038212722A CN03821272A CN100359479C CN 100359479 C CN100359479 C CN 100359479C CN B038212722 A CNB038212722 A CN B038212722A CN 03821272 A CN03821272 A CN 03821272A CN 100359479 C CN100359479 C CN 100359479C
Authority
CN
China
Prior art keywords
storage
virtual disk
snapshot operation
carry out
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CNB038212722A
Other languages
English (en)
Other versions
CN1682193A (zh
Inventor
斯蒂芬·迈克尔·昂贝霍克
艾伦·尤努科
安卡尔·凯姆卡尔
沙罗·K·肖德哈里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Revivio Inc
Original Assignee
Veritas Operating Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Veritas Operating Corp filed Critical Veritas Operating Corp
Publication of CN1682193A publication Critical patent/CN1682193A/zh
Application granted granted Critical
Publication of CN100359479C publication Critical patent/CN100359479C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明提供了存储服务与***。虚拟磁盘包括多个存储状态,并且与存储操作相关联,所述的存储操作是与所述的虚拟磁盘一同提供的。另外,在对虚拟磁盘执行存储操作时,根据被制定给状态的值设置一个可执行的存储管理指令集。在某些实施例种,一个可执行指令选集允许选择性地执行存储操作。

Description

存储服务与***
版权标记/许可
本公开发明文档中的一部分包含受版权保护的材料。当本发明文档出现在专利与商标局的专利文件或记录中时,版权所有者不反对任何该专利文档或专利公开的读者进行模仿复制,但是保有其他情况下的所有版权权利。下列标记适用于软件描述/实例,以及在下文及附图中所述的数据:Copyright c 2002,VERITAS Software Company,All Rights Reserved。
技术领域
本发明涉及存储服务与***,并且尤其涉及辅助创建固定映象、镜像以及/或在共享存储环境中进行存储分割的服务及***。
背景技术
存储联网是利用网络(例如光纤通道、互联网小型计算机***接口(iSCSI)及其他)替代传统的点对点小型计算机***接口(SCSI)通道将存储设备连接到计算设备(例如客户端、服务器等等)的业务。用于连接服务器与存储设备的网络被称为存储区域网络(SAN)。在一个SAN环境中,计算设备可以访问可用的存储设备。这样做能提供各种有利之处,包括服务器平台的故障切换,其中一组故障存储设备与故障服务器自动被其他正常运作的服务器平台及正常运作的存储设备恢复,而无需对正常运作的存储设备进行重布线。
存储管理的一方面内容就是创建存储访问透明度的能力,这通常被称为存储虚拟化。存储虚拟化对访问物理存储器的用户/客户应用程序隐藏了物理存储细节。存储虚拟化可以优化存储器利用率以及存储器访问吞吐量,从而多个用户/客户应用程序能够最优且可靠地访问一个共享存储环境中的物理存储器,所述的共享存储环境包含不同种类的物理存储设备。另外,存储虚拟化使得用户/客户应用程序无需管理与物理存储设备有关的底层细节和接口。
有效存储管理的另一方面内容是备份或镜像位于物理存储设备上的存储数据的能力,从而这些数据就可以冗余地从多个物理存储设备上获得,或是从一个先前的时间点恢复。如果含有存储数据的物理存储设备之一发生故障或是由于其他情况不能被用户/客户应用程序访问(例如服务器故障、应用程序故障等等),数据冗余度就能使得所述的存储数据保持可用。数据的可恢复性则允许用户从一个先前的时间点获取期望的数据版本。
按照惯例,有一些技术被用来在多个物理存储设备上备份存储数据。首先,通过对与主物理存储设备相关的存储数据进行快照,并接着将所述的存储数据复制到第二备份物理存储设备,从而将存储数据从一个物理存储设备复制到另一个物理存储设备。为了实现这一点,要在一个给定的时刻从所述的主物理存储设备中取得所述存储数据的固定映象。在创建所述的固定映象时,必须执行一系列操作来保证快照操作的交互一致性。例如,某些操作会中止访问存储数据的应用程序,并从缓存中除掉尚未执行的存储数据改变操作(例如写操作)。其次,存储数据可以被镜像,从而当包含在主物理存储器上的存储数据被改变时,一个镜像存储数据改变操作会发生在镜像的第二物理存储设备上。
通常,在提供存储虚拟化时,存储管理技术会***一个中间层软件,该软件被设置在用户应用程序与底层物理存储设备的接口之间。该中间层软件能够集中地管理物理存储设备,并创建存储数据的虚拟映象。在某些情况下,所述的中间层软件被实现为一个分卷管理器(VM)应用程序。该VM还可以对所述的存储数据执行存储服务(比如固定映象、镜像等等),以便确保底层存储数据的高可用性(HA)。
然而,在异类共享的存储环境中,固定映象与镜像是根据不同的设置及物理存储器接口以各种不同的方式呈现给VM的。由于多种物理存储设备来自不同的厂商,相应地,这些物理存储设备向VM提供完全不同的存储能力,因此往往存在差异。
结果,在异类共享的存储环境中工作的VM变得过度复杂,它含有大量复杂的异常软件代码,这些代码是设计来处理不同的存储能力的。存储能力决定了存储数据被如何管理,以及可以对利用特定的存储操作所创建的任意固定映象或镜像进行什么样的处理。
因此需要能够提供改善的存储服务与***的技术,从而得到更好的一致性与标准化,它们不依赖于不同物理存储设备所提供的底层接口。
发明内容
根据本发明的第一方面内容,本发明提出了一种提供存储操作的方法。状态标志与一个虚拟磁盘相关联,其中所述的虚拟磁盘被绑定到一个或多个存储设备上。另外,与所述的虚拟磁盘一同,提供了一项预备操作及一项划分操作的访问使用。此外,根据指定给虚拟磁盘的各个状态标志的一个或多个值,设置了一组用于存储管理的可执行指令,这组指令中至少执行了所述的预备操作与快照操作中的一项。
根据本发明的另一方面内容,本发明提供了一种存储操作***。该存储操作***包括一个虚拟磁盘、一组用于存储管理的可执行指令、以及可执行指令的一个选集。所述的虚拟磁盘与多个状态、一项快照操作及一项预备操作相关联。所述的用于存储管理的可执行指令管理着所述的虚拟磁盘,并且由所述的操作配置。另外,所述的可执行指令的选集允许选择性地执行所述的操作。
根据本发明的另一方面内容,本发明提出了一种存在于计算机可读取的介质上的虚拟磁盘数据结构。所述的虚拟磁盘数据结构包括存储元数据、多个存储状态以及多个存储操作映射。所述的存储元数据与一个或多个存储设备上的存储数据相关联。另外,所述的多个存储状态与所述虚拟磁盘数据结构的处理状态相关联,并且所述的多个存储操作映射提供了对存储操作的访问使用。另外,与所述多个存储状态相关的值决定了所述的多个存储操作中的哪一项可以通过使用所述的存储操作映射来执行。
根据本发明一个方面,提供了一种用以提供存储操作的方法,包括为虚拟磁盘提供执行快照操作的途径,其中虚拟磁盘逻辑上代表位于一个或多个存储设备上的存储数据,快照操作可操作地复制存储数据;把状态信息与虚拟磁盘相关联,其中状态信息指示虚拟磁盘是否处于允许执行快照操作的状态;接收执行快照操作的请求;以及响应于确定状态信息指示虚拟磁盘处于允许执行快照操作的状态,执行快照操作。
根据本发明另一方面,提供一种存储操作***,包括:一个或多个存储设备;一个虚拟磁盘,逻辑上代表位于该一个或多个存储设备上的存储数据,其中虚拟磁盘具有指示虚拟磁盘是否处于允许执行快照操作的状态的相关状态信息;一个可执行的存储管理指令集,可操作地响应于确定与虚拟磁盘相关的状态信息允许执行快照操作而对虚拟磁盘执行快照操作,其中快照操作可操作地复制存储数据;以及一个可执行指令选集,该指令选集允许选择性地执行快照操作。
附图说明
图1根据本发明示出了一个虚拟磁盘的示意图;
图2根据本发明示出了处理存储操作的方法的流程示意图;
图3根据本发明示出了提供存储操作的方法的流程示意图;
图4根据本发明示出了存储操作***的示意图;
图5根据本发明示出了一个虚拟磁盘数据结构的示意图;
图6根据本发明示出了另一种存储操作***的示意图。
具体实施方式
在以下对本发明的各种实施例所作的具体说明中,参照了附带的附图,这些附图构成了本说明书的一部分,并且在这些附图中通过图示方式展示了可以应用本发明的具体实施例。应该明白的是,可以使用其他实施方式,也可以作出结构上的改变,这些都不会偏离本发明的范围。
本文中所使用的“存储管理应用程序”或“可执行的存储管理指令集”包括代表用户/客户应用程序或主机应用程序来管理存储资源的软件应用程序。在某些例子中,存储管理应用程序是分卷管理器(VM)应用程序,它们在共享的存储环境-比如存储域网络(SAN)环境或使用iSCSI的TCP/IP-中工作。用户/客户应用程序或主机应用程序是与存储管理应用程序进行交互以访问存储资源的应用程序。
虚拟磁盘(VD)是位于一个或多个物理存储设备上的物理存储数据的逻辑代表。可执行的存储管理指令集管理着VD,并使得VD对于用户/客户应用程序或主机应用程序可用。在本发明的某些实施例中,单个VD实际上是一组VD。在另外一些实施例中,物理存储设备的接口创建VD,这些VD然后就由可执行的存储管理指令集管理。
图1根据本发明示出了一个VD 110的示意图100。VD 110与多个存储状态(例如111-115)及存储操作(例如116-118)相关联。在一个实施例中,VD110是一组VD。另外,VD110代表了一个或多个物理存储设备上的物理存储数据的逻辑映象。存储管理应用程序(比如VM等)、用户/客户应用程序以及主机应用程序与VD110相互作用,而不是直接与底层的物理存储器相互作用。VD110包括用来获取底层物理存储数据的元数据,这些物理存储数据位于物理存储设备上。
存储操作是创建或管理VD110的固定映象所必需的一个或多个程序。如前所述,对于不同的底层物理存储接口,以及对于不同的物理存储设备配置(比如存储阵列配置),固定映象能力是以不同的方式提供的。某些用于创建固定映象的技术包括数据镜像、写入时复制(copy-on-write)技术等等。采用一种技术或另一种技术将会影响物理存储设备配置将被如何管理、对任意创建的固定映象可以进行何种处理、以及创建固定映象要花费多长时间。图1所示的VD110允许通过利用与VD110相关的存储状态(如111-115)以及存储操作(如116-118)将潜在的完全不同的固定映象操作统一成一个标准的程序。
在VD110的一个实施例中,有5个存储状态标志(如111-115),它们分别是设置就续状态标志111、取消设置就续状态标志112、预备就续状态标志113、快照就续状态标志114以及恢复就续状态标志115。这些状态标志(如111-115)可以包括假/未设置值或真/已设置值。另外,指定给状态标志(如111-115)的值指示了哪些存储操作(如116-118)可以对与VD110相关联的底层物理存储设备执行,所述的物理存储设备是通过VD110的元数据与VD关联的。在一个实施例中,提供了三种存储操作(如116-118):恢复操作116、快照操作117以及预备操作118。
设置就续状态标志111提供了VD110是否处于允许VD110被重新设置的状态的指示。如果底层物理存储设备的某个特定设置与硬件镜像技术相关,那么所述的设置就续状态标志111就可以被用来指示一个VD110的物理设备目前可以与另一个VD110的物理设备相关联,以便在两个物理设备间同步或镜像存储数据。另外,对于与使用写入时复制技术的存储阵列相关的存储设备设置来说,就不需要来自设置就续状态标志111的任何指示,相应地,对于这种设置而言,设置就续状态标志111可以始终被设置为假。
与取消设置就续状态标志112相关的值指示了VD110是否处在该VD110与另外一个VD110之间的关联可以被去除的状态。这样就可以与另一个VD110重新建立关联,从而可以产生与该VD110的存储数据相关的多个固定映象。同样,对于与使用写入时复制技术的存储阵列相关的存储设备设置来说,不需要使用取消设置就续状态标志112,相应地该取消设置就续状态标志112通常可以被设为假。
与预备就续状态标志113相关的值指示了VD110是否处在这样一个状态,即与其相关联的VD110的存储设备可以被设置来进行一个预备操作118。在某些情况下,这可能是用另一个VD110的存储设备来镜像该VD110的一个建立操作。如果被镜像的VD110的存储设备被分离了,那么将预备就续状态标志113设为真值将使得被镜像的VD110的存储设备不可访问。对于与不使用数据镜像技术的存储阵列相关的存储设备设置来说,预备就续状态标志113可以被设为真,以便重新纳入先前进行的快照操作(比如以前的固定映象创建)所用去的存储空间,从而在根本上删除了任何先前创建的存储副本。作为对于本技术具有基本常识的人,通过结合预备操作118来使用预备就续状态标志113,存储管理员就可以利用所需要的时间来同步VD与物理存储设备,这是因为预备就续状态标志113提供了分离预备操作118与快照操作117(比如固定映象创建操作)的技术。
与快照就续状态标志114相关的值指示了VD110处在允许产生该VD110的固定映象/快照的状态。在某些实施例中,如果物理存储设备的底层设置允许,就可以在任何被创建的固定映象上将快照就续状态标志114设为真,从而允许根据其他固定映象再产生固定映象。
与恢复就续状态标志115相关的值指示了VD110是否处在先前所产生的VD110的固定映象可以被覆写到原始的VD110上的状态。这样就允许在VD110上出现反向创建或是恢复操作116,所述的反向创建或恢复是根据另一个载有与先前产生的固定映象有关的存储数据的VD110来完成的。
在任一给定的时刻,VD110可以处于多个状态中(如111-115)。当存储操作(如116-118)对于与VD110相关的底层物理存储设备可用时,存储管理员可以在任意时刻为VD110设置存储状态(如111-115)。此外,如果VD110是一组VD,或是与多个底层物理存储设备相关联,那么状态标志(如111-115)就会被自动设定数值,从而该组VD被默认设置到该组(如116-118)的最小公分母操作。
例如,如果可执行的存储管理指令集(比如VM等)中包括某些支持恢复操作116的VD110,同时也存在其他不支持恢复操作116的VD110,那么恢复就续状态标志115就会自动且始终被置为假,从而不会对任何VD110执行恢复操作116。
类似地,可以根据与VD110相关联的底层物理存储设备的能力来限制快照操作117。例如,如果VD110与一组VD相关联,其中一半VD的预备就续标志113被置为真,并且一半VD的快照就续标志114被置为真,那么在对快照就续标志114被置为真的VD110进行快照操作117之前,就要对预备就续标志113被置为真的VD110完成预备操作118。通过这种方式,就可以使某些存储操作(如116-118)暂时不可被使用,直到其他存储操作(如116-118)完成为止。
另外,任何可执行的存储管理指令集(如VM等)都可以基于存储操作(如116-118)的成功执行而被自动设置。例如,在一次或多次存储操作(如116-118)完成时,可以为可执行的存储管理指令集自动更新VD110的元数据,所述的VD110与底层物理存储数据相关联。另外,可以在一次成功的快照操作117完成之后执行自动导入与导出,以使得由存储操作(如116-118)创建的任何固定映象对可执行的存储管理指令集可见。
在某些实施例中,可以通过对图1所示的VD110做HA扩展来加入存储集群特性,以便增加存储操作(如116-118)。其中包括允许指定一个目标VD110以便进行快照操作117的操作,所述的快照操作117是对与一组VD110相关联的一个VD110执行的。快照结果可以被自动导入一个客户/主机,并被导入一个可执行的存储管理指令集中。另外,在某些实施例中,可以加入自动故障恢复操作,以便将存储操作(如116-118)所创建的任何固定映象复制到第二个VD110或是目标VD110上。当然,对于对本技术有一定常识的人很容易明白,还可以采用多种附加的操作和状态标志来增强图1所示存储服务的处理。所有这些增强都将落在本发明的广义范围之内。
图2根据本发明示出了处理存储操作的方法200的流程示意图。最初,物理存储数据被逻辑地表示为一个或多个VD数据结构。在某些实施例中,控制物理存储数据的物理存储设备接口并非直接通过VD数据结构访问。此外,单个VD数据结构可以代表多个VD数据结构。这些VD数据结构被存储管理应用程序用来向用户/客户应用程序或主机应用程序提供存储虚拟化。通过这种方式,用户/客户应用程序或主机应用程序就不必关心与存储数据相关的物理存储设备的细节,所述的存储数据在逻辑上由一个VD数据结构表示。
每个VD数据结构都与多个存储状态相关联,这些存储状态与对VD数据结构执行存储操作有关。这些存储状态可以被表示为具有真或假值的存储状态标志,所述的真或假值指示了该状态标志被置起或未被置起。此外,在某些实施例中,所述的状态标志包括,一个设置就续状态标志、一个取消设置就续状态标志、一个预备就续状态标志、一个快照就续状态标志、以及一个恢复就续状态标志。任何被设置的值都决定了在任一给定时刻是否可以对VD数据结构执行某项存储操作。在一个实施例中,存储操作包括恢复操作、快照操作以及预备操作。
恢复操作允许将与先前取得的固定映象有关的数据复制到一个原始的VD数据结构中,以便对原始VD数据结构进行恢复。快照操作允许根据VD数据结构形成一个固定映象,并将其存储在一个第二VD数据结构中。预备操作为建立操作、分割操作或是其他存储操作而设置一个VD数据结构。
在模块210中,为VD数据结构设置了状态标志的值。在某些实施例中,与物理存储设备有关的接口被更改,以便允许对与状态标志相关的值进行初始及后续的设置。通过这种方式,管理员或零售商就可以根据底层物理存储设备的配置来决定对应于特定存储设备的存储服务何时可用或何时不可用。相应地,在模块210中,可以根据一个或多个存储操作的处理结果来自动设置状态值。或者,在模块210中,存储管理员也可以手工设置状态值。另外,在某些实施例中,也可以在存储设备接口与可执行的存储管理指令集之间***一组可执行的指令,来为VD设置状态值。
在模块220中,接收到一个存储操作。该存储操作可以直接从可执行的存储管理指令集(如VM等)接收,也可以从用户/客户应用程序或主机应用程序接收,其中所述的应用程序是由存储管理员操作的。在模块222中,当接收到一个请求要对VD数据结构执行存储操作时,就会进行一次检查以判断VD数据结构是否处在可以执行接收到的存储操作的有效状态。
在某些实施例中,VD数据结构与一组VD数据结构相关联,在这种情况下可以强加一个最小公共规则,使得只要有任何VD数据结构与成功执行接收到的存储操作所必须的无效状态标志值相关,那么该状态就在模块222中被视为无效。另外,在某些情况下,接收到的操作会在另一项存储操作完成后变得有效。在这种情况下,接收到的存储操作会被暂缓执行,直到整组VD数据结构的状态都允许执行接收到的存储操作。
在模块230中,一旦与状态标志相关的值为有效,就对VD数据结构执行接收到的存储操作。在模块240中,当接收到的存储操作执行完成时,就会为VD数据结构的状态标志更新合适的值。接着,在模块220中,继续在接收到另一个存储操作时执行处理。
图3示出了用于根据本发明提供存储操作的方法300的流程示意图。在模块310中,将状态标志与VD相关联。这些状态标志所包含的值被用来判断在VD的当前状态下是否可以对该VD正确地执行某个特定的存储操作。所述的VD逻辑上代表了与一个或多个物理存储设备相关联的存储数据。另外,在某些实施例中,一个VD可以代表多个或一组VD。另外,存储设备的底层设置可以决定多个状态标志的值。
在某些实施例中,状态标志代表了五个状态:设置就续状态、取消设置就续状态、预备就续状态、快照就续状态以及恢复就续状态。设置就续状态的值指示了该VD是否可以被重新设置。在某些情况下,存储设备的底层设置会强制该设置就续状态的值被始终置为假。取消设置就续状态的值指示了是否可以取消该VD与其他VD的关联。在某些情况下,存储设备的底层设置会强制该取消设置就续状态的值被始终置为假。
预备就续状态的值指示是否可以对VD执行一个预备操作。预备操作为对VD执行创建或分割操作做好准备。另外,对于不允许进行数据镜像的存储设备,预备就续状态的值可以被设为真,以便重新利用被先前创建的固定映象占用的存储空间。快照就续状态的值指示了是否可对VD执行快照操作以便创建VD的固定映象。允许为先前创建的固定映象再创建固定映象。恢复就续状态的值指示了是否可以对VD执行恢复操作,以便将VD恢复为先前创建的固定映象。
在模块320中,与VD一同提供了存储操作。这些操作包括为了对VD执行建立操作而将VD准备就续的预备操作,分割操作或是其他存储操作(比如镜像操作),以及用先前创建的固定映象覆写VD的恢复操作。当然,那些具有本技术常识的人可以理解,还可以提供各种额外的存储操作,这样做不会偏离本发明。这些操作中的一些可以包括通过允许指定目标VD而加入存储集群特性,以及向目标VD上的可执行存储管理指令集(如VM等)导入先前创建的快照。另外,在适当的条件下,一项操作可以允许将一个固定映象故障恢复到另一个VD上。
另外,在模块330中,在对VD执行至少一项存储操作时根据指定给状态标志的值自动设置了可执行的存储管理指令集。例如,与任何创建的固定映象的存储数据相关的底层物理映射可以被自动导入或导出到比如可执行的存储管理指令集中,从而使得新创建的固定映象在一次分割操作成功完成时对于可执行的存储管理指令集可见,且可被访问。同样,底层物理映射也可以被自动导入或导出到主机计算环境中。
在模块340中,一项存储操作被接收或被请求。在某些情况下,该操作是从可执行的存储管理指令集接收到的。在其他情况下,该存储操作是直接从用户/客户的可执行指令集或是主机的可执行指令集接收来的,比如当存储管理员手工执行存储操作时。在模块342中,一旦接收到一个被提出的存储操作,就会验证当前被指定给VD的值,以判定所请求的存储操作是否可以被执行,或是暂缓执行直到完成对VD的其他存储操作为止。在某些实施例中,VD代表了一组VD,在所请求的操作被允许执行之前,必须验证组内每个VD的状态标志的值。
在模块350中,一旦与VD的状态标志相关的值允许所请求的存储操作被执行,那么所请求的存储操作就会被执行。在所请求的存储操作执行完成时,可执行的存储管理指令集被适当地设置,并且根据需要自动更新/重置状态标志的值。
同样,在某些实施例中,VD与一个第一存储设备和一个第二存储设备相关联,其中第一存储设备与第二存储设备有所不同。例如,第一存储设备的设置允许进行数据镜像,而第二存储设备的设置则不允许进行数据镜像。另外,与第一存储设备和第二存储设备相关联的接口也可能不同,因为第一与第二存储设备可能由不同的硬件零售商提供。或者,所述的接口也可能是同一个硬件零售商提供的一种接口的不同版本/型号。
图4根据本发明示出了一种存储操作***400的示意图。该存储操作***400中包括一个或多个VD(比如410-412)、一个可执行的存储管理指令集430以及一个可执行指令选集420。所述的VD(如410-412)与一个或多个存储设备(如401-402)相关联。另外,所述的VD(如410-412)还与多个状态、快照操作、预备操作以及一个可选的恢复操作相关联。
在一个实施例中,所述的可执行存储管理指令集430是一个工作在共享存储环境中的VM,比如SAN环境或是使用iSCSI的TCP/IP环境。所述的可执行存储管理指令集430管理着VD(如410-412),并且可以在对VD(如410-412)执行了一项或多项操作时被动态设置。例如,如果对VD(如410-412)完成了一次快照操作,那么得到的固定映象就会被导入到所述的可执行存储管理指令集430中,从而使得生成的固定映象对于所述的可执行存储管理指令集可见且可访问。所述的固定映象还可以被导入到一台主机计算设备上。
可执行指令选集420可以在所述状态的当前值允许执行选取的操作时,选择性地执行操作。在某些实施例中,所述的操作可以将VD(如410-412)准备好,以便对一个第二VD(比如410或412)进行一次建立操作或是分割操作,或是对第二VD(如410或412)进行重新准备。在其他实施例中,所述的操作允许一个第二VD(如410或412)去恢复其他VD(如410或412)的数据,其中所述的第二VD(如410或412)代表了先前创建的一个VD(如410或412)的固定映象。另外,快照操作允许创建VD(如410-412)的固定映象。在一个实施例中,一个可执行指令的选集被实现为图形用户接口(GUI)工具,从而存储管理员可以选择性地识别并执行所述的操作。另外,在某些实施例中,GUI工具允许存储管理员手工选择目标VD(如410或412)或是存储池,来容纳对VD(如410-412)执行选择性操作所获得的结果。
每个状态都具有一个值,并且该值指示了在任意特定时刻可以对VD(如410-412)执行的操作。在一个实施例中,根据存储设备的类型,预先决定了多个值并将它们指定给各个状态。可以根据所述存储设备(如401-402)所支持的服务来指定存储设备的类型。存储设备类型还可以标识与一个特定存储设备(如401或402)有关的特定零售商、与存储设备(如401或402)相关的特定设置,或是一个存储设备(如401或402)提供的特定接口。
另外,在某些实施例中,单个VD(如410或412)中可能包括一组VD(如410-412)。在这些实施例中,所述的可执行存储管理指令集430可以被设置为不执行构成所述VD组(如410-412)的各个VD(如410-412)所不支持的操作。例如,如果可执行指令选集420试图选择性地对所述的一组VD(如410-412)执行不被支持的操作,那么所述的可执行存储管理指令集430就被设置为,只要组内任意VD(如410或412)不支持该项操作,就不会执行该项不支持的操作。通过这种方式,单个VD(如410或412)就可以与多个不同的存储设备(如401-402)相关联。从而就可以为所述的可执行存储管理指令集430确保不会对单个VD(如410或412)执行不能在每个VD(如410-412)上都成功完成的操作。在某些情况下,可以将不被支持的操作暂缓执行,直到所述状态的值允许执行该不支持的操作为止。
图5根据本发明示出了一种VD数据结构500的示意图。该VD数据结构500包括存储元数据506、多个存储状态502以及多个存储操作映射504。存储元数据与一个或多个存储设备510上的物理存储位置(如存储地址)相关联。物理存储位置中容纳了存储数据。存储元数据506包括了足以当一个引用应用程序要求从VD数据结构500获得物理存储数据时取得该物理存储数据的信息。存储状态502与VD数据结构500的处理状态相关。另外,指定给存储状态502的值决定了在任意给定时刻可以通过访问存储操作映射504而成功执行的存储操作。另外,在某些实施例中,存储设备510的私有接口或是存储管理员可以自动或手工设置制定给各个存储状态502的值。当存储设备510的设置不支持特定的存储操作,或是与存储设备510相关的接口不支持特定的存储操作时,这一点是很有用的。
在一个实施例中,存储操作映射504可被一个可执行的存储管理指令集520(如VM等)访问,以执行存储操作。在其他实施例中,存储操作映射504可被一个可执行指令选集530访问,例如在存储管理员试图手工执行多项存储操作以及/或独立于所述的可执行存储管理指令集520自动执行的操作时。
另外,在某些实施例中,多个存储操作允许利用VD数据结构500来获取存储数据506的固定映象,并将其传送给一个或多个第二VD数据结构506。在其他实施例中,多个存储操作允许将先前创建的与第二VD数据结构500相关的固定映象恢复到原始VD数据结构506中。另外,单个VD数据结构506可以被用来代表多个VD数据结构506的实体。在某些实施例中,VD数据结构500位于易失性存储器中,比如高速缓存。但是,对于那些具有本技术常识的人来说很明显的是,VD数据结构500也可以位于非易失性存储器中或是易失性与非易失性存储器的组合体中。
图6根据本发明示出了另一种存储操作***600的示意图。该存储操作***600包括多个存储管理应用程序(如610和620)、多个虚拟磁盘(如630和640)以及多个存储阵列(如650和660)。当应用程序请求进行存储管理操作时,存储管理应用程序(如610和620)与虚拟磁盘(如630和640)相互作用。也可以接收来自主机应用程序的请求。
虚拟磁盘(如630和640)还包括存储管理状态以及与存储管理操作相作用的接口。存储管理操作与调用语句以及存储阵列(如650和660)上的模块相互作用。当存储阵列(如650和660)上的存储条件发生变化时,虚拟磁盘(如630和640)的状态被动态更新(例如事件驱动)。存储管理状态将决定在任何特定时刻是否允许存储管理应用程序(如610和620)对虚拟磁盘(如630和650)执行存储管理操作。
在某些实施例中,单个存储管理应用程序(如610或620)与多个虚拟磁盘(如630和640)相互作用。另外,每个存储阵列(如650和660)中都包括调用语句和存储管理模块,当各个存储阵列(如650和660)是由不同零售商提供的或是由同一零售商提供的不同版本的存储阵列(如650或660)时,所述的调用语句和存储管理模块就会彼此不同。
每个虚拟磁盘(如630和640)都与译码模块或供应商模块相连接并相关联,所述的两种模块对与不同存储阵列接口(如650和660)相关的调用语句和模块名进行规范化。这样,存储管理应用程序(如610和620)就不必关心与标准存储管理操作相关的特定调用语句和模块名称。通过这种方式,就可以开发存储管理应用程序,使得与不同存储阵列(如650和660)相关的接口被解耦合,并且不依赖于存储阵列的接口。
结论
以上所述的存储服务与***允许在异性共享的存储环境中进行改善的存储操作。这些服务与***包括方法、***以及虚拟数据结构,它们允许存储管理应用程序以及用户/客户或主机应用程序在创建存储器的固定映象(如快照操作)或是执行其他存储操作(如分割与镜像)时,使用一致且标准化的接口。另外,单个虚拟数据结构中可以包括多个虚拟数据结构,这些数据结构与多个不同的物理存储设备相关联。每个虚拟数据结构都与存储状态和存储操作相关。在某些实施例中,如果有至少一个相关的底层物理存储设备设置或接口不支持某项特定操作,那么该项不被支持的操作就自动不能被整个虚拟数据结构使用。另外,在某些实施例中,一个GUI使得用户/客户或主机应用程序能够选择性地执行与VD数据结构有关的存储操作。
具有本技术常识的人在阅读本说明书之后应该可以理解,本说明书中提出的方法、***以及数据结构允许更灵活地实现存储管理、用户/客户以及/或主机应用程序。另外,应用程序都更易于开发与维护。另外,存储管理应用程序更加稳定可靠,能够更容易地与多个具有不同配置以及/或是来自不同零售商的底层物理存储设备的接口集成到一起。
尽管本文中图示并说明了具体的实施方式,但是具有本技术常识的人能够理解,可以用任何能实现相同目的的结构来替代文中示出的具体实施方式。本申请旨在覆盖本发明的任何修改或变型。因此,本发明应该只受到权利要求以及等效条款的约束。

Claims (9)

1.一种用以提供存储操作的方法,包括:
为虚拟磁盘提供执行快照操作的途径,其中所述虚拟磁盘逻辑上代表位于一个或多个存储设备上的存储数据,其中所述快照操作可操作地复制所述存储数据;
把状态信息与所述虚拟磁盘相关联,其中所述状态信息指示所述虚拟磁盘是否处于允许执行所述快照操作的状态;
接收执行所述快照操作的请求;以及
响应于确定所述状态信息指示所述虚拟磁盘处于允许执行所述快照操作的状态,执行所述快照操作。
2.根据权利要求1所述的方法,还包括:为所述虚拟磁盘提供执行恢复操作的途径,其中所述恢复操作可操作地将先前由所述快照操作所复制的存储数据恢复到所述一个或多个存储设备;其中所述状态信息还指示所述虚拟磁盘是否处于允许执行所述恢复操作的状态。
3.根据权利要求1所述的方法,其中所述一个或多个存储设备包括第一存储阵列和第二存储阵列,其中所述第一存储阵列是与所述第二存储阵列不同的类型。
4.一种存储操作***,包括:
一个或多个存储设备;
一个虚拟磁盘,所述虚拟磁盘逻辑上代表位于所述一个或多个存储设备上的存储数据,其中所述虚拟磁盘具有指示所述虚拟磁盘是否处于允许执行快照操作的状态的相关状态信息;
一个可执行的存储管理指令集,可操作地响应于确定与所述虚拟磁盘相关的状态信息允许执行所述快照操作,对所述虚拟磁盘执行所述快照操作,其中所述快照操作可操作地复制所述存储数据;以及
一个可执行指令选集,该指令选集允许选择性地执行所述快照操作。
5.根据权利要求4所述的存储操作***,其中执行所述快照操作包括将所述虚拟磁盘镜像到一个第二虚拟磁盘上和将所述虚拟磁盘备份到所述第二虚拟磁盘上至少之一。
6.根据权利要求4所述的存储操作***,其中至少部分地根据与所述一个或多个存储设备中一个或多个相关的类型设置所述状态信息。
7.根据权利要求4所述的存储操作***,其中所述可执行指令选集允许选取一个目标虚拟磁盘或一个存储池以便在选择性地对所述虚拟磁盘执行所述快照操作时使用。
8.根据权利要求4所述的存储操作***,其中所述虚拟磁盘、所述可执行的存储管理指令集以及所述可执行指令选集都参与到共享的存储环境中。
9.根据权利要求4所述的存储操作***,其中所述可执行指令选集是可执行指令的一个图形用户界面集。
CNB038212722A 2002-07-11 2003-07-11 存储服务与*** Expired - Lifetime CN100359479C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/194,524 2002-07-11
US10/194,524 US7043614B2 (en) 2002-07-11 2002-07-11 Storage services and systems

Publications (2)

Publication Number Publication Date
CN1682193A CN1682193A (zh) 2005-10-12
CN100359479C true CN100359479C (zh) 2008-01-02

Family

ID=30114766

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038212722A Expired - Lifetime CN100359479C (zh) 2002-07-11 2003-07-11 存储服务与***

Country Status (10)

Country Link
US (1) US7043614B2 (zh)
EP (1) EP1535161B1 (zh)
JP (1) JP2005533318A (zh)
KR (1) KR100736235B1 (zh)
CN (1) CN100359479C (zh)
AT (1) ATE360851T1 (zh)
AU (1) AU2003249167A1 (zh)
DE (1) DE60313468T2 (zh)
HK (1) HK1076890A1 (zh)
WO (1) WO2004008323A2 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596611B1 (en) 2002-04-01 2009-09-29 Veritas Operating Corporation Method and apparatus for maintaining information for use in the configuration of a client
US6826661B2 (en) * 2002-08-30 2004-11-30 Veritas Operating Corporation Methods and systems for storage architectures
US7584266B2 (en) * 2003-12-16 2009-09-01 International Business Machines Corporation Autonomous storage for backup, restore, and file access
JP4422519B2 (ja) * 2004-03-18 2010-02-24 株式会社日立製作所 情報処理システム
US7546631B1 (en) * 2004-04-30 2009-06-09 Sun Microsystems, Inc. Embedded management system for a physical device having virtual elements
EP1825412A1 (en) 2004-10-25 2007-08-29 Rick L. Orsini Secure data parser method and system
US8171101B2 (en) * 2005-09-30 2012-05-01 Cleversafe, Inc. Smart access to a dispersed data storage network
TWI307026B (en) * 2005-12-30 2009-03-01 Ind Tech Res Inst System and method for storage management
CN101809559B (zh) * 2007-09-05 2013-10-16 伊姆西公司 在虚拟化服务器和虚拟化存储环境中的去重复
US8880797B2 (en) 2007-09-05 2014-11-04 Emc Corporation De-duplication in a virtualized server environment
US8209506B2 (en) 2007-09-05 2012-06-26 Emc Corporation De-duplication in a virtualized storage environment
CN101470583B (zh) * 2007-12-29 2011-02-16 英业达股份有限公司 实现虚拟磁盘服务设备的***架构
US8539218B2 (en) * 2008-07-17 2013-09-17 Lsi Corporation Systems and methods for using an installation script to create a hidden boot partition to install a bootable virtual storage appliance on a virtualized server platform
GB2483034A (en) 2009-05-13 2012-02-22 Hewlett Packard Development Co System for virtual disks version control
US8825685B2 (en) * 2009-11-16 2014-09-02 Symantec Corporation Selective file system caching based upon a configurable cache map
KR20110080480A (ko) * 2010-01-06 2011-07-13 주식회사 태진인포텍 가상 스토리지 장치 및 이를 이용한 제어 방법
JP5691969B2 (ja) * 2011-09-26 2015-04-01 オムロン株式会社 データ処理装置、データ処理システム、およびデータ処理方法
WO2013089298A1 (ko) * 2011-12-16 2013-06-20 엘지전자 주식회사 디스크 어레이의 제어 장치 및 방법
CA2867302A1 (en) 2012-03-14 2013-09-19 Convergent .Io Technologies Inc. Systems, methods and devices for management of virtual memory systems
US9135119B1 (en) * 2012-09-28 2015-09-15 Emc Corporation System and method for data management
US9881177B2 (en) 2013-02-13 2018-01-30 Security First Corp. Systems and methods for a cryptographic file system layer
WO2014193350A1 (en) 2013-05-29 2014-12-04 Hewlett-Packard Development Company, L.P. Invoking an error handler to handle an uncorrectable error
CN108733507B (zh) * 2017-04-17 2021-10-08 伊姆西Ip控股有限责任公司 文件备份和恢复的方法和设备
CN107729052A (zh) * 2017-10-16 2018-02-23 郑州云海信息技术有限公司 一种数据操作方法、装置、设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1149736A (zh) * 1995-06-05 1997-05-14 北京航空航天大学 一种分布式存储器共享管理方法
US5964886A (en) * 1998-05-12 1999-10-12 Sun Microsystems, Inc. Highly available cluster virtual disk system
WO2001038987A2 (en) * 1999-11-29 2001-05-31 Microsoft Corporation Storage management system having common volume manager
US20020019920A1 (en) * 2000-06-02 2002-02-14 Reuter James M. Process for fast, space-efficient disk copies using parallel distributed table driven I/O mapping
US20020019908A1 (en) * 2000-06-02 2002-02-14 Reuter James M. System and method for managing virtual storage

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634096A (en) * 1994-10-31 1997-05-27 International Business Machines Corporation Using virtual disks for disk system checkpointing
US6038639A (en) * 1997-09-09 2000-03-14 Storage Technology Corporation Data file storage management system for snapshot copy operations
US6173293B1 (en) * 1998-03-13 2001-01-09 Digital Equipment Corporation Scalable distributed file system
US6047294A (en) * 1998-03-31 2000-04-04 Emc Corp Logical restore from a physical backup in a computer storage system
US6161191A (en) * 1998-05-12 2000-12-12 Sun Microsystems, Inc. Mechanism for reliable update of virtual disk device mappings without corrupting data
US6795966B1 (en) * 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6216202B1 (en) * 1998-06-30 2001-04-10 Emc Corporation Method and apparatus for managing virtual storage devices in a storage system
US6772231B2 (en) * 2000-06-02 2004-08-03 Hewlett-Packard Development Company, L.P. Structure and process for distributing SCSI LUN semantics across parallel distributed components
US6857059B2 (en) * 2001-01-11 2005-02-15 Yottayotta, Inc. Storage virtualization system and methods
US6757778B1 (en) * 2002-05-07 2004-06-29 Veritas Operating Corporation Storage management system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1149736A (zh) * 1995-06-05 1997-05-14 北京航空航天大学 一种分布式存储器共享管理方法
US5964886A (en) * 1998-05-12 1999-10-12 Sun Microsystems, Inc. Highly available cluster virtual disk system
WO2001038987A2 (en) * 1999-11-29 2001-05-31 Microsoft Corporation Storage management system having common volume manager
US20020019920A1 (en) * 2000-06-02 2002-02-14 Reuter James M. Process for fast, space-efficient disk copies using parallel distributed table driven I/O mapping
US20020019908A1 (en) * 2000-06-02 2002-02-14 Reuter James M. System and method for managing virtual storage
US20020029326A1 (en) * 2000-06-02 2002-03-07 Reuter James M. Centralized fine-grained enhancements for distributed table driven I/O mapping

Also Published As

Publication number Publication date
CN1682193A (zh) 2005-10-12
DE60313468T2 (de) 2008-01-10
AU2003249167A1 (en) 2004-02-02
HK1076890A1 (en) 2006-01-27
US7043614B2 (en) 2006-05-09
JP2005533318A (ja) 2005-11-04
US20040010666A1 (en) 2004-01-15
AU2003249167A8 (en) 2004-02-02
DE60313468D1 (de) 2007-06-06
WO2004008323A2 (en) 2004-01-22
EP1535161B1 (en) 2007-04-25
ATE360851T1 (de) 2007-05-15
WO2004008323A3 (en) 2004-03-04
KR100736235B1 (ko) 2007-07-06
KR20050088067A (ko) 2005-09-01
EP1535161A2 (en) 2005-06-01

Similar Documents

Publication Publication Date Title
CN100359479C (zh) 存储服务与***
WO2021238267A1 (zh) 基于集群文件***的数据备份方法、装置及可读存储介质
CN102834822B (zh) 由虚拟机共享的群集的快速-完整备份
US6618794B1 (en) System for generating a point-in-time copy of data in a data storage system
CN100419664C (zh) 存储网络中执行备份操作的方法
CN101571815B (zh) 信息***及i/o处理方法
CN105164657B (zh) 程序数据至非易失性存储器的选择性备份***及方法
US8161321B2 (en) Virtual machine-based on-demand parallel disaster recovery system and the method thereof
CN100458716C (zh) 数据维护、备份和恢复方法
US6618736B1 (en) Template-based creation and archival of file systems
CN101361047B (zh) 用于存储***中的数据保护的方法和***
CN100416508C (zh) 一种存储网络中的数据备份方法
CN100524235C (zh) 存储网络中的恢复操作
US8234474B2 (en) Method of constructing replication environment and storage system
JP4143611B2 (ja) バックアップ生成装置、リカバリ処理装置、バックアップ生成方法、リカバリ処理方法、及びプログラム
US20070113004A1 (en) Method of improving efficiency of capacity of volume used for copy function and apparatus thereof
CN101981550B (zh) 数据库***、数据库更新方法、数据库以及数据库更新程序
JP2005031716A (ja) データバックアップの方法及び装置
CN102200921A (zh) 智能引导设备选择和恢复
JP2006065845A (ja) 最適化された復元プランの生成
JP2005196683A (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
CN101878470B (zh) 用于管理存储拷贝服务***的装置以及方法
JP4937863B2 (ja) 計算機システム、管理計算機及びデータ管理方法
CN1971527A (zh) 具有中央控制的数据备份的方法和***
CN112181736A (zh) 分布式存储***及分布式存储***的配置方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: REVIVIO INC.

Free format text: FORMER NAME: VERITAS SOFTWARE CORP.

CP03 Change of name, title or address

Address after: California, USA

Patentee after: REVIVIO, Inc.

Address before: American California

Patentee before: Veritas Operating Corp.

CX01 Expiry of patent term

Granted publication date: 20080102

CX01 Expiry of patent term