CN100524235C - 存储网络中的恢复操作 - Google Patents

存储网络中的恢复操作 Download PDF

Info

Publication number
CN100524235C
CN100524235C CNB2005101188860A CN200510118886A CN100524235C CN 100524235 C CN100524235 C CN 100524235C CN B2005101188860 A CNB2005101188860 A CN B2005101188860A CN 200510118886 A CN200510118886 A CN 200510118886A CN 100524235 C CN100524235 C CN 100524235C
Authority
CN
China
Prior art keywords
snapshot
difference file
snapshot difference
data
source book
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 - Fee Related
Application number
CNB2005101188860A
Other languages
English (en)
Other versions
CN1770115A (zh
Inventor
R·丹尼尔斯
L·纳尔逊
A·达尔曼
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN1770115A publication Critical patent/CN1770115A/zh
Application granted granted Critical
Publication of CN100524235C publication Critical patent/CN100524235C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/2071Error 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 using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • 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
    • G06F11/2082Data synchronisation
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

描述了示范存储网络体系结构、数据体系结构以及用于在存储网络中创建和使用快照差别文件的方法。一种示范方法可在存储网络中的处理器中实现。该方法包括检测源卷中的故障,以及对故障作出响应:终止与产生对源卷的I/O请求的一个或多个应用的通信;刷新源卷;将备份数据集复制到源卷,以及在正复制备份数据集的同时:激活新的快照差别文件;重新开始与产生对源卷的I/O请求的一个或多个应用的通信;以及在快照差别文件中记录对源卷的I/O操作。

Description

存储网络中的恢复操作
技术领域
所述主题涉及电子计算,更具体来说,涉及存储网络中的恢复操作。
背景技术
复制和存储存储装置的内容的能力是存储系统的一个重要特征。数据可并行地存储,以防单个存储装置或介质出故障。在第一存储装置或介质出故障时,系统则可检索第二存储装置或介质中包含的数据的副本。复制和存储存储装置的内容的能力还有助于在复制时内容的固定记录的创建。这个特征允许用户恢复无意中编辑或擦除的数据的先前版本。
存在与复制和存储存储装置的内容关联的空间和处理成本。例如,一些存储装置在其内容正被复制时无法接受输入/输出(I/O)操作。此外,用来保存副本的存储空间无法用于其它存储需求。
存储系统和存储软件产品可提供制作盘卷的时间点副本的方式。在这些产品的一部分中,可极快地制作副本,而不会明显地干扰使用盘卷的应用。在另一些产品中,通过共享存储而不是复制全部盘卷数据,可使副本节省空间。
但是,用于复制数据文件的已知方法包含限制。一部分已知的盘复制方法没有提供快速复制。另一些已知的盘复制方法解决方案不节省空间。又一些已知的盘复制方法提供快速且节省空间的快照,但不是在可缩放、分布式、表驱动的虚拟存储系统中进行这类操作。
在硬件、软件或者与主数据集关联的数据出故障的情况下,存储系统还提出对有效恢复操作的需求。因此,在存储装置中仍然需要改进的复制和故障恢复操作。
发明内容
本发明提供一种在存储网络中实现恢复操作的方法。该方法包括检测源卷中的故障,以及对故障作出响应:终止与向源卷产生I/O请求的一个或多个应用的通信;刷新源卷;将备份数据集复制到源卷,以及在复制所述备份数据集的同时:激活新的快照差别文件;重新开始与对源卷产生I/O请求的一个或多个应用的通信;以及在快照差别文件中记录对源卷的I/O操作。
附图说明
图1是利用存储网络的连网计算系统的一个示范实现的示意说明。
图2是存储网络的一个示范实现的示意说明。
图3是可用于实现主机的计算装置的一个示范实现的示意说明。
图4是存储单元的一个示范实现的示意说明。
图5说明LUN的一个示范存储器表示。
图6是在虚拟化存储系统中的数据分配的示意说明。
图7是用于在存储网络中实现快照差别文件的一个示范数据体系结构的示意说明。
图8是用于在存储网络中创建和使用快照差别文件的一个示范文件结构的示意说明。
图9a-9b是快照差别文件的存储器分配图的示意说明。
图10是流程图,说明用于创建快照差别文件的示范方法中的操作。
图11是流程图,说明用于在利用一个或多个快照差别文件的环境下执行读操作的示范方法中的操作。
图12是流程图,说明用于在利用一个或多个快照差别文件的环境下执行写操作的示范方法中的操作。
图13是流程图,说明用于将快照差别文件合并到逻辑盘中的示范方法中的操作。
图14a-14d是在恢复操作中利用快照差别文件的数据体系结构的示意时间序列说明。
图15是流程图,说明在恢复操作中利用快照差别文件的示范方法中的操作。
具体实施方式
本文所述的是示范存储网络体系结构、数据体系结构以及用于在存储网络中创建和使用差别文件的方法。本文所述的方法可体现为计算机可读介质中的逻辑指令。在处理器上执行时,逻辑指令使通用计算装置被编程为实现所述方法的专用机器。当由逻辑指令配置成执行本文所述的方法时,处理器构成用于执行所述方法的结构。
示范网络体系结构
本文所述的主题可在提供系统级上的虚拟化数据存储的存储体系结构中实现,使得虚拟化在SAN中实现。在本文所述的实现中,利用存储装置的计算系统称作主机。在一种典型实现中,主机是代表其本身或者代表耦合到主机的系统消耗数据存储资源容量的任何计算系统。例如,主机可以是处理大数据库的巨型计算机、维护事务记录的事务处理服务器等等。或者,主机可以是局域网(LAN)或广域网(WAN)中的文件服务器,它为企业提供存储服务。
在直接连接存储解决方案中,这种主机可包括配置成管理多个直接连接的盘驱动器的一个或多个盘控制器或RAID控制器。相比之下,在SAN中,主机经由高速连接技术、例如具体实例中的光纤信道(FC)交换结构一致地连接到SAN。
虚拟化SAN体系结构包括一组存储单元,其中,各存储单元包括称作盘组的存储装置池。各存储单元包括耦合到盘组的并行存储控制器。存储控制器采用光纤信道仲裁环路连接或者通过诸如光纤信道交换结构之类的网络耦合到存储装置。存储控制器还可通过点到点连接相互耦合,使它们能够协同管理存储容量对使用存储容量的计算机的提供。
本文所述的网络体系结构表示分布式计算环境,例如采用专有SAN的企业计算系统。但是,网络体系结构可易于上下缩放,以便满足特定应用的需要。
图1是利用存储网络的连网计算系统100的一个示范实现的示意说明。在一个示范实现中,存储装置池110可实现为虚拟化存储装置池,例如Lubbers等人的已公布的美国专利申请公布号2003/0079102中所述,通过引用将此公开完整地结合于本文中。
多个逻辑盘(又称作逻辑单元或LUN)112a、112b可在存储装置池110中分配。每个LUN 112a、112b包括一系列邻接的逻辑地址,它们可由主机装置120、122、124和128通过将请求从主机装置所使用的连接协议映射到唯一标识的LUN 112a、112b来寻址。主机、如服务器128可向其它计算或数据处理系统或装置提供服务。例如,客户计算机126可经由主机、如服务器128访问存储装置池110。服务器128可向客户机126提供文件服务,并且可提供诸如事务处理服务、电子邮件服务之类的其它服务。因此,客户装置126可能或者可能不直接使用由主机128耗用的存储装置。
例如无线装置120等装置以及也可用作主机的计算机122、124可在逻辑上直接耦合到LUN 112a、112b。主机120-128可耦合到多个LUN 112a、112b,以及LUN 112a、112b可在多个主机之间共享。图1所示的装置中的每个可包括存储器、大容量存储装置以及足以管理网络连接的一定程度的数据处理能力。
例如LUN 112a、112b等LUN包括一个或多个冗余存储器(RStore),它们是可靠存储的基本单位。RStore包括具有关联冗余属性的物理存储段(PSEG)的有序集合,并且整个包含在单个冗余存储器集(RSS)中。与传统存储系统类比,PSEG类似于盘驱动器,以及各个RSS类似于包含多个驱动器的RAID存储集。
实现特定LUN的PSEG可在任何数量的物理存储盘上分布。此外,特定LUN 102表示的物理存储容量可配置成实现提供变化容量、可靠性及可用性特征的各种存储类型。例如,一些LUN可表示条带、镜像和/或奇偶校验保护的存储。另一些LUN可表示没有配置条带、冗余度或奇偶校验保护的存储容量。
在一个示范实现中,RSS包括逻辑设备分配域(LDAD)中的物理盘的子集,并且可包括六到十一个物理驱动器(可动态改变)。物理驱动器可以具有不同的容量。为了映射,RSS中的物理驱动器可分配索引(例如0、1、2、...、11),以及为了RAID-1,可组织成对(即相邻的奇数和偶数索引)。包括许多盘的大RAID卷存在的一个问题是,盘出故障的可能性随着添加更多驱动器而明显增加。例如,十六驱动器系统会遇到驱动器故障(或者更严重地同时两个驱动器故障)的可能性是八驱动器系统的两倍。根据本发明,由于数据保护在某个RSS中展开,并且不是跨多个RSS,因此,一个RSS中的盘故障对于其它任何RSS的可用性没有影响。因此,实现数据保护的RSS必定经受在RSS中的两次驱动器故障而不是整个系统中的两次故障。由于RAID-1实现中的组对,因此不仅两个驱动器必定在特定RSS中出故障,而且RSS中的驱动器中的特定一个必定是第二个出故障(即第二个出故障的驱动器必定与第一个出故障的驱动器成对)。存储集到其中可独立管理每个RSS的多个RSS的这种原子化改进了整个系统的数据的性能、可靠性以及可用性。
SAN管理器设备109耦合到管理逻辑盘集(MLD)111,它是描述用于创建LUN 112a、112b、LDAD 103a、103b的逻辑结构以及系统使用的其它逻辑结构的元数据容器。存储装置池101中可用的物理存储容量的一部分作为法定空间113保留,不能分配给LDAD 103a、103b,因此无法用于实现LUN 112a、112b。在一个特定实例中,加入存储装置池110的每个物理盘具有可被指定为法定空间113的保留数量的容量(例如前“n”个物理扇区)。MLD 111在多个物理驱动器的这个法定空间中被形成镜像,因此即使在驱动器出故障时也可被存取。在一个特定实例中,与各LDAD 103a、103b关联的至少一个物理驱动器包括MLD 111的副本(命名为“法定驱动器”)。SAN管理设备109可能希望关联诸如LDAD 103a、103b和LUN 112a、112b的名称串以及对象生日的时标等的信息。为了便于这个行为,管理代理采用MLD 111来存储这种信息作为元数据。MLD 111在各LDAD103a、103b的创建时隐式创建。
例如,法定空间113用来存储包括物理存储器ID(各物理驱动器的唯一ID)、版本控制信息、类型(法定/非法定)、RSS ID(标识这个盘属于哪个RSS)、RSS偏移(标识这个盘在RSS中的相对位置)、存储单元ID(标识这个盘属于哪个存储单元)、PSEG大小的信息以及表明该盘是否为法定盘的状态信息。这个元数据PSEG还包含整个物理存储器的PSEG空闲表,可能采取分配位图的形式。另外,法定空间113包含物理盘上的每个PSEG的PSEG分配记录(PSAR)。PSAR包含PSAR签名、元数据版本、PSAR使用情况以及这个PSEG所属的RSD的指示。
CSLD 114是另一种类型的元数据容器,其中包括从每个LDAD103a和103b内的地址空间中分配的、但与LUN 112a和112b不同地可跨越多个LDAD 103a和103b的逻辑驱动器。每个LDAD 103a、103b最好是包括分配给CSLD 114的空间。CSLD 114保存描述给定LDAD103的逻辑结构的元数据,其中包括主逻辑盘元数据容器(PLDMC),它包含描述在LDAD 103a、103b中实现的各LUN 112a、112b所使用的每个RStore的描述符(称作RSDM)的阵列。CSLD 114实现通常用于诸如盘创建、均匀调整、RSS合并、RSS分割以及再生之类的任务的元数据。这个元数据包括各物理盘的状态信息,它表明物理盘是“正常”(即按照预计方式工作)、“丢失”(即不可用)、“合并”(即已经重新出现并且在使用前必须标准化的丢失驱动器)、“替换”(即驱动器被标记为移去,以及数据必须复制到分布式备件上)以及“再生”(即,驱动器不可用,并且要求其数据再生到分布式备件上)。
CSLD 114中的逻辑盘目录(LDDIR)数据结构是任何LDAD103a、103b中的全部LUN 112a、112b的目录。LDDS中的一个条目包括通用唯一ID(UUID)以及表示那个LUN 102的主逻辑盘元数据容器(PLDMC)的位置的RSD。RSD是指向基本RSDM的指针或者相应LUN 112a、112b的入口点。这样,具体LUN 112a、112b特定的元数据可通过索引到LDDIR从而查找特定LUN 112a、112b的基本RSDM来访问。PLDMC(例如以下描述的映射结构)内的元数据可装入存储器来实现具体LUN 112a、112b。
因此,图1所示的存储装置池实现可用于恢复的多种形式的元数据。CSLD 111实现通常用于诸如盘创建、均匀调整、RSS合并、RSS分割以及再生之类的任务的元数据。各盘上的已知位置中保存的PSAR元数据包含更基本形式的元数据,它没有映射到存储器中,而是可在需要时从它的已知位置来访问,从而再生系统中的所有元数据。
图1所示的装置中的每个可包括存储器、大容量存储装置以及足以管理网络连接的一定程度的数据处理能力。根据本发明的计算机程序装置在图1所示的各种装置的存储器中实现,并且由图1所示的装置的数据处理能力来启用。
在一个示范实现中,各LDAD 103a、103b可与少至四个盘驱动器、多至数千个盘驱动器对应。在特定实例中,要求每个LDAD最少八个驱动器,以便支持采用四个成对盘的LDAD 103a、103b中的RAID-1。LDAD 103a、103b中定义的LUN 112a、112b可表示数兆字节或以下的存储区直到2兆兆字节或以上的存储区。因此,数百或数千个LUN 112a、112b可在给定的LDAD 103a、103b中定义,从而服务于大量存储需求。这样,大企业可由提供专用于企业中的各工作站的单独存储区以及整个企业中的共享存储区的单个存储装置池1101来提供服务。此外,企业可实现多个LDAD 103a、103b和/或多个存储装置池1101来提供虚拟地无限的存储容量。因此,在逻辑上,根据本说明的虚拟存储系统提供配置和访问上的大灵活性。
图2是可用来实现例如存储装置池110的存储装置池的示范存储网络200的示意说明。存储网络200包括通过通信网络212连接的多个存储单元210a、210b、210c。存储单元210a、210b、210c可实现为一个或多个可通信地连接的存储装置。示范存储装置包括可向Hewlett-Packard Corporation(Palo Alto,California,USA)购买的存储装置的STORAGEWORKS线。通信网络212可实现为专有专用网络,例如光纤信道(FC)交换结构。或者,通信网络212的若干部分可采用按照例如因特网小型计算机串行接口(iSCSI)协议的适当通信协议的公共通信网络来实现。
客户计算机214a、214b、214c可通过主机、如服务器216、220来访问存储单元210a、210b、210c。客户机214a、214b、214c可直接或者经由网络218、如局域网(LAN)或广域网(WAN)连接到文件服务器216。可包含在任何存储网络中的存储单元210a、210b、210c的数量主要受到通信网络212中实现的连通性的限制。举例来说,包括单FC交换机的交换结构可互连256或者更多端口,从而提供单个存储网络中数百个存储单元210a、210b、210c的可能性。
主机216、220通常实现为服务器计算机。图3是可用于实现主机的示范计算装置330的示意说明。计算装置330包括一个或多个处理器或处理单元332、系统存储器334以及将包括系统存储器334在内的各种系统组件耦合到处理器332的总线336。总线336表示若干类型的总线结构中的任何一个或多个,其中包括采用各种总线体系结构中任一个的存储器总线或存储器控制器、外围总线、加速图形端口以及处理器或局部总线。系统存储器334包括只读存储器(ROM)338和随机存取存储器(RAM)340。包含例如在启动过程中帮助计算装置330中的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)342存储在ROM 338中。
计算装置330还包括用于对硬盘(未示出)进行读取和写入的硬盘驱动器344,以及可包括对可移动磁盘348进行读取和写入的磁盘驱动器346以及用于对可移动光盘352、如CD ROM或其它光介质进行读取或写入的光盘驱动器350。硬盘驱动器344、磁盘驱动器346以及光盘驱动器350通过SCSI接口354或另外的某种适当接口连接到总线336。驱动器及其关联的计算机可读介质为计算装置330提供对计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。虽然本文所述的示范环境采用硬盘、可移动磁盘348和可移动光盘352,但诸如盒式磁带、闪存卡、数字视盘、随机存取存储器(RAM)、只读存储器(ROM)之类的其它类型的计算机可读介质也可用于示范操作环境。
许多程序模块可存储在硬盘344、磁盘348、光盘352、ROM 338或RAM 340中,其中包括操作系统358、一个或多个应用程序360、其它程序模块362以及程序数据364。用户可通过例如键盘366和指示装置368等输入装置将命令和信息输入计算装置330。其它输入装置(未示出)可包括话筒、操纵杆、游戏控制垫、盘式卫星天线、扫描仪等等。这些及其它输入装置通过耦合到总线336的接口370连接到处理单元332。监测器372或其它类型的显示装置还经由例如视频适配器374等接口连接到总线336。
计算装置330可在采用到一个或多个远程计算机、如远程计算机376的逻辑连接的连网环境中工作。远程计算机376可以是个人计算机、服务器、路由器、网络PC、对等装置或其它公共网络节点,并且通常包括以上对于计算装置330所述的元件中的许多或全部,但在图3中只说明了存储器存储装置378。图3所示的逻辑连接包括LAN380和WAN 382。
在用于LAN连网环境时,计算装置330通过网络接口或适配器384连接到局域网380。在用于WAN连网环境时,计算装置330通常包括调制解调器386或用于在广域网382、如因特网上建立通信的其它部件。可以是内置或外置的调制解调器386经由串行端口接口356连接到总线336。在连网环境中,对于计算装置330或其若干部分所述的程序模块可存储在远程存储器存储装置中。应当知道,所示的网络连接是示范性的,并且可采用建立计算机之间的通信链路的其它方法。
主机216、220可包括主机适配器硬件和软件,从而实现到通信网络212的连接。到通信网络212的连接可通过光耦合或者更传统的导电缆线,取决于带宽要求。主机适配器可实现为计算装置330上的插入卡。主机216、220可实现任何数量的主机适配器,从而提供硬件和软件所支持的数量的到通信网络212的连接。
一般来说,计算装置330的数据处理器通过在不同时间存储于计算机的各种计算机可读存储介质中的指令来编程。例如,程序和操作系统可在软盘、CD-ROM上或者以电方式分布,并且安装或装入计算机的辅助存储器。运行时,程序至少部分加载到计算机的主电子存储器。
图4是可用来实现例如210a、210b或210c的存储单元的存储单元400的一个示范实现的示意说明。参照图4,存储单元400包括又称作盘阵列控制器的两个网络存储控制器(NSC)410a、410b来管理对一个或多个盘驱动器440、442的数据的操作和传送。NSC 410a、410b可实现为具有微处理器416a、416b以及存储器418a、418b的插入卡。每个NSC 410a、410b包括即通过例如交换结构等的通信网络提供到主机的接口的双主机适配器端口412a、414a、412b、414b。在光纤信道实现中,主机适配器端口412a、412b、414a、414b可实现为FC N_端口。每个主机适配器端口412a、412b、414a、414b管理登录以及与交换结构的接口,并在登录过程中被分配结构唯一端口ID。图4所示的体系结构提供完全冗余存储单元;只要求单个NSC来实现存储单元。
每个NSC 410a、410b还包括实现NSC 410a、410b之间的通信连接438的通信端口428a、428b。通信连接438可实现为FC点到点连接,或者按照另外的任何适当的通信协议。
在一个示范实现中,NSC 410a、410b还包括实现与多个存储装置、如盘驱动器阵列440、442的光纤信道仲裁环路(FCAL)通信连接的多个FCAL端口420a-426a、420b-426b。虽然所述实施例实现与盘驱动器阵列440、442的FCAL连接,但大家会理解,与盘驱动器阵列440、442的通信连接可采用其它通信协议来实现。例如,可采用FC交换结构或小型计算机串行接口(SCSI)连接而不是FCAL配置。
在操作中,盘驱动器阵列440、442所提供的存储容量可添加到存储装置池110。当应用需要存储容量时,主计算机128上的逻辑指令从一个或多个存储站点可用的盘驱动器阵列440、442上可用的存储容量来建立LUN。大家会理解,由于LUN是逻辑单元而不一定是物理单元,因此构成LUN的物理存储空间可分布在多个存储单元上。应用的数据存储在存储网络中的一个或多个LUN中。需要存取数据的应用查询主计算机,主计算机从LUN中检索数据并将数据转发给应用。
存储网络200中的存储单元210a、210b、210c中的一个或多个可实现基于RAID的存储。RAID(独立盘冗余阵列)存储系统是其中物理存储容量的一部分用于存储冗余数据的盘阵列系统。RAID系统通常的特征为在首字母缩略词RAID下列举的六种体系结构其中之一。RAID 0体系结构是配置为没有任何冗余度的盘阵列系统。由于这种体系结构实际上不是冗余体系结构,因此,RAID 0往往从RAID系统的论述中省略。
RAID 1体系结构涉及根据镜像冗余度配置的存储盘。原始数据存储在一组盘中,而数据的复制副本则保存在另外的盘中。RAID 2至RAID 5体系结构都涉及奇偶校验型冗余存储。特别关注的是,RAID 5系统在多个盘上分布数据和奇偶校验信息。这些盘通常分为相等大小的地址区域,称作“块”。来自各盘、具有相同单元地址范围的一组块称作“条”。在RAID 5中,各条具有N个块的数据以及包含N个块中的数据的冗余信息的一个奇偶校验块。
在RAID 5中,奇偶校验块在不同盘上逐条循环。例如,在具有五个盘的RAID 5系统中,第一条的奇偶校验块可能在第五盘上;第二条的奇偶校验块可能在第四盘上;第三条的奇偶校验块可能在第三盘上;等等。随后的条的奇偶校验块通常以螺旋模式(但其它模式也是可行的)围绕盘驱动器“旋进”。RAID 2至RAID 4体系结构与RAID5的不同之处在于它们计算并在盘上放置奇偶校验块的方式。所实现的特定RAID类并不重要。
图5说明一个示范实现中的LUN 112a、112b的一个示范存储器表示。存储器表示主要是在NSC 410a、410b的存储器中实现的一种映射结构,它实现以逻辑块地址(LBA)表达的请求从主机、如图1所示的主机128到针对物理盘驱动器、如盘驱动器440、442的特定部分的读/写命令的转换。希望存储器表示足够小,以便适合适当的存储器大小,使得它可易于在工作中被访问,而对于存储器表示页面调进和调出NSC的存储器的要求最小或没有。
本文所述的存储器表示使各LUN 112a、112b能够实现从1兆字节至2兆兆字节的存储容量。可设想每个LUN 112a、112b更大的存储容量。为了便于说明,本说明中采用2兆兆字节的最大值。此外,存储器表示使各LUN 112a、112b能够采用任何类型的RAID数据保护来定义,其中包括多级RAID保护以及支持没有任何冗余度。此外,多种类型的RAID数据保护可在单个LUN 112a、112b中实现,使得第一范围的逻辑盘地址(LDA)对应于未保护数据,以及相同LUN112a、112b中的第二组LDA实现RAID 5保护。因此,实现存储器表示的数据结构必须灵活处理这种多样性,但仍然是有效的,使得LUN 112a、112b不需要额外的数据结构。
图5所示的存储器表示的持久副本保存在前面所述的各LUN112a、112b的PLDMDC中。当系统读取法定空间113中包含的元数据以便获取指向相应PLDMDC的指针、然后再检索PLDMDC并加载第2级映射图(L2MAP)501时,实现特定LUN 112a、112b的存储器表示。这对于每个LUN 112a、112b执行,但在一般操作中,这将在创建LUN 112a、112b时出现一次,此后,存储器表示将在被使用时保留在存储器中。
逻辑盘映射层将请求中指定的LDA映射到特定RStore以及RStore中的偏移。参照图5中所示的实施例,LUN可采用L2MAP501、LMAP 503以及冗余度集合描述符(RSD)505作为将逻辑盘地址映射到地址所表示的物理存储单元的主结构来实现。图5所示的映射结构对于各LUN 112a、112b来实现。单个L2MAP处理整个LUN112a、112b。每个LUN 112a、112b由多个LMAP 503表示,其中LMAP503的具体数量取决于任何给定时间所分配的实际地址空间。RSD505还只对所分配的存储空间存在。利用这种分割目录方法,稀疏地装载了所分配存储区的大存储卷、如图5所示的结构有效地表示所分配的存储区,同时使未分配存储区的数据结构最小。
L2MAP 501包括多个条目,其中的每个条目表示地址空间的2千兆字节。因此,对于2兆兆LUN 112a、112b,L2MAP 501包括1024个条目,以便覆盖特定实例中的整个地址空间。各条目可包含与相应的2千兆字节的存储区对应的状态信息以及相应LMAP描述符503的指针。状态信息和指针仅在相应的2千兆字节的地址空间已经被分配时才有效,因此,L2MAP 501中的一部分条目在许多应用中将为空的或者无效。
LMAP 503中的各条目所表示的地址范围称作逻辑盘地址分配单元(LDAAU)。在特定实现中,LDAAU为1兆字节。对于每个所分配LDAAU在LMAP 503中创建一个条目,而与LDAAU中的存储区的实际利用无关。换言之,LUN 102的大小可按照1兆字节的增量扩大或缩小。LDAAU表示粒度,LUN 112a、112b中的地址空间可采用这个粒度来分配给特定的存储任务。
LMAP 503仅对所分配地址空间的各2千兆字节增量存在。如果小于2千兆字节的存储区用于特定LUN 112a、112b,则仅需要一个LMAP 503,而如果2兆兆字节的存储区被使用,则将存在1024个LMAP 503。各LMAP 503包括多个条目,其中的每个条目可选地对应于冗余段(RSEG)。RSEG是原子逻辑单元,它大致与物理域中的PSEG相似-类似于RStore的逻辑盘分区。在一个特定实施例中,RSEG是跨越多个PSEG并实现所选类型的数据保护的存储区的逻辑单元。在一个优选实现中,RStore中的全部RSEG绑定到邻接的LDA。为了保持顺序传送的基础物理盘性能,希望按照LDA空间按顺序从RStore毗连地定位所有RSEG,以便保持物理邻接性。但是,如果物理资源变为不足,则可能需要跨过LUN 102的分离区域从RStore分布RSEG。请求501中指定的逻辑盘地址选择与特定RSEG对应的LMAP 503中的特定条目,而特定RSEG又对应于分配给特定RSEG#的1兆字节地址空间。各LMAP条目还包含与特定RSEG有关的状态信息以及RSD指针。
RSEG#可以可选地被省略,它使RStore本身为可分配的最小原子逻辑单元。RSEG#的省略减小了LMAP条目的大小,并且允许LUN102的存储器表示对于每兆字节的存储区需要更少的存储器资源。或者,RSEG大小可增加而不是完全省略RSEG的概念,它还依靠减小的存储区的原子逻辑单元的粒度来降低对存储器资源的需求。因此,与RStore成比例的RSEG大小可经过改变以满足特定应用的需要。
RSD指针指向特定RSD 505,它包含描述相应RSEG所在的RStore的元数据。如图5所示,RSD包括冗余存储器集选择器(RSSS),其中包含冗余存储器集(RSS)标识、物理成员选择以及RAID信息。物理成员选择本质上是RStore所使用的物理驱动器的列表。RAID信息,或者更一般来说是数据保护信息,描述特定RStore中实现的任何数据保护类型。各RSD还包括标识在物理上实现相应存储容量的物理成员选择的驱动器中的特定PSEG编号的多个字段。每个列示的PSEG#对应于RSSS的物理成员选择列表中的列示成员之一。可包括任何数量的PSEG,但是,在一个特定实施例中,各RSEG采用由RStore实现的RAID类型所规定的四至八个PSEG来实现。
在操作中,对于存储区存取的每个请求指定LUN 112a、112b和地址。例如NSC 410a、410b等的NSC将所指定的逻辑驱动器映射到特定LUN 112a、112b,然后在那个LUN 102的L2MAP 501还没有存在于存储器时将其加载到存储器中。LUN 102的所有LMAP和RSD最好也加载到存储器中。请求所指定的LDA用来索引到L2MAP501,它又指向LMAP中特定的一个。请求中所指定的地址用来确定到指定LMAP的偏移,以便返回与请求指定地址对应的特定RSEG。一旦RSEG#为已知,则相应的RSD被检查以便标识属于冗余段的成员的特定PSEG以及使NSC 410a、410b能够产生驱动器特定命令以便存取所请求数据的元数据。这样,LDA易于映射到必须被存取以便实现给定存储请求的一组PSEG。
L2MAP每个LUN 112a、112b耗用4千字节,而与示范实现中的大小无关。换言之,L2MAP包含覆盖整个2兆兆字节最大地址范围的条目,即使那个范围中只有一小部分实际上被分配给LUN112a、112b。考虑可采用可变大小的L2MAP,但这种实现将增加复杂度而具有极少的存储器节省。LMAP段每兆字节地址空间耗用4字节,而RSD每兆字节则耗用3字节。与L2MAP不同,LMAP段和RSD仅对于所分配的地址空间存在。
图6是在虚拟化存储系统中的数据分配的示意说明。参照图6,冗余层根据预期保护以及依照NSC数据组织规则来选择PSEG 601,并对它们进行组装以创建冗余存储器(RStore)。与特定冗余存储器集对应的PSEG的集合称作“RStore”。数据保护规则可能要求RStore中的PSEG位于分开的盘驱动器中或者分开的封装中,或者处于不同的地理位置。例如,基本RAID-5规则假定条切数据涉及跨过一些独立驱动器的条切。但是,由于各驱动器包括多个PSEG,因此,本发明的冗余层确保PSEG是从满足预期数据保护标准以及数据可用性及性能标准的驱动器中选取的。
RStore被完整地分配给特定LUN 102。RStore可分区为1兆字节段(RSEG),如图6所示。图6中的各RSEG由于根据RAID 5规则存储相当多的奇偶校验数据而只提供所耗用的物理盘容量的80%。当配置为RAID 5存储集时,各RStore将包含四个PSEG上的数据以及与RAID4存储区相似的第五PSEG(未示出)上的奇偶校验信息。第五PSEG不构成从容量角度看来具有四个PSEG的RStore的整个存储容量。跨过多个RStore,奇偶校验将落在各种驱动器上,以便提供RAID5保护。
RStore本质上是固定数量的虚拟地址空间(实例中为8兆字节)。RStore耗用四至八个完整的PSEG,取决于数据保护等级。没有冗余度的条切RStore耗用4个PSEG(4-2048千字节PSEG=8兆字节),具有4+1奇偶校验的RStore耗用5个PSEG,以及镜像RStore耗用八个PSEG,来实现8兆字节的虚拟地址空间。
RStore与RAID盘集类似,不同之处在于,它包含PSEG而不是物理盘。RStore小于传统的RAID存储卷,因此,与传统系统中的单个RAID存储卷相反,给定LUN 102将包含多个RStore。
考虑驱动器405可随时间从LDAD 103添加或删除。添加驱动器意味着现有数据可在更多驱动器上分布,而删除驱动器则意味着现有数据必须从退出的驱动器中迁移而填充剩余驱动器上的容量。这种数据迁移一般称作“均匀调整”。均匀调整尝试在尽可能多的物理驱动器上分布给定LUN 102的数据。均匀调整的基本目的是分布每个LUN 102所表示的存储区的物理分配,使得给定物理盘上的为给定逻辑盘的使用量与那个物理卷在可用于分配到给定逻辑盘的物理存储区总量中所占份额成比例。
通过将数据从一个PSEG复制到另一个,然后再改变适当RSD中的数据以表明新的隶属关系,现有RStore可修改为使用新的PSEG。在RSS中创建的后继RStore将自动使用新的成员。类似地,可通过将数据从已填充PSEG复制到空PSEG,并改变LMAP502中的数据以便反映RSD的新PSEG成分,来消除PSEG。这样,物理存储区与存储区的逻辑表示之间的关系可被连续管理及更新,从而以用户不可见的方式来反映当前存储环境。
快照差别文件
在一个方面,该系统配置成实现在本文中称作快照差别文件或快照差别对象的文件。快照差别文件是设计成将快照的某些特性(即通过在快照差别的生存期中未改变数据时与后继者及前趋者文件共享数据的容量效率)与日志文件的时间特性结合的实体。快照差别文件还可与基本快照克隆及其它快照差别结合使用,以便提供查看数据通过时间的不同副本的能力。快照差别文件还捕捉针对以某个时间点开始的LUN的所有新数据,直到决定去活快照差别,并开始新快照差别。
快照差别文件可与快照相似地构成。快照差别可采用与快照中所使用的元数据结构相似的元数据结构,使快照文件能够在适当的时候与前趋者LUN共享数据,但在数据到达时间出现在快照差别的活动周期时包含唯一或不同的数据。后继者快照差别可经由相同的机制来引用前趋者快照差别或前趋者LUN中的数据。
作为实例,假定LUN A在2004年9月12日下午1点之前是活动的。LUN A的快照差别1从2004年9月12日下午1点以后至下午2点是活动的。LUN A的快照差别2从2004年9月12日下午2点以后至下午3点是活动的。LUN A的快照差别1和快照差别2的每个中的数据可采用相同的虚拟元数据索引方法来存取。快照差别1包含从下午1点之后至下午2点已经改变(以所使用的索引方案的粒度)的唯一数据,并且与LUN A共享其它全部数据。快照差别2包含从下午2点之后至下午3点已经改变的唯一数据,并且与快照差别1或者LUN A共享其它全部数据。这种数据采用称作快照树的上述索引、共享位方案来存取。因此,随时间的变化被保持-下午1点之前的数据的LUN A视图,下午2点及之前的数据的快照差别1和LUNA视图,下午3点及以前的快照差别2和快照差别1及LUN A视图。或者,分段时间视图,从下午1点至下午2点的数据的快照差别1视图或者从下午2点至下午3点的数据的快照差别2视图。
因此,快照差别与日志文件的相似性在于,快照差别文件将数据与时间关联(即它们采集从时间a到时间b的新数据),同时在结构上类似快照(即它们具有快照的特性,也就是数据存取的速度和空间效率以及保持随时间改变的能力)。
通过将关键快照特性和结构与日志文件时间模型结合,快照差别可用来提供始终同步镜像功能、数据的时间维护、简单的空间效率高的增量备份以及强大的瞬时恢复机制。
图7是结合了快照差别文件的存储数据体系结构的示意高级说明。参照图7,源卷710被复制到可以是预规格化快照克隆或者后规格化快照克隆的快照克隆720。
本文所使用的术语“预规格化快照克隆”指的是在快照克隆从源卷710分割之前与源卷710同步的快照克隆。预规格化快照克隆表示在快照克隆从源卷分离的时刻的源卷的时间点副本。相反,后规格化快照克隆在特定时间点上创建,但源卷710中的数据的完整独立副本在稍后的时间点之后才完成。
快照差别文件在特定时间点上创建和激活,随后,影响源卷710中的数据的所有I/O操作同时复制到活动的快照差别文件。在预期时间点或者在达到特定门限时(例如当快照差别文件达到预定大小时),可关闭快照差别文件,以及可激活另一个快照差别文件。在快照差别文件730、732、734被去活之后,它可合并到快照克隆720中。另外,快照差别文件可备份到磁带驱动器、如磁带驱动器742、744、746。
在一个实现中,快照差别文件与快照克隆、如快照克隆720的创建同时被创建和激活。针对源卷710的I/O操作复制到活动的快照差别文件、如快照差别文件730。
将参照图8、图9a-9b和图10-13更详细地说明快照差别文件。图8和图9a-9b是快照差别文件的存储器分配图的示意说明。简要参照图8,在一个实现中,快照差别文件的存储器映射在逻辑盘单元表800开始,它是映射可依次编号的多个逻辑盘状态块(LDSB)、即LDSB0、LDSB1...LDSB N的数据结构的阵列。每个LDSB包含指向LMAP的指针、指向前趋者和后继者LDSB的指针。LMAP指针指向LMAP映射数据结构,如上所述,它最终映射到PSEG(或者映射到非虚拟化系统中的盘)。前趋者和后继者LDSB字段用来跟踪基本快照克隆及其相关快照差别。基本快照克隆由没有前趋者的LDSB表示,以及活动快照差别由没有后继者的LDSB表示。
图9a说明快照差别文件的存储器映射,其中设置了RSD的共享位。因此,表示快照差别的LMAP 910结构映射RSD 915,RSD 915又映射到不同数据结构的LMAP 920所表示的前趋者快照差别或基本快照克隆。这表明LMAP 910是LMAP 920的后继者并与LMAP 920共享其数据。LMAP 920映射到RSD 925,RSD 925又映射到RSS930,RSS 930映射到物理盘空间935(或者映射到虚拟化存储系统中的PSEG)。图9b说明快照差别文件的存储器映射,其中没有设置RSD的共享位,即它不是共享的。LMAP 950映射到RSD 955,RSD 955又映射到RSS 960,RSS 960映射到物理盘空间965(或者映射到虚拟化存储系统中的PSEG)。
图10-13是流程图,说明分别用于对快照差别进行创建、读取、写入或合并的示范方法中的操作。在以下描述中,大家会理解,流程图说明的各框以及流程图说明中的框的组合可通过计算机程序指令来实现。这些计算机程序指令可加载到计算机或者其它可编程设备以产生一种机器,使得在处理器或其它可编程设备上运行的指令创建用于实现流程图的一个或多个框中所指定的功能的部件。这些计算机程序指令还可存储在计算机可读存储器中,它们可指导计算机或其它可编程设备以特定方式工作,使得计算机可读存储器中存储的指令产生一种制造产品,其中包括实现流程图的一个或多个框中所指定的功能的指令部件。计算机程序指令还可加载到计算机或其它可编程设备,使一系列操作步骤在计算机或其它可编程设备上执行,从而产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现流程图的一个或多个框中所指定的功能的步骤。
因此,流程图说明的框支持用于执行指定功能的部件组合以及用于执行指定功能的步骤组合。还可理解,流程图说明的各框以及流程图说明中的框的组合可通过执行指定功能或步骤的基于专用硬件的计算机系统或者专用硬件及计算机指令的组合来实现。
图10是流程图,说明用于创建快照差别文件的示范方法中的操作。图10的操作可响应接收到创建快照差别文件的请求而在例如存储系统中的阵列控制器等的适当处理器中执行。参照图10,在操作1010,创建新的LDSB,表示新的快照差别。再次参照图8并假定LDSB0至LDSB 3已经被分配,操作1010创建编号为LDSB 4的新LDSB。在操作1015-1020,LDSB后继者指针被遍历,以快照克隆的LDSB开始,直至遇到空后继者指针为止。当遇到空后继者指针时,空指针重置为指向新建的LDSB(操作1025)。因此,在图8所示的情况下,后继者指针从LDSB 0到LDSB2再到具有空后继者指针的LDSB3进行遍历。操作1025将LDSB 3中的后继者指针重置为指向LDSB4。然后,控制转到操作1030,其中,新LDSB的前趋者指针被设置。在图8所示的情况下,LDSB 4的前趋者指针设置为指向LDSB 3。图10的操作配置快照差别文件的高级数据映射图。低级数据映射(即,从LMAP到PSEG或物理盘段)可根据以上提供的描述来进行。
图11是流程图,说明用于在利用一个或多个快照差别文件的环境下执行读操作的示范方法中的操作。参照图11,在操作1110,例如在存储系统中的阵列控制器接收到读请求。在一个示范实现中,读请求可由主计算机产生,并且可标识将被读取的存储系统中的逻辑块地址(LBA)或者地址的另一个标记。在操作1115,确定读请求是否针对快照差别文件。在一个示范实现中,快照差别文件可被分配可用来进行操作1115中所要求的判定的特定LBA和/或LD标识符。
如果在操作1115确定读请求不是针对快照差别文件,则控制转到操作1135,以及读请求可按照正常操作过程从读请求中所标识的LD执行。相反,如果在操作1115确定读请求是针对快照差别文件,则执行操作1120-1130,从而遍历现有快照差别文件以查找读请求中所标识的LBA。
在操作1120,活动快照差别文件被检查,以便确定与读请求中所标识的LBA关联的共享位是否被设置。如果共享位没有设置,这表明活动快照差别文件在所标识LBA中包含新数据,则控制转到操作1135,以及读请求可从读请求中所标识的快照差别文件中的LBA执行。
相反,如果在操作1120没有设置共享位,则控制转到操作1125,在其中确定活动快照差别文件的前趋者是否为另一个快照差别文件。在一个示范实现中,这可通过分析活动快照差别的前趋者指针所标识的LDSB来确定,如图8所示。如果前趋者不是快照差别文件,则控制转到操作1135,以及读请求可按照正常操作过程从读请求中标识的LD执行。相反,如果在操作1125确定读请求针对快照差别文件,则执行操作1125-1130,从而遍历现有快照差别文件,直到在快照差别文件或者在LD中定位读请求中标识的LBA,以及LBA被读取(操作1135)并返回给请求主机(操作1140)。
图12是流程图,说明用于在利用一个或多个快照差别文件的环境下执行写操作的示范方法中的操作。参照图12,在操作1210,例如在存储系统中的阵列控制器接收到写请求。在一个示范实现中,写请求可由主计算机产生,并且可标识写操作所针对的存储系统中的逻辑块地址(LBA)或者地址的另一个标记。在操作1215,确定写请求是否针对快照差别文件。在一个示范实现中,快照差别文件可被分配可用来进行操作1215中所要求的判定的特定LBA和/或LD标识符。
如果在操作1215确定写请求不是针对快照差别文件,则控制转到操作1245,写请求按照正常操作过程针对写请求中标识的LD执行,以及确认被返回给主计算机(操作1255)。相反,如果在操作1215确定写请求针对快照差别文件,则执行操作1220-1230,从而遍历现有快照差别文件以查找写请求中所标识的LBA。
在操作1220,活动快照差别文件被检查,以便确定与读请求中所标识的LBA关联的共享位是否被设置。如果共享位没有设置,这表明活动快照差别文件在所标识LBA中包含新数据,则控制转到操作1250,以及写请求可对于写请求中标识的快照差别文件中的LBA执行。可以理解,写操作可以只改写由写操作改变的LBA或者包含写操作所改变的LBA的整个RSEG,取决于系统的配置。
相反,如果在操作1220没有设置共享位,则控制转到操作1225,在其中确定活动快照差别文件的前趋者是否为另一个快照差别文件。在一个示范实现中,这可通过分析活动快照差别的前趋者指针所标识的LDSB来确定,如图8所示。如果前趋者不是快照差别文件,则控制转到操作1235,以及与写请求中标识的LBA关联的RSEG可从写请求中标识的LD复制到缓冲器中。然后,控制转到操作1240,以及写请求中的I/O数据合并到缓冲器中。然后,控制转到操作1250,I/O数据被写入活动快照差别文件,以及在操作1255,确认被返回给主机。
相反,如果在操作1225确定写请求针对快照差别文件,则执行操作1225-1230,从而遍历现有快照差别文件,直到在快照差别文件或者在LD中定位写请求中标识的LBA。然后,执行操作1235-1250,从而将写操作改变的RSEG复制到活动快照差别文件。
如上所述,在一个实现中,快照差别文件可以是时间限制的,即,快照差别文件可在特定时间点被激活,并且可在特定时间点被去活。图13是流程图,说明用于将快照差别文件合并到逻辑盘、例如快照差别所关联的快照克隆的示范方法中的操作。图13的操作可作为后台进程定期运行,或者可由特定事件或事件序列来触发。
过程在操作1310开始,这时接收到合并快照差别文件的请求。在一个示范实现中,合并请求可由主计算机产生,并且可标识一个或多个快照差别文件以及快照差别文件将合并到其中的快照克隆。
在操作1315,查找“最早的”快照差别文件。在一个示范实现中,可通过跟随LDSB映射图的前趋者/后继者指针轨迹、直到定位具有映射到快照克隆的前趋者指针的LDSB为止,来定位最早的快照差别。再次参照图8并假定LDSB 4为活动快照差别文件,LDSB 4的前趋者为LDSB 3。LDSB 3的前趋者为LDSB 2,以及LDSB 2的前趋者是作为快照克隆的LDSB 0。因此,LDSB 2表示“最早的”快照差别文件,它将合并到快照克隆中。
操作1320发起通过快照差别文件中映射的每个RSTORE中的各RSEG的迭代循环。如果在操作1325,RSTORE中不再有要分析的RSEG,则控制转到操作1360,它确定是否存在其它要分析的RSTORE。
如果在操作1325,在RSTORE中还有要分析的其它RSEG,则控制转到操作1330,在其中确定是否对RSEG设置了后继者共享位或者前趋者共享位。如果这些共享位中任一个被设置,则需要合并RSEG中的数据,因此控制转到操作1355。
相反,如果在操作1330没有设置共享位,则控制转到操作1335,并且读取RSEG,以及RSEG中的数据被复制(操作1340)到前趋者、即快照克隆中的相应存储单元。在操作1345,共享位在合并的快照差别的RSEG中重置。如果在操作1355,RSTORE中还有要分析的RSEG,则控制重新转到操作1330。操作1330-1355重复进行,直到已经分析了RSTORE中的所有RSEG,这时控制转到操作1360,它确定是否还有要分析的RSTORE。如果在操作1360,还有要分析的RSTORE,则控制重新转到操作1325,它对所选RSTORE重新开始操作1330至1355的循环。
操作1325至1360重复进行,直到在操作1360中不再有要分析的RSTORE,在这种情况下,控制转到操作1365,以及前趋者LDSB(即与快照克隆关联的LDSB)中的后继者指针设置为指向被合并的LDSB的后继者。在操作1370,被合并的LDSB设置为“空”,从而有效地终止合并LDSB的存在。这个过程可重复进行,以便将“最早的”快照差别文件相继地合并到快照克隆中。这也释放已合并的快照差别LDSB供再用。
本文所述的是称作快照差别文件的文件结构以及用于创建和使用快照差别文件的示范方法。在一个示范实现中,快照差别文件可结合远程复制操作中的快照克隆来实现。差别文件可与快照克隆的产生同时被创建和激活。改变与快照克隆关联的源卷中的数据的I/O操作被记录在活动快照差别文件中。活动快照差别文件可在特定时间点或者在满足与快照差别文件关联的特定门限时被关闭。另一个快照差别文件可与关闭现有快照差别文件同时被激活,以及快照差别文件可采用表明快照差别文件之间的时间关系的指针来链接。在快照差别文件已经关闭之后,文件可合并到与其关联的快照克隆中。
数据恢复操作
在示范实现中,快照差别文件可用于实现存储网络和/或存储装置中的故障恢复过程。参照图14a-14d和图15来说明一种这样的实现,其中,图14a-14d是在恢复操作中利用快照差别文件的数据体系结构的示意时间序列说明,图15是流程图,说明在恢复操作中利用快照差别文件的示范方法中的操作。
图15的操作可通过计算机程序指令来实现。这些计算机程序指令可加载到计算机或者其它可编程设备以产生一种机器,使得在处理器或其它可编程设备上执行的指令创建用于实现流程图的一个或多个框中所指定的功能的部件。这些计算机程序指令还可存储在计算机可读存储器中,它们可指导计算机或其它可编程设备以特定方式工作,使得计算机可读存储器中存储的指令产生一种制造产品,其中包括实现流程图的一个或多个框中所指定的功能的指令部件。计算机程序指令还可加载到计算机或者其它可编程设备,使一系列操作步骤在计算机或其它可编程设备上执行,从而产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现流程图的一个或多个框中所指定的功能的步骤。
因此,流程图说明的框支持用于执行指定功能的部件组合以及用于执行指定功能的步骤组合。大家还会理解,流程图说明的各框以及流程图说明中的框的组合可通过执行指定功能或步骤的基于专用硬件的计算机系统或者专用硬件及计算机指令的组合来实现。
图14a说明在恢复操作中利用快照差别文件的数据体系结构1400。图14所示的数据体系结构实质上与图7所示的数据体系结构相似,并且包括源卷1410、镜像/分离快照克隆1420,以及可包括一个或多个快照差别文件1430、1432、1434。源卷1410可实现为虚拟化存储网络中的虚拟盘或者LUN,如上所述。此外,快照克隆1420和快照差别文件1430、1432、1434可按照上述方式来实现。
数据体系结构还可包括记录I/O操作的一个或多个应用事务恢复日志1440。应用事务恢复日志是应用的产物,通常称作事务日志。这是在新的快照差别文件正在收集数据、但仍未被验证期间由应用提供的辅助备份机制。这种日志允许我们最终恢复到最近的已验证恢复集,以及在破坏原因可被了解并隔离的情况下加上自那个时间到产生数据破坏时应用所接收的数据。应用事务恢复日志1440不需要直接与源卷1410、快照克隆或者快照差别文件1430、1432、1434关联。应用事务恢复日志1440可存储在完全分开的LUN中,并且可记录来自多个不同主计算机和/或源应用的I/O操作。应用事务恢复日志1440中的数据的相干性由应用来管理。
参照图15,在正常操作中,I/O操作对于源卷和活动快照差别文件来执行(参见操作1510-1515)。这种情况如图14a所示,其中,从一个或多个应用发起的I/O操作由主计算机传送给阵列控制器,它对源卷1410以及对活动快照差别文件1434进行I/O操作。在一个示范实现中,I/O操作可采用写入前复制(CBW)操作写入活动快照差别1434。在一个备选实现中,I/O操作可采用写入时复制(CoW)操作写入活动快照差别1434。如果对快照差别的IO是对于虚拟化粒度所覆盖的地址范围的第一IO,则此IO将采用适当的CBW或CoW写入活动快照差别1434。在对于相同地址范围内的相同快照差别的后续IO中,I/O操作将直接写入快照差别作为附加I/O操作。
如上所述,快照差别文件可在预定时间点被激活,并且可在预定时间点或者根据一个或多个其它门限、例如最大文件大小来去活。快照差别文件实现成序列,以及当一个快照差别文件被去活时,后续快照差别文件同时被激活并配置成接收I/O操作。一个或多个后台进程可由处理器、如阵列控制器执行以便:(1)验证快照差别文件中的数据;以及(2)将快照差别文件合并到快照克隆中。因此,每个快照差别文件表示快照差别文件被去活的时间点上的镜像数据集。数据验证是应用特定的,并且是应用的产物。
图14b说明产生对于源卷1410的I/O的应用出故障或者源卷1410变为破坏的情况下的数据体系结构(操作1515)。源卷1410被关闭,以及对源卷1410的I/O操作终止(操作1520)。针对源盘1410的任何I/O操作将向发起应用返回错误。对活动快照差别文件的I/O操作也被终止。在操作1525,刷新源卷。源卷1410中的数据将被标记为未写入,以及用于分配源卷1410的存储空间的数据映射结构将被保持。在操作1530,活动快照差别文件被删除,因为它还包含破坏数据。
在操作1535,采用最近的已验证快照差别文件来发起恢复过程。示范恢复过程采用最近的快照差别文件的副本替换源卷1410中的数据。这可通过使源卷成为最近快照差别文件的活动快照克隆并且采用结合按要求未共享的后台规格化的标准快照克隆机制将快照差别树(分离镜像/快照克隆以及所选及较早的快照差别文件)所表示的数据集复制到源卷1410中来实现。图14c说明恢复过程中的数据体系结构。在图14的体系结构中,快照差别文件1432表示最近的已验证复制数据集。在一个实现中,空的但已分配的源卷作为快照克隆附加到快照差别文件1432,源卷1410中的数据采用上述快照克隆机制来填充。快照差别1432的快照克隆包括快照差别文件1432的共享树,使得快照差别1430和镜像/分离快照克隆1420包含在快照克隆中。
快照克隆操作的执行使源卷1410中的数据恢复到在验证快照差别文件1432的时间点上被验证的数据集。来自应用事务恢复日志1440的数据可经过检索,以便使源卷1410中的数据恢复到反映在快照差别文件1432的验证与故障事件之间的时间周期中执行的I/O操作的数据集。从应用事务恢复日志1440检索的数据可在写入源卷1410之前被验证。应用事务恢复日志的这种使用由应用驱动,并且是应用特定的。
图14d说明执行恢复过程时的数据体系结构。新的快照差别文件被激活(操作1540),它表示为快照差别1434。新的快照差别文件在逻辑上链接到其前趋者,如上所述。产生对源卷1410的I/O操作的应用可被重启(操作1545),以及来自应用事务恢复日志1440的数据可按照上述方式恢复(操作1550)。
将数据集复制到源卷1410中的过程消耗与数据集的大小成比例的时间。有利的是,产生对源卷1410的I/O操作的应用可在数据集被复制到源卷1410时重启。复制操作可在后台进程中执行。类似地,与从应用事务恢复日志1440中检索数据关联的操作可在后台进程中执行。因此,与传统的恢复过程相比,源卷的操作停用时间可变为最小或者至少被减小。
虽然所述方案和过程已经通过结构特征和/或方法操作特定的语言进行了描述,但要理解,所附权利要求中定义的主题不一定局限于所述的特定特征或操作。相反,特定特征和操作作为实现要求其权益的本主题的优选形式来公开。

Claims (8)

1.一种在存储网络中实现恢复操作的方法,包括:
检测源卷(1410)中的故障;以及
响应所述故障:
终止与产生对所述源卷(1410)的I/O请求的一个或多个应用的通信;
刷新所述源卷(1410);
将备份数据集复制到所述源卷(1410),以及在所述备份数据集正被复制的同时:
激活新的快照差别文件(1430);
重新开始与产生对所述源卷(1410)的I/O请求的一个或多个应用的通信;以及
在所述快照差别文件(1430)中记录对所述源卷(1410)的I/O操作。
2.如权利要求1所述的方法,其特征在于,检测源卷(1410)中的故障包括检测所述源卷(1410)中一个或多个数据破坏的示例。
3.如权利要求1所述的方法,其特征在于,终止与产生对所述源卷(1410)的I/O请求的一个或多个应用的通信包括终止所述一个或多个应用。
4.如权利要求1所述的方法,其特征在于,终止与产生对所述源卷(1410)的I/O请求的一个或多个应用的通信包括终止与所述一个或多个应用的通信接口。
5.如权利要求1所述的方法,其特征在于,刷新所述源卷(1410)包括删除来自所述源卷的数据,同时将所述源卷的数据映射留在原位。
6.如权利要求1所述的方法,其特征在于,激活新的快照差别文件(1430)包括建立与前趋者快照差别文件(1430)的逻辑连接。
7.如权利要求1所述的方法,其特征在于还包括:
关闭活动的快照差别文件(1430);
同时激活后继者快照差别文件(1430);以及
在所述后继者快照差别文件(1430)中记录对源盘卷的I/O操作。
8.如权利要求7所述的方法,其特征在于还包括将所述关闭的快照差别文件(1430)合并到快照克隆(1420)中。
CNB2005101188860A 2004-11-02 2005-11-01 存储网络中的恢复操作 Expired - Fee Related CN100524235C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/979730 2004-11-02
US10/979,730 US7472307B2 (en) 2004-11-02 2004-11-02 Recovery operations in storage networks

Publications (2)

Publication Number Publication Date
CN1770115A CN1770115A (zh) 2006-05-10
CN100524235C true CN100524235C (zh) 2009-08-05

Family

ID=35825385

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101188860A Expired - Fee Related CN100524235C (zh) 2004-11-02 2005-11-01 存储网络中的恢复操作

Country Status (4)

Country Link
US (1) US7472307B2 (zh)
EP (1) EP1653360A3 (zh)
CN (1) CN100524235C (zh)
SG (1) SG121963A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070022314A1 (en) * 2005-07-22 2007-01-25 Pranoop Erasani Architecture and method for configuring a simplified cluster over a network with fencing and quorum
US8060713B1 (en) * 2005-12-21 2011-11-15 Emc (Benelux) B.V., S.A.R.L. Consolidating snapshots in a continuous data protection system using journaling
DE102006045157B4 (de) 2006-09-25 2020-06-18 Robert Bosch Gmbh Handwerkzeugmaschine
CN101420459B (zh) * 2008-12-05 2011-11-02 杭州华三通信技术有限公司 一种管理应用配置信息的方法、应用系统和存储设备
JP4990322B2 (ja) 2009-05-13 2012-08-01 株式会社日立製作所 データ移動管理装置及び情報処理システム
US20110093437A1 (en) * 2009-10-15 2011-04-21 Kishore Kaniyar Sampathkumar Method and system for generating a space-efficient snapshot or snapclone of logical disks
US8402230B2 (en) 2010-09-10 2013-03-19 International Business Machines Corporation Recoverability while adding storage to a redirect-on-write storage pool
US8983915B2 (en) 2011-08-01 2015-03-17 Actifio, Inc. Successive data fingerprinting for copy accuracy assurance
CN102346696B (zh) * 2011-09-22 2016-08-03 北京奇虎科技有限公司 一种文件恢复方法及装置
US9218353B2 (en) * 2012-05-25 2015-12-22 Netapp, Inc. Method and system for name space propagation and file caching to remote nodes in a storage system
WO2015020636A1 (en) * 2013-08-06 2015-02-12 Hitachi, Ltd. Method and apparatus of storage system which stores information for relationship between logical volumes and operations
WO2015074033A1 (en) * 2013-11-18 2015-05-21 Madhav Mutalik Copy data techniques
CN104360914B (zh) * 2014-10-22 2017-10-13 浪潮(北京)电子信息产业有限公司 增量快照方法和装置
CN106445730B (zh) 2016-07-22 2019-12-03 平安科技(深圳)有限公司 一种提高虚拟机性能的方法和终端
CN110489273A (zh) * 2019-07-05 2019-11-22 苏州浪潮智能科技有限公司 一种基于san的存储备份方法、系统、终端及存储介质
CN114218014B (zh) * 2021-12-21 2022-07-19 中科豪联(杭州)技术有限公司 基于存储卷级的虚拟服务器备份及还原方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216211B1 (en) * 1997-06-13 2001-04-10 International Business Machines Corporation Method and apparatus for accessing mirrored logical volumes
US7203732B2 (en) * 1999-11-11 2007-04-10 Miralink Corporation Flexible remote data mirroring
US6560615B1 (en) * 1999-12-17 2003-05-06 Novell, Inc. Method and apparatus for implementing a highly efficient, robust modified files list (MFL) for a storage system volume
US7363633B1 (en) 2000-04-24 2008-04-22 Microsoft Corporation Registering and storing dependencies among applications and objects in a computer system and communicating the dependencies to a recovery or backup service
US6591264B1 (en) 2000-10-23 2003-07-08 Lsi Logic Corporation Method that allows I/O requests to run concurrently with a rollback from a snapshot in a drive array
US20020104008A1 (en) * 2000-11-30 2002-08-01 Cochran Robert A. Method and system for securing control-device-lun-mediated access to luns provided by a mass storage device
US6594744B1 (en) * 2000-12-11 2003-07-15 Lsi Logic Corporation Managing a snapshot volume or one or more checkpoint volumes with multiple point-in-time images in a single repository
US6941490B2 (en) * 2000-12-21 2005-09-06 Emc Corporation Dual channel restoration of data between primary and backup servers
US6594745B2 (en) * 2001-01-31 2003-07-15 Hewlett-Packard Development Company, L.P. Mirroring agent accessible to remote host computers, and accessing remote data-storage devices, via a communcations medium
US6606690B2 (en) * 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US6697881B2 (en) * 2001-05-29 2004-02-24 Hewlett-Packard Development Company, L.P. Method and system for efficient format, read, write, and initial copy processing involving sparse logical units
US6915397B2 (en) * 2001-06-01 2005-07-05 Hewlett-Packard Development Company, L.P. System and method for generating point in time storage copy
US6728848B2 (en) * 2001-06-11 2004-04-27 Hitachi, Ltd. Method and system for backing up storage system data
US6895467B2 (en) * 2001-10-22 2005-05-17 Hewlett-Packard Development Company, L.P. System and method for atomizing storage
US6721857B2 (en) * 2001-10-23 2004-04-13 Hewlett-Packard Development Company, L.P. Flexible allegiance storage and computing architecture
US6799189B2 (en) 2001-11-15 2004-09-28 Bmc Software, Inc. System and method for creating a series of online snapshots for recovery purposes
US20030120676A1 (en) * 2001-12-21 2003-06-26 Sanrise Group, Inc. Methods and apparatus for pass-through data block movement with virtual storage appliances
US6763436B2 (en) * 2002-01-29 2004-07-13 Lucent Technologies Inc. Redundant data storage and data recovery system
US7120827B2 (en) * 2002-05-07 2006-10-10 Hitachi Ltd. System and method of volume health checking and recovery
US6934822B2 (en) * 2002-08-06 2005-08-23 Emc Corporation Organization of multiple snapshot copies in a data storage system
US7613945B2 (en) * 2003-08-14 2009-11-03 Compellent Technologies Virtual disk drive system and method
US7650531B2 (en) * 2005-12-06 2010-01-19 Computer Associates Think, Inc. System and method for automatically restoring hard drives on failure

Also Published As

Publication number Publication date
EP1653360A2 (en) 2006-05-03
US20060107085A1 (en) 2006-05-18
US7472307B2 (en) 2008-12-30
CN1770115A (zh) 2006-05-10
EP1653360A3 (en) 2009-10-28
SG121963A1 (en) 2006-05-26

Similar Documents

Publication Publication Date Title
CN100419664C (zh) 存储网络中执行备份操作的方法
CN100524235C (zh) 存储网络中的恢复操作
CN100416508C (zh) 一种存储网络中的数据备份方法
US11757795B2 (en) Resolving mediator unavailability
US11797197B1 (en) Dynamic scaling of a virtual storage system
US11093139B1 (en) Durably storing data within a virtual storage system
US11526408B2 (en) Data recovery in a virtual storage system
US10789020B2 (en) Recovering data within a unified storage element
US11704044B2 (en) Modifying a cloned image of replica data
US20210303519A1 (en) Optimizing a Transfer of a File System
US5089958A (en) Fault tolerant computer backup system
US20210303522A1 (en) Copying a File System
US11507597B2 (en) Data replication to meet a recovery point objective
US20210303523A1 (en) Replicating a File System
US8140886B2 (en) Apparatus, system, and method for virtual storage access method volume data set recovery
CN101147118A (zh) 用于重新配置存储系统的方法和装置
US11327676B1 (en) Predictive data streaming in a virtual storage system
US20230229363A1 (en) Tiering Valid Data after a Disaster Recovery Operation
WO2022221298A1 (en) Replicating a file system

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170207

Address after: American Texas

Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Patentee before: HP Development Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090805

Termination date: 20201101