TWI451243B - 單一架構下進行資料卷複製的方法及其裝置 - Google Patents

單一架構下進行資料卷複製的方法及其裝置 Download PDF

Info

Publication number
TWI451243B
TWI451243B TW098146524A TW98146524A TWI451243B TW I451243 B TWI451243 B TW I451243B TW 098146524 A TW098146524 A TW 098146524A TW 98146524 A TW98146524 A TW 98146524A TW I451243 B TWI451243 B TW I451243B
Authority
TW
Taiwan
Prior art keywords
data volume
volume
data
destination
block
Prior art date
Application number
TW098146524A
Other languages
English (en)
Other versions
TW201028844A (en
Inventor
Gordon Schnapp Michael
Chinghua Fang
Original Assignee
Infortrend Technology 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 Technology Inc filed Critical Infortrend Technology Inc
Publication of TW201028844A publication Critical patent/TW201028844A/zh
Application granted granted Critical
Publication of TWI451243B publication Critical patent/TWI451243B/zh

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

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)對資料的正常存取;因此,若利用目的資料卷(destination volume)代替來源資料卷(source volume)進行上述操作,則可以在不影響來源資料卷(source volume)的績效下提供主機(host)資料存取的服務。
「資料卷拷貝(volume copy)」與「資料卷鏡像(volume mirror)」是業界常用的兩種資料卷複製方式。其中,資料卷拷貝(volume copy)是用於拷貝複製作業一開始之時間點(也是分離(split)指令下達時間點)的來源資料卷(source volume)的資料,通常只有一次性拷貝;資料卷鏡像(volume mirror)則是兩資料卷間要一直維持著資料同步的關係,也就是目的資料卷是來源資料卷的鏡像(mirror)。在習知技術中,資料卷拷貝(volume copy)與資料卷鏡像(volume mirror)是用不同的架構來實行此兩種資料複製方式。而且,在習知技術中,一鏡射對(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)」與「資料卷鏡像(volume mirror)」只是同一資料卷同步函數(single unified volume synchronization function)的操作選項(operational options)的話,如此一定可以有效地促進儲存系統的運作績效。
本發明之目的係在提供一種在單一架構下即可進行資料卷拷貝(volume copy)、資料卷鏡像(volume mirror)等多種不同方式之資料卷複製的方法及其裝置。
依據本發明之一特色,提出一種進行資料卷複製的方法,讓一目的資料卷與一來源資料卷的資料同步(sync),其包含:在該來源資料卷的一資料卷記錄表(VLT)中配置一第一項目(entry),並且初始化該第一項目的複數個欄位,包括設定一第一欄位的序號為一初始設定值(initial setting value)、以及設定一第二欄位的操作代碼(OpCod)為一代表來源資料卷狀態的操作代碼;其中更指派該第一欄位的該初始設定值(initial setting value)給一第一變數;在該目的資料卷的一資料卷記錄表(VLT)中配置一第二項目(entry),並且初始化該第二項目的複數個欄位,包括設定一第二欄位的操作代碼(OpCod)為一代表目的資料卷狀態的操作代碼;增加該目的資料卷的一主要序號變數的值,並將該主要序號變數的值拷貝至該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中紀錄序號的一第一欄位,以及拷貝至該來源資料卷的該資料卷記錄表(VLT)的該第一項目(entry)中紀錄另一資料卷的VLT entry的序號的一第四欄位;其中更指派該目的資料卷的該主要序號變數的現行值給一第二變數;設定該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中一第四欄位為一起始位址,其中該第四欄位用於紀錄下一個要進行同步複製的資料區塊的索引號(DstVLT.NxtSynBlk);以及由該起始位址開始,執行一背景拷貝來源資料卷至目的資料卷(Background Copy of Source to Destination)的程序。
依據本發明之另一特色,提出一種進行資料卷複製的方法,係應用於一目的資料卷與一來源資料卷在一同步複製(sync)作業的過程、完成之時或完成之後發生一分離事件,其包含:在該來源資料卷的一資料卷記錄表(VLT)中配置一第一項目(entry),並且初始化該第一項目的複數個欄位,包括設定一第一欄位的序號為一初始設定值(initial setting value)、以及設定一第二欄位的操作代碼(OpCod)為一代表來源資料卷狀態的操作代碼;在該目的資料卷的一資料卷記錄表(VLT)中配置一第二項目(entry),並且初始化該第二項目的複數個欄位,包括設定一第二欄位的操作代碼(OpCod)為一代表目的資料卷狀態的操作代碼;增加該目的資料卷的一主要序號變數的值,並將該主要序號變數的值拷貝至該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中紀錄序號的一第一欄位,以及拷貝至該來源資料卷的該資料卷記錄表(VLT)的該第一項目(entry)中紀錄另一資料卷的VLT entry的序號的一第四欄位;其中更指派該目的資料卷的該主要序號變數的現行值給一第二變數;設定該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中一第四欄位為一起始位址,其中該第四欄位用於紀錄下一個要進行同步複製的資料區塊的索引號(DstVLT.NxtSynBlk);增加該來源資料卷的一主要序號變數的值,並將該來源資料卷的該主要序號變數的值拷貝至該來源資料卷的該資料卷記錄表(VLT)的該第一項目(entry)中紀錄序號的該第一欄位;其中更指派該來源資料卷的該主要序號變數的值給該第一變數;在該目的資料卷的該資料卷記錄表(VLT)中配置一第三項目(entry),並且初始化該第三項目的複數個欄位,包括設定一第二欄位的操作代碼(OpCod)為一代表分離狀態的操作代碼;再次增加該目的資料卷的該主要序號變數的值並將之指派給一第三變數,並將增加後的該目的資料卷的該主要序號變數的值拷貝至該目的資料卷的該資料卷記錄表(VLT)的該第三項目(entry)中紀錄序號的一第一欄位;以及判斷該目的資料卷與該來源資料卷的該同步複製(sync)作業是否已經完成。
依據本發明之又一特色,提出一種磁碟陣列控制器,可應用於進行一實體儲存裝置陣列(PSD Array)中複數個資料卷間的資料複製,係包含:一記憶體,用來緩衝傳送於一主機及該實體儲存裝置陣列之間通過該磁碟陣列控制器的資料;以及一中央處理電路,利用該複數個資料卷各自專屬的一資料卷記錄表(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)的更新狀態資訊。
本發明主要是提出一種在單一架構下實現「資料卷拷貝(volume copy)」與「資料卷鏡像(volume mirror)」等多種資料卷複製的方式。每一資料卷(volume),在與另一資料卷間形成一鏡射對(mirroring pair)時,就建立其專屬的「資料卷記錄表(Volume Log Table,VLT)」與「資料卷區塊更新表(Volume Block Update Table,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)還未拷貝至關聯的目的資料卷(destination volume),則只要對來源資料卷(source volume)寫入資料;否則要同時對同一鏡射對(mirroring pair)中的兩資料卷的對應區塊(block)寫入相同的資料。第一次的同步複製(sync)(或稱為鏡射(mirroring))完成後,鏡射對(mirroring pair)中的兩資料卷進入同步(synchronization)的狀態,因此之後任何來源資料卷(source volume)的資料更動都必須同時複製至目的資料卷(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 Virtualization Subsystem,SVS)12。雖於此實施例當中僅有一主機11與一儲存虛擬化子系統12相互連接,實際應用時可用一主機11連接多個儲存虛擬化子系統12,或是多個主機11連接一個儲存虛擬化子系統12,或是多主機11連接多儲存虛擬化子系統12。
主機11可為一主機電腦,如一伺服器系統、工作站、個人電腦系統等。儲存虛擬化子系統12包含有一儲存虛擬化控制器(Storage Virtualization Controller,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)複製時,係將整個來源資料卷(source volume)的全部內容完整地複製至目的資料卷(destination volume)。如以第1圖為例,可能是將資料卷A 15a整體複製至資料卷B 15b,或者是其他可能的實施例。此時,扮演資料提供者的資料卷A 15a是來源資料卷(source volume),接受複製資料的資料卷B 15b是目的資料卷(destination volume)。來源資料卷與目的資料卷的容量大小未必相同;但是,通常目的資料卷的容量需要大於或等於來源資料卷的容量,以容納所有從來源資料卷複製而來的資料。
一個資料卷的容量可能是數個Giga-bytes至數百個Giga-bytes,甚至是Tera-Bytes以上,要將這麼多的資料由一個資料卷完整地複製(或稱為「同步(sync)」或「鏡射(mirroring)」)至另一個資料卷需要一些時間。完成複製之後,若沒有下分離(split)指令,兩資料卷間會維持「同步」的狀態。在兩資料卷間是「鏡射」或「同步」關係期間,主機11仍隨時可以對來源資料卷(source volume)存取資料;再者,來源資料卷(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圖僅繪示VLT 30中一個項目(entry)所包含的欄位做為代表。實際上運作時,一個VLT 30可能包含有一至複數個VLT項目(VLT entry),每次該VLT 30擁有者與其他資料卷間建立新關係或做狀態改變時,即會產生一個新的VLT entry。一個VLT entry包含了4個欄位:第一欄位31紀錄序號(SeqNum),第二欄位32紀錄操作代碼(OpCod),第三欄位33紀錄與之產生關係的另一資料卷的身分(AltVolID),而第四欄位34的紀錄內容有兩種可能:一種是紀錄與之產生關聯的另一資料卷的VLT entry的序號(AltVolSN)、一種是紀錄自己下一個要進行複製(synchronizing)的資料區塊(block)的索引號(NxtSynBlk)。以上四個欄位的順序只是本發明的一實施例,於其他實施例中,該四個欄位可以其他順序排列;只要能完整記載以上四個欄位的資訊,即應視為在本發明的精神與範圍之中。該四個欄位的細節更進一步說明如下。
每一VLT entry建立之初,其第一欄位31的序號(SeqNum)是一初始設定值(initial setting value)。該初始設定值(initial setting value),若以來源資料卷(source volume)為例說明,可以為“0(null)”,表示擁有該VLT 30的來源資料卷(source volume)與第三欄位33所紀錄的目的資料卷(destination volume)之間還未分離(split)。之後若是進行分離作業,則該序號(SeqNum)的值便由一主要序號變數(MstSN,Master Sequence Number)指派。該主要序號變數,若以序號(SeqNum)的初始設定值(initial setting value)是“0(null)”的例子來說,是由“1”開始累加;亦即,第一個進入分離(split)狀態的VLT entry的序號是“1”、第二個是“2”...其餘以此類推。總而言之,只要VLT entry的第一欄位31的值不是“0”,即表示擁有該VLT 30的來源資料卷(source volume)與第三欄位33所紀錄的目的資料卷(destination volume)之間已經分離(split);反之,若是“0”代表還未分離(split)。
若是目的資料卷(destination volume),其VLT entry的第一欄位31的序號(SeqNum)的初始設定值(initial setting value),可以為“1”,表示第一個發生的同步複製(sync)事件;之後發生的同步複製(sync)事件所對應的VLT entry的序號,亦是由一主要序號變數(MstSN)指派,該主要序號變數(MstSN)可以由“2”開始累加。至於目的資料卷(destination volume)是否已經與來源資料卷(source volume)分離,則是從其VLT entry的第二欄位32來判斷,與第一欄位31的序號(SeqNum)無關。
當然在其他實施例中,來源資料卷(source volume)與目的資料卷(destination volume)的VLT entry的第一欄位31的序號(SeqNum)的初始設定值(initial setting value)亦可設為其他數字;再者,主要序號變數(MstSN)累加的偏移量(offset)也可以不是“1”。例如,初始設定值(initial setting value)可以設為“2”,而主要序號變數(MstSN)累加的偏移量(offset)可以設為“2”,則主要序號變數(MstSN)會以2、4、6...的方式指派給先後出現的VLT entry的第一欄位31的序號(SeqNum)。須注意的是:若來源資料卷(source volume)的VLT entry的第一欄位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 entry的序號(SeqNum)則由初始設定值(initial setting value)加上一偏移量(offset),再指派給該VLT entry。
本發明定義三種VLT entry的第二欄位32的操作代碼(OpCod),表示資料卷處於三種不同的狀態,列舉如下:SYNSRC:表示該資料卷在兩資料卷同步關係中扮演「來源資料卷(source volume)」的角色;SYNDST:表示該資料卷在兩資料卷同步關係中扮演「目的資料卷(destination volume)」的角色;SYNSPL:表示該目的資料卷(destination volume)已經從來源資料卷(source volume)分離(spilt)出來。
以上三種操作代碼(OpCod)亦會影響VLT 30之第四欄位34的紀錄內容。若是同一VLT entry的第二欄位32的操作代碼是“SYNSRC”或“SYNSPL”,則第四欄位34紀錄:與之產生關聯的另一資料卷的VLT entry的序號(AltVolSN);若是同一VLT entry的第二欄位32的操作代碼是“SYNDST”,則第四欄位34紀錄:自己下一個要進行複製(synchronizing)的資料區塊(block)的索引號(NxtSynBlk)。
值得注意的是,雖然前文以“SYNSRC”、“SYNDST”以及“SYNSPL”分別表示該資料卷當時的狀態是“來源資料卷(source volume)”、“目的資料卷(destination volume)”或“已經分離(split)”;但本發明不以此為限,在其他實施例中可以用其他代號來表示該三種狀態。
第2B圖僅繪示VBUT 40中一個項目(entry)所包含的欄位作為代表。實際上運作時,一個VBUT 40包含有複數個VBUT項目(VBUT entry),每一VBUT entry代表其所屬的資料卷的一個資料區塊(block);也就是該資料卷有多少資料區塊,其VBUT 40就對應有多少VBUT entry。一個VBUT entry可以包含2個欄位:第一欄位41是保留欄位;第二欄位42紀錄其對應的VLT entry的序號,表示該VBUT entry所對應的資料區塊的資料是因該序號的VLT entry的事件而更新,藉此追蹤該資料卷的每一資料區塊的狀態,例如:該資料區塊是否已經同步(synchronize)、該資料區塊是否在同步後又因主機11存取資料而產生改變。一個VBUT entry的資料長度可以是32bits,或是其他適當的長度。在其他實施例中,一個VBUT entry未必要包含兩個欄位,若是需要更加精簡,可以只包含一個第二欄位42即可。
本發明所提出之單一架構下實現「資料卷拷貝(volume copy)」與「資料卷鏡像(volume mirror)」的複製方法,即是利用VLT 30和VBUT 40的互相操作應用而實現,其詳細內容將於後文中描述。而應用本發明方法的裝置是第1圖中的儲存虛擬化控制器(SVC)13,其一實施例的架構示意圖如第3圖所示。
儲存虛擬化控制器13之主要目的是將實體儲存裝置(PSD)之各區段之組合映射(map)形成主機11可見之邏輯儲存裝置。由該主機11發出之輸出入請求(Host IO)於控制器13接收之後會先被剖析並解譯,且相關之操作及資料會被編譯成實體儲存裝置(PSD)的輸出入請求。
此實施例中,SVC 13包含有一主機端輸出入裝置連結控制器(Host-side IO Device Interconnect Controller)131、一中央處理電路(Central Processing Circuit,CPC)132、一記憶體133以及一裝置端輸出入裝置連結控制器(Device-side IO Device Interconnect Controller)134。此處雖以分開的功能方塊描述,但於實際應用時,部份甚至全部的功能方塊(functional block)皆可整合在一單一晶片上。
主機端輸出入裝置連結控制器131連接至主機11及中央處理電路132,用來作為儲存虛擬化控制器13及主機11之間的介面及緩衝,其可接收由主機11傳來的輸出入請求和相關資料,並且將其轉換至中央處理電路132。
記憶體133係連接於中央處理電路132,其作為一緩衝器,用來緩衝傳送於主機11及PSD陣列14之間通過中央處理電路132的資料。實際應用時,記憶體133可以是DRAM(動態隨機存取記憶体Dynamic Random Access Memory),該DRAM亦可為SDRAM(同步動態隨機存取記憶體Synchronous Dynamic 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),它可以再回到線上並以原來的同步組態(sync configuration)讓同步複製作業繼續進行。同樣的理由,因為目的資料卷(destination volume)不能做為主機之輸出入要求的單獨標的,所以它也不可以做為任何其他同步複製作業的來源資料卷(source volume),除非它已經分離(split)。
第三原則、在一同步複製作業進行期間且在來源資料卷(source volume)與目的資料卷(destination volume)分離之前,若是有「再同步(Resync)」作業啟動實施於該兩資料卷,該兩資料卷必須立即經由下列步驟分離(split):設定來源資料卷(source volume)的VLT entry的序號為最新的(up-to-date)序號,且增加一個“SYNSPL entry”到目的資料卷(destination volume)的VLT之中。之後,再同步(Resync)作業即可啟動實施。
第四原則、在一同步複製作業進行期間且在兩資料卷分離之前,若是目的資料卷(destination volume)下線(off line),且此時來源資料卷(source volume)因主機的輸出入要求而做了資料更新,且更新的區塊已經同步複製(sync)過了,則該兩資料卷必須立即經由下列步驟分離(split):設定來源資料卷(source volume)的VLT entry的序號為最新的(up-to-date)序號。當目的資料卷(destination volume)回到線上,來源資料卷(source volume)的VLT entry的序號欄位31會被檢查。如果該欄位31不是初始設定值(initial setting value),例如:0(null),則目的資料卷(destination volume)會經由下列方式被登記為已經分離(split):增加一個“SYNSPL entry”到目的資料卷(destination volume)的VLT之中。之後,可以再啟動同步複製作業以再同步(Resync)兩資料卷的資料。
第五原則、在一同步複製作業進行期間且兩資料卷已經分離,假如來源資料卷(source volume)做了資料更新但是卻無法先將更新區塊的原始資料拷貝至目的資料卷(destination volume),則會有一個「錯誤位元(error bit)」設立在最近的“SYNSRC entry”上。在這種情況下,如果目前的同步複製作業尚未結束,任何嚐試進行再同步(Resync)作業的動作皆會被禁止,直到目前的同步複製作業結束。上述將錯誤位元(error bit)設立在來源資料卷(source volume)的VLT entry上只是本發明的一實施例,在其他實施例中,錯誤位元(error bit)亦可以設立在目的資料卷(destination volume)的VLT entry上,或者另外將錯誤位元(error bit)獨立儲存在另一紀錄表之中。
在說明實行本發明方法之詳細流程前,先將一些使用代號的定義說明如下:DstMstSN-目的資料卷的主要序號(Master Sequence Number)變數;SrcMstSN-來源資料卷的主要序號(Master Sequence Number)變數;DstVBUT-對應於目的資料卷中正進行處理的資料區塊的VBUT entry;SrcVBUT-對應於來源資料卷中正進行處理的資料區塊的VBUT entry;DstVLT-目的資料卷中目前正進行的VLT entry;SrcVLT-來源資料卷中目前正進行的VLT entry。
請參照第4A圖至第4C圖,係描繪本發明中同步複製(sync)來源資料卷至目的資料卷之一實施例的流程圖,其中來源資料卷與目的資料卷之間沒有分離(split),兩資料卷間維持著同步(sync)或鏡像(mirror)的關係。以下流程的描述請同時參照第2A圖與第2B圖。第4A圖的程序一開始時,先確認是否是初始的同步複製作業(step 201)。若是,則先初始化目的資料卷的VBUT 40(step 202)以及初始化目的資料卷的DstMstSN變數(step 203)。初始化的方式是設定VBUT 40中每一entry與DstMstSN變數各自等於一初始設定值,該初始設定值,於一實施例中可以是“0(null)”,或者在其他實施例中,可以是其他的初始設定值。
若step 201判斷的結果不是初始的同步複製作業、或是step 202與step 203結束後,則進入step 204:在來源資料卷的VLT 30中分派entry(SrcVLT)且適當地初始化其欄位,包括設定第二欄位32的操作代碼為“SYNSRC”、設定第一欄位31的序號為一初始設定值,例如:“0(Null)”。除此之外,更將此序號的初始設定值指派給一第一變數;於此實施例中稱為“SRCCURSPL”變數。接下來進入step 205:在目的資料卷的VLT 30中分派entry(DstVLT)且適當地初始化其欄位,包括設定第二欄位32的操作代碼為“SYNDST”。然後進入step 206:將DstMstSN變數值增加1個單位,且拷貝至DstVLT的第一欄位31(表示為DstVLT.SeqNum)以及SrcVLT的第四欄位34(表示為SrcVLT.AltVolSN)。除此之外,更將該DstMstSN的現行變數值指派給一第二變數,於此實施例中稱為“DSTCURSYN”變數。然後進入step 207:設定DstVLT的第四欄位34(表示為DstVLT.NxtSynBlk)為Block index 0(Block index為0的區塊)。
以上的步驟皆完成後,接下來會有兩個程序並行處理:step 208所表示的“Background Copy of Source to Destination”程序(其詳細流程描述於第6圖)、以及由節點A 211進入後因出現主機輸出入要求(Host IO)而啟動的程序(描述其詳細流程的第4B圖與第4C圖將於後文中說明)。
step 208所呼叫的“Background Copy of Source to Destination”程序主要是在背景執行將來源資料卷的資料拷貝至目的資料卷的作業。在此作業進行期間,會有一判斷條件不停地詢問:是否所有的資料拷貝皆已完成(step 209)?若是,則所有的流程結束;否則,繼續進行“Background Copy of Source to Destination”程序。“Background Copy of Source to Destination”程序的詳細內容將於第6圖中介紹。
如前文所提及的,要將一個容量龐大的來源資料卷完整地拷貝至目的資料卷是需要一段作業時間。在此作業時間,主機11仍然會如往常一般隨時對來源資料卷存取資料。請注意,由於此時目的資料卷間尚未與來源資料卷分離(split),根據前文所述的第二原則:一個正在進行同步複製作業且未分離(unsplit)的目的資料卷,不能單獨呈現出來讓主機(host)存取資料。因此,在此流程中只有來源資料卷可以做為主機11存取的標的。
請參照第4B圖,由節點A 211進入本流程後,首先在step 212詢問:是否有任何Host IO要對來源資料卷存取資料?若否,則停留在step 212的詢問狀態;若是,則進入step 213:解析該Host IO並分解為1至複數個邏輯碟(Logical Drive,LD)輸出入要求(LD IO),每一LD IO皆對應到來源資料卷中一個欲存取的資料區塊(block)。接下來的流程分為兩個方向:一是回到step 212繼續判斷是否有其他Host IO要對來源資料卷存取資料;另一是根據該一至複數個LD IO同時並行執行第4C圖的流程(step 214)。也就是說如果有n個LD IO要對來源資料卷中n個資料區塊(block)進行存取,則就會引發n個第4C圖的流程(steps 214-1...214-n)同時執行。其中任何一個LD IO所對應的流程執行完畢,便進入step 215判斷是否所有並行處理的流程(steps 214-1...214-n)都完成了。若否,則停留在step 215的詢問狀態;若是,則回報主機(Host)此Host IO已處理完畢(step 216),然後回到step 212繼續判斷是否有其他Host IO要對來源資料卷存取資料。
值得注意的是,在第4B圖中,只要一有Host IO出現要對來源資料卷存取資料,該Host IO便立即由step 212進入流程處理,無論之前的Host IO是否已經處理完成。
請參照第4C圖,係針對存取每一資料區塊(block)之LD IO所做的處理程序,相當於第4B圖中一個step 214的處理方塊。首先判斷該Host IO是否是對來源資料卷寫入資料(step 220)?若否,表示該Host IO是要讀取資料,則直接由來源資料卷的相對應資料區塊(source volume block)讀取資料(step 221),然後結束此流程,回到第4B圖進入step 215進行判斷。若step 220的判斷結果為“是”,則進一步判斷目的資料卷是否是可存取的(step 222)?若當時目的資料卷無法被存取,則設定「同步錯誤旗標(SyncErrorFlag)」為“真(TRUE)”(step 223),然後只拷貝Host IO所欲寫入的資料至來源資料卷的相對應資料區塊(source volume block)(step 230),然後結束此流程,回到第4B圖進入step 215進行判斷。若step 222的判斷結果為“是”,則呼叫“目的資料卷之資料卷區塊更新表的一致性檢查(Sync Process DstVBUT Entry Consistency Check)”程序並檢查其傳回值是否是“偽(FALSE)”(step 224)?其中“目的資料卷之資料卷區塊更新表的一致性檢查(Sync Process DstVBUT Entry Consistency Check)”程序的詳細流程描繪於第5圖,將於下文中說明。若step 224的判斷結果為“是”,則發出一失敗訊息(step 225)。若step 224的判斷結果為“否”或step 225執行之後,進一步判斷該來源資料卷要被寫入之區塊的索引號碼是否小於DstVLT.NxtSynBlk(目的資料卷的VLT entry的第四欄位34所記載的下一個要進行同步的資料區塊的索引號(NxtSynBlk))(step 226)?若step 226的判斷結果為“是”,表示將寫入資料的來源資料卷的資料區塊已經同步複製(sync)至目的資料卷之中,因此Host IO所欲寫入的資料亦須拷貝至目的資料卷的相對應資料區塊(step 227),以保持兩資料卷的資料處於同步狀態。之後進一步判斷DstVBUT.SeqNum是否等於DSTCURSYN(第二變數)的值(目的資料卷的VBUT entry的序號是否等於DSTCURSYN變數值)(step 228)?若step 228的判斷結果為“否”,則令DstVBUT.SeqNum等於DSTCURSYN(第二變數)(step 229),表示目的資料卷的相對應資料區塊是在DSTCURSYN(第二變數)代表的事件中更新資料。若step 228的判斷結果為“是”或step 229執行之後,執行step 230:拷貝Host IO所欲寫入的資料至來源資料卷的相對應資料區塊(source volume block)。若step 226的判斷結果為“否”,亦執行step 230:拷貝Host IO所欲寫入的資料至來源資料卷的相對應資料區塊(source volume block)。最後結束第4C圖的流程,回到第4B圖進入step 215進行判斷。
請參照第5圖,係為本發明中目的資料卷之資料卷區塊更新表的一致性檢查(Sync Process DstVBUT Entry Consistency Check)程序之一實施例的流程圖。本程序係為前文中第4C圖的step 224所呼叫的程序,其主要有三個判斷條件,只要有任一判斷條件符合,本程序即回傳一個“偽(FALSE)”訊息(step 305);相對的,如果三個判斷條件皆不符合,則回傳一個“真(TRUE)”訊息(step 304)。該三個判斷條件的內容詳述如下:
第一、判斷DstVBUT.SeqNum是否大於DSTCURSYN(第二變數)的值(目的資料卷中正進行處理的VBUT entry的序號是否大於DSTCURSYN變數值)(step 301)?由於本流程實施時,目的資料卷並未與來源資料卷分離,因此這種情況不應發生,所以當此條件符合時,本程序即回傳一個“偽(FALSE)”訊息(step 305);否則,則繼續測試下一個判斷條件。
第二、判斷DstVBUT.SeqNum是否等於DSTCURSYN(第二變數)的值(目的資料卷中正進行處理的VBUT entry的序號是否等於DSTCURSYN變數值)並且DstVLT.NxtSynBlk(目的資料卷中目前正進行的VLT entry的第四欄位34所記載的“下一個要進行同步複製的資料區塊的索引號(NxtSynBlk)”)是否小於或等於正在進行資料修改之區塊的索引值(step 302)?由於第二個判斷條件中的兩個判斷式是互相矛盾的,因此當第二個判斷條件符合時,本程序即回傳一個“偽(FALSE)”訊息(step 305);否則,則繼續測試下一個判斷條件。
第三、判斷DstVLT.NxtSynBlk(目的資料卷中目前正進行的VLT entry的第四欄位34所記載的“下一個要進行同步複製的資料區塊的索引號(NxtSynBlk)”)是否大於正在進行資料修改之區塊的索引值(表示該資料區塊已經同步複製過了)並且“Check Volume Block In-Sync”程序是否回傳一“偽(FALSE)”值(step 303)?其中“Check Volume Block In-Sync”程序的詳細流程描繪於第8圖,將於下文中說明。由於目的資料卷中所有已經同步複製過的資料區塊都應該保持當時的狀態直到目的資料卷從來源資料卷分離,因此當第三個判斷條件符合時,本程序即回傳一個“偽(FALSE)”訊息(step 305);否則,則回傳一個“真(TRUE)”訊息(step 304)。
請參照第8圖,係為本發明中檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)程序之一實施例的流程圖;本程序為前文第5圖的step 303所呼叫的程序,亦為後文中其他程序所呼叫。本程序主要有五個判斷條件,只要有任一判斷條件符合,本程序即回傳一個“偽(FALSE)”訊息(step 607);相對的,如果五個判斷條件皆不符合,則回傳一個“真(TRUE)”訊息(step 606)。該五個判斷條件的內容詳述如下:
第一、DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)是否是初始設定值(initial setting value),例如:“0(NULL)”(step 601)?如果判斷結果為“是”,表示該資料區塊還在初始化操作的階段,當然不會“已在同步(In-Sync)狀態”,因此回傳一個“偽(FALSE)”訊息;否則,則繼續測試下一個判斷條件。
第二、DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)所對應的目的資料卷的VLT entry是否找不到,或者雖有找到但是讀不到或兩者資料不一致(step 602)?如果判斷結果為“是”則回傳一個“偽(FALSE)”訊息(step 607);否則,則繼續測試下一個判斷條件。
第三、DstVLT.OpCod(目的資料卷中目前正進行的VLT entry的第二欄位32所記載的“操作代碼(OpCod)”)不是“SYNDST”,或者DstVLT.AltVolID(目的資料卷中目前正進行的VLT entry的第三欄位33所記載的“另一產生關聯之資料卷的身分(AltVolID)”)不是其對應的來源資料卷的ID代碼(step 603)?如果以上判斷結果為“是”,則回傳一個“偽(FALSE)”訊息(step 607);否則,則繼續測試下一個判斷條件。
第四、與DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)相同的SrcVLT.AltVolSN(來源資料卷的VLT entry的第四欄位34所記載的目的資料卷的VLT entry的序號(AltVolSN))的來源資料卷之VLT entry,是否找不到,或者雖有找到但是讀不到或記載的資料不一致(step 604)?如果以上判斷結果為“是”,則回傳一個“偽(FALSE)”訊息(step 607);否則,則繼續測試下一個判斷條件。
第五、SrcVBUT.SeqNum(來源資料卷中正進行處理的VBUT entry的序號)是否大於或等於SrcVLT.SeqNum(來源資料卷中目前正進行的VLT entry的第一欄位31所記載的序號(SeqNum))(step 605)?如果以上判斷結果為“是”,表示該來源資料卷之資料區塊的資料在同步複製至目的資料卷後又再被更改,因此回傳一個“偽(FALSE)”訊息(step 607);否則,則回傳一個“真(TRUE)”訊息(step 606)。
請參照第6圖,係為本發明中背景拷貝來源資料卷至目的資料卷(Background Copy of Source to Destination Volume)程序之一實施例的流程圖;本程序為前文第4A圖的step 208所呼叫的程序,亦為後文中其他程序所呼叫。對於目的資料卷的VBUT entry所代表的每一資料區塊(step 401),呼叫並執行“檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination)”程序(step 402),該程序的詳細流程描繪於第7圖,將於下文中說明。step 402的程序執行完後,判斷是否還有其他資料區塊尚未進行同步複製(sync)(step 403)?如果以上判斷結果為“是”,則將DstVLT.NxtSynBlk(目的資料卷中目前正進行的VLT entry的第四欄位34所記載的“下一個要進行同步複製的資料區塊的索引號(NxtSynBlk)”)的區塊號碼增加1個單位(step 404),然後回到step 401針對下一個資料區塊再進行一次steps 402-403的流程。如果step 403的判斷結果為“否”,則設定DstVLT.NxtSynBlk(目的資料卷中目前正進行的VLT entry的第四欄位34所記載的“下一個要進行同步複製的資料區塊的索引號(NxtSynBlk)”)的值為“-1”(step 405),表示所有資料區塊的同步複製皆已完成,然後結束此程序。請注意,以上將DstVLT.NxtSynBlk的值設為“-1”表示同步複製完成,只是本發明的一實施例;於其他實施例中,任何以其他適當的數字達到同樣效果的表達方式都應視為不脫離本發明的精神,例如:設定DstVLT.NxtSynBlk的值為“-2”。
請參照第7圖,係為本發明中檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)之一實施例的流程圖;本程序為第6圖的step 402所呼叫的程序。首先判斷DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)是否小於DSTCURSYN(第二變數)的變數值(step 501)?如果以上判斷結果為“是”,則再進一步判斷目的資料卷是否已經與來源資料卷分離並且SrcVBUT.SeqNum(來源資料卷中相對應的VBUT entry的序號)是否大於或等於SRCCURSPL(第一變數)的值(step 502)?如果以上判斷結果為“是”,表示該來源資料卷的資料區塊有被修改過且其修改前的原始資料沒有先拷貝至目的資料卷,造成目的資料卷的該相對應區塊的資料與來源資料卷不同步,因此標示該目的資料卷的該相對應區塊的VBUT entry為“DATA INVALID(資料無效)”(step 503),然後結束此程序。如果step 502的判斷結果為“否”,呼叫“Check Volume Block In-Sync”程序(其詳細流程描繪於第8圖且已在前文中說明)並判斷其傳回值是否為“偽(FALSE)”(step 504)?如果以上判斷結果為“是”,表示該來源資料卷和目的資料卷的相對應資料區塊還未同步,因此將來源資料卷的區塊資料拷貝至目的資料卷(step 505),然後設定DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)等於DSTCURSYN(第二變數)的變數值(step 506),最後結束此程序。若是step 504的判斷結果為“否”,表示該來源資料卷和目的資料卷的相對應資料區塊已經同步複製過了,因此不做任何處理,直接結束此程序。
回到step 501,如果其判斷結果為“否”,則再進一步判斷目的資料卷是否已經與來源資料卷分離(step 507)?如果以上判斷結果為“是”,則跳過該資料區塊(step 508),然後結束此程序;如果step 507的判斷結果為“否”,則發出一失敗訊息(step 509),然後結束此程序。
請參照第9A圖至第9D圖,係描繪本發明中同步複製(sync)來源資料卷至目的資料卷之另一實施例的流程圖,其中來源資料卷與目的資料卷已經分離(split),此分離(split)的時間點可能在同步複製(sync)的過程中、完成之時或完成之後。第9A圖至第9D圖的流程可以接續在第4A圖的steps 201-207之後,表示來源資料卷與目的資料卷在進行同步複製(sync)的過程或之後的某一時間點發生了分離(split)事件。以下流程的描述請同時參照第2A圖與第2B圖。首先將SrcMstSN的序號值增加1個單位且拷貝至SrcVLT的第一欄位31(SrcVLT.SeqNum);除此之外,更將此SrcMstSN序號的現行值再指派給前述之第一變數(SRCCURSPL)(step 701)。接下來在目的資料卷的VLT 30中分派entry(DstVLT)且適當地初始化其欄位,包括設定第二欄位32的操作代碼為“SYNSPL”(step 702)。然後將DstMstSN變數值增加1個單位且拷貝至DstVLT的第一欄位31(DstVLT.SeqNum);除此之外,更將此DstMstSN的序號現行值指派給一第三變數(於此實施例中稱為“DSTCURSPL”變數)(step 703)。請注意,DstMstSN的變數值在進入此步驟增加1個單位前,已於前述第4A圖的step 206指派給第二變數(DSTCURSYN),因此第三變數(DSTCURSPL)與第二變數(DSTCURSYN)的值理論上相差1個單位。以上的步驟皆完成後,接下來會有兩個程序並行處理:step 705所表示的“Background Copy of Source to Destination”程序(其詳細流程描述於第6圖且已在前文中說明)、以及由節點B 706進入後因出現主機輸出入要求(Host IO)而啟動的程序(描述其詳細流程的第9B圖至第9D圖將於後文中說明)。
step 705所呼叫的“Background Copy of Source to Destination”程序主要是在背景執行將來源資料卷的資料拷貝至目的資料卷的作業。在此作業進行期間,會持續進行step 704的判斷:是否來源資料卷至目的資料卷的同步作業皆已全部完成?若以上判斷結果為“是”,則背景拷貝(background copy)的流程結束;否則,持續進行“Background Copy of Source to Destination”程序(step 705),直到step 704的判斷結果為“是”而結束背景拷貝的流程。
請參照第9B圖,由節點B 706進入本流程後,首先在step 707詢問:是否有任何Host IO要對來源資料卷(source volume)或目的資料卷(destination volume)存取資料?請注意:由於本流程中目的資料卷已經與來源資料卷分離,因此該兩資料卷皆可獨立地做為Host IO資料存取的對象。若step 707的判斷結果為“否”,則停留在step 707的詢問狀態;若step 707的判斷結果為“是”,則進入step 708:解析該Host IO並分解為1至複數個邏輯碟(Logical Drive,LD)輸出入要求(LD IO),每一LD IO皆對應到來源資料卷或目的資料卷中一個欲存取的資料區塊(block)。接下來的流程分為兩個方向:一是回到step 707繼續判斷是否有其他Host IO要對來源資料卷或目的資料卷存取資料;另一是根據該一至複數個LD IO同時並行執行第9C圖與第9D圖的流程(step 709);也就是說如果有n個LD IO要對來源資料卷或目的資料卷中n個資料區塊(block)進行存取,則就會引發n個第9C圖與第9D圖的流程(steps 709-1...709-n)同時執行。其中任何一個LD IO所對應的流程執行完畢,便進入step 711判斷是否所有並行處理的流程(steps 709-1...709-n)都完成了。若否,則回到節點D 710,停留在step 711的詢問狀態;若是,則回報主機(Host)此Host IO已處理完畢(step 712),然後回到step 707繼續判斷是否有其他Host IO要對來源資料卷或目的資料卷存取資料。
值得注意的是,在第9B圖中,只要一有Host IO出現要對來源資料卷或目的資料卷存取資料,該Host IO便立即由step 707進入流程處理,無論之前的Host IO是否已經處理完成。
請參照第9C圖與第9D圖,係針對存取每一資料區塊(block)之LD IO所做的處理程序,相當於第9B圖中一個step 709的處理方塊。首先由第9C圖的step 720判斷該Host IO是否是對來源資料卷或目的資料卷寫入資料?若否,表示該Host IO是要讀取資料,則由節點C 732進入第9D圖進行讀取資料的相關流程;第9D圖的相關流程細節將於後文中說明。若step 720的判斷結果為“是”,表示該Host IO是要寫入資料,則進一步判斷目的資料卷是否是可存取的(step 721)?若當時目的資料卷無法被存取,則設定「同步錯誤旗標(SyncErrorFlag)」為“真(TRUE)”(step 726)。之後判斷該Host IO是否是針對來源資料卷寫入資料(step 727)?若以上判斷結果為“是”,則將Host IO所欲寫入的資料拷貝至來源資料卷的相對應資料區塊(step 728)。回到step721,若其判斷結果為“是”,表示當時的目的資料卷是可以存取的,之後進一步判斷該Host IO是否是針對來源資料卷寫入資料(step 722)?若以上的判斷結果為“是”,則呼叫並執行“Check/Copy Block from Source to Destination”程序(step 723),以檢查並決定是否需要先將來源資料卷之該處理資料區塊的原始資料先行複製至目的資料卷的相對應資料區塊。“Check/Copy Block from Source to Destination”程序的詳細流程描述於第7圖且已在前文中說明。若step 722的判斷結果為“否”,則進一步判斷該Host IO是否是針對目的資料卷寫入資料且只有資料區塊的部份需要被修改(step 724)?若其判斷結果為“是”,也是進入step 723;若step 724的判斷結果為“否”或step 723執行之後,則將Host IO所欲寫入的資料拷貝至其所欲寫入的來源資料卷或目的資料卷的相對應資料區塊(step 725)。在step 725與step 728之後,進一步判斷該Host IO是否是針對來源資料卷寫入資料(step 729)?若以上判斷結果為“否”,則將第三變數(DSTCURSPL)的值指派給DstVBUT.SeqNum(step 730),表示目的資料卷的相對應資料區塊是在DSTCURSPL代表的事件中更新資料。若step 729的判斷結果為“是”,則將第一變數(SRCCURSPL)(step 731)的值指派給SrcVBUT.SeqNum,表示來源資料卷的相對應資料區塊是在SRCCURSPL代表的事件中更新資料。最後結束第9C圖的流程,由節點D 710回到第9B圖,然後進入step 711進行判斷。
若是step 720的判斷結果為“否”,則由節點C 732進入第9D圖進行讀取資料的相關流程。首先判斷該Host IO是否是針對目的資料卷讀取資料(step 733)?若以上判斷結果為“是”,則進一步判斷要被讀取資料的資料區塊所對應的VBUT entry是否被標示為“DATA INVALID(資料無效)”(step 734)?若以上判斷結果為“是”,則回覆一錯誤(error)訊息(step 736),然後結束第9D圖的流程,由節點D 710回到第9B圖。若step 734的判斷結果為“否”,則進一步判斷:目的資料卷的同步錯誤旗標(SyncErrorFlag)是否曾被設立起來、並且DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)是否小於前述第二變數(DSTCURSYN)的變數值、並且SrcVBUT.SeqNum(來源資料卷中正進行處理的VBUT entry的序號)是否大於或等於第一變數(SRCCURSPL)的變數值(step 735)?若以上判斷結果為“是”,則標示該要被讀取資料的資料區塊所對應的VBUT entry為“DATA INVALID(資料無效)”(step 737),然後回覆一錯誤(error)訊息(step 736),並結束此流程,由節點D 710回到第9B圖。若step 735的判斷結果為“否”,則判斷該Host IO是否是針對來源資料卷讀取資料(step 738)?若以上判斷結果為“是”,則由來源資料卷的資料區塊讀取資料(step 740),然後結束此流程,由節點D 710回到第9B圖。若step 738的判斷結果為“否”,則進一步判斷:該Host IO是否是針對目的資料卷讀取資料、並且DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)是否小於前述第二變數(DSTCURSYN)的變數值(step 739)?若以上判斷結果為“是”,表示該欲讀取的資料區塊的資料尚未與來源資料卷的相對應資料區塊同步,因此轉由來源資料卷的相對應資料區塊讀取資料(step 740)。若739的判斷結果為“否”,則沒有以上疑慮,直接由目的資料卷的資料區塊讀取資料(step 741),然後結束此流程,由節點D 710回到第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 entry中儲存的序號為“1”者(例如:VBUT entry的索引號為0x01、0x12、0x25、0x3A者)表示:其所對應的資料區塊(block)是在資料卷A(VolA)與資料卷B(VolB)分離後因Host IO的存取而有資料變動的資料區塊。同理,第11A圖中,VBUT entry中儲存的序號為“2”者(例如:VBUT entry的索引號為0x04、0x16、0x28、0x2E、0x31者)表示:其所對應的資料區塊(block)是在資料卷A(VolA)與資料卷C(VolC)分離後因Host IO的存取而有資料變動的資料區塊。其他VBUT entry中儲存的序號為“0”者表示:資料卷A(VolA)自第一次分離作業後至時間點T為止都沒有資料變動的資料區塊所對應的VBUT entry。說明:前文及後文中的“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 entry的第二欄位32所顯示的“SYNSPL”操作代碼(OpCod)代表:資料卷B(VolB)與資料卷A(VolA)已經分離。若一資料卷是扮演目的資料卷的角色,則其第二欄位32所儲存的操作代碼(OpCod)常是“SYNDST”與“SYNSPL”成對出現。再觀察第11B圖,請同時參照第10B圖,VBUT entry中儲存的序號為“1”者表示:其所對應的資料區塊(block)是在資料卷B(VolB)與資料卷A(VolA)建立同步複製的關係後,已經同步過的資料區塊。又,VBUT entry中儲存的序號為“2”者表示:其所對應的資料區塊(block)是在資料卷B(VolB)與資料卷A(VolA)分離後因Host IO的存取而有資料變動的資料區塊。
請參照第10C圖與第11C圖,係分別是資料卷C(VolC)在時間點T的VLT與VBUT之示意圖。由第10C圖可以知道:在時間點T時,資料卷C(VolC)是資料卷A(VolA)的目的資料卷且兩者已經分離,但還未同步複製完成。第10C圖之第一個VLT entry的第四欄位34所顯示的“C”是“NxtSynBlk”之意,代表:資料卷C(VolC)下一個要進行同步複製的資料區塊(block)的索引號是“0x0C”;因為此欄位所儲存的值不是“-1”,由此可知資料卷C(VolC還未從資料卷A(VolA)同步複製完成。而第二個VLT entry的第四欄位34所顯示的“2”是“AltVolSN”之意,代表:資料卷C(VolC)已經與資料卷A(VolA)分離,且對應於資料卷A(VolA)之VLT entry的序號為“2”。再觀察第11C圖,請同時參照第10C圖,VBUT entry中儲存的序號為“1”者表示:其所對應的資料區塊(block)是在資料卷C(VolC)與資料卷A(VolA)建立同步複製的關係後,已經同步過的資料區塊。又,VBUT entry中儲存的序號為“2”者表示:其所對應的資料區塊(block)是在資料卷C(VolC)與資料卷A(VolA)分離後因Host IO的存取而有資料變動的資料區塊。由於初始化程序後賦予每個VBUT entry之序號的初始值為“0”,且時間T時資料卷C(VolC)只扮演是資料卷A(VolA)的目的資料卷的角色,因此VBUT entry中其他序號為“0”者表示:資料卷C(VolC)中還未同步複製或者沒有因為Host IO而有資料改變的資料區塊。
請參照第10D圖與第11D圖,係分別是資料卷D(VolD)在時間點T的VLT與VBUT之示意圖。第10D圖顯示只有一個VLT entry,表示:資料卷D(VolD)是資料卷B(VolB)的目的資料卷,兩者尚未分離,且下一個要進行同步複製的資料區塊(block)的索引號是“0x19”。參照第11D圖,可以明顯看出:在索引號為“0x19”之前的VBUT entry的序號都是“1”,其後的都是“0”,表示資料卷D(VolD)很單純地在進行從資料卷B(VolB)同步複製資料的作業。因為資料卷D(VolD)尚未與資料卷B(VolB)分離,因此Host看不到資料卷D(VolD),也不會有Host IO要求對資料卷D(VolD)存取資料。
請參照第10E圖,係為資料卷E(VolE)在時間點T的VLT示意圖。圖中顯示只有一個VLT entry,表示:資料卷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。因此,本發明提出的技術有簡化同步複製架構與減少表格管理的好處,可以使儲存系統的運作更具效率。
1...電腦系統
12...儲存虛擬化子系統
13...儲存虛擬化控制器
131...主機端輸出入裝置連結控制器
132...中央處理電路
133...記憶體
134...裝置端輸出入裝置連結控制器
14...實體儲存裝置陣列
15a-15e...資料卷
30...資料卷記錄表(VLT)
31...資料卷記錄表的第一欄位
32...資料卷記錄表的第二欄位
33...資料卷記錄表的第三欄位
34...資料卷記錄表的第四欄位
40...資料卷區塊更新表(VBUT)
41...資料卷區塊更新表的第一欄位
42...資料卷區塊更新表的第二欄位
第1圖、描繪應用本發明之電腦系統的硬體架構示意圖;
第2A圖、描繪本發明提出之資料卷記錄表(Volume Log Table,VLT)的資料結構;
第2B圖、描繪本發明提出之資料卷區塊更新表(Volume Block Update Table,VBUT)的資料結構;
第3圖、描繪應用本發明方法之儲存虛擬化控制器(SVC)之一實施例示意圖;
第4A圖~第4C圖、描繪本發明中同步複製(sync)來源資料卷(source volume)至目的資料卷(destination volume)之一實施例的流程圖,其中來源資料卷(source volume)與目的資料卷(destination volume)之間沒有分離(split);
第5圖、描繪本發明中目的資料卷之資料卷區塊更新表的一致性檢查(Sync Process DstVBUT Entry Consistency Check)之一實施例的流程圖;
第6圖、描繪本發明中背景拷貝來源資料卷至目的資料卷(Background Copy of Source to Destination Volume)之一實施例的流程圖;
第7圖、描繪本發明中檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)之一實施例的流程圖;
第8圖、描繪本發明中檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)之一實施例的流程圖;
第9A圖~第9D圖、描繪本發明中同步複製(sync)來源資料卷(source volume)至目的資料卷(destination volume)之一實施例的流程圖,其中來源資料卷(source volume)與目的資料卷(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圖。

Claims (52)

  1. 一種進行資料卷複製的方法,讓一目的資料卷與一來源資料卷的資料同步(sync),其包含:在該來源資料卷的一資料卷記錄表(VLT)中配置一第一項目(entry),並且初始化該第一項目的複數個欄位,包括設定一第一欄位的序號為一初始設定值(initial setting value)、以及設定一第二欄位的操作代碼(OpCod)為一代表來源資料卷狀態的操作代碼;其中更指派該第一欄位的該初始設定值(initial setting value)給一第一變數;在該目的資料卷的一資料卷記錄表(VLT)中配置一第二項目(entry),並且初始化該第二項目的複數個欄位,包括設定一第二欄位的操作代碼(OpCod)為一代表目的資料卷狀態的操作代碼;增加該目的資料卷的一主要序號變數的值,並將該主要序號變數的值拷貝至該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中紀錄序號的一第一欄位,以及拷貝至該來源資料卷的該資料卷記錄表(VLT)的該第一項目(entry)中紀錄另一資料卷的VLT entry的序號的一第四欄位;其中更指派該目的資料卷的該主要序號變數的現行值給一第二變數;設定該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中一第四欄位為一起始位址,其中該第四欄位用於紀錄下一個要進行同步複製的資料區塊的索引號(DstVLT.NxtSynBlk);以及由該起始位址開始,執行一背景拷貝來源資料卷至目的資料卷(Background Copy of Source to Destination)的程序。
  2. 如申請專利範圍第1項所述之進行資料卷複製的方法,其中更增加一步驟:判斷是否有一主機輸出入要求(Host IO)要對該來源資料卷存取資料。
  3. 如申請專利範圍第2項所述之進行資料卷複製的方法,其中更增加一步驟:將該主機輸出入要求(Host IO)分解為至少一邏輯碟輸出入要求(LD IO),每一該邏輯碟輸出入要求(LD IO)皆對應到該來源資料卷中一個欲存取的資料區塊(block)。
  4. 如申請專利範圍第3項所述之進行資料卷複製的方法,其中對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;判斷該目的資料卷是否是可存取的;判斷一目的資料卷之資料卷區塊更新表的一致性檢查(Sync Process DstVBUT Entry Consistency Check)程序是否有傳回一“偽(FALSE)”訊息;判斷該來源資料卷之一欲寫入區塊的索引號碼是否小於該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中的該第四欄位所記載的下一個要進行同步的資料區塊的索引號(DstVLT.NxtSynBlk);判斷該目的資料卷的一資料卷區塊更新表(VBUT)中一正進行處理之資料區塊的序號(DstVBUT.SeqNum)是否等於該第二變數的值;以及拷貝該主機輸出入要求(Host IO)的資料至該來源資料卷的該欲寫入區塊。
  5. 如申請專利範圍第4項所述之進行資料卷複製的方法,其中判斷結果是該目的資料卷之資料卷區塊更新表的一致性檢查(DstVBUT Entry Consistency Check)程序傳回該“偽(FALSE)”訊 息,則更增加一步驟:發出一失敗訊息。
  6. 如申請專利範圍第4項所述之進行資料卷複製的方法,其中判斷結果是該來源資料卷之該欲寫入區塊的該索引號碼小於該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中的該第四欄位所記載的下一個要進行同步的資料區塊的索引號(DstVLT.NxtSynBlk),則更增加一步驟:拷貝該主機輸出入要求(Host IO)的資料至該目的資料卷的一資料區塊,該資料區塊的位址係對應於該來源資料卷的該欲寫入區塊。
  7. 如申請專利範圍第4項所述之進行資料卷複製的方法,其中判斷結果是該目的資料卷的該資料卷區塊更新表(VBUT)中對應該欲寫入區塊的序號(DstVBUT.SeqNum)不等於該第二變數的值,則更增加一步驟:設定該目的資料卷的該資料卷區塊更新表(VBUT)中紀錄對應該欲寫入區塊的序號(DstVBUT.SeqNum)等於該第二變數的值。
  8. 如申請專利範圍第3項所述之進行資料卷複製的方法,其中對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;以及從該來源資料卷的一欲讀取區塊讀取資料。
  9. 如申請專利範圍第3項所述之進行資料卷複製的方法,其中對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;判斷該目的資料卷是否是可存取的;設定一同步錯誤旗標(SyncErrorFlag)為“真(TRUE)”;以及拷貝該主機輸出入要求(Host IO)的資料至該來源資料卷的該欲寫入區塊。
  10. 如申請專利範圍第3項所述之進行資料卷複製的方法,其中更 增加一步驟:判斷對應該至少一邏輯碟輸出入要求(LD IO)的程序是否都已執行完成。
  11. 如申請專利範圍第10項所述之進行資料卷複製的方法,其中更增加一步驟:回報送出該主機輸出入要求(Host IO)的一主機(Host),該主機輸出入要求(Host IO)已處理完畢。
  12. 如申請專利範圍第1項所述之進行資料卷複製的方法,其中更增加一步驟:判斷是否是一初始的同步複製作業。
  13. 如申請專利範圍第12項所述之進行資料卷複製的方法,其中更增加以下步驟:初始化該目的資料卷的一資料卷區塊更新表(VBUT):以及初始化該目的資料卷的該主要序號變數。
  14. 一種進行資料卷複製的方法,係應用於一目的資料卷與一來源資料卷在一同步複製(sync)作業的過程、完成之時或完成之後發生一分離事件,其包含:在該來源資料卷的一資料卷記錄表(VLT)中配置一第一項目(entry),並且初始化該第一項目的複數個欄位,包括設定一第一欄位的序號為一初始設定值(initial setting value)、以及設定一第二欄位的操作代碼(OpCod)為一代表來源資料卷狀態的操作代碼;在該目的資料卷的一資料卷記錄表(VLT)中配置一第二項目(entry),並且初始化該第二項目的複數個欄位,包括設定一第二欄位的操作代碼(OpCod)為一代表目的資料卷狀態的操作代碼;增加該目的資料卷的一主要序號變數的值,並將該主要序號變數的值拷貝至該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中紀錄序號的一第一欄位,以及拷貝至該來源 資料卷的該資料卷記錄表(VLT)的該第一項目(entry)中紀錄另一資料卷的VLT entry的序號的一第四欄位;其中更指派該目的資料卷的該主要序號變數的現行值給一第二變數;設定該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中一第四欄位為一起始位址,其中該第四欄位用於紀錄下一個要進行同步複製的資料區塊的索引號(DstVLT.NxtSynBlk);增加該來源資料卷的一主要序號變數的值,並將該來源資料卷的該主要序號變數的值拷貝至該來源資料卷的該資料卷記錄表(VLT)的該第一項目(entry)中紀錄序號的該第一欄位;其中更指派該來源資料卷的該主要序號變數的值給該第一變數;在該目的資料卷的該資料卷記錄表(VLT)中配置一第三項目(entry),並且初始化該第三項目的複數個欄位,包括設定一第二欄位的操作代碼(OpCod)為一代表分離狀態的操作代碼;再次增加該目的資料卷的該主要序號變數的值並將之指派給一第三變數,並將增加後的該目的資料卷的該主要序號變數的值拷貝至該目的資料卷的該資料卷記錄表(VLT)的該第三項目(entry)中紀錄序號的一第一欄位;以及判斷該目的資料卷與該來源資料卷的該同步複製(sync)作業是否已經完成。
  15. 如申請專利範圍第14項所述之進行資料卷複製的方法,其中更增加一步驟:執行一背景拷貝來源資料卷至目的資料卷(Background Copy of Source to Destination Volume)程序。
  16. 如申請專利範圍第14項所述之進行資料卷複製的方法,其中更增加一步驟:判斷是否有一主機輸出入要求(Host IO)要對該來源資料卷或該目的資料卷存取資料。
  17. 如申請專利範圍第16項所述之進行資料卷複製的方法,其中更增加一步驟:將該主機輸出入要求(Host IO)分解為至少一邏輯碟輸出入要求(LD IO),每一該邏輯碟輸出入要求(LD IO)皆對應到該來源資料卷或目標資料卷中一欲存取資料區塊(block)。
  18. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;判斷該目的資料卷是否是可存取的;判斷該主機輸出入要求(Host IO)是否是要存取該來源資料卷;執行一檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序;以及拷貝該主機輸出入要求(Host IO)的資料至該來源資料卷的該欲存取資料區塊。
  19. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;判斷該目的資料卷是否是可存取的;判斷該主機輸出入要求(Host IO)是否是要存取該來源資料卷;判斷該主機輸出入要求(Host IO)是否是要存取該目的資料卷並且只有該欲存取資料區塊的部分會被修改資料;以及 拷貝該主機輸出入要求(Host IO)的資料至該目的資料卷的該欲存取資料區塊。
  20. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;判斷該目的資料卷是否是可存取的;判斷該主機輸出入要求(Host IO)是否是要存取該來源資料卷;判斷該主機輸出入要求(Host IO)是否是要存取該目的資料卷並且只有該欲存取資料區塊的部分會被修改資料;執行一檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序;以及拷貝該主機輸出入要求(Host IO)的資料至該目的資料卷的該欲存取資料區塊。
  21. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;判斷該目的資料卷是否是可存取的;設定一同步錯誤旗標(SyncErrorFlag)為“真(TRUE)”;以及判斷該主機輸出入要求(Host IO)是否是要存取該來源資料卷。
  22. 如申請專利範圍第21項所述之進行資料卷複製的方法,其中更增加一步驟:拷貝該主機輸出入要求(Host IO)的資料至該來 源資料卷的該欲存取資料區塊。
  23. 如申請專利範圍第18項或第19項或第20項或第21項或第22項所述之進行資料卷複製的方法,其中更增加以下步驟:判斷該主機輸出入要求(Host IO)是要存取該來源資料卷或是該目的資料卷;以及設定該來源資料卷的一資料卷區塊更新表(VBUT)中對應該欲存取資料區塊的序號(SrcVBUT.SeqNum)等於該第一變數的值。
  24. 如申請專利範圍第18項或第19項或第20項或第21項或第22項所述之進行資料卷複製的方法,其中更增加以下步驟:判斷該主機輸出入要求(Host IO)是要存取該來源資料卷或是該目的資料卷;以及設定該目的資料卷的一資料卷區塊更新表(VBUT)中對應該欲存取資料區塊的序號(DstVBUT.SeqNum)等於該第三變數的值。
  25. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;判斷該主機輸出入要求(Host IO)是否是存取該目的資料卷;以及判斷該目的資料卷的一資料卷區塊更新表(VBUT)中對應該欲存取資料區塊的一項目(entry)是否被標示為“資料無效(DATA INVALID)”。
  26. 如申請專利範圍第25項所述之進行資料卷複製的方法,其中更增加以下步驟:回覆一錯誤(error)訊息。
  27. 如申請專利範圍第25項所述之進行資料卷複製的方法,其中更增加以下步驟:判斷該目的資料卷的一同步錯誤旗標(SyncErrorFlag)是否曾被設立起來、並且該目的資料卷中正進行處理的該資料卷區塊更新表(VBUT)的該項目(entry)的序號(DstVBUT.SeqNum)是否小於該目的資料卷的該第二變數的值、並且該來源資料卷中正進行處理的該資料卷區塊更新表(VBUT)的該項目(entry)的序號(SrcVBUT.SeqNum)是否大於或等於該第一變數的值。
  28. 如申請專利範圍第27項所述之進行資料卷複製的方法,其中更增加以下步驟:標示該目的資料卷的該資料卷區塊更新表(VBUT)中對應該欲存取資料區塊的該項目(entry)為“資料無效(DATA INVALID)”;以及回覆一錯誤(error)訊息。
  29. 如申請專利範圍第27項所述之進行資料卷複製的方法,其中更增加以下步驟:判斷該主機輸出入要求(Host IO)是否是存取該來源資料卷;以及從該來源資料卷的該欲存取區塊讀取資料。
  30. 如申請專利範圍第27項所述之進行資料卷複製的方法,其中更增加以下步驟:判斷該主機輸出入要求(Host IO)是否是存取該來源資料卷;判斷該主機輸出入要求(Host IO)是否是存取該目的資料卷並且判斷該目的資料卷中正進行處理的該資料卷區塊更新表(VBUT)的該項目(entry)的序號(DstVBUT.SeqNum)是否小於該 目的資料卷的該第二變數的值;以及從該來源資料卷的該欲存取區塊讀取資料。
  31. 如申請專利範圍第27項所述之進行資料卷複製的方法,其中更增加以下步驟:判斷該主機輸出入要求(Host IO)是否是存取該來源資料卷;判斷該主機輸出入要求(Host IO)是否是存取該目的資料卷並且判斷該目的資料卷中正進行處理的該資料卷區塊更新表(VBUT)的該項目(entry)的序號(DstVBUT.SeqNum)是否小於該目的資料卷的該第二變數的值;以及從該目的資料卷的該欲存取區塊讀取資料。
  32. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中更增加一步驟:判斷對應該至少一邏輯碟輸出入要求(LD IO)的程序是否都已執行完成。
  33. 如申請專利範圍第32項所述之進行資料卷複製的方法,其中更增加一步驟:回報送出該主機輸出入要求(Host IO)的一主機(Host),該主機輸出入要求(Host IO)已處理完畢。
  34. 如申請專利範圍第4項所述之進行資料卷複製的方法,其中該目的資料卷之資料卷區塊更新表的一致性檢查(Sync Process DstVBUT Entry Consistency Check)程序係包含以下三個判斷步驟:判斷該目的資料卷的該資料卷區塊更新表(VBUT)中該正進行處理之資料區塊的序號(DstVBUT.SeqNum)是否大於該第二變數的值;判斷該目的資料卷的該資料卷區塊更新表(VBUT)中該正進行處理之資料區塊的序號(DstVBUT.SeqNum)是否等於該第 二變數的值,並且該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中的該第四欄位所記載的下一個要進行同步的資料區塊的索引號(DstVLT.NxtSynBlk)是否小於或等於正在進行資料修改之區塊的索引值;以及判斷該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中的該第四欄位所記載的下一個要進行同步的資料區塊的索引號(DstVLT.NxtSynBlk)是否大於正在進行資料修改之區塊的索引值,並且一檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)的程序是否回傳一“偽(FALSE)”值。
  35. 如申請專利範圍第34項所述之進行資料卷複製的方法,其中只要該目的資料卷之資料卷區塊更新表的一致性檢查(Sync Process DstVBUT Entry Consistency Check)程序的該三個判斷步驟的任一的判斷結果為“是”,則回傳該“偽(FALSE)”訊息。
  36. 如申請專利範圍第34項所述之進行資料卷複製的方法,其中該目的資料卷之資料卷區塊更新表的一致性檢查(Sync Process DstVBUT Entry Consistency Check)程序的該三個判斷步驟的所有判斷結果皆為“否”,則回傳一“真(TRUE)”訊息。
  37. 如申請專利範圍第1項或第15項所述之進行資料卷複製的方法,其中該背景拷貝來源資料卷至目的資料卷(Background Copy of Source to Destination Volume)程序係包含以下步驟:對於該目的資料卷的一資料卷區塊更新表(VBUT)的每一項目(VBUT entry)所代表的每一資料區塊,呼叫並執行一檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination)程序;以及判斷是否還有任何該資料卷區塊更新表(VBUT)中所紀錄的資料區塊尚未進行同步複製(sync)。
  38. 如申請專利範圍第37項所述之進行資料卷複製的方法,如果判斷結果是該資料卷區塊更新表(VBUT)中還有資料區塊尚未進行同步複製(sync),則將該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中該第四欄位所紀錄的下一個要進行同步複製的資料區塊的索引號(DstVLT.NxtSynBlk)增加1個單位。
  39. 如申請專利範圍第37項所述之進行資料卷複製的方法,如果判斷結果是該資料卷區塊更新表(VBUT)中所有的資料區塊都已同步複製(sync)完成,則設定該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中該第四欄位(DstVLT.NxtSynBlk)的值為一預設值,該預設值代表所有資料區塊的同步複製皆已完成。
  40. 如申請專利範圍第39項所述之進行資料卷複製的方法,其中該預設值是“-1”。
  41. 如申請專利範圍第18項或第20項或第37項所述之進行資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序係包含以下步驟:判斷該目的資料卷的一資料卷區塊更新表(VBUT)中一正進行處理之資料區塊的序號(DstVBUT.SeqNum)是否小於該第二變數的值;判斷該目的資料卷是否已經與該來源資料卷分離(split),並且該來源資料卷的一資料卷區塊更新表(VBUT)中一正進行處理之資料區塊的序號(SrcVBUT.SeqNum)是否大於或等於該第一變數的值;以及執行一檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)的程序,並且檢查該程序是否回傳一“偽(FALSE)”值。
  42. 如申請專利範圍第41項所述之進行資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序更包含以下步驟:拷貝該來源資料卷的區塊資料至該目的資料卷;以及設定該目的資料卷的該資料卷區塊更新表(VBUT)中該正進行處理之資料區塊的序號(DstVBUT.SeqNum)等於該第二變數的值。
  43. 如申請專利範圍第18項或第20項或第37項所述之進行資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序係包含以下步驟:判斷該目的資料卷的一資料卷區塊更新表(VBUT)中一正進行處理之資料區塊的序號(DstVBUT.SeqNum)是否小於該第二變數的值;判斷該目的資料卷是否已經與該來源資料卷分離(split),並且該來源資料卷的一資料卷區塊更新表(VBUT)中一正進行處理之資料區塊的序號(SrcVBUT.SeqNum)是否大於或等於該第一變數的值;以及標示該目的資料卷的該資料卷區塊更新表(VBUT)中對應該正進行處理之資料區塊的一項目(entry)為“資料無效(DATA INVALID)”。
  44. 如申請專利範圍第18項或第20項或第37項所述之進行資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的 資料卷(Check/Copy Block from Source to Destination Volume)的程序係包含以下步驟:判斷該目的資料卷的一資料卷區塊更新表(VBUT)中一正進行處理之資料區塊的序號(DstVBUT.SeqNum)是否小於該第二變數的值;判斷該目的資料卷是否已經與該來源資料卷分離(split);以及跳過該正進行處理之資料區塊,如果判斷結果是該目的資料卷已經與該來源資料卷分離;或者,發出一失敗訊息,如果判斷結果是該目的資料卷沒有與該來源資料卷分離。
  45. 如申請專利範圍第34項或第41項所述之進行資料卷複製的方法,其中該檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)的程序係包含以下五個判斷步驟:判斷該目的資料卷的該資料卷區塊更新表(VBUT)中該正進行處理之資料區塊的序號(DstVBUT.SeqNum)是否等於一初始設定值(initial setting value);判斷該目的資料卷的該資料卷區塊更新表(VBUT)中該正進行處理之資料區塊的序號(DstVBUT.SeqNum)所對應的該目的資料卷的該資料卷記錄表(VLT)的項目(entry)是否找不到,或者雖有找到但是讀不到或兩者資料不一致;判斷該目的資料卷的該資料卷記錄表(VLT)中目前正進行的項目(entry)的該第二欄位32所記載的操作代碼(DstVLT.OpCod)是否不是該代表目的資料卷狀態的操作代碼,或者該目的資料卷該資料卷記錄表(VLT)中目前正進行的項目(entry)的一第三欄位33所記載的另一產生關聯之資料卷的身分(DstVLT.AltVolID)是否不是其對應的該來源資料卷的身分代 碼;判斷與該目的資料卷的該資料卷區塊更新表(VBUT)中該正進行處理之資料區塊的序號(DstVBUT.SeqNum)相同的該來源資料卷的該資料卷記錄表(VLT)中目前正進行的項目(entry)的該第四欄位所記載的另一資料卷的序號(SrcVLT.AltVolSN)的該來源資料卷的該資料卷記錄表(VLT)中的項目(entry),是否找不到,或者雖有找到但是讀不到或記載的資料不一致;以及判斷該來源資料卷的該資料卷區塊更新表(VBUT)中該正進行處理之資料區塊的序號(SrcVBUT.SeqNum)是否大於或等於該來源資料卷的該資料卷記錄表(VLT)中目前正進行的項目(entry)的該第一欄位31所記載的序號(SrcVLT.SeqNum)。
  46. 如申請專利範圍第45項所述之進行資料卷複製的方法,其中只要該檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)的程序的該五個判斷步驟的任一的判斷結果為“是”,則回傳該“偽(FALSE)”訊息。
  47. 如申請專利範圍第45項所述之進行資料卷複製的方法,其中該檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)的程序的該五個判斷步驟的所有判斷結果皆為“否”,則回傳一“真(TRUE)”訊息。
  48. 如申請專利範圍第45項所述之進行資料卷複製的方法,其中該初始設定值(initial setting value)是“0(null)”。
  49. 一種磁碟陣列控制器,可應用於進行一實體儲存裝置陣列(PSD Array)中複數個資料卷間的資料複製,係包含:一記憶體,用來緩衝傳送於一主機及該實體儲存裝置陣列之間通過該磁碟陣列控制器的資料;以及一中央處理電路,利用該複數個資料卷各自專屬的一資料卷記 錄表(VLT)與一資料卷區塊更新表(VBUT)進行資料複製作業;其中,該資料卷記錄表(VLT)的一項目(entry)具有一第一欄位,用於紀錄一序號(SeqNum)的、一第二欄位,用於紀錄一操作代碼(OpCod)、一第三欄位,用於紀錄與之產生關係的一另一資料卷身分(AltVolID)、以及一第四欄位,用於紀錄與之產生關聯的該另一資料卷的該資料卷記錄表(VLT)的該項目(VLT entry)的序號(AltVolSN)或者紀錄本身下一個要進行複製的資料區塊(block)的一索引號(NxtSynBlk);以及其中,該資料卷區塊更新表(VBUT)的一項目(entry)紀錄一資料區塊(block)的更新狀態資訊。
  50. 一種進行資料卷複製的方法,其包含:形成一第一鏡射對,該第一鏡射對係由一第一資料卷與一第二資料卷所組成;管理該第一資料卷的一資料卷記錄表(VLT)與一資料卷區塊更新表(VBUT),其中,該資料卷記錄表(VLT)用於紀錄該第一資料卷與該第二資料卷形成一鏡射對後的同步狀態資訊,該資料卷區塊更新表(VBUT)用於紀錄該第一資料卷的每一資料區塊(block)的更新狀態資訊,以進行該第一資料卷與該第二資料卷間的同步複製(sync)作業;形成一第二鏡射對,該第二鏡射對係由該第一資料卷與一第三資料卷所組成;以及管理該第一資料卷的該資料卷記錄表(VLT)與該資料卷區塊更新表(VBUT),其中,該資料卷記錄表(VLT)用於紀錄該第一資料卷與該第三資料卷形成一鏡射對後的同步狀態資訊,該資料卷區塊更新表(VBUT)用於紀錄該第一資料卷的每一資料區塊(block)的更新狀態資訊,以進行該第一資料卷與該第三資 料卷間的同步複製作業。
  51. 如申請專利範圍第50項所述之進行資料卷複製的方法,其中該第一鏡射對中的該第一資料卷與該第二資料卷間係進行資料卷拷貝(volume copy)或資料卷鏡像(volume mirror)兩種複製作業的其中之一。
  52. 如申請專利範圍第50項所述之進行資料卷複製的方法,其中該第二鏡射對中的該第一資料卷與該第三資料卷間係進行資料卷拷貝(volume copy)或資料卷鏡像(volume mirror)兩種複製作業的其中之一。
TW098146524A 2009-01-23 2009-12-31 單一架構下進行資料卷複製的方法及其裝置 TWI451243B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14665409P 2009-01-23 2009-01-23

Publications (2)

Publication Number Publication Date
TW201028844A TW201028844A (en) 2010-08-01
TWI451243B true TWI451243B (zh) 2014-09-01

Family

ID=42199285

Family Applications (2)

Application Number Title Priority Date Filing Date
TW103125719A TWI526823B (zh) 2009-01-23 2009-12-31 單一架構下進行資料卷複製的方法及其裝置
TW098146524A TWI451243B (zh) 2009-01-23 2009-12-31 單一架構下進行資料卷複製的方法及其裝置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW103125719A TWI526823B (zh) 2009-01-23 2009-12-31 單一架構下進行資料卷複製的方法及其裝置

Country Status (5)

Country Link
US (2) US8645648B2 (zh)
EP (2) EP2434403B1 (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
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US9104623B2 (en) 2010-12-14 2015-08-11 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US20130339298A1 (en) 2012-06-13 2013-12-19 Commvault Systems, Inc. Collaborative backup 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
US9811427B2 (en) 2014-04-02 2017-11-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
US10592357B2 (en) 2015-12-30 2020-03-17 Commvault Systems, Inc. Distributed file system in a distributed deduplication data storage system
US10474548B2 (en) 2016-09-30 2019-11-12 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, using ping monitoring of target virtual machines
US10509581B1 (en) * 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
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
US10282258B1 (en) 2017-11-30 2019-05-07 International Business Machines Corporation Device reservation state preservation in data mirroring
US11343314B1 (en) 2018-04-30 2022-05-24 Amazon Technologies, Inc. Stream-based logging for distributed storage systems
US10459655B1 (en) * 2018-04-30 2019-10-29 Amazon Technologies, Inc. Rapid volume backup generation from distributed replica
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

Citations (4)

* 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
US20070022266A1 (en) * 2003-09-01 2007-01-25 Hitachi, Ltd. Storage system, method of controlling storage system, and storage device
TW200729167A (en) * 2005-10-17 2007-08-01 Toshiba Kk Information storage medium, information reproducing apparatus, and information reproducing method
EP1816563A2 (en) * 2006-01-26 2007-08-08 Infortrend Technology, Inc. Method of managing data snapshot images in a storage system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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 株式会社日立製作所 ボリューム提供システム及び方法
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

Patent Citations (4)

* 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
US20070022266A1 (en) * 2003-09-01 2007-01-25 Hitachi, Ltd. Storage system, method of controlling storage system, and storage device
TW200729167A (en) * 2005-10-17 2007-08-01 Toshiba Kk Information storage medium, information reproducing apparatus, and information reproducing method
EP1816563A2 (en) * 2006-01-26 2007-08-08 Infortrend Technology, Inc. Method of managing data snapshot images in a storage system

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI451243B (zh) 單一架構下進行資料卷複製的方法及其裝置
TWI414992B (zh) 遠端非同步資料卷複製的方法及其裝置
CA3121919C (en) System and method for augmenting database applications with blockchain technology
JP4199993B2 (ja) スナップショット取得方法
KR102378367B1 (ko) 분산 파일 시스템
US7343467B2 (en) Method to perform parallel data migration in a clustered storage environment
US8010760B2 (en) Storage system performing virtual volume backup and method thereof
JP2006268829A (ja) ストレージシステム間でオブジェクトをミラー化する方法と装置
JP2007079774A (ja) ファイルシステムの構築方法
JP2005301590A (ja) ストレージシステム及びデータ複製方法
JP2005309550A (ja) リモートコピー方法及びリモートコピーシステム
US11099768B2 (en) Transitioning from an original device to a new device within a data storage array
WO2016192496A1 (zh) 数据迁移处理方法及装置
US10025521B2 (en) Obtaining additional data storage from another data storage system
WO2023061266A1 (zh) 逻辑卷构建方法、装置、设备、可读存储介质和程序产品
CN116339609A (zh) 一种数据处理方法以及存储设备
JP5032620B2 (ja) ディスクアレイ装置及び同ディスクアレイ装置に適用される論理ディスク再構成方法
US20100049915A1 (en) Virtual disk timesharing