CN103336729A - 单一架构下进行资料卷复制的方法及其装置 - Google Patents

单一架构下进行资料卷复制的方法及其装置 Download PDF

Info

Publication number
CN103336729A
CN103336729A CN2013101957985A CN201310195798A CN103336729A CN 103336729 A CN103336729 A CN 103336729A CN 2013101957985 A CN2013101957985 A CN 2013101957985A CN 201310195798 A CN201310195798 A CN 201310195798A CN 103336729 A CN103336729 A CN 103336729A
Authority
CN
China
Prior art keywords
volume
data volume
data
block
source material
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.)
Granted
Application number
CN2013101957985A
Other languages
English (en)
Other versions
CN103336729B (zh
Inventor
施明文
方庆华
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.)
INFORTREND Inc
Infortrend Technology Inc
Original Assignee
INFORTREND Inc
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 INFORTREND Inc filed Critical INFORTREND Inc
Publication of CN103336729A publication Critical patent/CN103336729A/zh
Application granted granted Critical
Publication of CN103336729B publication Critical patent/CN103336729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/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

Abstract

本发明是有关于一种单一架构下进行资料卷复制的方法及其装置,每一资料卷具有一专属的资料卷记录表(VLT)与一专属的资料卷区块更新表(VBUT)。资料卷记录表(VLT)主要用于纪录一镜射对(mirroring pair)中两资料卷间的关系;资料卷区块更新表(VBUT)则用于追踪本身每一数据区块的状态。利用资料卷记录表(VLT)与资料卷区块更新表(VBUT)之间的交互操作应用,可以在单一架构下实现资料卷复制(volume copy)与资料卷镜像(volume mirror)等多种复制方式。并且,每一资料卷都只需管理两个专属的表,即可处理与其他多个资料卷间不同的复制关系。因此,本发明提出的技术有简化同步复制架构与减少表格管理的好处,可以使储存系统的运作更具效率。

Description

单一架构下进行资料卷复制的方法及其装置
技术领域
本发明涉及一种资料卷复制的方法及其装置,特别是涉及一种在单一架构下进行资料卷复制(volume copy)与资料卷镜像(volume mirror)的方法及其装置。
背景技术
在现代社会中,储存装置被广泛地应用于各式各样的电脑系统或储存系统中。依照储存的目的,有些储存装置是用来储存系统运作时需要常态性存取的数据,此类储存装置称为主要储存装置(primary storage device)。而另一些储存装置则是用来储存主要储存装置的备份数据,此类储存装置称为次要储存装置(secondary storage device),以便当主要储存装置失效或损坏时,可以取代主要储存装置而让系统维持正常运作,以增加系统的可靠性(reliability)。
储存装置可以是硬式磁碟机(hard disk drive)、磁带(tape)、存储器纪录装置(memory drive)、光储存记录装置(optical storage drive)或其他可以用于储存数据的储存装置。这些储存装置都称为“实体储存装置”(physical storage device,PSD)。
储存系统(或电脑系统)在管理数据时,实际上并不是以一个实体储存装置(PSD)为单位,而是利用储存虚拟化(storage virtualization)技术,将一或数个实体储存装置(PSD)的不同区段结合成一个逻辑碟(Logical Drive,LD)或分割区(partition)。若是控制器将逻辑碟(Logical Drive,LD)或分割区(partition)映射(map)出去供主机(host)存取,则称为一个逻辑单元(logical unit number,LUN)。一个逻辑碟(Logical Drive,LD)或分割区(partition)可以进一步地划分为一或多个数据储存区域(data storage area),称之为媒体区(media extent)。许多储存系统会对其部份或全部的资料卷(volume)做整体地数据复制(replicate)至其他资料卷(volume)中,如此当原始数据损坏或无法读取时,可以利用复制数据来恢复原始数据,或者以复制数据代替原始数据作为其他应用。
若是称复制数据的来源是来源资料卷(source volume),复制数据的储存位置是目的资料卷(destination volume),以资料卷(volume)为单位制作复制数据具有以下用途:来源资料卷(source volume)的备份、报告、归档,或者用来代替来源资料卷(source volume)进行任何需要来源资料卷(source volume)的操作,例如:模拟、预报、数据采矿(data mining)等。尤其,许多数据存取的操作都需要先对欲存取的数据做锁定(locking),如此不可避免地会影响数据读写的绩效,亦会影响主机(host)对数据的正常存取;因此,若利用目的资料卷(destinationvolume)代替来源资料卷(source volume)进行上述操作,则可以在不影响来源资料卷(source volume)的绩效下提供主机(host)数据存取的服务。
“资料卷复制(volume copy)”与“资料卷镜像(volume mirror)”是业界常用的两种资料卷复制方式。其中,资料卷复制(volume copy)是用于复制复制作业一开始的时间点(也是分离(split)指令下达时间点)的来源资料卷(sourcevolume)的数据,通常只有一次性复制;资料卷镜像(volume mirror)则是两资料卷间要一直维持着数据同步的关系,也就是目的资料卷是来源资料卷的镜像(mirror)。在现有习知的技术中,资料卷复制(volume copy)与资料卷镜像(volumemirror)是用不同的架构来实行此两种数据复制方式。而且,在现有习知的技术中,一镜射对(mirroring pair)中的两资料卷(来源资料卷与目的资料卷)需各自管理一个追踪表(tracking table),用来纪录两资料卷每一相对应区块(block)的镜射状态以及每一区块数据在镜射(mirroring)的过程中有没有被更改。一镜射对(mirroring pair)需要二个各自储存在来源资料卷(source volume)与目的资料卷(destination volume)的追踪表(tracking table)。如果资料卷A分别和资料卷B、C、D建立镜射对(mirroring pair)的关系,则资料卷A就需管理3个追踪表(tracking table)。上述现有习知的技术的特性让资料卷复制(volume copy)与资料卷镜像(volume mirror)作业执行起来既复杂又没有效率。
因此,如果有单一架构可以涵盖“资料卷复制(volume copy)”与“资料卷镜像(volume mirror)”的实施、且简化追踪表(tracking table)的管理;或者是说,如果有单一架构可以让“资料卷复制(volume copy)”与“资料卷镜像(volumemirror)”只是同一资料卷同步函数(single unified volume synchronizationfunction)的操作选项(operational options)的话,如此一定可以有效地促进储存系统的运作绩效。
发明内容
本发明的目的在于,提供一种在单一架构下即可进行资料卷复制(volumecopy)、资料卷镜像(volume mirror)等多种不同方式的资料卷复制的方法及其装置。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种进行资料卷复制的方法,让一目的资料卷与一来源资料卷的数据同步(sync),其包含以下步骤:在该来源资料卷的一资料卷记录表(VLT)中配置一第一项目(entry),并且初始化该第一项目的多个栏位,包括设定一第一栏位的序号为一初始设定值(initial setting)以及设定一第二栏位的操作代码(OpCod)为一代表来源资料卷状态的操作代码;其中更指派该第一栏位的该初始设定值(initial setting value)给一第一变数;在该目的资料卷的一资料卷记录表(VLT)中配置一第二项目(entry),并且初始化该第二项目的多个栏位,包括设定一第二栏位的操作代码(OpCod)为一代表目的资料卷状态的操作代码;增加该目的资料卷的一主要序号变数的值,并将该主要序号变数的值复制至该目的资料卷的该资料卷记录表(VLT)的该第二项目(entry)中纪录序号的一第一栏位,以及复制至该来源资料卷的该资料卷记录表(VLT)的该第一项目(entry)中纪录另一资料卷的资料卷记录表的项目的序号的一第四栏位;其中更指派该目的资料卷的该主要序号变数的现行值给一第二变数;设定该目的资料卷的该资料卷记录表(VLT)的该第二项目(entry)中一第四栏位为一起始位址,其中该第四栏位用于纪录下一个要进行同步复制的数据区块的索引号(DstVLT.NxtSynBlk);以及由该起始位址开始,执行一背景复制来源资料卷至目的资料卷(BackgroundCopy of Source to Destination)的程序。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的进行资料卷复制的方法,其还包括一步骤:判断是否有一主机输出入要求要对该来源资料卷存取数据。
前述的进行资料卷复制的方法,其还包括一步骤:将该主机输出入要求分解为至少一逻辑碟输出入要求,每一该逻辑碟输出入要求皆对应到该来源资料卷中一个欲存取的数据区块。
前述的进行资料卷复制的方法,其中对该至少一逻辑碟输出入要求的每一并行执行以下步骤:判断该主机输出入要求是否是一写入要求;判断该目的资料卷是否是可存取的;判断一目的资料卷的资料卷区块更新表的一致性检查程序是否有传回一“伪”信息;判断该来源资料卷的一欲写入区块的索引号码是否小于该目的资料卷的该资料卷记录表的该第二项目中的该第四栏位所记载的下一个要进行同步的数据区块的索引号;以及复制该主机输出入要求的数据至该来源资料卷的该欲写入区块。
前述的进行资料卷复制的方法,其中判断结果是该目的资料卷的资料卷区块更新表的一致性检查程序传回该“伪”信息,则还包括一步骤:发出一失败信息。
前述的进行资料卷复制的方法,其中判断结果是该来源资料卷的该欲写入区块的该索引号码小于该目的资料卷的该资料卷记录表的该第二项目中的该第四栏位所记载的下一个要进行同步的数据区块的索引号,则还包括一步骤:复制该主机输出入要求的数据至该目的资料卷的一数据区块,该数据区块的位址是对应于该来源资料卷的该欲写入区块;以及判断该目的资料卷的一资料卷区块更新表中一正进行处理的数据区块的序号是否等于该第二变数的值。
前述的进行资料卷复制的方法,其中判断结果是该目的资料卷的该资料卷区块更新表中对应该欲写入区块的序号不等于该第二变数的值,则还包括一步骤:设定该目的资料卷的该资料卷区块更新表中纪录对应该欲写入区块的序号等于该第二变数的值。
前述的进行资料卷复制的方法,其中对该至少一逻辑碟输出入要求的每一并行执行以下步骤:判断该主机输出入要求是否是一写入要求;以及从该来源资料卷的一欲读取区块读取数据。
前述的进行资料卷复制的方法,其中对该至少一逻辑碟输出入要求的每一并行执行以下步骤:判断该主机输出入要求是否是一写入要求;判断该目的资料卷是否是可存取的;设定一同步错误旗标为“真”;以及复制该主机输出入要求的数据至该来源资料卷的该欲写入区块。
前述的进行资料卷复制的方法,其还包括一步骤:判断对应该至少一逻辑碟输出入要求的程序是否都已执行完成。
前述的进行资料卷复制的方法,其还包括一步骤:回报送出该主机输出入要求的一主机,该主机输出入要求已处理完毕。
前述的进行资料卷复制的方法,其中还包括一步骤:判断是否是一初始的同步复制作业。
前述的进行资料卷复制的方法,其中还包括以下步骤:初始化该目的资料卷的一资料卷区块更新表:以及初始化该目的资料卷的该主要序号变数。
前述的进行资料卷复制的方法,其中所述的目的资料卷的资料卷区块更新表的一致性检查程序包含以下三个判断步骤:判断该目的资料卷的该资料卷区块更新表中该正进行处理的数据区块的序号是否大于该第二变数的值;判断该目的资料卷的该资料卷区块更新表中该正进行处理的的数据区块的序号是否等于该第二变数的值,并且该目的资料卷的该资料卷记录表的该第二项目中的该第四栏位所记载的下一个要进行同步的数据区块的索引号是否小于或等于正在进行数据修改的区块的索引值;以及判断该目的资料卷的该资料卷记录表的该第二项目中的该第四栏位所记载的下一个要进行同步的数据区块的索引号是否大于正在进行数据修改的区块的索引值,并且一检查资料卷区块是否已在同步状态的程序是否回传一“伪”值。
前述的进行资料卷复制的方法,其中只要该目的资料卷的资料卷区块更新表的一致性检查程序的该三个判断步骤的任一的判断结果为“是”,则回传该“伪”信息。
前述的进行资料卷复制的方法,其中所述的目的资料卷的资料卷区块更新表的一致性检查程序的该三个判断步骤的所有判断结果皆为“否”,则回传一“真”信息。
前述的进行资料卷复制的方法,其中所述的背景复制来源资料卷至目的资料卷程序包含以下步骤:对于该目的资料卷的一资料卷区块更新表的每一项目所代表的每一数据区块,呼叫并执行一检查/复制来源资料卷的区块数据至目的资料卷程序;以及判断是否还有任何该资料卷区块更新表中所纪录的数据区块尚未进行同步复制。
前述的进行资料卷复制的方法,其中如果判断结果是该资料卷区块更新表中还有数据区块尚未进行同步复制,则将该目的资料卷的该资料卷记录表的该第二项目中该第四栏位所纪录的下一个要进行同步复制的数据区块的索引号增加1个单位。
前述的进行资料卷复制的方法,其中如果判断结果是该资料卷区块更新表中所有的数据区块都已同步复制完成,则设定该目的资料卷的该资料卷记录表的该第二项目中该第四栏位的值为一预设值,该预设值代表所有数据区块的同步复制皆已完成。
前述的进行资料卷复制的方法,其中所述的预设值是“-1”。
前述的进行资料卷复制的方法,其中所述的检查资料卷区块是否已在同步状态的程序包含以下五个判断步骤:判断该目的资料卷的该资料卷区块更新表中该正进行处理的数据区块的序号是否等于一初始设定值;判断该目的资料卷的该资料卷区块更新表中该正进行处理的数据区块的序号所对应的该目的资料卷的该资料卷记录表的项目是否找不到,或者虽有找到但是读不到或两者数据不一致;判断该目的资料卷的该资料卷记录表中目前正进行的项目的该第二栏位所记载的操作代码是否不是该代表目的资料卷状态的操作代码,或者该目的资料卷该资料卷记录表中目前正进行的项目的一第三栏位所记载的另一产生关联的资料卷的身份是否不是其对应的该来源资料卷的身份代码;判断与该目的资料卷的该资料卷区块更新表中该正进行处理的数据区块的序号相同的该来源资料卷的该资料卷记录表中目前正进行的项目的该第四栏位所记载的另一资料卷的序号的该来源资料卷的该资料卷记录表中的项目,是否找不到,或者虽有找到但是读不到或记载的数据不一致;以及判断该来源资料卷的该资料卷区块更新表中该正进行处理的数据区块的序号是否大于或等于该来源资料卷的该资料卷记录表中目前正进行的项目的该第一栏位所记载的序号。
前述的进行资料卷复制的方法,其中只要该检查资料卷区块是否已在同步状态的程序的该五个判断步骤的任一的判断结果为“是”,则回传该“伪”信息。
前述的进行资料卷复制的方法,其中所述的检查资料卷区块是否已在同步状态的程序的该五个判断步骤的所有判断结果皆为“否”,则回传一“真”信息。
前述的进行资料卷复制的方法,其中所述的初始设定值是“0”。
本发明的目的及解决其技术问题还采用以下技术方案来实现。依据本发明提出的一种进行资料卷复制的方法,应用于一目的资料卷与一来源资料卷在一同步复制(sync)作业的过程、完成时或完成之后发生一分离事件,其包含:在该来源资料卷的一资料卷记录表(VLT)中配置一第一项目(entry),并且初始化该第一项目的多个栏位,包括设定一第一栏位的序号为一初始设定值(initialsetting value)、以及设定一第二栏位的操作代码(OpCod)为一代表来源资料卷状态的操作代码;在该目的资料卷的一资料卷记录表(VLT)中配置一第二项目(entry),并且初始化该第二项目的多个栏位,包括设定一第二栏位的操作代码(OpCod)为一代表目的资料卷状态的操作代码;增加该目的资料卷的一主要序号变数的值,并将该主要序号变数的值复制至该目的资料卷的该资料卷记录表(VLT)的该第二项目(entry)中纪录序号的一第一栏位,以及复制至该来源资料卷的该资料卷记录表(VLT)的该第一项目(entry)中纪录另一资料卷的VLT entry的序号的一第四栏位;其中更指派该目的资料卷的该主要序号变数的现行值给一第二变数;设定该目的资料卷的该资料卷记录表(VLT)的该第二项目(entry)中一第四栏位为一起始位址,其中该第四栏位用于纪录下一个要进行同步复制的数据区块的索引号(DstVLT.NxtSynBlk);增加该来源资料卷的一主要序号变数的值,并将该来源资料卷的该主要序号变数的值复制至该来源资料卷的该资料卷记录表(VLT)的该第一项目(entry)中纪录序号的该第一栏位;其中更指派该来源资料卷的该主要序号变数的值给该第一变数;在该目的资料卷的该资料卷记录表(VLT)中配置一第三项目(entry),并且初始化该第三项目的多个栏位,包括设定一第二栏位的操作代码(OpCod)为一代表分离状态的操作代码;再次增加该目的资料卷的该主要序号变数的值并将指派给一第三变数,并将增加后的该目的资料卷的该主要序号变数的值复制至该目的资料卷的该资料卷记录表(VLT)的该第三项目(entry)中纪录序号的一第一栏位;以及判断该目的资料卷与该来源资料卷的该同步复制(sync)作业是否已经完成。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的进行资料卷复制的方法,其还包括一步骤:执行一背景复制来源资料卷至目的资料卷程序。
前述的进行资料卷复制的方法,其还包括一步骤:判断是否有一主机输出入要求要对该来源资料卷或该目的资料卷存取数据。
前述的进行资料卷复制的方法,其还包括一步骤:将该主机输出入要求分解为至少一逻辑碟输出入要求,每一该逻辑碟输出入要求皆对应到该来源资料卷或目标资料卷中一欲存取数据区块。
前述的进行资料卷复制的方法,其中对该至少一逻辑碟输出入要求的每一并行执行以下步骤:判断该主机输出入要求是否是一写入要求;判断该目的资料卷是否是可存取的;判断该主机输出入要求是否是要存取该来源资料卷;执行一检查/复制来源资料卷的区块数据至目的资料卷的程序;以及复制该主机输出入要求的数据至该来源资料卷的该欲存取数据区块。
前述的进行资料卷复制的方法,其中对该至少一逻辑碟输出入要求的每一并行执行以下步骤:判断该主机输出入要求是否是一写入要求;判断该目的资料卷是否是可存取的;判断该主机输出入要求是否是要存取该来源资料卷;判断该主机输出入要求是否是要存取该目的资料卷并且只有该欲存取数据区块的部分会被修改数据;以及复制该主机输出入要求的数据至该目的资料卷的该欲存取数据区块。
前述的进行资料卷复制的方法,其中对该至少一逻辑碟输出入要求的每一并行执行以下步骤:判断该主机输出入要求是否是一写入要求;判断该目的资料卷是否是可存取的;判断该主机输出入要求是否是要存取该来源资料卷;判断该主机输出入要求是否是要存取该目的资料卷并且只有该欲存取数据区块的部分会被修改数据;执行一检查/复制来源资料卷的区块数据至目的资料卷的程序;以及复制该主机输出入要求的数据至该目的资料卷的该欲存取数据区块。
前述的进行资料卷复制的方法,其中对该至少一逻辑碟输出入要求的每一并行执行以下步骤:判断该主机输出入要求是否是一写入要求;判断该目的资料卷是否是可存取的;设定一同步错误旗标为“真”;以及判断该主机输出入要求是否是要存取该来源资料卷。
前述的进行资料卷复制的方法,其还包括一步骤:复制该主机输出入要求的数据至该来源资料卷的该欲存取数据区块。
前述的进行资料卷复制的方法,其还包括以下步骤:判断该主机输出入要求是要存取该来源资料卷或是该目的资料卷;以及设定该来源资料卷的一资料卷区块更新表中对应该欲存取数据区块的序号等于该第一变数的值。
前述的进行资料卷复制的方法,其还包括以下步骤:判断该主机输出入要求是要存取该来源资料卷或是该目的资料卷;以及设定该目的资料卷的一资料卷区块更新表中对应该欲存取数据区块的序号等于该第三变数的值。
前述的进行资料卷复制的方法,其中对该至少一逻辑碟输出入要求的每一并行执行以下步骤:判断该主机输出入要求是否是一写入要求;判断该主机输出入要求是否是存取该目的资料卷;以及判断该目的资料卷的一资料卷区块更新表中对应该欲存取数据区块的一项目是否被标示为“数据无效”。
前述的进行资料卷复制的方法,其还包括以下步骤:回复一错误信息。
前述的进行资料卷复制的方法,其还包括以下步骤:判断该目的资料卷的一同步错误旗标是否曾被设立起来、并且该目的资料卷中正进行处理的该资料卷区块更新表的该项目的序号是否小于该目的资料卷的该第二变数的值、并且该来源资料卷中正进行处理的该资料卷区块更新表的该项目的序号是否大于或等于该第一变数的值。
前述的进行资料卷复制的方法,其还包括以下步骤:标示该目的资料卷的该资料卷区块更新表中对应该欲存取数据区块的该项目为“数据无效”;以及回复一错误信息。
前述的进行资料卷复制的方法,其还包括以下步骤:判断该主机输出入要求是否是存取该来源资料卷;以及从该来源资料卷的该欲存取区块读取数据。
前述的进行资料卷复制的方法,其还包括以下步骤:判断该主机输出入要求是否是存取该来源资料卷;判断该主机输出入要求是否是存取该目的资料卷并且判断该目的资料卷中正进行处理的该资料卷区块更新表的该项目的序号是否小于该目的资料卷的该第二变数的值;以及从该来源资料卷的该欲存取区块读取数据。
前述的进行资料卷复制的方法,其还包括以下步骤:判断该主机输出入要求是否是存取该来源资料卷;判断该主机输出入要求是否是存取该目的资料卷并且判断该目的资料卷中正进行处理的该资料卷区块更新表的该项目的序号是否小于该目的资料卷的该第二变数的值;以及从该目的资料卷的该欲存取区块读取数据。
前述的进行资料卷复制的方法,其还包括一步骤:判断对应该至少一逻辑碟输出入要求(LD IO)的程序是否都已执行完成。
前述的进行资料卷复制的方法,其还包括一步骤:回报送出该主机输出入要求的一主机,该主机输出入要求已处理完毕。
前述的进行资料卷复制的方法,其中所述的背景复制来源资料卷至目的资料卷程序包含以下步骤:对于该目的资料卷的一资料卷区块更新表的每一项目所代表的每一数据区块,呼叫并执行一检查/复制来源资料卷的区块数据至目的资料卷程序;以及判断是否还有任何该资料卷区块更新表中所纪录的数据区块尚未进行同步复制。
前述的进行资料卷复制的方法,其中如果判断结果是该资料卷区块更新表中还有数据区块尚未进行同步复制,则将该目的资料卷的该资料卷记录表的该第二项目中该第四栏位所纪录的下一个要进行同步复制的数据区块的索引号增加1个单位。
前述的进行资料卷复制的方法,其中如果判断结果是该资料卷区块更新表中所有的数据区块都已同步复制完成,则设定该目的资料卷的该资料卷记录表的该第二项目中该第四栏位的值为一预设值,该预设值代表所有数据区块的同步复制皆已完成。
前述的进行资料卷复制的方法,其中所述的预设值是“-1”。
前述的进行资料卷复制的方法,其中所述的检查/复制来源资料卷的区块数据至目的资料卷的程序包含以下步骤:判断该目的资料卷的一资料卷区块更新表中一正进行处理的数据区块的序号是否小于该第二变数的值;判断该目的资料卷是否已经与该来源资料卷分离,并且该来源资料卷的一资料卷区块更新表中一正进行处理的数据区块的序号是否大于或等于该第一变数的值;以及执行一检查资料卷区块是否已在同步状态的程序,并且检查该程序是否回传一“伪”值。
前述的进行资料卷复制的方法,其中所述的检查/复制来源资料卷的区块数据至目的资料卷的程序更包含以下步骤:复制该来源资料卷的区块数据至该目的资料卷;以及设定该目的资料卷的该资料卷区块更新表中该正进行处理的数据区块的序号等于该第二变数的值。
前述的进行资料卷复制的方法,其中所述的检查/复制来源资料卷的区块数据至目的资料卷程序包含以下步骤:判断该目的资料卷的一资料卷区块更新表中一正进行处理的数据区块的序号是否小于该第二变数的值;判断该目的资料卷是否已经与该来源资料卷分离,并且该来源资料卷的一资料卷区块更新表中一正进行处理的数据区块的序号是否大于或等于该第一变数的值;以及标示该目的资料卷的该资料卷区块更新表中对应该正进行处理的数据区块的一项目为“数据无效”。
前述的进行资料卷复制的方法,其中所述的检查/复制来源资料卷的区块数据至目的资料卷的程序包含以下步骤:判断该目的资料卷的一资料卷区块更新表中一正进行处理的数据区块的序号是否小于该第二变数的值;判断该目的资料卷是否已经与该来源资料卷分离;以及跳过该正进行处理的数据区块,如果判断结果是该目的资料卷已经与该来源资料卷分离;或者,发出一失败信息,如果判断结果是该目的资料卷没有与该来源资料卷分离。
前述的进行资料卷复制的方法,其中所述的检查资料卷区块是否已在同步状态的程序包含以下五个判断步骤:判断该目的资料卷的该资料卷区块更新表中该正进行处理的数据区块的序号是否等于一初始设定值;判断该目的资料卷的该资料卷区块更新表中该正进行处理的数据区块的序号所对应的该目的资料卷的该资料卷记录表的项目是否找不到,或者虽有找到但是读不到或两者数据不一致;判断该目的资料卷的该资料卷记录表中目前正进行的项目的该第二栏位32所记载的操作代码是否不是该代表目的资料卷状态的操作代码,或者该目的资料卷该资料卷记录表中目前正进行的项目的一第三栏位33所记载的另一产生关联的资料卷的身份是否不是其对应的该来源资料卷的身份代码;判断与该目的资料卷的该资料卷区块更新表中该正进行处理的数据区块的序号相同的该来源资料卷的该资料卷记录表中目前正进行的项目的该第四栏位所记载的另一资料卷的序号的该来源资料卷的该资料卷记录表中的项目,是否找不到,或者虽有找到但是读不到或记载的数据不一致;以及判断该来源资料卷的该资料卷区块更新表中该正进行处理的数据区块的序号是否大于或等于该来源资料卷的该资料卷记录表中目前正进行的项目的该第一栏位31所记载的序号。
前述的进行资料卷复制的方法,其中只要该检查资料卷区块是否已在同步状态的程序的该五个判断步骤的任一的判断结果为“是”,则回传该“伪”信息。
前述的进行资料卷复制的方法,其中所述的检查资料卷区块是否已在同步状态的程序的该五个判断步骤的所有判断结果皆为“否”,则回传一“真”信息。
前述的进行资料卷复制的方法,其中所述的初始设定值是“0”。
本发明的目的及解决其技术问题另外再采用以下技术方案来实现。依据本发明提出的一种磁碟阵列控制器,可应用于进行一实体储存装置阵列(PSDArray)中多个资料卷间的数据复制,包含:一存储器,用来缓冲传送于一主机及该实体储存装置阵列之间通过该磁碟阵列控制器的数据;以及一中央处理电路,利用所述多个资料卷各自专属的一资料卷记录表(VLT)与一资料卷区块更新表(VBUT)进行数据复制作业;其中,该资料卷记录表(VLT)的一项目(entry)具有一第一栏位,用于纪录一序号(SeqNum)的、一第二栏位,用于纪录一操作代码(OpCod)、一第三栏位,用于纪录与之产生关系的一另一资料卷身份(AltVolID)、以及一第四栏位,用于纪录与之产生关联的该另一资料卷的该资料卷记录表(VLT)的该项目(VLT entry)的序号(AltVolSN)或者纪录本身下一个要进行复制的数据区块(block)的一索引号(NxtSynBlk);以及其中,该资料卷区块更新表(VBUT)的一项目(entry)纪录一数据区块(block)的更新状态资讯。
本发明的目的及解决其技术问题另外再采用以下技术方案来实现。依据本发明提出的一种进行资料卷复制的方法,其包含以下步骤:形成一第一镜射对,该第一镜射对由一第一资料卷与一第二资料卷所组成;管理该第一资料卷的一资料卷记录表(VLT)与一资料卷区块更新表(VBUT),其中,该资料卷记录表(VLT)用于纪录该第一资料卷与该第二资料卷形成一镜射对后的同步状态资讯,该资料卷区块更新表(VBUT)用于纪录该第一资料卷的每一数据区块(block)的更新状态资讯;形成一第二镜射对,该第二镜射对由该第一资料卷与一第三资料卷所组成;以及管理该第一资料卷的该资料卷记录表(VLT)与该资料卷区块更新表(VBUT),其中,该资料卷记录表(VLT)用于纪录该第一资料卷与该第三资料卷形成一镜射对后的同步状态资讯,该资料卷区块更新表(VBUT)用于纪录该第一资料卷的每一数据区块(block)的更新状态资讯。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的进行资料卷复制的方法,其中所述的第一镜射对中的该第一资料卷与该第二资料卷间进行资料卷复制或资料卷镜像两种复制作业的其中之一。
前述的进行资料卷复制的方法,其中所述的第二镜射对中的该第一资料卷与该第三资料卷间进行资料卷复制或资料卷镜像两种复制作业的其中之一。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明单一架构下进行资料卷复制的方法及其装置至少具有下列优点及有益效果:本发明可简化同步复制架构与减少表格管理的好处,可以使储存系统的运作更具效率。
综上所述,本发明一种单一架构下进行资料卷复制的方法及其装置,每一资料卷具有一专属的资料卷记录表(VLT)与一专属的资料卷区块更新表(VBUT)。资料卷记录表(VLT)主要用于纪录一镜射对(mirroring pair)中两资料卷间的关系;资料卷区块更新表(VBUT)则用于追踪本身每一数据区块的状态。利用资料卷记录表(VLT)与资料卷区块更新表(VBUT)之间的交互操作应用,可以在单一架构下实现资料卷复制(volume copy)与资料卷镜像(volume mirror)等多种复制方式。并且,每一资料卷都只需管理两个专属的表,即可处理与其他多个资料卷间不同的复制关系。因此,本发明提出的技术有简化同步复制架构与减少表格管理的好处,可以使储存系统的运作更具效率。本发明在技术上有显著的进步,并具有明显的积极效果,诚为一新颖、进步、实用的新设计。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1描绘应用本发明的电脑系统的硬件架构示意图。
图2A描绘本发明提出的资料卷记录表(Volume Log Table,VLT)的数据结构示意图。
图2B描绘本发明提出的资料卷区块更新表(Volume Block Update Table,VBUT)的数据结构示意图。
图3描绘应用本发明方法的储存虚拟化控制器(SVC)的一实施例示意图。
图4A~图4C描绘本发明中同步复制(sync)来源资料卷(source volume)至目的资料卷(destination volume)的一实施例的流程图,其中来源资料卷(sourcevolume)与目的资料卷(destination volume)之间没有分离(split)。
图5描绘本发明中目的资料卷的资料卷区块更新表的一致性检查(SyncProcess DstVBUT Entry Consistency Check)的一实施例的流程图。
图6描绘本发明中背景复制来源资料卷至目的资料卷(Background Copy ofSource to Destination Volume)的一实施例的流程图。
图7描绘本发明中检查/复制来源资料卷的区块数据至目的资料卷(Check/Copy Block from Source to Destination Volume)的一实施例的流程图。
图8描绘本发明中检查资料卷区块是否已在同步状态(Check Volume BlockIn-Sync)的一实施例的流程图。
图9A~图9D描绘本发明中同步复制(sync)来源资料卷(source volume)至目的资料卷(destination volume)的一实施例的流程图,其中来源资料卷(sourcevolume)与目的资料卷(destination volume)已经分离(split),此分离(split)的时间点可能在同步复制(sync)的过程中、完成之时或完成之后;
图10A~图10E描绘本发明中资料卷记录表(VLT)在时间点T时的一实际范例。
图11A~图11D描绘本发明中资料卷区块更新表(VBUT)在时间点T时的一实际范例,对应于图10A~图10D。
图12A~图12E描绘本发明中资料卷记录表(VLT)在时间点T+t时的一实际范例。
图13A~图13D描绘本发明中资料卷区块更新表(VBUT)在时间点T+t时的一实际范例,对应于图12A~图12D。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的单一架构下进行资料卷复制的方法及其装置其具体实施方式、结构、特征及其功效,详细说明如后。
有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
本发明主要是提出一种在单一架构下实现“资料卷复制(volume copy)”与“资料卷镜像(volume mirror)”等多种资料卷复制的方式。每一资料卷(volume),在与另一资料卷间形成一镜射对(mirroring pair)时,就建立其专属的“资料卷记录表(Volume Log Table,VLT)”与“资料卷区块更新表(Volume Block UpdateTable,VBUT)”。之后,无论该资料卷(volume)再跟多少数量的其他资料卷间建立同步(synchronization)或镜像(mirror)关系的连结,都只需管理一个专属的“资料卷记录表(Volume Log Table,VLT)”与一个专属的“资料卷区块更新表(Volume Block Update Table,VBUT)”。因此,本发明提出的技术有简化复制架构与减少表格管理的好处,可以使储存系统的运作更具效率。
进行资料卷复制的做法是:先建立一来源资料卷(source volume)与一目的资料卷(destination volume)间为一个“镜射对(mirroring pair)”的关系,此时会开始进行第一次将来源资料卷(source volume)镜射(mirroring)至目的资料卷(destination volume)的程序,称为“同步复制(synchronizing或sync)”。同步复制(sync)的过程中,当主机(host)对来源资料卷(source volume)发出数据写入要求时,如果数据写入的区块(block)还未复制至关联的目的资料卷(destinationvolume),则只要对来源资料卷(source volume)写入数据;否则要同时对同一镜射对(mirroring pair)中的两资料卷的对应区块(block)写入相同的数据。第一次的同步复制(sync)(或称为镜射(mirroring))完成后,镜射对(mirroring pair)中的两资料卷进入同步(synchronization)的状态,因此之后任何来源资料卷(sourcevolume)的数据更动都必须同时复制至目的资料卷(destination volume)。此时的目的资料卷(destination volume)可以称做是来源资料卷(source volume)的“镜像(mirror)”。依照应用的需要,可以设定在某个时间点中止镜射对(mirroring pair)中两资料卷间的镜像(mirror)关系,此操作称为“分离(split)”。分离(split)指令的下达,意谓目的资料卷(destination volume)保存了分离(split)指令下达的时间点的来源资料卷(source volume)的状态;且意谓此时间点之后,切断来源资料卷(source volume)与目的资料卷(destination volume)间“镜射对”的关系,该两资料卷可以各自独立地被存取或更新,并不需维持彼此间各自更动数据的一致。
分离(split)操作可能发生在来源资料卷(source volume)镜射(mirroring)至目的资料卷(destination volume)期间或之后的任何时间点,或者甚至一直没有分离(split)操作发生。其中一种做法是:在镜射(mirroring)作业一开始马上下达分离(split)指令。此种方式是要复制来源资料卷(source volume)在命令下达时间点(即分离(split)时间点)的状态,且通常只有一次性命令,称为“资料卷复制(volume copy)”。相对的,若是两资料卷间基本上是维持着镜像(mirror)关系,且在同步复制(sync)的期间、完成时或完成之后一直没有任何分离(split)事件发生,两资料卷间一直维持在同步(synchronization)状态,此种资料卷复制的关系称为“资料卷镜像(volume mirror)”。
请参阅图1所示,为应用本发明的电脑系统1的硬件架构示意图。电脑系统1包含有一主机(Host)11与一储存虚拟化子系统(Storage VirtualizationSubsystem,SVS)12。虽在此实施例当中仅有一主机11与一储存虚拟化子系统12相互连接,实际应用时可用一主机11连接多个储存虚拟化子系统12,或是多个主机11连接一个储存虚拟化子系统12,或是多主机11连接多储存虚拟化子系统12。
主机11可为一主机电脑,如一服务器系统、工作站、个人电脑系统等。储存虚拟化子系统12包含有一储存虚拟化控制器(Storage VirtualizationController,SVC)13,以及一连接至储存虚拟化控制器13的实体储存装置阵列(Physical Storage Device Array,PSD Array)14。该储存虚拟化控制器13可为一磁碟阵列控制器或是一JBOD模拟器。在此虽然仅绘示一个实体储存装置阵列14连接至储存虚拟化控制器13,但实际应用时可使用一个以上的实体储存装置阵列14,而且主机11也可为一储存虚拟化控制器。
储存虚拟化控制器(SVC)13接受由该主机11传来的输出入请求及相关数据(控制信号及数据信号),并执行此输出入请求而将此输出入请求映射至实体储存装置阵列14进行数据存取,并将相关数据回复给主机(如果有的话)。而实体储存装置阵列14包含有多个实体储存装置(Physical Storage Device,PSD),这些实体储存装置可为,举例而言,硬碟。储存虚拟化控制器13可用来加强效能及/或改进数据安全性(data availability),或是用来增加对主机11而言的单一逻辑媒体单元的储存容量。
资料卷(volume)是一种虚拟的逻辑储存单位。储存虚拟化控制器(SVC)13将实体储存装置阵列14储存虚拟化为一至数个逻辑储存装置,并呈现给主机11存取数据。主机11可以决定该一至数个逻辑储存装置要规划为几个资料卷(volume);每个资料卷(volume)都有自己的档案系统。一资料卷(volume)可能涵盖一至数个实体储存装置(PSD),或者其部份区域,或者只有一个实体储存装置(PSD)的部分区域。图1中为方便表示,假设一个资料卷(volume)的储存区域刚好涵盖一个实体储存装置(PSD);但是,本发明的其他实施例并不以此为限,如前所述,本发明中所称一个资料卷(volume)的范围可能是一个实体储存装置(PSD)的部分区域、或是涵盖一至数个实体储存装置(PSD),或者其部份区域。
电脑系统1在进行资料卷(volume)复制时,是将整个来源资料卷(sourcevolume)的全部内容完整地复制至目的资料卷(destination volume)。如以图1为例,可能是将资料卷A15a整体复制至资料卷B15b,或者是其他可能的实施例。此时,扮演数据提供者的资料卷A15a是来源资料卷(source volume),接受复制数据的资料卷B15b是目的资料卷(destination volume)。来源资料卷与目的资料卷的容量大小未必相同;但是,通常目的资料卷的容量需要大于或等于来源资料卷的容量,以容纳所有从来源资料卷复制而来的数据。
一个资料卷的容量可能是数个GB(Giga-bytes)至数百个GB(Giga-bytes),甚至是Tera-Bytes以上,要将这么多的数据由一个资料卷完整地复制(或称为“同步(sync)”或“镜射(mirroring)”)至另一个资料卷需要一些时间。完成复制之后,若没有下分离(split)指令,两资料卷间会维持“同步”的状态。在两资料卷间是“镜射”或“同步”关系期间,主机11仍随时可以对来源资料卷(sourcevolume)存取数据;再者,来源资料卷(source volume),或分离(split)后的目的资料卷(destination volume),也可以各自与其他资料卷建立任何一种资料卷复制的关系连结。为纪录以上资讯,请参阅图2A与图2B,依据本发明的一实施例,本发明设计每一资料卷产生时,即建立一本身专属的资料卷记录表(Volume Log Table,VLT)30用以纪录本身与其他所有资料卷间的同步状态资讯,以及建立一本身专属的资料卷区块更新表(Volume Block Update Table,VBUT)40用以纪录本身每一数据区块(block)的更新状态资讯。依据本发明的另一实施例,本发明设计每一资料卷,在与另一资料卷间形成一镜射对(mirroring pair)时,即建立一专属的资料卷记录表(Volume Log Table,VLT)30用以纪录两资料卷间的同步状态资讯,以及建立一专属的资料卷区块更新表(Volume Block Update Table,VBUT)40用以纪录本身每一数据区块(block)的更新状态资讯。
图2A仅绘示VLT30中一个项目(entry)所包含的栏位做为代表。实际上运作时,一个VLT30可能包含有一至多个VLT项目(VLT entry),每次该VLT30拥有者与其他资料卷间建立新关系或做状态改变时,即会产生一个新的VLT项目。一个VLT项目包含了4个栏位:第一栏位31纪录序号(SeqNum),第二栏位32纪录操作代码(OpCod),第三栏位33纪录与之产生关系的另一资料卷的身份(AltVolID),而第四栏位34的纪录内容有两种可能:一种是纪录与之产生关联的另一资料卷的VLT项目的序号(AltVolSN)、一种是纪录自己下一个要进行复制(synchronizing)的数据区块(block)的索引号(NxtSynBlk)。以上四个栏位的顺序只是本发明的一实施例,在其他实施例中,该四个栏位可以其他顺序排列;只要能完整记载以上四个栏位的资讯,即应视为在本发明的精神与范围中。该四个栏位的细节更进一步说明如下。
每一VLT项目建立之初,其第一栏位31的序号(SeqNum)是一初始设定值(initial setting value)。该初始设定值(initial setting value),若以来源资料卷(source volume)为例说明,可以为“0(null)”,表示拥有该VLT30的来源资料卷(source volume)与第三栏位33所纪录的目的资料卷(destination volume)之间还未分离(split)。之后若是进行分离作业,则该序号(SeqNum)的值便由一主要序号变数(MstSN,Master Sequence Number)指派。该主要序号变数,若以序号(SeqNum)的初始设定值(initial setting value)是“0(null)”的例子来说,是由“1”开始累加;亦即,第一个进入分离(split)状态的VLT项目的序号是“1”、第二个是“2”…其余以此类推。总而言之,只要VLT项目的第一栏位31的值不是“0”,即表示拥有该VLT30的来源资料卷(source volume)与第三栏位33所纪录的目的资料卷(destination volume)之间已经分离(split);反之,若是“0”代表还未分离(split)。
若是目的资料卷(destination volume),其VLT项目的第一栏位31的序号(SeqNum)的初始设定值(initial setting value),可以为“1”,表示第一个发生的同步复制(sync)事件;之后发生的同步复制(sync)事件所对应的VLT项目的序号,亦是由一主要序号变数(MstSN)指派,该主要序号变数(MstSN)可以由“2”开始累加。至于目的资料卷(destination volume)是否已经与来源资料卷(sourcevolume)分离,则是从其VLT项目的第二栏位32来判断,与第一栏位31的序号(SeqNum)无关。
当然在其他实施例中,来源资料卷(source volume)与目的资料卷(destination volume)的VLT项目的第一栏位31的序号(SeqNum)的初始设定值(initial setting value)亦可设为其他数字;再者,主要序号变数(MstSN)累加的偏移量(offset)也可以不是“1”。例如,初始设定值(initial setting value)可以设为“2”,而主要序号变数(MstSN)累加的偏移量(offset)可以设为“2”,则主要序号变数(MstSN)会以2、4、6…的方式指派给先后出现的VLT项目的第一栏位31的序号(SeqNum)。须注意的是:若来源资料卷(source volume)的VLT项目的第一栏位31的序号(SeqNum)的初始设定值(initial setting value)不是“0(null)”,则以序号(SeqNum)是否是初始设定值(initial setting value)来判断来源资料卷是否进入分离(split)状态。例如:初始设定值(initial setting value)设定为“1”时,序号(SeqNum)是“1”即表示来源资料卷(source volume)尚未与目的资料卷(destination volume)分离(split);而分离(split)之后的VLT项目的序号(SeqNum)则由初始设定值(initial setting value)加上一偏移量(offset),再指派给该VLT项目。
本发明定义三种VLT项目的第二栏位32的操作代码(OpCod),表示资料卷处于三种不同的状态,列举如下:
SYNSRC:表示该资料卷在两资料卷同步关系中扮演“来源资料卷(sourcevolume)”的角色;
SYNDST:表示该资料卷在两资料卷同步关系中扮演“目的资料卷(destination volume)”的角色;
SYNSPL:表示该目的资料卷(destination volume)已经从来源资料卷(sourcevolume)分离(spilt)出来。
以上三种操作代码(OpCod)亦会影响VLT30的第四栏位34的纪录内容。若是同一VLT项目的第二栏位32的操作代码是“SYNSRC”或“SYNSPL”,则第四栏位34纪录:与之产生关联的另一资料卷的VLT项目的序号(AltVolSN);若是同一VLT项目的第二栏位32的操作代码是“SYNDST”,则第四栏位34纪录:自己下一个要进行复制(synchronizing)的数据区块(block)的索引号(NxtSynBlk)。
值得注意的是,虽然前文以“SYNSRC”、“SYNDST”以及“SYNSPL”分别表示该资料卷当时的状态是“来源资料卷(source volume)”、“目的资料卷(destination volume)”或“已经分离(split)”;但本发明不以此为限,在其他实施例中可以用其他代号来表示该三种状态。
图2B仅绘示VBUT40中一个项目(entry)所包含的栏位作为代表。实际上运作时,一个VBUT40包含有多个VBUT项目(VBUT entry),每一VBUT项目代表其所属的资料卷的一个数据区块(block);也就是该资料卷有多少数据区块,其VBUT40就对应有多少VBUT项目。一个VBUT项目可以包含2个栏位:第一栏位41是保留栏位;第二栏位42纪录其对应的VLT项目的序号,表示该VBUT项目所对应的数据区块的数据是因该序号的VLT项目的事件而更新,藉此追踪该资料卷的每一数据区块的状态,例如:该数据区块是否已经同步(synchronize)、该数据区块是否在同步后又因主机11存取数据而产生改变。一个VBUT项目的数据长度可以是32bits,或是其他适当的长度。在其他实施例中,一个VBUT项目未必要包含两个栏位,若是需要更加精简,可以只包含一个第二栏位42即可。
本发明所提出的单一架构下实现“资料卷复制(volume copy)”与“资料卷镜像(volume mirror)”的复制方法,即是利用VLT30和VBUT40的互相操作应用而实现,其详细内容将在后文中描述。而应用本发明方法的装置是图1中的储存虚拟化控制器(SVC)13,其一实施例的架构示意图如图3所示。
储存虚拟化控制器13的主要目的是将实体储存装置(PSD)的各区段的组合映射(map)形成主机11可见的逻辑储存装置。由该主机11发出的输出入请求(Host IO)在控制器13接收之后会先被剖析并解译,且相关的操作及数据会被编译成实体储存装置(PSD)的输出入请求。
此实施例中,SVC13包含有一主机端输出入装置连结控制器(Host-side IODevice Interconnect Controller)131、一中央处理电路(Central Processing Circuit,CPC)132、一存储器133以及一装置端输出入装置连结控制器(Device-side IODevice Interconnect Controller)134。此处虽以分开的功能方块描述,但在实际应用时,部份甚至全部的功能方块(functional block)皆可整合在一单一晶片上。
主机端输出入装置连结控制器131连接至主机11及中央处理电路132,用来作为储存虚拟化控制器13及主机11之间的介面及缓冲,其可接收由主机11传来的输出入请求和相关数据,并且将其转换至中央处理电路132。
存储器133连接于中央处理电路132,其作为一缓冲器,用来缓冲传送于主机11及PSD阵列14之间通过中央处理电路132的数据。实际应用时,存储器133可以是DRAM(动态随机存取存储器Dynamic Random AccessMemory),该DRAM亦可为SDRAM(同步动态随机存取存储器SynchronousDynamic Random Access Memory)。
装置端输出入装置连结控制器134为介于中央处理电路132及PSD阵列14间,用来作为储存虚拟化控制器13及PSD阵列14间的介面及缓冲。装置端输出入装置连结控制器134接收由中央处理电路132传入的输出入请求及相关数据,并将其映射及/或传送至PSD阵列14。
中央处理电路132是储存虚拟化控制器13的运算核心。当中央处理电路132接收到来自主机端输出入装置连结控制器131的主机输出入请求时,中央处理电路132会将此输出入请求剖析,并且执行一些操作以回应此输出入请求,以及将所请求的数据及/或报告及/或资讯,由储存虚拟化控制器13经由主机端输出入装置连结控制器131传送至主机11。本发明的资料卷复制的方法可以程序编码的方式实现,且将该程序编码储存于中央处理电路132内部的存储器,例如:ROM(图中没有绘示)中,或是储存于中央处理电路132外部的存储器133中,以供中央处理电路132执行。
实行本发明的资料卷复制的方法有一些需要注意的原则,说明如下:
第一原则,任何正在进行同步复制作业(sync operation)的资料卷,皆不可被指派为另一同步复制作业的目的资料卷(destination volume)。换句话说,如果需要某一正参与同步复制作业的资料卷做为另一同步复制作业的目的资料卷,则需要先将正在进行的同步复制作业停止且将该资料卷分离出来,该资料卷才能做为另一同步复制作业的目的资料卷。
第二原则,一个正在进行同步复制作业且未分离(unsplit)的目的资料卷(destination volume),不能单独呈现出来让主机(host)存取数据;只有来源资料卷(source volume)可以做为主机存取的标的。因为这样的特性,如果目的资料卷暂时下线(off line),它可以再回到线上并以原来的同步组态(syncconfiguration)让同步复制作业继续进行。同样的理由,因为目的资料卷(destination volume)不能做为主机的输出入要求的单独标的,所以它也不可以做为任何其他同步复制作业的来源资料卷(source volume),除非它已经分离(split)。
第三原则,在一同步复制作业进行期间且在来源资料卷(source volume)与目的资料卷(destination volume)分离之前,若是有“再同步(Resync)”作业启动实施于该两资料卷,该两资料卷必须立即经由下列步骤分离(split):设定来源资料卷(source volume)的VLT项目的序号为最新的(up-to-date)序号,且增加一个“SYNSPL项目”到目的资料卷(destination volume)的VLT中。之后,再同步(Resync)作业即可启动实施。
第四原则,在一同步复制作业进行期间且在两资料卷分离之前,若是目的资料卷(destination volume)下线(off line),且此时来源资料卷(source volume)因主机的输出入要求而做了数据更新,且更新的区块已经同步复制(sync)过了,则该两资料卷必须立即经由下列步骤分离(split):设定来源资料卷(sourcevolume)的VLT项目的序号为最新的(up-to-date)序号。当目的资料卷(destinationvolume)回到线上,来源资料卷(source volume)的VLT项目的序号栏位31会被检查。如果该栏位31不是初始设定值(initial setting value),例如:0(null),则目的资料卷(destination volume)会经由下列方式被登记为已经分离(split):增加一个“SYNSPL项目”到目的资料卷(destination volume)的VLT中。之后,可以再启动同步复制作业以再同步(Resync)两资料卷的数据。
第五原则,在一同步复制作业进行期间且两资料卷已经分离,假如来源资料卷(source volume)做了数据更新但是却无法先将更新区块的原始数据复制至目的资料卷(destination volume),则会有一个“错误位元(error bit)”设立在最近的“SYNSRC entry”上。在这种情况下,如果目前的同步复制作业尚未结束,任何尝试进行再同步(Resync)作业的动作皆会被禁止,直到目前的同步复制作业结束。上述将错误位元(error bit)设立在来源资料卷(source volume)的VLT entry上只是本发明的一实施例,在其他实施例中,错误位元(error bit)亦可以设立在目的资料卷(destination volume)的VLT项目上,或者另外将错误位元(error bit)独立储存在另一纪录表中。
在说明实行本发明方法的详细流程前,先将一些使用代号的定义说明如下:
DstMstSN—目的资料卷的主要序号(Master Sequence Number)变数;
SrcMstSN—来源资料卷的主要序号(Master Sequence Number)变数;
DstVBUT—对应于目的资料卷中正进行处理的数据区块的VBUT项目;
SrcVBUT—对应于来源资料卷中正进行处理的数据区块的VBUT项目;
DstVLT—目的资料卷中目前正进行的VLT项目;
SrcVLT—来源资料卷中目前正进行的VLT项目。
请参阅图4A至图4C所示,是描绘本发明中同步复制(sync)来源资料卷至目的资料卷的一实施例的流程图,其中来源资料卷与目的资料卷之间没有分离(split),两资料卷间维持着同步(sync)或镜像(mirror)的关系。以下流程的描述请同时参阅图2A与图2B。图4A的程序一开始时,先确认是否是初始的同步复制作业(步骤201)。若是,则先初始化目的资料卷的VBUT40(步骤202)以及初始化目的资料卷的DstMstSN变数(步骤203)。初始化的方式是设定VBUT40中每一项目与DstMstSN变数各自等于一初始设定值,该初始设定值,在一实施例中可以是“0(null)”,或者在其他实施例中,可以是其他的初始设定值。
若步骤201判断的结果不是初始的同步复制作业、或是步骤202与步骤203结束后,则进入步骤204:在来源资料卷的VLT30中分派项目(SrcVLT)且适当地初始化其栏位,包括设定第二栏位32的操作代码为“SYNSRC”、设定第一栏位31的序号为一初始设定值,例如:“0(Null)”。除此之外,更将此序号的初始设定值指派给一第一变数;在此实施例中称为“SRCCURSPL”变数。接下来进入步骤205:在目的资料卷的VLT30中分派项目(DstVLT)且适当地初始化其栏位,包括设定第二栏位32的操作代码为“SYNDST”。然后进入步骤206:将DstMstSN变数值增加1个单位,且复制至DstVLT的第一栏位31(表示为DstVLT.SeqNum)以及SrcVLT的第四栏位34(表示为SrcVLT.AltVolSN)。除此之外,更将该DstMstSN的现行变数值指派给一第二变数,在此实施例中称为“DSTCURSYN”变数。然后进入步骤207:设定DstVLT的第四栏位34(表示为DstVLT.NxtSynBlk)为Block index0(Blockindex为0的区块)。
以上的步骤皆完成后,接下来会有两个程序并行处理:步骤208所表示的“Background Copy of Source to Destination”程序(其详细流程描述于图6)以及由节点A211进入后因出现主机输出入要求(Host IO)而启动的程序(描述其详细流程的图4B与图4C将在后文中说明)。
步骤208所呼叫的“Background Copy of Source to Destination”程序主要是在背景执行将来源资料卷的数据复制至目的资料卷的作业。在此作业进行期间,会有一判断条件不停地询问:是否所有的数据复制皆已完成(步骤209)?若是,则所有的流程结束;否则,继续进行“Background Copy of Source toDestination”程序。“Background Copy of Source to Destination”程序的详细内容将在图6中介绍。
如前文所提及的,要将一个容量庞大的来源资料卷完整地复制至目的资料卷是需要一段作业时间。在此作业时间,主机11仍然会如往常一般随时对来源资料卷存取数据。请注意,由于此时目的资料卷间尚未与来源资料卷分离(split),根据前文所述的第二原则:一个正在进行同步复制作业且未分离(unsplit)的目的资料卷,不能单独呈现出来让主机(host)存取数据。因此,在此流程中只有来源资料卷可以做为主机11存取的标的。
请参阅图4B,由节点A211进入本流程后,首先在步骤212询问:是否有任何Host IO要对来源资料卷存取数据?若否,则停留在步骤212的询问状态;若是,则进入步骤213:解析该Host IO并分解为1至多个逻辑碟(LogicalDrive,LD)输出入要求(LD IO),每一LD IO皆对应到来源资料卷中一个欲存取的数据区块(block)。接下来的流程分为两个方向:一是回到步骤212继续判断是否有其他Host IO要对来源资料卷存取数据;另一是根据该一至多个LDIO同时并行执行图4C的流程(步骤214)。也就是说如果有n个LD IO要对来源资料卷中n个数据区块(block)进行存取,则就会引发n个图4C的流程(步骤s214-1…214-n)同时执行。其中任何一个LD IO所对应的流程执行完毕,便进入步骤215判断是否所有并行处理的流程(步骤s214-1…214-n)都完成了。若否,则停留在步骤215的询问状态;若是,则回报主机(Host)此Host IO已处理完毕(步骤216),然后回到步骤212继续判断是否有其他Host IO要对来源资料卷存取数据。
值得注意的是,在图4B中,只要一有Host IO出现要对来源资料卷存取数据,该Host IO便立即由步骤212进入流程处理,无论之前的Host IO是否已经处理完成。
请参阅图4C所示,是针对存取每一数据区块(block)的LD IO所做的处理程序,相当于图4B中一个步骤214的处理方块。首先判断该Host IO是否是对来源资料卷写入数据(步骤220)?若否,表示该Host IO是要读取数据,则直接由来源资料卷的相对应数据区块(source volume block)读取数据(步骤221),然后结束此流程,回到图4B进入步骤215进行判断。若步骤220的判断结果为“是”,则进一步判断目的资料卷是否是可存取的(步骤222)?若当时目的资料卷无法被存取,则设定“同步错误旗标(SyncErrorFlag)”为“真(TRUE)”(步骤223),然后只复制Host IO所欲写入的数据至来源资料卷的相对应数据区块(source volume block)(步骤230),然后结束此流程,回到图4B进入步骤215进行判断。若步骤222的判断结果为“是”,则呼叫“目的资料卷的资料卷区块更新表的一致性检查(Sync Process DstVBUT EntryConsistency Check)”程序并检查其传回值是否是“伪(FALSE)”(步骤224)?其中“目的资料卷的资料卷区块更新表的一致性检查(Sync Process DstVBUTEntry Consistency Check)”程序的详细流程描绘于图5,将在下文中说明。若步骤224的判断结果为“是”,则发出一失败信息(步骤225)。若步骤224的判断结果为“否”或步骤225执行之后,进一步判断该来源资料卷要被写入的区块的索引号码是否小于DstVLT.NxtSynBlk(目的资料卷的VLT项目的第四栏位34所记载的下一个要进行同步的数据区块的索引号(NxtSynBlk))(步骤226)?若步骤226的判断结果为“是”,表示将写入数据的来源资料卷的数据区块已经同步复制(sync)至目的资料卷的中,因此Host IO所欲写入的数据亦须复制至目的资料卷的相对应数据区块(步骤227),以保持两资料卷的数据处于同步状态。之后进一步判断DstVBUT.SeqNum是否等于DSTCURSYN(第二变数)的值(目的资料卷的VBUT项目的序号是否等于DSTCURSYN变数值)(步骤228)?若步骤228的判断结果为“否”,则令DstVBUT.SeqNum等于DSTCURSYN(第二变数)(步骤229),表示目的资料卷的相对应数据区块是在DSTCURSYN(第二变数)代表的事件中更新数据。若步骤228的判断结果为“是”或步骤229执行之后,执行步骤230:复制Host IO所欲写入的数据至来源资料卷的相对应数据区块(source volume block)。若步骤226的判断结果为“否”,亦执行步骤230:复制Host IO所欲写入的数据至来源资料卷的相对应数据区块(source volume block)。最后结束图4C的流程,回到图4B进入步骤215进行判断。
请参阅图5所示,为本发明中目的资料卷的资料卷区块更新表的一致性检查(Sync Process DstVBUT Entry Consistency Check)程序的一实施例的流程图。本程序为前文中图4C的步骤224所呼叫的程序,其主要有三个判断条件,只要有任一判断条件符合,本程序即回传一个“伪(FALSE)”信息(步骤305);相对的,如果三个判断条件皆不符合,则回传一个“真(TRUE)”信息(步骤304)。该三个判断条件的内容详述如下:
第一,判断DstVBUT.SeqNum是否大于DSTCURSYN(第二变数)的值(目的资料卷中正进行处理的VBUT entry的序号是否大于DSTCURSYN变数值)(步骤301)?由于本流程实施时,目的资料卷并未与来源资料卷分离,因此这种情况不应发生,所以当此条件符合时,本程序即回传一个“伪(FALSE)”信息(步骤305);否则,则继续测试下一个判断条件。
第二,判断DstVBUT.SeqNum是否等于DSTCURSYN(第二变数)的值(目的资料卷中正进行处理的VBUT entry的序号是否等于DSTCURSYN变数值)并且DstVLT.NxtSynBlk(目的资料卷中目前正进行的VLT entry的第四栏位34所记载的“下一个要进行同步复制的数据区块的索引号(NxtSynBlk)”)是否小于或等于正在进行数据修改的区块的索引值(步骤302)?由于第二个判断条件中的两个判断式是互相矛盾的,因此当第二个判断条件符合时,本程序即回传一个“伪(FALSE)”信息(步骤305);否则,则继续测试下一个判断条件。
第三,判断DstVLT.NxtSynBlk(目的资料卷中目前正进行的VLT项目的第四栏位34所记载的“下一个要进行同步复制的数据区块的索引号(NxtSynBlk)”)是否大于正在进行数据修改的区块的索引值(表示该数据区块已经同步复制过了)并且“Check Volume Block In-Sync”程序是否回传一“伪(FALSE)”值(步骤303)?其中“Check Volume Block In-Sync”程序的详细流程描绘于图8,将在下文中说明。由于目的资料卷中所有已经同步复制过的数据区块都应该保持当时的状态直到目的资料卷从来源资料卷分离,因此当第三个判断条件符合时,本程序即回传一个“伪(FALSE)”信息(步骤305);否则,则回传一个“真(TRUE)”信息(步骤304)。
请参阅图8所示,为本发明中检查资料卷区块是否已在同步状态(CheckVolume Block In-Sync)程序的一实施例的流程图;本程序为前文图5的步骤303所呼叫的程序,亦为后文中其他程序所呼叫。本程序主要有五个判断条件,只要有任一判断条件符合,本程序即回传一个“伪(FALSE)”信息(步骤607);相对的,如果五个判断条件皆不符合,则回传一个“真(TRUE)”信息(步骤606)。该五个判断条件的内容详述如下:
第一,DstVBUT.SeqNum(目的资料卷中正进行处理的VBUT项目的序号)是否是初始设定值(initial setting value),例如:“0(NULL)”(步骤601)?如果判断结果为“是”,表示该数据区块还在初始化操作的阶段,当然不会“已在同步(In-Sync)状态”,因此回传一个“伪(FALSE)”信息;否则,则继续测试下一个判断条件。
第二,DstVBUT.SeqNum(目的资料卷中正进行处理的VBUT项目的序号)所对应的目的资料卷的VLT项目是否找不到,或者虽有找到但是读不到或两者数据不一致(步骤602)?如果判断结果为“是”则回传一个“伪(FALSE)”信息(步骤607);否则,则继续测试下一个判断条件。
第三,DstVLT.OpCod(目的资料卷中目前正进行的VLT项目的第二栏位32所记载的“操作代码(OpCod)”)不是“SYNDST”,或者DstVLT.AltVolID(目的资料卷中目前正进行的VLT项目的第三栏位33所记载的“另一产生关联的资料卷的身份(AltVolID)”)不是其对应的来源资料卷的ID代码(步骤603)?如果以上判断结果为“是”,则回传一个“伪(FALSE)”信息(步骤607);否则,则继续测试下一个判断条件。
第四,与DstVBUT.SeqNum(目的资料卷中正进行处理的VBUT项目的序号)相同的SrcVLT.AltVolSN(来源资料卷的VLT项目的第四栏位34所记载的目的资料卷的VLT项目的序号(AltVolSN))的来源资料卷的VLT项目,是否找不到,或者虽有找到但是读不到或记载的数据不一致(步骤604)?如果以上判断结果为“是”,则回传一个“伪(FALSE)”信息(步骤607);否则,则继续测试下一个判断条件。
第五,SrcVBUT.SeqNum(来源资料卷中正进行处理的VBUT项目的序号)是否大于或等于SrcVLT.SeqNum(来源资料卷中目前正进行的VLT项目的第一栏位31所记载的序号(SeqNum))(步骤605)?如果以上判断结果为“是”,表示该来源资料卷的数据区块的数据在同步复制至目的资料卷后又再被更改,因此回传一个“伪(FALSE)”信息(步骤607);否则,则回传一个“真(TRUE)”信息(步骤606)。
请参阅图6所示,为本发明中背景复制来源资料卷至目的资料卷(Background Copy of Source to Destination Volume)程序的一实施例的流程图;本程序为前文图4A的步骤208所呼叫的程序,亦为后文中其他程序所呼叫。对于目的资料卷的VBUT项目所代表的每一数据区块(步骤401),呼叫并执行“检查/复制来源资料卷的区块数据至目的资料卷(Check/Copy Block fromSource to Destination)”程序(步骤402),该程序的详细流程描绘于图7,将在下文中说明。步骤402的程序执行完后,判断是否还有其他数据区块尚未进行同步复制(sync)(步骤403)?如果以上判断结果为“是”,则将DstVLT.NxtSynBlk(目的资料卷中目前正进行的VLT项目的第四栏位34所记载的“下一个要进行同步复制的数据区块的索引号(NxtSynBlk)”)的区块号码增加1个单位(步骤404),然后回到步骤401针对下一个数据区块再进行一次步骤s402-403的流程。如果步骤403的判断结果为“否”,则设定DstVLT.NxtSynBlk(目的资料卷中目前正进行的VLT项目的第四栏位34所记载的“下一个要进行同步复制的数据区块的索引号(NxtSynBlk)”)的值为“-1”(步骤405),表示所有数据区块的同步复制皆已完成,然后结束此程序。请注意,以上将DstVLT.NxtSynBlk的值设为“-1”表示同步复制完成,只是本发明的一实施例;在其他实施例中,任何以其他适当的数字达到同样效果的表达方式都应视为不脱离本发明的精神,例如:设定DstVLT.NxtSynBlk的值为“-2”。
请参阅图7所示,为本发明中检查/复制来源资料卷的区块数据至目的资料卷(Check/Copy Block from Source to Destination Volume)的一实施例的流程图;本程序为图6的步骤402所呼叫的程序。首先判断DstVBUT.SeqNum(目的资料卷中正进行处理的VBUT项目的序号)是否小于DSTCURSYN(第二变数)的变数值(步骤501)?如果以上判断结果为“是”,则再进一步判断目的资料卷是否已经与来源资料卷分离并且SrcVBUT.SeqNum(来源资料卷中相对应的VBUT项目的序号)是否大于或等于SRCCURSPL(第一变数)的值(步骤502)?如果以上判断结果为“是”,表示该来源资料卷的数据区块有被修改过且其修改前的原始数据没有先复制至目的资料卷,造成目的资料卷的该相对应区块的数据与来源资料卷不同步,因此标示该目的资料卷的该相对应区块的VBUT项目为“DATA INVALID(数据无效)”(步骤503),然后结束此程序。如果步骤502的判断结果为“否”,呼叫“Check Volume Block In-Sync”程序(其详细流程描绘于图8且已在前文中说明)并判断其传回值是否为“伪(FALSE)”(步骤504)?如果以上判断结果为“是”,表示该来源资料卷和目的资料卷的相对应数据区块还未同步,因此将来源资料卷的区块数据复制至目的资料卷(步骤505),然后设定DstVBUT.SeqNum(目的资料卷中正进行处理的VBUT项目的序号)等于DSTCURSYN(第二变数)的变数值(步骤506),最后结束此程序。若是步骤504的判断结果为“否”,表示该来源资料卷和目的资料卷的相对应数据区块已经同步复制过了,因此不做任何处理,直接结束此程序。
回到步骤501,如果其判断结果为“否”,则再进一步判断目的资料卷是否已经与来源资料卷分离(步骤507)?如果以上判断结果为“是”,则跳过该数据区块(步骤508),然后结束此程序;如果步骤507的判断结果为“否”,则发出一失败信息(步骤509),然后结束此程序。
请参阅图9A至图9D所示,描绘本发明中同步复制(sync)来源资料卷至目的资料卷的另一实施例的流程图,其中来源资料卷与目的资料卷已经分离(split),此分离(split)的时间点可能在同步复制(sync)的过程中、完成的时或完成之后。图9A至图9D的流程可以接续在图4A的步骤s201-207之后,表示来源资料卷与目的资料卷在进行同步复制(sync)的过程或之后的某一时间点发生了分离(split)事件。以下流程的描述请同时参阅图2A与图2B。首先将SrcMstSN的序号值增加1个单位且复制至SrcVLT的第一栏位31(SrcVLT.SeqNum);除此之外,更将此SrcMstSN序号的现行值再指派给前述的第一变数(SRCCURSPL)(步骤701)。接下来在目的资料卷的VLT30中分派项目(DstVLT)且适当地初始化其栏位,包括设定第二栏位32的操作代码为“SYNSPL”(步骤702)。然后将DstMstSN变数值增加1个单位且复制至DstVLT的第一栏位31(DstVLT.SeqNum);除此之外,更将此DstMstSN的序号现行值指派给一第三变数(在此实施例中称为“DSTCURSPL”变数)(步骤703)。请注意,DstMstSN的变数值在进入此步骤增加1个单位前,已在前述图4A的步骤206指派给第二变数(DSTCURSYN),因此第三变数(DSTCURSPL)与第二变数(DSTCURSYN)的值理论上相差1个单位。以上的步骤皆完成后,接下来会有两个程序并行处理:步骤705所表示的“BackgroundCopy of Source to Destination”程序(其详细流程描述于图6且已在前文中说明)、以及由节点B706进入后因出现主机输出入要求(Host IO)而启动的程序(描述其详细流程的图9B至图9D将在后文中说明)。
步骤705所呼叫的“Background Copy of Source to Destination”程序主要是在背景执行将来源资料卷的数据复制至目的资料卷的作业。在此作业进行期间,会持续进行步骤704的判断:是否来源资料卷至目的资料卷的同步作业皆已全部完成?若以上判断结果为“是”,则背景复制(background copy)的流程结束;否则,持续进行“Background Copy of Source to Destination”程序(步骤705),直到步骤704的判断结果为“是”而结束背景复制的流程。
请参阅图9B所示,由节点B706进入本流程后,首先在步骤707询问:是否有任何Host IO要对来源资料卷(source volume)或目的资料卷(destinationvolume)存取数据?请注意:由于本流程中目的资料卷已经与来源资料卷分离,因此该两资料卷皆可独立地做为Host IO数据存取的对象。若步骤707的判断结果为“否”,则停留在步骤707的询问状态;若步骤707的判断结果为“是”,则进入步骤708:解析该Host IO并分解为1至多个逻辑碟(Logical Drive,LD)输出入要求(LD IO),每一LD IO皆对应到来源资料卷或目的资料卷中一个欲存取的数据区块(block)。接下来的流程分为两个方向:一是回到步骤707继续判断是否有其他Host IO要对来源资料卷或目的资料卷存取数据;另一是根据该一至多个LD IO同时并行执行图9C与图9D的流程(步骤709);也就是说如果有n个LD IO要对来源资料卷或目的资料卷中n个数据区块(block)进行存取,则就会引发n个图9C与图9D的流程(步骤709-1…709-n)同时执行。其中任何一个LD IO所对应的流程执行完毕,便进入步骤711判断是否所有并行处理的流程(步骤s709-1…709-n)都完成了。若否,则回到节点D710,停留在步骤711的询问状态;若是,则回报主机(Host)此Host IO已处理完毕(步骤712),然后回到步骤707继续判断是否有其他Host IO要对来源资料卷或目的资料卷存取数据。
值得注意的是,在图9B中,只要一有Host IO出现要对来源资料卷或目的资料卷存取数据,该Host IO便立即由步骤707进入流程处理,无论之前的Host IO是否已经处理完成。
请参阅图9C与图9D,针对存取每一数据区块(block)的LD IO所做的处理程序,相当于图9B中一个步骤709的处理方块。首先由图9C的步骤720判断该Host IO是否是对来源资料卷或目的资料卷写入数据?若否,表示该Host IO是要读取数据,则由节点C732进入图9D进行读取数据的相关流程;图9D的相关流程细节将在后文中说明。若步骤720的判断结果为“是”,表示该Host IO是要写入数据,则进一步判断目的资料卷是否是可存取的(步骤721)?若当时目的资料卷无法被存取,则设定“同步错误旗标(SyncErrorFlag)”为“真(TRUE)”(步骤726)。之后判断该Host IO是否是针对来源资料卷写入数据(步骤727)?若以上判断结果为“是”,则将Host IO所欲写入的数据复制至来源资料卷的相对应数据区块(步骤728)。回到步骤721,若其判断结果为“是”,表示当时的目的资料卷是可以存取的,之后进一步判断该Host IO是否是针对来源资料卷写入数据(步骤722)?若以上的判断结果为“是”,则呼叫并执行“Check/Copy Block from Source to Destination”程序(步骤723),以检查并决定是否需要先将来源资料卷的该处理数据区块的原始数据先行复制至目的资料卷的相对应数据区块。“Check/Copy Block from Source toDestination”程序的详细流程描述于图7且已在前文中说明。若步骤722的判断结果为“否”,则进一步判断该Host IO是否是针对目的资料卷写入数据且只有数据区块的部份需要被修改(步骤724)?若其判断结果为“是”,也是进入步骤723;若步骤724的判断结果为“否”或步骤723执行之后,则将HostIO所欲写入的数据复制至其所欲写入的来源资料卷或目的资料卷的相对应数据区块(步骤725)。在步骤725与步骤728之后,进一步判断该Host IO是否是针对来源资料卷写入数据(步骤729)?若以上判断结果为“否”,则将第三变数(DSTCURSPL)的值指派给DstVBUT.SeqNum(步骤730),表示目的资料卷的相对应数据区块是在DSTCURSPL代表的事件中更新数据。若步骤729的判断结果为“是”,则将第一变数(SRCCURSPL)(步骤731)的值指派给SrcVBUT.SeqNum,表示来源资料卷的相对应数据区块是在SRCCURSPL代表的事件中更新数据。最后结束图9C的流程,由节点D710回到图9B,然后进入步骤711进行判断。
若是步骤720的判断结果为“否”,则由节点C732进入图9D进行读取数据的相关流程。首先判断该Host IO是否是针对目的资料卷读取数据(步骤733)?若以上判断结果为“是”,则进一步判断要被读取数据的数据区块所对应的VBUT项目是否被标示为“DATA INVALID(数据无效)”(步骤734)?若以上判断结果为“是”,则回复一错误(error)信息(步骤736),然后结束图9D的流程,由节点D710回到图9B。若步骤734的判断结果为“否”,则进一步判断:目的资料卷的同步错误旗标(SyncErrorFlag)是否曾被设立起来、并且DstVBUT.SeqNum(目的资料卷中正进行处理的VBUT项目的序号)是否小于前述第二变数(DSTCURSYN)的变数值、并且SrcVBUT.SeqNum(来源资料卷中正进行处理的VBUT项目的序号)是否大于或等于第一变数(SRCCURSPL)的变数值(步骤735)?若以上判断结果为“是”,则标示该要被读取数据的数据区块所对应的VBUT项目为“DATA INVALID(数据无效)”(步骤737),然后回复一错误(error)信息(步骤736),并结束此流程,由节点D710回到图9B。若步骤735的判断结果为“否”,则判断该Host IO是否是针对来源资料卷读取数据(步骤738)?若以上判断结果为“是”,则由来源资料卷的数据区块读取数据(步骤740),然后结束此流程,由节点D710回到图9B。若步骤738的判断结果为“否”,则进一步判断:该Host IO是否是针对目的资料卷读取数据、并且DstVBUT.SeqNum(目的资料卷中正进行处理的VBUT项目的序号)是否小于前述第二变数(DSTCURSYN)的变数值(步骤739)?若以上判断结果为“是”,表示该欲读取的数据区块的数据尚未与来源资料卷的相对应数据区块同步,因此转由来源资料卷的相对应数据区块读取数据(步骤740)。若739的判断结果为“否”,则没有以上疑虑,直接由目的资料卷的数据区块读取数据(步骤741),然后结束此流程,由节点D710回到图9B。
以下举一实际范例,说明在本发明中资料卷如何藉由管理其资料卷记录表(VLT)与资料卷区块更新表(VBUT)而达成在单一架构下实现“资料卷复制(volume copy)”与“资料卷镜像(volume mirror)”等多种不同的同步复制方式。
请参阅图10A与图11A,分别是资料卷A(VolA)在时间点T的VLT与VBUT的示意图。观察图10A,由其第二栏位32与第三栏位33可以知道:在时间点T时,资料卷A(VolA)分别是资料卷B、C、E(VolB、VolC、VolE)的来源资料卷;再由第一栏位31的序号可知:资料卷A(VolA)已经与资料卷B、C(VolB、VolC)分离(因为其序号不为“0”),但是没有与资料卷E(VolE)分离(因为其序号为“0”);再由第四栏位34可知:资料卷A(VolA)在资料卷B、C、E(VolB、VolC、VolE)的VLT中对应的序号都是“1”。再观察图11A,图中的最上一行(row)与最左一列(colume)是以十六进位表示每个VBUT entry的索引号码;以下图11B至图11D与图13A至图13D也是同样的表达方式。图11A中,请同时参阅图10A,VBUT项目中储存的序号为“1”者(例如:VBUT项目的索引号为0x01、0x12、0x25、0x3A者)表示:其所对应的数据区块(block)是在资料卷A(VolA)与资料卷B(VolB)分离后因Host IO的存取而有数据变动的数据区块。同理,图11A中,VBUT项目中储存的序号为“2”者(例如:VBUT项目的索引号为0x04、0x16、0x28、0x2E、0x31者)表示:其所对应的数据区块(block)是在资料卷A(VolA)与资料卷C(VolC)分离后因Host IO的存取而有数据变动的数据区块。其他VBUT项目中储存的序号为“0”者表示:资料卷A(VolA)自第一次分离作业后至时间点T为止都没有数据变动的数据区块所对应的VBUT项目。说明:前文及后文中的“0x”皆是代表十六进位。
请参阅图10B与图11B,分别是资料卷B(VolB)在时间点T的VLT与VBUT的示意图。由图10B可以知道:在时间点T时,资料卷B(VolB)是资料卷A(VolA)的目的资料卷且已经分离;同时,资料卷B(VolB)又是资料卷D(VolE)的来源资料卷,但还未分离。图10B的第一个VLT entry的第四栏位34所显示的“-1”代表:资料卷B(VolB)与资料卷A(VolA)已经同步复制完成;而第二个VLT项目的第二栏位32所显示的“SYNSPL”操作代码(OpCod)代表:资料卷B(VolB)与资料卷A(VolA)已经分离。若一资料卷是扮演目的资料卷的角色,则其第二栏位32所储存的操作代码(OpCod)常是“SYNDST”与“SYNSPL”成对出现。再观察图11B,请同时参阅图10B,VBUT项目中储存的序号为“1”者表示:其所对应的数据区块(block)是在资料卷B(VolB)与资料卷A(VolA)建立同步复制的关系后,已经同步过的数据区块。又,VBUT项目中储存的序号为“2”者表示:其所对应的数据区块(block)是在资料卷B(VolB)与资料卷A(VolA)分离后因Host IO的存取而有数据变动的数据区块。
请参阅图10C与图11C,分别是资料卷C(VolC)在时间点T的VLT与VBUT的示意图。由图10C可以知道:在时间点T时,资料卷C(VolC)是资料卷A(VolA)的目的资料卷且两者已经分离,但还未同步复制完成。图10C的第一个VLT项目的第四栏位34所显示的“C”是“NxtSynBlk”之意,代表:资料卷C(VolC)下一个要进行同步复制的数据区块(block)的索引号是“0x0C”;因为此栏位所储存的值不是“-1”,由此可知资料卷C(VolC)还未从资料卷A(VolA)同步复制完成。而第二个VLT项目的第四栏位34所显示的“2”是“AltVolSN”之意,代表:资料卷C(VolC)已经与资料卷A(VolA)分离,且对应于资料卷A(VolA)的VLT项目的序号为“2”。再观察图11C,请同时参阅图10C,VBUT项目中储存的序号为“1”者表示:其所对应的数据区块(block)是在资料卷C(VolC)与资料卷A(VolA)建立同步复制的关系后,已经同步过的数据区块。又,VBUT项目中储存的序号为“2”者表示:其所对应的数据区块(block)是在资料卷C(VolC)与资料卷A(VolA)分离后因Host IO的存取而有数据变动的数据区块。由于初始化程序后赋予每个VBUT项目的序号的初始值为“0”,且时间T时资料卷C(VolC)只扮演是资料卷A(VolA)的目的资料卷的角色,因此VBUT entry中其他序号为“0”者表示:资料卷C(VolC)中还未同步复制或者没有因为Host IO而有数据改变的数据区块。
请参阅图10D与图11D,分别是资料卷D(VolD)在时间点T的VLT与VBUT的示意图。图10D显示只有一个VLT项目,表示:资料卷D(VolD)是资料卷B(VolB)的目的资料卷,两者尚未分离,且下一个要进行同步复制的数据区块(block)的索引号是“0x19”。参阅图11D,可以明显看出:在索引号为“0x19”之前的VBUT项目的序号都是“1”,其后的都是“0”,表示资料卷D(VolD)很单纯地在进行从资料卷B(VolB)同步复制数据的作业。因为资料卷D(VolD)尚未与资料卷B(VolB)分离,因此Host看不到资料卷D(VolD),也不会有Host IO要求对资料卷D(VolD)存取数据。
请参阅图10E,为资料卷E(VolE)在时间点T的VLT示意图。图中显示只有一个VLT项目,表示:资料卷E(VolE)是资料卷A(VolA)的目的资料卷,两者尚未分离,且下一个要进行同步复制的数据区块(block)的索引号是“0x####”。
整理图10A至图10E所表达的资讯可知,在时间点T时,资料卷A(VolA)分别是资料卷B、C、E(VolB、VolC、VolE)的来源资料卷,资料卷B是资料卷D(VolD)的来源资料卷,且:
一,资料卷B(VolB)与资料卷A(VolA)之间已经分离,且已经同步复制完成;
二,资料卷C(VolC)与资料卷A(VolA)之间已经分离,但还未同步复制完成;
三,资料卷D(VolD)与资料卷B(VolB)之间尚未分离,亦未同步复制完成;
四,资料卷E(VolE)与资料卷A(VolA)之间尚未分离,亦未同步复制完成。
经过一段时间t后,也就是在时间点T+t时,资料卷A、B、C、D、E(VolA、VolB、VolC、VolD、VolE)的VLT如图12A至图12E所示,资料卷A、B、C、D(VolA、VolB、VolC、VolD)的VBUT如第图13A至图13D所示。以上各图与图10A至图10E以及图11A至图11D一样,都是依据前文所述的原则与方法记载资讯。各图的详细内容可以依照图10A至图10E以及图11A至图11D的描述,以此类推予以解读,因此本文中不再多做赘述。总结来说,图12A至图12E以及图13A至图13D表示:
一,资料卷A(VolA)与资料卷B(VolB)之间启动“再同步(Resync)”作业,且两资料卷间尚未分离,亦未同步复制完成;
二,资料卷D(VolD)与资料卷B(VolB)之间已经分离,且已经同步复制完成;
三,资料卷C(VolC)与资料卷A(VolA)之间仍然在“已经分离但未同步复制完成”的状态,不过其“NxtSynBlK”已由“0x0C”推进至“0x27”;
四,资料卷E(VolE)与资料卷A(VolA)之间仍然在“尚未分离亦未同步复制完成”的状态。
由以上说明可知,本发明提出每一资料卷皆有其专属的“资料卷记录表(VLT)”与“资料卷区块更新表(VBUT)”,利用VLT与VBUT之间的交互操作应用,可以在单一架构下实现”资料卷复制(volume copy)”与”资料卷镜像(volume mirror)”等多种复制方式。并且,每一资料卷(volume),无论跟多少数量的其他资料卷间建立何种同步复制(sync)的关系,都只需管理一个专属的VLT与一个专属的VBUT。因此,本发明提出的技术有简化同步复制架构与减少表格管理的好处,可以使储存系统的运作更具效率。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (4)

1.一种磁碟阵列控制器,可应用于进行一实体储存装置阵列中多个资料卷间的数据复制,其特征在于其包含:
一存储器,用来缓冲传送于一主机及该实体储存装置阵列之间通过该磁碟阵列控制器的数据;以及
一中央处理电路,利用所述多个资料卷各自专属的一资料卷记录表与一资料卷区块更新表进行数据复制作业;
其中,该资料卷记录表的一项目具有一第一栏位,用于纪录一序号的、一第二栏位,用于纪录一操作代码、一第三栏位,用于纪录与之产生关系的一另一资料卷身份、以及一第四栏位,用于纪录与之产生关联的该另一资料卷的该资料卷记录表的该项目的序号或者纪录本身下一个要进行复制的数据区块的一索引号;以及
其中,该资料卷区块更新表的一项目纪录一数据区块的更新状态资讯。
2.一种进行资料卷复制的方法,其特征在于其包含以下步骤:
形成一第一镜射对,该第一镜射对由一第一资料卷与一第二资料卷所组成;
管理该第一资料卷的一资料卷记录表与一资料卷区块更新表,其中,该资料卷记录表用于纪录该第一资料卷与该第二资料卷形成一镜射对后的同步状态资讯,该资料卷区块更新表用于纪录该第一资料卷的每一数据区块的更新状态资讯;
形成一第二镜射对,该第二镜射对由该第一资料卷与一第三资料卷所组成;以及
管理该第一资料卷的该资料卷记录表与该资料卷区块更新表,其中,该资料卷记录表用于纪录该第一资料卷与该第三资料卷形成一镜射对后的同步状态资讯,该资料卷区块更新表用于纪录该第一资料卷的每一数据区块的更新状态资讯。
3.根据权利要求2所述的进行资料卷复制的方法,其特征在于其中所述的第一镜射对中的该第一资料卷与该第二资料卷间进行资料卷复制或资料卷镜像两种复制作业的其中之一。
4.根据权利要求2所述的进行资料卷复制的方法,其特征在于其中所述的第二镜射对中的该第一资料卷与该第三资料卷间进行资料卷复制或资料卷镜像两种复制作业的其中之一。
CN201310195798.5A 2009-01-23 2010-01-22 单一架构下进行资料卷复制的方法及其装置 Active CN103336729B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14665409P 2009-01-23 2009-01-23
US61/146,654 2009-01-23
CN201010111122XA CN101826044B (zh) 2009-01-23 2010-01-22 单一架构下进行资料卷复制的方法及其装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201010111122XA Division CN101826044B (zh) 2009-01-23 2010-01-22 单一架构下进行资料卷复制的方法及其装置

Publications (2)

Publication Number Publication Date
CN103336729A true CN103336729A (zh) 2013-10-02
CN103336729B CN103336729B (zh) 2016-12-28

Family

ID=42199285

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310195798.5A Active CN103336729B (zh) 2009-01-23 2010-01-22 单一架构下进行资料卷复制的方法及其装置
CN201010111122XA Active CN101826044B (zh) 2009-01-23 2010-01-22 单一架构下进行资料卷复制的方法及其装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201010111122XA Active CN101826044B (zh) 2009-01-23 2010-01-22 单一架构下进行资料卷复制的方法及其装置

Country Status (5)

Country Link
US (2) US8645648B2 (zh)
EP (2) EP2211267B1 (zh)
CN (2) CN103336729B (zh)
AT (1) ATE549677T1 (zh)
TW (2) TWI526823B (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
US9971656B2 (en) 2010-12-13 2018-05-15 International Business Machines Corporation Instant data restoration
US8954446B2 (en) 2010-12-14 2015-02-10 Comm Vault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US9218374B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Collaborative restore in a networked storage system
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US20140250078A1 (en) * 2013-03-01 2014-09-04 Storagecraft Technology Corporation Multiphase deduplication
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9563518B2 (en) 2014-04-02 2017-02-07 Commvault Systems, Inc. Information management by a media agent in the absence of communications with a storage manager
CN104360953B (zh) * 2014-10-16 2018-01-23 华为技术有限公司 数据拷贝方法及装置
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US11068172B1 (en) * 2015-09-30 2021-07-20 EMC IP Holding Company LLC Optimizing parallel data replication spanning physical storage devices
US20170192868A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. User interface for identifying a location of a failed secondary storage device
US10417102B2 (en) 2016-09-30 2019-09-17 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic
US10509581B1 (en) * 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
US10282258B1 (en) 2017-11-30 2019-05-07 International Business Machines Corporation Device reservation state preservation in data mirroring
US10521147B2 (en) 2017-11-30 2019-12-31 International Business Machines Corporation Device reservation state synchronization in data mirroring
US10613946B2 (en) 2017-11-30 2020-04-07 International Business Machines Corporation Device reservation management for overcoming communication path disruptions
US10459655B1 (en) * 2018-04-30 2019-10-29 Amazon Technologies, Inc. Rapid volume backup generation from distributed replica
US11343314B1 (en) 2018-04-30 2022-05-24 Amazon Technologies, Inc. Stream-based logging for distributed storage systems
CN108762668B (zh) * 2018-05-07 2021-03-09 杭州宏杉科技股份有限公司 一种处理写入冲突的方法及装置
US11016696B2 (en) 2018-09-14 2021-05-25 Commvault Systems, Inc. Redundant distributed data storage system
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11200124B2 (en) 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11068364B2 (en) 2019-07-12 2021-07-20 Intelliflash By Ddn, Inc. Predictable synchronous data replication
CN110543460B (zh) * 2019-07-23 2024-03-26 华为技术有限公司 一种数据同步方法和装置
US20210173811A1 (en) 2019-12-04 2021-06-10 Commvault Systems, Inc. Optimizing the restoration of deduplicated data stored in multi-node replicated file systems
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
US11645175B2 (en) 2021-02-12 2023-05-09 Commvault Systems, Inc. Automatic failover of a storage manager

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375232A (en) * 1992-09-23 1994-12-20 International Business Machines Corporation Method and system for asynchronous pre-staging of backup copies in a data processing storage subsystem
US6742138B1 (en) * 2001-06-12 2004-05-25 Emc Corporation Data recovery method and apparatus
US20030177306A1 (en) 2002-03-14 2003-09-18 Cochran Robert Alan Track level snapshot
US6842138B1 (en) 2002-08-12 2005-01-11 The United States Of America As Represented By The Secretary Of The Navy Target designation system
JP4341897B2 (ja) * 2002-08-29 2009-10-14 株式会社日立製作所 記憶装置システム及びデータ複製方法
US6907507B1 (en) 2002-12-19 2005-06-14 Veritas Operating Corporation Tracking in-progress writes through use of multi-column bitmaps
US7302536B2 (en) 2003-06-17 2007-11-27 Hitachi, Ltd. Method and apparatus for managing replication volumes
JP4021823B2 (ja) * 2003-09-01 2007-12-12 株式会社日立製作所 リモートコピーシステム及びリモートコピーの方法
US7293044B2 (en) * 2004-04-09 2007-11-06 Microsoft Corporation Method and system for verifying integrity of storage
JP4488807B2 (ja) * 2004-06-25 2010-06-23 株式会社日立製作所 ボリューム提供システム及び方法
JP2007115293A (ja) * 2005-10-17 2007-05-10 Toshiba Corp 情報記憶媒体、プログラム、情報再生方法、情報再生装置、データ転送方法、及びデータ処理方法
EP1816563B1 (en) * 2006-01-26 2016-04-27 Infortrend Technology, Inc. Method of managing data snapshot images in a storage system
CN100464309C (zh) * 2006-07-07 2009-02-25 安辰电脑股份有限公司 大量复制资料的方法
JP4942418B2 (ja) * 2006-08-04 2012-05-30 株式会社日立製作所 計算機システム及びそのスナップショット作成方法
JP4972457B2 (ja) * 2007-05-11 2012-07-11 株式会社日立製作所 記憶制御装置、記憶制御装置の制御方法及び情報処理システム
US7818499B2 (en) * 2007-09-18 2010-10-19 Hitachi, Ltd. Methods and apparatuses for heat management in storage systems

Also Published As

Publication number Publication date
EP2211267B1 (en) 2012-03-14
TW201028844A (en) 2010-08-01
US20140115287A1 (en) 2014-04-24
US20100191927A1 (en) 2010-07-29
CN101826044A (zh) 2010-09-08
EP2434403B1 (en) 2013-07-10
EP2211267A2 (en) 2010-07-28
TWI451243B (zh) 2014-09-01
ATE549677T1 (de) 2012-03-15
US8645648B2 (en) 2014-02-04
TWI526823B (zh) 2016-03-21
US9483204B2 (en) 2016-11-01
EP2211267A3 (en) 2010-10-13
EP2434403A1 (en) 2012-03-28
CN103336729B (zh) 2016-12-28
TW201441809A (zh) 2014-11-01
CN101826044B (zh) 2013-06-26

Similar Documents

Publication Publication Date Title
CN101826044B (zh) 单一架构下进行资料卷复制的方法及其装置
TWI514249B (zh) 遠端非同步資料卷複製的方法及執行該方法的儲存系統
CA3121919C (en) System and method for augmenting database applications with blockchain technology
CN100383749C (zh) 远程复制方法及远程复制系统
CN100552611C (zh) 仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法
US20070113004A1 (en) Method of improving efficiency of capacity of volume used for copy function and apparatus thereof
KR20100070968A (ko) 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법
CN105138284B (zh) 虚拟机磁盘镜像同步操作优化的系统及方法
CN101387989A (zh) 构建基于分区管理的虚拟存储设备的计算机系统及方法
CN110489092B (zh) 一种数据库读写分离架构下读取数据延迟问题的解决方法
CN108536833A (zh) 一种分布式、面向大数据的数据库及其构建方法
CN102317921A (zh) 高可靠性计算机系统及其构成方法
CN110647425A (zh) 一种数据库恢复方法及装置
JP2011076572A (ja) ストレージシステム、ストレージ装置、ストレージ装置の記憶内容複製方法およびプログラム
CN102959499B (zh) 计算机系统、存储卷管理方法
US11151157B2 (en) Database management method
US10891205B1 (en) Geographically dispersed disaster restart multitenancy systems
US10803010B2 (en) Message affinity in geographically dispersed disaster restart systems
WO2015069225A1 (en) Method and apparatus for avoiding performance decrease in high availability configuration
CN103685350B (zh) 存储系统的同步方法及相关的设备
CN108959604A (zh) 维护数据库集群的方法、装置及计算机可读存储介质
CN115421972A (zh) 一种分布式数据库故障恢复的方法与系统
CN117271619A (zh) 数据库的序列处理系统、方法、装置以及计算机设备
CN117009355A (zh) 基于新旧系统的数据处理方法、装置及存储介质
CN112596948A (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