CN100416508C - 一种存储网络中的数据备份方法 - Google Patents

一种存储网络中的数据备份方法 Download PDF

Info

Publication number
CN100416508C
CN100416508C CNB2005101188803A CN200510118880A CN100416508C CN 100416508 C CN100416508 C CN 100416508C CN B2005101188803 A CNB2005101188803 A CN B2005101188803A CN 200510118880 A CN200510118880 A CN 200510118880A CN 100416508 C CN100416508 C CN 100416508C
Authority
CN
China
Prior art keywords
snapshot
difference file
snapshot difference
data
storage
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.)
Active
Application number
CNB2005101188803A
Other languages
English (en)
Other versions
CN1770114A (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 CN1770114A publication Critical patent/CN1770114A/zh
Application granted granted Critical
Publication of CN100416508C publication Critical patent/CN100416508C/zh
Active 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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
    • 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
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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
    • G06F11/1458Management of the backup or restore process
    • 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
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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

Abstract

描述了示范存储网络体系结构、数据体系结构以及用于在存储网络中创建和使用快照差别文件的方法。一种示范方法可在存储网络中的处理器中实现。该方法包括接收执行快照克隆操作的请求;响应所接收服务请求,产生源盘卷的快照克隆副本;与快照克隆文件的产生同时,打开第一快照差别文件;以及在快照差别文件中记录对源盘卷的I/O操作。本文所述的方法可体现为计算机可读介质中的逻辑指令。

Description

一种存储网络中的数据备份方法
技术领域
所述主题涉及电子计算,更具体来说,涉及存储网络中复制操作。
背景技术
复制和存储存储装置的内容的能力是存储系统的一个重要特征。数据可并行地存储,以防单个存储装置或介质出故障。在第一存储装置或介质出故障时,系统则可检索第二存储装置或介质中包含的数据的副本。复制和存储存储装置的内容的能力还有助于在复制时内容的固定记录的创建。这个特征允许用户恢复无意中编辑或擦除的数据的先前版本。
存在与复制和存储存储装置的内容关联的空间和处理成本。例如,一些存储装置在其内容正被复制时无法接受输入/输出(I/O)操作。此外,用来保存副本的存储空间无法用于其它存储需求。
存储系统和存储软件产品可提供制作盘卷的时间点副本的方式。在这些产品的一部分中,可极快地制作副本,而不会明显地干扰使用盘卷的应用。在另一些产品中,通过共享存储而不是复制全部盘卷数据,可使副本节省空间。
但是,用于复制数据文件的已知方法包含限制。一部分已知的盘复制方法没有提供快速复制。另一些已知的盘复制方法解决方案不节省空间。又一些已知的盘复制方法提供快速且节省空间的快照,但不是在可缩放、分布式、表驱动的虚拟存储系统中进行这类操作。
因此,在存储装置中仍然需要改进的复制操作。
发明内容
在一个示范实现中,一种计算方法可在存储网络中的处理器中实现。该方法包括接收执行快照克隆操作的请求;响应所接收服务请求,产生源盘卷的快照克隆副本;与快照克隆文件的产生同时,打开第一快照差别文件;以及在快照差别文件中记录对源盘卷的I/O操作。
附图说明
图1是利用存储网络的连网计算系统的一个示范实现的示意说明。
图2是存储网络的一个示范实现的示意说明。
图3是可用于实现主机的计算装置的一个示范实现的示意说明。
图4是存储单元的一个示范实现的示意说明。
图5说明LUN的一个示范存储器表示。
图6是在虚拟化存储系统中的数据分配的示意说明。
图7是用于在存储网络中实现快照差别文件的一个示范数据体系结构的示意说明。
图8是用于在存储网络中创建和使用快照差别文件的一个示范文件结构的示意说明。
图9a-9b是快照差别文件的存储器分配图的示意说明。
图10是流程图,说明用于创建快照差别文件的示范方法中的操作。
图11是流程图,说明用于在利用一个或多个快照差别文件的环境下执行读操作的示范方法中的操作。
图12是流程图,说明用于在利用一个或多个快照差别文件的环境下执行写操作的示范方法中的操作。
图13是流程图,说明用于将快照差别文件合并到逻辑盘中的示范方法中的操作。
具体实施方式
本文所述的是示范存储网络体系结构、数据体系结构以及用于在存储网络中创建和使用差别文件的方法。本文所述的方法可体现为计算机可读介质中的逻辑指令。在处理器上执行时,逻辑指令使通用计算装置被编程为实现所述方法的专用机器。当由逻辑指令配置成执行本文所述的方法时,处理器构成用于执行所述方法的结构
示范网络体系结构
本文所述的主题可在提供系统级上的虚拟化数据存储的存储体系结构中实现,使得虚拟化在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 114实现通常用于诸如盘创建、均匀调整、RSS合并、RSS分割以及再生之类的任务的元数据。各盘上的已知位置中保存的PSAR元数据包含更基本形式的元数据,它没有映射到存储器中,而是可在需要时从它的已知位置来访问,从而再生系统中的所有元数据。
图1所示的装置中的每个可包括存储器、大容量存储装置以及足以管理网络连接的一定程度的数据处理能力。根据本发明的计算机程序装置在图1所示的各种装置的存储器中实现,并且由图1所示的装置的数据处理能力来启用。
在一个示范实现中,各LDAD 103a、103b可与少至四个盘驱动器、多至数千个盘驱动器对应。在特定实例中,要求每个LDAD最少八个驱动器,以便支持采用四个成对盘的LDAD 103a、103b中的RAID-1。LDAD 103a、103b中定义的LUN 112a、112b可表示数兆字节或以下的存储区直到2兆兆字节或以上的存储区。因此,数百或数千个LUN112a、112b可在给定的LDAD 103a、103b中定义,从而服务于大量存储需求。这样,大企业可由提供专用于企业中的各工作站的单独存储区以及整个企业中的共享存储区的单个存储装置池110来提供服务。此外,企业可实现多个LDAD 103a、103b和/或多个存储装置池110来提供虚拟地无限的存储容量。因此,在逻辑上,根据本说明的虚拟存储系统提供配置和访问上的大灵活性。
图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,并改变LMAP 502中的数据以便反映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点已经改变(以所使用的索引方案的粒度)的唯一数据,并且与LUNA共享其它全部数据。快照差别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操作被记录在活动快照差别文件中。活动快照差别文件可在特定时间点或者在满足与快照差别文件关联的特定门限时被关闭。另一个快照差别文件可与关闭现有快照差别文件同时被激活,以及快照差别文件可采用表明快照差别文件之间的时间关系的指针来链接。在快照差别文件已经关闭之后,文件可合并到与其关联的快照克隆中。
虽然所述方案和过程已经通过结构特征和/或方法操作特定的语言进行了描述,但要理解,所附权利要求中定义的主题不一定局限于所述的特定特征或操作。相反,特定特征和操作作为实现要求其权益的本主题的优选形式来公开。

Claims (8)

1. 一种存储网络中的数据备份方法,包括:
在存储网络中的处理器上:
接收执行快照克隆操作的请求;
响应所接收的服务请求,产生源盘卷(710)的快照克隆(720);
与快照克隆文件(720)的产生同时,创建并激活第一快照差别文件(730);以及
在所述快照差别文件(730)中记录对所述源盘卷(710)的I/O操作。
2. 如权利要求1所述的方法,其特征在于,执行快照克隆操作的所述请求由所述存储网络(200)中的装置的用户的至少一个或者由可通信地连接到所述存储网络(200)的处理器来产生。
3. 如权利要求1所述的方法,其特征在于,执行快照克隆操作的所述请求由主计算机产生并由存储控制器上的逻辑操作来执行。
4. 如权利要求1所述的方法,其特征在于,所述第一快照差别文件(730)包括用于记录对于所述源盘卷(710)执行的I/O操作以及用于记录与各I/O操作关联的时间的数据字段。
5. 如权利要求1所述的方法,其特征在于,还包括在预定量的时间之后关闭所述第一快照差别文件(730)。
6. 如权利要求1所述的方法,其特征在于,还包括在所述第一快照差别文件(730)达到预定大小时关闭所述第一快照差别文件(730)。
7. 如权利要求1所述的方法,其特征在于,还包括:
关闭所述第一快照差别文件(730);
同时创建并激活第二快照差别文件(732);以及
在所述第二快照差别文件(732)中记录对所述源盘卷的I/O操作。
8. 如权利要求7所述的方法,其特征在于,还包括将所述第一快照差别文件(730)合并到所述快照克隆(720)中。
CNB2005101188803A 2004-11-02 2005-11-01 一种存储网络中的数据备份方法 Active CN100416508C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/979716 2004-11-02
US10/979,716 US7305530B2 (en) 2004-11-02 2004-11-02 Copy operations in storage networks

Publications (2)

Publication Number Publication Date
CN1770114A CN1770114A (zh) 2006-05-10
CN100416508C true CN100416508C (zh) 2008-09-03

Family

ID=35825399

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101188803A Active CN100416508C (zh) 2004-11-02 2005-11-01 一种存储网络中的数据备份方法

Country Status (4)

Country Link
US (1) US7305530B2 (zh)
EP (2) EP2407884A3 (zh)
CN (1) CN100416508C (zh)
SG (1) SG122056A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337360B2 (en) * 1999-10-19 2008-02-26 Idocrase Investments Llc Stored memory recovery system
US6594780B1 (en) 1999-10-19 2003-07-15 Inasoft, Inc. Operating system and data protection
US7778984B2 (en) * 2004-11-19 2010-08-17 Microsoft Corporation System and method for a distributed object store
US20060136475A1 (en) * 2004-12-21 2006-06-22 Soumen Karmakar Secure data transfer apparatus, systems, and methods
US9286198B2 (en) * 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US7937616B2 (en) * 2005-06-28 2011-05-03 International Business Machines Corporation Cluster availability management
US7536426B2 (en) 2005-07-29 2009-05-19 Microsoft Corporation Hybrid object placement in a distributed storage system
CN101140536B (zh) * 2007-05-21 2012-09-05 中兴通讯股份有限公司 一种支持级联快照的快照系统及其快照处理方法
US8224864B1 (en) 2008-01-07 2012-07-17 Network Appliance, Inc. Striping directories across a striped volume set by the filenames contained in the directories
US8180983B1 (en) * 2008-02-26 2012-05-15 Network Appliance, Inc. Caching filenames of a striped directory in predictable locations within a volume locally accessible to a storage server node
US8171246B2 (en) * 2008-05-31 2012-05-01 Lsi Corporation Ranking and prioritizing point in time snapshots
US8327095B2 (en) * 2008-06-06 2012-12-04 International Business Machines Corporation Maintaining information of a relationship of target volumes comprising logical copies of a source volume
US20120096230A1 (en) * 2010-10-14 2012-04-19 Kishore Sampathkumar Method and system for creating snapclone logical disks
US10645002B2 (en) * 2014-06-20 2020-05-05 Hewlett Packard Enterprise Development Lp System, apparatus and method for managing redundancy elimination in packet storage during observation of data movement
US10521358B2 (en) 2014-06-20 2019-12-31 Hewlett Packard Enterprise Development Lp System, apparatus and method for prioritizing the storage of content based on a threat index
US10782889B2 (en) * 2016-05-10 2020-09-22 Hewlett Packard Enterprise Development Lp Fibre channel scale-out with physical path discovery and volume move
US10261719B2 (en) 2017-01-31 2019-04-16 Hewlett Packard Enterprise Development Lp Volume and snapshot replication
US10416905B2 (en) 2017-02-09 2019-09-17 Hewlett Packard Enterprise Development Lp Modifying membership of replication groups via journal operations
CN107291883B (zh) * 2017-06-20 2020-09-18 苏州浪潮智能科技有限公司 一种分布式存储系统的快照方法及装置
US10649856B2 (en) 2017-09-01 2020-05-12 International Business Machines Corporation Concurrent writing to a file during backup of the file
CN108958976A (zh) * 2018-07-02 2018-12-07 山东汇贸电子口岸有限公司 一种pv快照备份恢复分布式数据库数据方法和系统
WO2020081899A1 (en) * 2018-10-19 2020-04-23 Veriblock, Inc. Systems, methods, and storage media for using the otherwise-unutilized storage space on a storage device
CN109408291A (zh) * 2018-10-31 2019-03-01 郑州云海信息技术有限公司 一种分布式存储系统磁盘快照恢复方法、装置及电子设备
WO2020133473A1 (zh) * 2018-12-29 2020-07-02 华为技术有限公司 一种备份数据的方法、装置和系统
CN111399774B (zh) * 2020-03-09 2021-09-14 星辰天合(北京)数据科技有限公司 分布式存储系统下基于快照的数据处理方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998020419A1 (en) * 1996-11-08 1998-05-14 Vinca Corporation System and method for maintaining a logically consistent backup using minimal data transfer
CN1408083A (zh) * 1999-12-07 2003-04-02 数据基础公司 可升级存储器架构
US20030140070A1 (en) * 2002-01-22 2003-07-24 Kaczmarski Michael Allen Copy method supplementing outboard data copy with previously instituted copy-on-write logical snapshot to create duplicate consistent with source data as of designated time
CN1464468A (zh) * 2002-06-05 2003-12-31 中国科学院计算技术研究所 网络存储系统中的数据管理系统
US20040117567A1 (en) * 2002-12-13 2004-06-17 Lee Whay Sing System and method for efficient write operations for repeated snapshots by copying-on-write to most recent snapshot

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471631A (en) * 1992-10-19 1995-11-28 International Business Machines Corporation Using time stamps to correlate data processing event times in connected data processing units
US6802041B1 (en) * 1999-01-20 2004-10-05 Perfectnotes Corporation Multimedia word processor
US6397307B2 (en) * 1999-02-23 2002-05-28 Legato Systems, Inc. Method and system for mirroring and archiving mass storage
US7203732B2 (en) 1999-11-11 2007-04-10 Miralink Corporation Flexible remote data mirroring
JP3868708B2 (ja) * 2000-04-19 2007-01-17 株式会社日立製作所 スナップショット管理方法及び計算機システム
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
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
US20030120676A1 (en) 2001-12-21 2003-06-26 Sanrise Group, Inc. Methods and apparatus for pass-through data block movement with virtual storage appliances
US7036043B2 (en) * 2001-12-28 2006-04-25 Storage Technology Corporation Data management with virtual recovery mapping and backward moves
US20030220948A1 (en) * 2002-01-22 2003-11-27 Columbia Data Products, Inc. Managing snapshot/backup collections in finite data storage
US6763436B2 (en) 2002-01-29 2004-07-13 Lucent Technologies Inc. Redundant data storage and data recovery system
US6748504B2 (en) * 2002-02-15 2004-06-08 International Business Machines Corporation Deferred copy-on-write of a snapshot
US7120827B2 (en) * 2002-05-07 2006-10-10 Hitachi Ltd. System and method of volume health checking and recovery
US6931499B2 (en) * 2002-08-01 2005-08-16 Lsi Logic Corporation Method and apparatus for copying data between storage volumes of storage systems
US6792518B2 (en) * 2002-08-06 2004-09-14 Emc Corporation Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies
US6912631B1 (en) * 2002-09-25 2005-06-28 Veritas Operating Corporation Method and apparatus for restoring a corrupted data volume

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998020419A1 (en) * 1996-11-08 1998-05-14 Vinca Corporation System and method for maintaining a logically consistent backup using minimal data transfer
CN1408083A (zh) * 1999-12-07 2003-04-02 数据基础公司 可升级存储器架构
US20030140070A1 (en) * 2002-01-22 2003-07-24 Kaczmarski Michael Allen Copy method supplementing outboard data copy with previously instituted copy-on-write logical snapshot to create duplicate consistent with source data as of designated time
CN1464468A (zh) * 2002-06-05 2003-12-31 中国科学院计算技术研究所 网络存储系统中的数据管理系统
US20040117567A1 (en) * 2002-12-13 2004-06-17 Lee Whay Sing System and method for efficient write operations for repeated snapshots by copying-on-write to most recent snapshot

Also Published As

Publication number Publication date
EP1653359A2 (en) 2006-05-03
EP1653359A3 (en) 2009-10-28
EP2407884A3 (en) 2012-04-11
US20060095695A1 (en) 2006-05-04
SG122056A1 (en) 2006-05-26
US7305530B2 (en) 2007-12-04
EP2407884A2 (en) 2012-01-18
CN1770114A (zh) 2006-05-10

Similar Documents

Publication Publication Date Title
CN100416508C (zh) 一种存储网络中的数据备份方法
CN100419664C (zh) 存储网络中执行备份操作的方法
CN100524235C (zh) 存储网络中的恢复操作
US11960777B2 (en) Utilizing multiple redundancy schemes within a unified storage element
US10789020B2 (en) Recovering data within a unified storage element
US7702876B2 (en) System and method for configuring memory devices for use in a network
US20020069318A1 (en) Real time application accelerator and method of operating the same
CN101147118A (zh) 用于重新配置存储系统的方法和装置
CN105210062A (zh) 用于分布式数据库系统的系统范围检查点避免
CN105190622A (zh) 用于分布式数据库系统的快速崩溃恢复
US20070061540A1 (en) Data storage system using segmentable virtual volumes
CN103597440A (zh) 用于创建克隆文件的方法以及采用该方法的文件系统
CN105339903A (zh) 恢复文件系统对象
US8140886B2 (en) Apparatus, system, and method for virtual storage access method volume data set recovery
US11327676B1 (en) Predictive data streaming in a virtual storage system
US20230229363A1 (en) Tiering Valid Data after a Disaster Recovery Operation
US7484038B1 (en) Method and apparatus to manage storage devices
JP4390618B2 (ja) データベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置
Dell
US7398350B1 (en) Distribution of data volume virtualization
Thomasian RAID Organizations for Improved Reliability and Performance: A Not Entirely Unbiased Tutorial (1st revision)
Jaffe Scalable storage systems
Empower Engineered for Efficiency
Schwerdtfeger High-End Storage
Han Studies of disk arrays tolerating two disk failures and a proposal for a heterogeneous disk array

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

Effective date of registration: 20170208

Address after: American Texas

Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Patentee before: HP Development Co., Ltd.

TR01 Transfer of patent right