TW201028844A - Method and apparatus for performing volume replication using unified architecture - Google Patents
Method and apparatus for performing volume replication using unified architecture Download PDFInfo
- Publication number
- TW201028844A TW201028844A TW098146524A TW98146524A TW201028844A TW 201028844 A TW201028844 A TW 201028844A TW 098146524 A TW098146524 A TW 098146524A TW 98146524 A TW98146524 A TW 98146524A TW 201028844 A TW201028844 A TW 201028844A
- Authority
- TW
- Taiwan
- Prior art keywords
- data volume
- volume
- data
- block
- destination
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2082—Data synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2071—Error 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
201028844 . 六、發明說明: , 【發明所屬之技術領域】 本發明係關於一種資料卷複製的方法及其裝置,尤指 一種在單一架構下進行資料卷拷貝(V〇lUme C〇i)y)與資料卷 鏡像(volume mirror)的方法及其裝置。 【先前技術】 在現代社會中,儲存裝置被廣泛地應用於各式各樣的電腦系 統或儲存系統之中。依照儲存的目的,有些儲存裝置是用來儲存 系統運作時需要常態性存取的資料,此類儲存裝置稱為主要儲存 裝置(primary storage device)。而另一些儲存裝置則是用來儲存主 要儲存裝置的備份資料,此類儲存裝置稱為次要儲存裝置 (secondary storage device),以便當主要儲存裝置失效或損壞時, 可以取代主要儲存裝置而讓系統維持正常運作,以增加系統的可 靠性(reliability)。 儲存裝置可以是硬式磁碟機(hard disk drive)、磁帶(tape)、記 憶體紀錄裝置(memory drive)、光儲存記錄裝置(〇ptical st〇rage drive)或其他可以用於储存資料的儲存裝置。這些儲存裝置都稱為 「實體儲存裝置」(physical storage device,PSD)。 儲存系統(或電腦系統)在管理資料時,實際上並不是以一個 實鱧儲存裝置(PSD)為單位,而是利用儲存虛擬化(st〇rage virtualization)技術,將一或數個實體儲存裝置(psD)的不同區段 結合成一個邏輯碟(Logical Drive,LD)或分割區(partiti〇n)。若是 控制器將邏輯碟(Logical Drive,LD)或分割區(partiti〇n)映射(map) 出去供主機(host)存取,則稱為一個邏輯單元(1〇gicai unit 201028844 • number,LUN )。一個邏輯碟(Logical Drive,LD)或分割區(partition) M 可以進一步地劃分為一或多個資料館存區域(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 v〇iuine)進 行上述操作’則可以在不影響來源資料卷(source volume)的績效下 _ 提供主機(host)資料存取的服務。 「資料卷拷貝(volume copy)」與「資料卷鏡像(v〇lurne mirror)」 疋業界常用的兩種資料卷複製方式。其中,資料卷拷貝(volume copy)是用於拷貝複製作業一開始之時間點(也是分離(split)指令下 達時間點)的來源資料卷(source volume)的資料,通常只有一次性 拷貝;資料卷鏡像(volume mirror)則是兩資料卷間要一直維持著資 料同步的關係’也就是目的資料卷是來源資料卷的鏡像(mirror)。 在習知技術中,資料卷拷貝(volume copy)與資料卷鏡像(volume mirror)是用不同的架構來實行此兩種資料複製方式。而且,在習 知技術中’一鏡射對(mirroring pair)中的兩資料卷(來源資料卷與 201028844 • 目的資料卷)需各自管理一個追蹤表(tracking table),用來紀錄兩 „ 資料卷每一相對應區塊(block)的鏡射狀態、以及每一區塊資料在 鏡射(mirroring)的過程中有沒有被更改。一鏡射對(mirroring pair) 需要二個各自儲存在來源資料卷(source volume)與目的資料卷 (destination volume)的追蹤表(tracking table)。如果資料卷 A 分別 和資料卷B、C、D建立鏡射對(mirroring pair)的關係,則資料卷a 就需管理3個追縱表(tracking table)。上述習知技術的特性讓資料 卷拷貝(volume copy)與資料卷鏡像(v〇iuine mirror)作業執行起來 贏既複雜又沒有效率。 9 因此,如果有單一架構可以涵蓋「資料卷拷貝(v〇hmieC〇py)」 與「資料卷鏡像(volume mirror)」的實施、且簡化追縱表(tracking -table)的管理:或者是說,如果有單一架構可以讓「資料卷拷貝 (volumecopy)」與「資料卷鏡像(vollnnemirror)」只是同一資料卷 同步函數(single unified volume synchronization function)的操作選 項(operational options)的話,如此一定可以有效地促進儲存系統的 運作績效。 【發明内容】 本發明之目的係在提供一種在單一架構下即可進行資料卷拷 貝(volume copy)、資料卷鏡像(v〇iume mirr〇r)等多種不同方式之資 料卷複製的方法及其裝置。 依據本發明之一特色,提出一種進行資料卷複製的方法,讓 一目的資料卷與一來源資料卷的資料同步(sync),其包含:在該來 源資料卷的一資料卷記錄表(VLT)中配置一第一項目(entry),並且 初始化該第一項目的複數個攔位,包括設定一第一攔位的序號為 201028844 一初始設定值(initial setting value)、以及設定一第二攔位的操作代 碼(OpCod)為一代表來源資料卷狀態的操作代碼;其中更指派該第 一欄位的該初始設定值(initial setting value)給一第一變數;在該目 的資料卷的一資料卷記錄表(VLT)中配置一第二項目(entry),並且 初始化該第二項目的複數個欄位,包括設定一第二攔位的操作代 碼(OpCod)為一代表目的資料卷狀態的操作代碼;增加該目的資料 卷的一主要序號變數的值,並將該主要序號變數的值拷貝至該目 的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中紀錄序號 的一第一棚位,以及拷貝至該來源資料卷的該資料卷記錄表(vlt) 的該第一項目(entry)中紀錄另一資料卷的Vlt entry的序號的一第 四欄位;其中更指派該目的資料卷的該主要序號變數的現行值給 一第二變數;設定該目的資料卷的該資料卷記錄表(VLT)的該第二 項目(entry)中一第四欄位為一起始位址,其中該第四攔位用於紀錄 下一個要進行同步複製的資料區塊的索引號 (DstVLT.NxtSynBlk);以及由該起始位址開始,執行一背景拷貝來 源資料卷至目的資料卷(Background Copy 〇f Source to Destination) 的程序。 依據本發明之另一特色,提出一種進行資料卷複製的方法, 係應用於一目的資料卷與一來源資料卷在一同步複製(sync)作業 的過程、完成之時或完成之後發生一分離事件,其包含:在該來 源資料卷的一資料卷記錄表(VLT)中配置一第一項目(entry),並且 初始化該第一項目的複數個欄位,包括設定一第一攔位的序號為 一初始設定值(initial setting value)、以及設定一第二攔位的操作代 碼(OpCod)為一代表來源資料卷狀態的操作代碼;在該目的資料卷 的一資料卷記錄表(VLT)中配置一第二項目(entry),並且初始化該 第二項目的複數個攔位,包括設定一第二攔位的操作代碼(〇pC〇d) 201028844 為一代表目的資料卷狀態的操作代碼;增加該目的資料卷的—主 要序號變數的值’並將該主要序號變數的值拷貝至該目的資料卷 的該資料卷記錄表(VLT)的該第二項目(entry)中紀錄序號的一第— 欄位’以及拷貝至該來源資料卷的該資料卷記錄表(VLT)的該第— 項目(entry)中紀錄另一資料卷的vLT entry的序號的一第四棚位; 其中更指派該目的資料卷的該主要序號變數的現行值給一第二變 數;設定該目的資料卷的該資料卷記錄表(VLT)的該第二項目 (entry)中一第四欄位為一起始位址,其中該第四攔位用於紀錄下一 個要進行同步複製的資料區塊的索引號(DstVLT.NxtSynBlk);増加 該來源資料卷的一主要序號變數的值,並將該來源資料卷的該主 要序號變數的值拷貝至該來源資料卷的該資料卷記錄表(VLT)的 該第一項目(entry)中紀錄序號的該第一欄位;其中更指派該來源資 料卷的該主要序號變數的值給該第一變數;在該目的資料卷的該 資料卷記錄表(VLT)中配置一第三頊目(entry),並且初始化該第= 項目的複數個欄位,包括設定一第二欄位的操作代碼(〇pC〇d)為一 代表分離狀態的操作代瑪;再次增加該目的資料卷的該主要序號 變數的值並將之指派給一第三變數,並將增加後的該目的資料卷 的該主要序號變數的值拷貝至該目的資料卷的該資料卷記錄表 (VLT)的該第三項目(entry)中紀錄序號的一第一攔位;以及判斷該 目的資料卷與該來源資料卷的該同步複製(sync)作業是否已經完 成。 依據本發明之又一特色,提出一種磁碟陣列控制器,可應用於進 行一實體儲存裝置陣列(PSD Array)中複數個資料卷間的資料複 製,係包含:一記憶體,用來緩衝傳送於一主機及該實體儲存裝置陣 列之間通過該磁碟陣列控制器的資料;以及一中央處理電路,利用該複 數個資料卷各自專屬的一資料卷記錄表(VLT)與一資料卷區塊更 201028844 - 新表(VBUT)進行資料複製作業;其中,該資料卷記錄表(VLT)& . 一項目(entry)具有一第一攔位,用於紀錄一序號(SeqNum)的、一 第二攔位’用於紀錄一操作代碼(OpCod)、一第三攔位,用於紀錄 與之產生關係的一另一資料卷身分(AltVolID)、以及一第四攔位, 用於紀錄與之產生關聯的該另一資料卷的該資料卷記錄表(VLT) 的該項目(VLT entry)的序號(AltVolSN)或者紀錄本身下一個要進 行複製的資料區塊(block)的一索引號(NxtSynBlk);以及其中,該 資料卷區塊更新表(VBUT)的一項目(entry)紀錄一資料區塊(block) 巍的更新狀態資訊。 依據本發明之又一特色,提出一種進行資料卷複製的方法, 其包含:形成一第一鏡射對,該第一鏡射對係由一第一資料卷與 一第二資料卷所組成;管理該第一資料卷的一資料卷記錄表(VLT) 與一資料卷區塊更新表(VBUT),其中,該資料卷記錄表(VLT)用 於紀錄該第一資料卷與該第二資料卷形成一鏡射對後的同步狀態 資訊,該資料卷區塊更新表(VBUT)用於紀錄該第一資料卷的每一 資料區塊(block)的更新狀態資訊;形成一第二鏡射對,該第二鏡 射對係由該第一資料卷與一第三資料卷所組成;以及管理該第一
W 資料卷的該資料卷記錄表(VLT)與該資料卷區塊更新表(VBUT), 其中,該資料卷記錄表(VLT)用於紀錄該第一資料卷與該第三資料 卷形成一鏡射對後的同步狀態資訊,該資料卷區塊更新表(VBUT) 用於紀錄該第一資料卷的每一資料區塊(block)的更新狀態資訊。 【實施方式】 本發明主要是提出一種在單一架構下實現「資料卷拷貝 (volume copy)」與「資料卷鏡像(v〇lume mirror)」等多種資料卷複 201028844 製的方式。每一資料卷(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 v〇luine)寫 入資料;否則要同時對同一鏡射對(mirroring pair)中的兩資料卷的 對應區塊(.block)寫入相同的資料。第一次的同步複製(Sync)(或稱 為鏡射(mirroring))完成後,鏡射對(mirroring pair)中的兩資料卷 進入同步(synchronization)的狀態,因此之後任何來源資料卷 (source volume)的資料更動都必須同時複製至目的資料卷 (destination volume)。此時的目的資料卷(destination volume)可以 稱做是來源資料卷(source volume)的「鏡像(mirror)依照應用的 需要,可以設定在某個時間點中止鏡射對(mirroring pair)中兩資料 卷間的鏡像(mirror)關係,此操作稱為「分離(split)」e分離(sp叫 201028844 *和7的下達謂目的資料卷(destination volume)保存了分離(split) .指令下達的時間點的來源資料卷(source volume)的狀態;且意謂此 時間點之後’切斷來源資料卷(s〇urce v〇lume)與目的資料卷 (destination volume)間「鏡射對」的關係,該兩資料卷可以各自獨 立地被存取或更新’並不需維持彼此間各自更動資料的一致。 分離(split)操作可能發生在來源資料卷(s〇urce volume)鏡射 (mirroring)至目的資料卷(仏如心⑽v〇iume)期間或之後的任何時 間點’或者甚至一直沒有分離(spHt)操作發生。其中一種做法 籲是:在鏡射(mirroring)作業一開始馬上下達分離(spHt)指令。此種 方式疋要複製來源資料卷(s〇urce v〇lume)在命令下達時間點(即分 離(split)時間點)的狀態,且通常只有一次性命令,稱為「資料卷 拷貝(volume copy)」^相對的,若是兩資料卷間基本上是維持著 鏡像(mirror)關係,且在同步複製(sync)的期間、完成之時、或完 成之後一直沒有任何分離(split)事件發生,兩資料卷間一直維持 在同步(synchronization)狀態,此種資料卷複製的關係稱為「資料 卷鏡像(volume mirror)」。 φ 請參照第i圖,係為應用本發明之電腦系統1的硬體架構示 意圖。電腦系統1包含有一主機(Host)ll與一儲存虛擬化子系統 (Storage Virtualizati〇n Subsystem,SVS)12。雖於此實施例當中僅 有一主機11與一儲存虛擬化子系統12相互連接,實際應用時可 用一主機11連接多個儲存虛擬化子系統12,或是多個主機U連 接一個儲存虛擬化子系統12,或是多主機11連接多儲存虛擬化子 系統12。 主機11可為一主機電腦’如一伺服器系統、工作站、個人電 腦系統等。儲存虛擬化子系統12包含有一儲存虛擬化控制器 11 201028844 • (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儲存虛擬化為一至數個邏輯儲 存裝置,並呈現給主機Π存取資料。主機η可以決定該一至數 個邏輯儲存裝置要規劃為幾個資料卷(v〇lume);每個資料卷 (volume)都有自己的檔案系統。一資料卷(v〇lume)可能涵蓋一至數 個實體儲存裝置(PSD) ’或者其部份區域,或者只有一個實鱧儲存 裝置(PSD)的部分區域。帛i圖中為方便表示,假設一個資料卷 (volume)的儲存區域剛好涵蓋一個實體儲存裝置(psD);但是本 發明的其他實施例並不以此為限,如前所述,本發明中所稱一個 12 201028844 f 資料卷(volume)的範圍可能是一個實體儲存裝置(PSD)的部分區 , 域、或是涵蓋一至數個實體儲存裝置(PSD),或者其部份區域。 電腦系統1在進行資料卷(volume)複製時,係將整個來源資料 卷(source volume)的全部内容完整地複製至目的資料卷 (destination volume)。如以第i圖為例,可能是將資料卷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)的更新 狀態資訊。依據本發明之另一實施例,本發明設計每一資料卷, 13 201028844 # 在與另一資料卷間形成一鏡射對(mirroring pair)時,即建立一專屬 的資料卷記錄表(Volume Log Table,VLT)30用以紀錄兩資料卷間 的同步狀態資訊,以及建立一專屬的資料卷區塊更新表(Volume Block Update Table,VBUT)40用以紀錄本身每一資料區塊(block) 的更新狀態資訊。 第2A圖僅繪示VLT 30中一個項目(entry)所包含的欄位做為 代表。實際上運作時,一個VLT 30可能包含有一至複數個VLT 項目(VLTentry),每次該VLT30擁有者與其他資料卷間建立新關 _ 係或做狀態改變時,即會產生一個新的VLT entry。一個VLT entry 包含了 4個欄位:第一欄位31紀錄序號(SeqNum),第二欄位32 紀錄操作代碼(OpCod),第三攔位33紀錄與之產生關係的另一資 料卷的身分(AltVolID),而第四欄位34的紀錄内容有兩種可能: 一種是紀錄與之產生關聯的另一資料卷的VLT entry的序號 (AltVolSN)、一種是紀錄自己下一個要進行複製(synchronizing)的 資料區塊(block)的索引號(NxtSynBlk)。以上四個攔位的順序只是 本發明的一實施例,於其他實施例中,該四個欄位可以其他順序 A 排列;只要能完整記載以上四個欄位的資訊,即應視為在本發明 的精神與範圍之中。該四個欄位的細節更進一步說明如下。 每一 VLT entry建立之初,其第一欄位31的序號(SeqNum)是 一初始設定值(initial setting value)。該初始設定值(initial setting value),若以來源資料卷(source volume)為例說明,可以為 “〇(null)”,表示擁有該VLT 30的來源資料卷(source volume)與第 t 三攔位33所紀錄的目的資料卷(destination volume)之間還未分離 (split)。之後若是進行分離作業,則該序號(SeqNum)的值便由一主 要序號變數(MstSN,Master Sequence Number)指派。該主要序號 變數,若以序號(SeqNum)的初始設定值(initial setting value)是 14 201028844 “O(null)”的例子來說,是由“1”開始累加;亦即,第一個進入分離 (split)狀態的VLT entry的序號是“1”、第二個是“2”…其餘以此類 推。總而言之,只要VLT entry的第一欄位31的值不是“〇,,,即表 示擁有該VLT 30的來源資料卷(source volume)與第三攔位33所紀 錄的目的資料卷(destination volume)之間已經分離(Spiit);反之, 若是“〇”代表還未分離(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”時’ 15 201028844 序號(SeqNum)是“ 1 ”即表示來源資料卷(source volume)尚未與目的 資料卷(destination volume)分離(split);而分離(split)之後的 VLT entry的序號(SeqNum)則由初始設定值(initial setting value)加上一 偏移量(offset),再指派給該VLT entry。 本發明定義三種VLT entry的第二櫊位32的操作代碼 (OpCod),表示資料卷處於三種不同的狀態,列舉如下: SYNSRC :表示該資料卷在兩資料卷同步關係中扮演「來源資 料卷(sourcevolume)」的角色; SYNDST:表示該資料卷在兩資料卷同步關係中扮演「目的資 料卷(destination volume)」的角色; SYNSPL :表示該目的資料卷(destination volume)已經從來源 資料卷(source volume)分離(spilt)出來。 以上三種操作代碼(OpCod)亦會影響VLT 30之第四攔位34的 紀錄内容。若是同一 VLT entry的第二攔位32的操作代碼是 “SYNSRC”或“SYNSPL”,則第四攔位34紀錄:與之產生關聯的另 h 料卷的 VLT entry 的序號(AltVolSN),若是同-—VLT entry 的 第二攔位32的操作代碼是“SYNDST”,則第四欄位34紀錄:自己 下一個要進行複製(synchronizing)的資料區塊(block)的索引號 (NxtSynBlk)。 值得注意的是,雖然前文以“SYNSRC”、“SYNDST”以及 “SYNSPL”分別表示該資料卷當時的狀態是“來源資料卷(source volume)”、“ 目的資料卷(destination volume)”或“已經分離(SpUt),,; 但本發明不以此為限,在其他實施例中可以用其他代號來表示該 三種狀態。 第2B圖僅繪示VBUT 40中一個項目(entry)所包含的攔位作 為代表。實際上運作時,一個VBUT40包含有複數個VBUT項目 201028844 • (VBUT entry),每一 VBUT entry代表其所屬的資料卷的一個資料 區塊(block);也就是該資料卷有多少資料區塊,其VBUT 40就對 應有多少VBUT entry。一個VBUT entry可以包含2個欄位:第一 欄位41是保留欄位;第二欄位42紀錄其對應的VLT entry的序 號’表示該VBUT entry所對應的資料區塊的資料是因該序號的 VLT entry的事件而更新,藉此追蹤該資料卷的每一資料區塊的狀 態’例如:該資料區塊是否已經同步(synchronize)、該資料區塊是 否在同步後又因主機11存取資料而產生改變。一個VBUT entry 0的資料長度可以是32 bits,或是其他適當的長度^在其他實施例 中’一個VBUT entry未必要包含兩個欄位,若是需要更加精簡, 可以只包含一個第二攔位42即可。 本發明所提出之單一架構下實現「資料卷拷貝(v〇luine copy)」 與「資料卷鏡像(volume mirror)」的複製方法,即是利用VLT 30 和VBUT 40的互相操作應用而實現,其詳細内容將於後文中描 述。而應用本發明方法的裝置是第1圖中的儲存虛擬化控制器 (SVC)13 ’其一實施例的架構示意圖如第3圖所示。 ^ 儲存虚擬化控制器13之主要目的是將實體儲存裝置
W (PSD)之各區段之組合映射(map)形成主機u可見之邏輯儲存 裝置。由該主機11發出之輪出入請求(Host 10)於控制器13 接收之後會先被剖析並解譯,且相關之操作及資料會被編譯 成實體儲存裝置(PSD)的輸出入請求。 此實施例中’ SVC 13包含有一主機端輸出入裝置連結控制器 (Host-side 10 Device Interconnect Controller)131、一 中央處理電路 (Central Processing Circuit,CPC)132、一 記憶禮 133 以及一裝置 k 輸出入裝置連結控制器(Device-side 10 Device Interconnect Controller)134。此處雖以分開的功能方塊描述,但於實際應用時, 17 201028844 部份甚至全部的功能方塊(functiona]l block)皆可整合在一單一晶 片上。 主機端輸出入裝置連結控制器131連接至主機11及中央處理 電路132’用來作為儲存虛擬化控制器13及主機丨丨之間的介面及 緩衝,其可接收由主機11傳來的輸出入請求和相關資料,並且將 其轉換至中央處理電路丨32。 記憶體133係連接於中央處理電路132,其作為一緩衝器,用 來緩衝傳送於主機11及PSD陣列14之間通過中央處理電路132 的資料。實際應用時,記憶體133可以是DRAM (動態隨機存取 δ己憶体 Dynamic Random Access Memory),該 DRAM 亦可為 SDRAM (同步動態隨機存取記憶體Synchr〇n〇us Dynamic Rand〇m Access Memory ) 〇 裝置端輸出入裝置連結控制器134係為介於中央處理電路 132及PSD陣列14間,用來作為儲存虛擬化控制器13及1>§1:)陣 列14間之介面及緩衝。裝置端輸出入裝置連結控制器134接收由
中央處理電路132傳入之輸出入請求及相關資料,並將其映射及/ 或傳送至PSD陣列14。 中央處理電路132是儲存虛擬化控制器13之運算核心。當中 央處理電路132接收到來自主機端輸出入裝置連結控制器131之 主機輸出入請求時,中央處理電路132會將此輸出入請求剖析, 並且執行一些操作以回應此輸出入請求,以及將所請求之資料及/ 或報告及/或資訊’由儲存虛擬化控制器13經由主機端輸出入 連結控制器131傳送至主機U。本發明之資料卷複製的方法可= 程式編碼的方式實現,且將該程式編碼儲存於中央處理電路 内部的記憶鱧,例如:ROM (圖中沒有繪示)之中,或是儲存於 18 201028844 中央處理電路132外部 的圮憶體133中,以供中央處理電路132 執行。 實行本發明之資料卷複製的方法有__些需要注意的原則,說 明如下:
第原貝】任何正在進行同步複製作業(sync operation)的資料 卷^不可被才曰派為另一同步複製作業的目的資料卷(仏仙⑷的 volume)。換句話說’如果需要某一正參與同步複製作業的資料卷 做為另—同步複製作_目的資料卷,則需要先將正在進行的同 步複製作業停止且將該資料卷分離出來,該資料卷才能做為另一 同步複製作業的目的資料卷。 第二原則、一個正在進行同步複製作業且未分離(unspi⑴的目 的資料卷(destination v〇iume),不能單獨呈現出來讓主機(11〇叫存 取資料,只有來源資料卷(source v〇lume)可以做為主機存取的標 的°因為這樣的特性’如果目的資料卷暫時下線(〇ffline),它可以 再回到線上並以原來的同步組態(Sync c〇nfigUrati〇n)讓同步複製作 業繼續進行。同樣的理由’因為目的資料卷(destination volume)不 能做為主機之輸出入要求的單獨標的,所以它也不可以做為任何 其他同步複製作業的來源資料卷(source volume),除非它已經分離 (split)。 第三原則、在一同步複製作業進行期間且在來源資料卷 (source volume)與目的資料卷(destination volume)分離之前,若是 有「再同步(Resync)」作業啟動實施於該兩資料卷,該兩資料卷必 須立即經由下列步驟分離(split):設定來源資料卷(source volume) 的VLT entry的序號為最新的(up-to-date)序號,且增加一個 “SYNSPL entry”到目的資料卷(destination volume)的 VLT 之中。之 後,再同步(Resync)作業即可啟動實施。 19 201028844 第四原則、在一同步複製作業進行期間且在兩資料卷分離之 前,若是目的資料卷(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”上0 在這種情況下,如果目前的同步複製作業尚未結束,任何嚐試進 行再同步(Resync)作業的動作皆會被禁止,直到目前的同步複製作 業結束。上述將錯誤位元(error bit)設立在來源資料卷(source volume)的VLT entry上只是本發明的一實施例,在其他實施例中, 錯誤位元(error bit)亦可以設立在目的資料卷(destination volume) 的VLT entry上,或者另外將錯誤位元(error bit)獨立儲存在另一紀 錄表之中。 在說明實行本發明方法之詳細流程前,先將一些使用代號的 定義說明如下: 20 201028844
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”變數。接下來 21 201028844 進入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圖)、以及由節點A211進入後因出現主機輸 出入要求(Host 10)而啟動的程序(描述其詳細流程的第4B圖與第 4C圖將於後文中說明)。 step 208 所呼叫的“Background Copy of Source to Destination” 程序主要是在背景執行將來源資料卷的資料拷貝至目的資料卷的 作業。在此作業進行期間,會有一判斷條件不停地詢問:是否所 有的資料拷貝皆已完成(steP 209)?若是,則所有的流程結束;否 則,繼續進行“Background Copy of Source to Destination”程序。 “Background Copy 〇f Source to Destination”程序的詳細内容將於 第6圖中介紹。 如前文所提及的,要將一個容量龐大的來源資料卷完整地拷 貝至目的資料卷是需要一段作業時間。在此作業時間’主機1丨仍 然會如往常一般隨時對來源資料卷存取資料。請注意,由於此時 目的資料卷間尚未與來源資料卷分離(split),根據前文所述的第二 原則:一個正在進打同步複製作業且未分離(unsplit)的目的資料 22 201028844 •卷’不能單獨呈現出來讓主機(host)存取資料。因此,在此流程中 只有來源資料卷可以做為主機11存取的標的。 ^請參照第4Β圖,由節點A2U進入本流程後,首先在step212 詢問:是否有任何Host ΙΟ要對來源資料卷存取資料?若否,則停 留在Step212的詢問狀態;若是,則進入step2n :解析該H〇sU〇 並分解為1至複數個邏輯碟(1^^11)]^,1^)輸出入要求(]^ 1〇),每一 LD 1〇皆對應到來源資料卷中一個欲存取的資料區塊 (block)。接下來的流程分為兩個方向:一是回到step 212繼續判 •斷是否有其他Host IO要對來源資料卷存取資料;另一是根據該一 至複數個LD 10同時並行執行第4C圖的流程(step 214) ^也就是 說如果有η個LD IO要對來源資料卷中n個資料區塊(bl〇ck)進行 存取,則就會引發η個第4C圖的流程(steps214-l…214-n)同時執 行。其中任何一個LDIO所對應的流程執行完畢’便進入step215 判斷是否所有並行處理的流程(steps 214-1…214-n)都完成了。若 否’則停留在step 215的詢問狀態;若是,則回報主機(11〇抝此 HostIO已處理完畢(step 216),然後回到step 212繼續判斷是否有 鲁其他Host 10要對來源資料卷存取資料。 值得注意的是,在第4B圖中,只要一有Host IO出現要對來 源資料卷存取資料’該Host 1〇便立即由step 212進入流程處理’ 無論之前的Host IO是否已經處理完成。 請參照第4C圖,係針對存取每一資料區塊(bl〇ck)之LDIO所 做的處理程序’相當於第4B圖中一個step 214的處理方塊。首先 判斷該Host IO是否是對來源資料卷寫入資料(step 220)?若否, 表不該Host IO是要讀取資料,則直接由來源資料卷的相對應資料 區塊(source volume block)讀取資料(step 221),然後結束此流程’ 回到第4B圖進入step 215進行判斷。若step 220的判斷結果為 23 201028844 “是”,則進一步判斷目的資料卷是否是可存取的(step 222)?若當 時目的資料卷無法被存取,則設定「同步錯誤旗標(SyncErrorFlag)」 為“真(TRUE)”(step 223),然後只拷貝Host 10所欲寫入的資料至 來源資料卷的相對應資料區塊(source volume block) (step 230),然 後結束此流程,回到第4B圖進入step 215進行判斷。若step 222 的判斷結果為“是”,則呼叫“目的資料卷之資料卷區塊更新表的一 致性檢查(Sync Process DstVBUT Entry Consistency Check)”程序並 檢查其傳回值是否是“偽(FALSE)”(step 224)?其中“目的資料卷之 I 資料卷區塊更新表的一致性檢查(Sync Process DstVBUT Entry
W
Consistency Check)”程序的詳細流程描繪於第5圖,將於下文中說 明。若step 224的判斷結果為‘‘是”,則發出一失敗訊息(step 225)。 若step 224的判斷結果為“否”或step 225執行之後,進一步判斷該 來源資料卷要被寫入之區塊的索引號碼是否小於 DstVLT.NxtSynBlk (目的資料卷的VLT entry的第四欄位34所記 載的下一個要進行同步的資料區塊的索引號(NxtSynBlk) ) (step 226) ?若step 226的判斷結果為“是”,表示將寫入資料的來源資料 g 卷的資料區塊已經同步複製(sync)至目的資料卷之中,因此Host ΙΟ所欲寫入的資料亦須拷貝至目的資料卷的相對應資料區塊(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所欲寫入的資料至來源資料卷的相對應資 24 201028844 料區塊(source volume block)。若step 226的判斷結果為“否”,亦 執行step 230 ··拷貝Host 10所欲寫入的資料至來源資料卷的相對 應資料區塊(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所記載的“下一個要進行 同步複製的資料區塊的索引號(NxtSynB lk)’’)是否小於或等於正在 進行資料修改之區塊的索引值(step 302)?由於第二個判斷條件 中的兩個判斷式是互相矛盾的,因此當第二個判斷條件符合時, 本程序即回傳一個“偽(FALSE)”訊息(step 305);否則,則繼績測試 下一個判斷條件。 25 201028844 第三、判斷DstVLT.NxtSynBlk (目的資料卷中目前正進行的 VLT entry的第四攔位34所記載的“下一個要進行同步複製的資料 區塊的索引號(NxtSynBlk)”)是否大於正在進行資料修改之區塊的 索引值(表示該資料區塊已經同步複製過了)並且“checkvolume
Block In-Sync”程序是否回傳一“偽(FALSE)”值(step 303)?其中 “Check Volume Block In-Sync”程序的詳細流程描繪於第8圖,將 於下文中說明。由於目的資料卷中所有已經同步複製過的資料區 塊都應該保持當時的狀態直到目的資料卷從來源資料卷分離,因 此當第三個判斷條件符合時,本程序即回傳一個“偽(FALSE),,訊息 (step 305);否貝ij,貝|J 回傳一個“真(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),例如:‘‘〇 (NULL),,(step 601)?如果判斷結果為“是”,表示該資料區塊還在初 始化操作的階段,當然不會“已在同步(In-Sync)狀態”,因此回傳一 個“偽(FALSE)”訊息;否則,則繼續測試下一個判斷條件。 第二、DstVBUT-SeqNum (目的資料卷中正進行處理的VBUT entry的序號)所對應的目的資料卷的VLT entry是否找不到,或 者雖有找到但是讀不到或兩者資料不一致(step 602)?如果判斷,结 26 201028844 果為“是”則回傳一個“偽(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所呼叫的程 27 201028844 序,亦為後文中其他程序所呼叫。對於目的資料卷的VBUT entry .所代表的每一資料區塊(step 401),呼叫並執行“檢查/拷貝來源資 料卷的區塊資料至目的資料卷(Check/C0py Block from Source to Destination)”程序(step 402),該程序的詳細流程描繪於第7圖,將 於下文中說明。step 402的程序執行完後,判斷是否還有其他資料 區塊尚未進行同步複製(sync) (step 403) ?如果以上判斷結果為 “是”,則將DstVLT.NxtSynBlk (目的資料卷中目前正進行的VLT entry的第四攔位34所記載的“下一個要進行同步複製的資料區塊 馨的索引號(NxtSynBlk)”)的區塊號碼增加1個單位(step4〇4),然後 回到step 401針對下一個資料區塊再進行一次steps 402-403的流 程。如果step 403的判斷結果為“否,,,則設定DstVLT.NxtSynBlk (目的資料卷中目前正進行的VLT entry的第四攔位34所記載的 “下一個要進行同步複製的資料區塊的索引號(NxtSynBlk)”)的值 為“-1”(step 405),表示所有資料區塊的同步複製皆已完成,然後 結束此程序。請注意,以上將DstVLT.NxtSynBlk的值設為“-1”表 示同步複製完成’只是本發明的一實施例;於其他實施例中,任 I 何以其他適當的數字達到同樣效果的表達方式都應視為不脫離本 發明的精神’例如:設定DstVLT.NxtSynBlk的值為“-2”。 請參照第7圖,係為本發明中檢查/拷貝來源資料卷的區塊資 料至目的資料卷(Check/Copy Block from Source to Destination
Volume)之一實施例的流程圖;本程序為第6圖的step 402所呼叫 的程序。首先判斷DstVBUT.SeqNum (目的資料卷中正進行處理 的VBUTentry的序號)是否小於DSTCURSYN (第二變數)的變 數值(step 501)?如果以上判斷結果為“是”,則再進一步判斷目的 資料卷是否已經與來源資料卷分離並且SrcVBUT.SeqNum (來源 資料卷中相對應的VBUT entry的序號)是否大於或等於 28 201028844 • SRCCURSPL (第一變數)的值(step 502) ?如果以上判斷結果為 “是”,表示該來源資料卷的資料區塊有被修改過且其修改前的原 始資料沒有先拷貝至目的資料卷,造成目的資料卷的該相對應區 塊的資料與來源資料卷不同步,因此標示該目的資料卷的該相對 應區塊的 VBUT entry 為 “DATA INVALID(資料無效)’,(step 503), 然後結束此程序"如果step 502的判斷結果為“否”,呼叫“Check VolumeBlockln-Sync”程序(其詳細流程描繪於第8圖且已在前文 中說明)並判斷其傳回值是否為“偽(FALSE),’(step 504)?如果以 上判斷結果為“是”,表示該來源資料卷和目的資料卷的相對應資 料區塊還未同步,因此將來源資料卷的區塊資料拷貝至目的資料 卷(step 505),然後設定DstVBUT.SeqNum (目的資料卷中正進行 處理的VBUTentry的序號)等於DSTCURSYN (第二變數)的變 數值(step 506),最後結束此程序。若是step 504的判斷結果為 “否”,表示該來源資料卷和目的資料卷的相對應資料區塊已經同 步複製過了,因此不做任何處理,直接結束此程序。 回到step 501,如果其判斷結果為“否”,則再進一步判斷目的
I 資料卷是否已經與來源資料卷分離(step 507)?如果以上判斷結果 W 為“是”,則跳過該資料區塊(step 508),然後結束此程序;如果step 507的判斷結果為“否”,則發出一失敗訊息(step 509),然後結束此 程序》 請參照第9A圖至第9D圖,係描繪本發明中同步複製(sync) 來源資料卷至目的資料卷之另一實施例的流程圖,其中來源資料 卷與目的資料卷已經分離(split),此分離(split)的時間點可能在同 步複製(sync)的過程中、完成之時或完成之後。第9A圖至第9D 圖的流程可以接續在第4A圖的steps 201-207之後,表示來源資 料卷與目的資料卷在進行同步複製(sync)的過程或之後的某一時 29 201028844 . 間點發生了分離(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的判斷結果為“是,,而結束背景拷貝的流程。 30 201028844 請參照第9B圖,由節點B 706進入本流程後’首先在step 707 詢問:是否有任何Host ΙΟ要對來源資料卷(source volume)或目的 資料卷(destination volume)存取資料?請注意:由於本流程中目的 資料卷已經與來源資料卷分離,因此該兩資料卷皆可獨立地做為 Host IO資料存取的對象。若step 707的判斷結果為“否”,則停留 在step 707的詢問狀態;若step 707的判斷結果為“是”,則進入 step 708 :解析該Host IO並分解為1至複數個邏輯碟(Logical Drive,LD)輸出入要求(LD ΙΟ),每一 LD 10皆對應到來源資料卷 或目的資料卷中一個欲存取的資料區塊(block)。接下來的流程分 為兩個方向:一是回到step 707繼績判斷是否有其他Host IO要對 來源資料卷或目的資料卷存取資料;另一是根據該一至複數個LD IO同時並行執行第9C圖與第9D圖的流程(step 709);也就是說如 果有η個LD IO要對來源資料卷或目的資料卷中η個資料區塊 (block)進行存取,則就會引發η個第9C圖與第9D圖的流程(steps 709-1 .._709-n)同時執行。其中任何一個LD 1〇所對應的流程執行 完畢’便進入step 711判斷是否所有並行處理的流程(steps 709-1·_·709-η)都完成了。若否,則回到節點D 71〇,停留在step 711 的詢問狀態;若是’則回報主機(Host)此Host 10已處理完畢(step 712),然後回到step 707繼續判斷是否有其他H〇st 1()要對來源資 料卷或目的資料卷存取資料。 值得注意的是,在第9B圖中,只要一有H〇stI〇出現要對來 源資料卷或目的資料卷存取資料’該HqsU()便立即由 step 707 進 入流程處理,無論之前的Host IO是否已經虚理穿成。 請參照第9C圖與第9D圖,係針對存取每一資料區塊⑼叫 之;LDK)所做的處理程序,相當於第9B圖中一個_7〇9的處理 方塊。首先由第9C圖的step 72〇判斷該Η〇“ ι〇是否是對來源資 31 201028844 料卷或目的資料卷寫入資料?若否,表示該Host ΙΟ是要讀取資 料’則由節點C 732進入第9D圖進行讀取資料的相關流程;第 9D圖的相關流程細節將於後文中說明。若step 72〇的判斷結果為 “是” ’表示該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 10是否是針對目的資料卷寫入資 料且只有資料區塊的部份需要被修改(step 724)?若其判斷結果為 “是”,也是進入step 723;若step 724的判斷結果為“否,,或step 723 執行之後,則將Host ΙΟ所欲寫入的資料拷貝至其所欲寫入的來源 資料卷或目的資料卷的相對應資料區塊(step 725) »在step 725與 step 728之後,進一步判斷該Host 10是否是針對來源資料卷寫入 資料(step 729) ?若以上判斷結果為“否”,則將第三變數 (DSTCURSPL)的值指派給 DstVBUT.SeqNum (step 730),表示目的 資料卷的相對應資料區塊是在DSTCURSPL代表的事件中更新資 料。若step 729的判斷結果為“是”,則將第一變數(SRCCURSPL) 32 201028844 - (steP 731)的值指派給SrcVBUT.SeqNum,表示來源資料卷的相對 應資料區塊是在SRCCURSPL代表的事件中更新資料。最後結束 第9C圖的流程’由節點D 710回到第9B圖,然後進入step 711 進行判斷。 若是step 720的判斷結果為“否”,則由節點c 732進入第9D 圖進行讀取資料的相關流程。首先判斷該Host 10是否是針對目的 資料卷讀取資料(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 IN VALID(資料無效)’, (step 737),然後回覆一錯誤(error)訊息(step 736),並結束此流程, 由節點D 710回到第9B圖。若step 735的判斷結果為“否”,則判 斷該Host IO是否是針對來源資料卷讀取資料(step 738)?若以上 判斷結果為“是”,則由來源資料卷的資料區塊讀取資料(step 740),然後結束此流程,由節點D 710回到第9B圖。若step 738 的判斷結果為“否’’,則進一步判斷:該HostIO是否是針對目的資 料卷讀取資料、並且DstVBUT.SeqNum (目的資料卷中正進行處 理的VBUT entry的序號)是否小於前述第二變數(DSTCURSYN) 33 201028844 的變數值(step 739)?若以上判斷結果為“是”,表示該欲讀取的資 料區塊的資料尚未與來源資料卷的相對應資料區塊同步,因此轉 由來源資料卷的相對應資料區塊讀取資料(step 74〇)。若739的判 斷結果為“否”,則沒有以上疑慮,直接由目的資料卷的資料區塊 讀取資料(step 741)’然後結束此流程,由節點D71〇回到第9B圖。 以下舉一實際範例,說明在本發明中資料卷如何藉由管理其 資料卷記錄表(VLT)與資料卷區塊更新表(VBUT)而達成在單一架 構下實現「資料卷拷貝(volume copy)」與「資料卷鏡像(v〇hjme mirror)」等多種不同的同步複製方式。 請參照第10A圖與第11A圖’係分別是資料卷a(VoIA)在時 間點T的VLT與VBUT之示意圖。觀察第10A圖,由其第二攔位 32與第三欄位33可以知道:在時間點τ時,資料卷A(VolA)分別 是資料卷B、C、E (VolB、VolC、VolE)的來源資料卷;再由第一 攔位31的序號可知:資料卷A(VolA)已經與資料卷B、C (VolB、 VolC)分離(因為其序號不為“〇”),但是沒有與資料卷e (VolE)分 離(因為其序號為“0”);再由第四攔位34可知:資料卷A (VolA) A 在資料卷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 10的存取而有資料變動的資料區塊。同理, 第11A圖中’VBUTentry中儲存的序號為“2”者(例如:VBUTentry 的索引號為〇x〇4、0x16、0x28、0x2E、0x31者)表示:其所對應 34 201028844 .的資料區塊(block)是在資料卷A (V〇lA)與資料卷C (VolC)分離後 .因Host 10的存取而有資料變動的資料區塊。其他VBUT entry中 儲存的序號為“0”者表示:資料卷A(v〇丨A)自第一次分離作業後至 時間點T為止都沒有資料變動的資料區塊所對應的VBUT ^ 說明:前文及後文中的“〇x”皆是代表十六進位。 清參照第10B圖與第11B圖,係分別是資料卷B (v〇1B)在時 間點T的VLT與VBUT之示意圖。由第1〇B圖可以知道:在時間 點T時,資料卷B (VolB)是資料卷A (v〇1A)的目的資料卷且已經 φ分離;同時,資料卷B(VolB)又是資料卷D(VolE)的來源資料卷, 但還未分離。第10B圖之第一個VLT entry的第四棚位34所顯示 的“-1”代表:資料卷B (VolB)與資料卷A (V〇lA)已經同步複製完 成·’而第二個VLTentry的第二欄位32所顯示的“SYNSPL”操作代 碼(0PCod)代表:資料卷B (VolB)與資料卷A(VolA)已經分離》若 一資料卷是扮演目的資料卷的角色,則其第二欄位32所儲存的操 作代碼(OpCod)常是“SYNDST”與“SYNSPL”成對出現。再觀察第 11B圖’請同時參照第ιοΒ圖,vbUT entry中儲存的序號為“1” φ 者表示:其所對應的資料區塊(block)是在資料卷B (VolB)與資料 卷A (VolA)建立同步複製的關係後,已經同步過的資料區塊。又, VBUT entry中儲存的序號為“2”者表示:其所對應的資料區塊 (block)是在資料卷b (VolB)與資料卷a (VolA)分離後因H〇st 10的 存取而有資料變動的資料區塊。 請參照第10C圖與第11C圖,係分別是資料卷C (VolC)在時 間點T的VLT與VBUT之示意圖。由第10C圖可以知道:在時間 點T時,資料卷C (VolC)是資料卷A (VolA)的目的資料卷且兩者 已經分離,但還未同步複製完成。第10C圖之第一個VLT entry 的第四攔位34所顯示的“C”是“NxtSynBlk”之意,代表:資料卷c 35 201028844 (VolC)下一個要進行同步複製的資料區塊(block)的索引號是 “OxOC”;因為此欄位所儲存的值不是“-1”,由此可知資料卷C (VolC) 還未從資料卷A (VolA)同步複製完成。而第二個VLT entry的第四 欄位34所顯示的“2”是“AltVolSN”之意,代表:資料卷C (VolC) 已經與資料卷A (VolA)分離,且對應於資料卷A (VolA)之VLT entry的序號為“2”。再觀察第lie圖,請同時參照第l〇C圖,VBUT entry中儲存的序號為“1”者表示:其所對應的資料區塊(bl〇ck)是在 資料卷C (VolC)與資料卷A (VolA)建立同步複製的關係後,已經 同步過的資料區塊。又,VBUTentry中儲存的序號為“2”者表示: 其所對應的資料區塊(block)是在資料卷c (VolC)與資料卷A (VolA) 分離後因Host 10的存取而有資料變動的資料區塊。由於初始化程 序後賦予每個VBUT entry之序號的初始值為“〇,,,且時間τ時資 料卷C (VolC)只扮演是資料卷A (VolA)的目的資料卷的角色,因 此VBUT entry中其他序號為“〇”者表示:資料卷c (v〇ic)令還未同 步複製或者沒有因為Host 10而有資料改變的資料區塊。 請參照第10D圖與第UDS|,係分別是資料卷d(v〇id)在時 間點T的VLT與VBUT之示意圖。第i 〇D圖顯示只有一個㈣ entry,表示:資料卷D (VolD)是資料卷B (v〇1B)的目的資料卷, 兩者尚未分離,且下-個要進行同步複製的資料區塊(bi<)ck)的索 引號是“〇Xl9”。參照第UD圖,可以明顯看出:在索 9” 之前的VBUT entry的序號都是“ Γ,,其後的都是“〇,',,表;資料卷 D (德)很單純地在進行從資祕Β (ν〇1Β)同步複製資二的作 業。因為資料卷d (void)尚未與資料卷B (Vq1b)分離,因此驗 看不到資料卷D (德),也不會有Host 1〇要求斜資料卷 存取資料。 36 201028844 請參照第1OE圖,係為資料卷E (VolE)在時間點τ的VLT示 意圖。圖中顯示只有一個VLT entry,表示:資料卷E (v〇1E)是資 料卷A (VolA)的目的資料卷’兩者尚未分離,且下一個要進行同 步複製的資料區塊(block)的索引號是“〇x####”。 整理第10Α圖至第10Ε圖所表達的資訊可知,在時間點τ時, 資料卷A (VolΑ)分別是資料卷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、Β、 C、D、E (VolA、VolB、VolC、VolD、VolE)的 VLT 如第 12A 圖至 響第 12E 圖所示,資料卷 A、Β、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)」作業,且兩資料卷間尚未分離,亦未同步複製完成; 37 201028844 • 二、資料卷D (VolD)與資料卷B (VolB)之間已經分離,且已 經同步複製完成; * 三、 資料卷c (VolC)與資料卷A(VolA)之間仍然在“已經分離 但未同步複製完成”的狀態,不過其“NxtSynBlK”已由“〇x〇c”推進 至“0x27” ; 四、 資料卷E (VolE)與資料卷A (VolA)之間仍然在“尚未分離 亦未同步複製完成”的狀態。 由以上說明可知,本發明提出每一資料卷皆有其專屬的「資 料卷記錄表(VLT)」與「資料卷區塊更新表(VBUT)」,利用VLT 與VBUT之間的交互操作應用,可以在單一架構下實現「資料卷 拷貝(volume copy)」與「資料卷鏡像(volume mirror)」等多種複製 方式。並且’每一資料卷(volume),無論跟多少數量的其他資料卷 間建立何種同步複製(sync)的關係,都只需管理一個專屬的VLT 與一個專屬的VBUT。因此,本發明提出的技術有簡化同步複製 架構與減少表格管理的好處,可以使儲存系統的運作更具效率。 φ 【圖式簡單說明】 第1圖、描繪應用本發明之電腦系統的硬體架構示意圖; 第2A圖、描繪本發明提出之資料卷記錄表(v〇iume Log Table,VLT)的資料結構; 第2B圖、描繪本發明提出之資料卷區塊更新表(v〇lume B1〇ck Update Table,VBUT)的資料結構; 第3圖、描繪應用本發明方法之儲存虛擬化控制器(svc)之一 實施例示意圖; 第4A圖〜第4C圖、描繪本發明中同步複製(sync)來源資料 38 201028844 卷(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時之一實際範例,係對應於第l〇A圖〜第10D圖; 第12A圖〜第12E圖、描繪本發明中資料卷記錄表(VLT)在時 間點T+t時之一實際範例; 39 201028844 第13A圖〜第13D圖、描繪本發明中資料卷區塊更新表 (VBUT)在時間點T+t時之一實際範例,係對應於第12A圖〜第12D 圖。 【主要元件符號說明】 1.. .電腦系統 12…儲存虛擬化子系統 13…儲存虛擬化控制器 131.. .主機端輸出入裝置連結控制器 ❿132...中央處理電路 133.. .記憶體 134.. .裝置端輸出入裝置連結控制器 14.. .實體儲存裝置陣列 15a-15e...資料卷 30…資料卷記錄表(VLT) 31.. .資料卷記錄表的第一攔位 32.. .資料卷記錄表的第二欄位 33.. .資料卷記錄表的第三欄位 φ 34...資料卷記錄表的第四攔位 40.. .資料卷區塊更新表(VBUT) 41.. .資料卷區塊更新表的第一欄位 42.. .資料卷區塊更新表的第二欄位
Claims (1)
- 201028844 七、申請專利範圍: 1. 一種進行資料卷複製的方法,讓一目的資料卷與一來源資料卷 的資料同步(sync),其包含: 在該來源資料卷的一資料卷記錄表(VLT)中配置一第一項 目(entry) ’並且初始化該第一項目的複數個欄位,包括設定一 第一欄位的序號為一初始設定值(initial setting value)、以及設 定一第二欄位的操作代碼(OpCod)為一代表來源資料卷狀態的 操作代瑪;其中更指派該第一攔位的該初始設定值(initial setting value)給一第一變數; 在該目的資料卷的一資料卷記錄表(VLT)中配置一第二項 目(entry),並且初始化該第二項目的複數個攔位,包括設定一 第二欄位的操作代碼(〇pC〇d)為一代表目的資料卷狀態的操作 代碼; 增加該目的資料卷的一主要序號變數的值,並將該主要序 號變數的值拷貝至該目的資料卷的該資料卷記錄表(VLT)的該 第二項目(entry)中紀錄序號的一第一欄位,以及拷貝至該來源 資料卷的該資料卷記錄表(VLT)的該第一項目(entry)中紀錄另 一資料卷的VLT entry的序號的一第四攔位;其中更指派該目 的資料卷的該主要序號變數的現行值給一第二變數; 設定該目的資料卷的該資料卷記錄表(VLT)的該第二項目 (entry)中一第四攔位為一起始位址,其中該第四欄位用於紀錄 下一個要進行同步複製的資料區塊的索引號 (DstVLT.NxtSynBlk);以及 由該起始位址開始,執行一背景拷貝來源資料卷至目的資 料卷(Background Copy of Source to Destination)的程序。 201028844 2. 如申請專利範圍第1項所述之進行資料卷複製的方法,其中更 增加一步驟:判斷是否有一主機輪出入要求(Host 1〇)要對該來 源資料卷存取資料。 3. 如申請專利範圍第2項所述之進行資料卷複製的方法,其中更 增加一步驟:將該主機輸出入要求(Host IO)分解為至少一邏輯 碟輸出入要求(LD 10),每一該邏輯碟輸出入要求(LD 10)皆對 應到該來源資料卷中一個欲存取的資料區塊(block) » 4. 如申請專利範圍第3項所述之進行資料卷複製的方法,其中對 該至少一邏輯碟輸出入要求(LD 1〇)的每一並行執行以下步驟: 判斷該主機輸出入要求(H〇st IO)是否是一寫入要求; 判斷該目的資料卷是否是可存取的; 判斷一目的資料卷之資料卷區塊更新表的一致性檢查 (Sync Process DstVBUT Entry Consistency Check)程序是否有傳 回一“偽(FALSE)”訊息; 判斷該來源資料卷之一欲寫入區塊的索引號碼是否小於 該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中 的該第四欄位所記載的下一個要進行同步的資料區塊的索引號 (DstVLT.NxtSynBlk); 判斷該目的資料卷的一資料卷區塊更新表(VBUT)中一正 進行處理之資料區塊的序號(DstVBUT. SeqNum)是否等於該第 二變數的值;以及 拷貝該主機輸出入要求(Host 10)的資料至該來源資料卷的 該欲寫入區塊。 5. 如申請專利範圍第4項所述之進行資料卷複製的方法,其中判 斷結果是該目的資料卷之資料卷區塊更新表的一致性檢查 (DstVBUT Entry Consistency Check)程序傳回該“偽(FALSE)”訊 42 201028844 息,則更增加一步驟:發出一失敗訊息。 6. 如申請專利範圍第4項所述之進行資料卷複製的方法,其中判 斷結果是該來源資料卷之該欲寫入區塊的該索引號碼小於該目 的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)尹的該 第四欄位所記載的下一個要進行同步的資料區塊的索引號 (DstVLT.NxtSynBlk),則更增加一步驟:拷貝該主機輸出入要 求(Host 10)的資料至該目的資料卷的一資料區塊,該資料區塊 的位址係對應於該來源資料卷的該欲寫入區塊。 7. 如申請專利範圍第4項所述之進行資料卷複製的方法,其中判 ® 斷結果是該目的資料卷的該資料卷區塊更新表(VBUT)中對應 該欲寫入區塊的序號(DstVBUT.SeqNum)不等於該第二變數的 值,則更增加一步驟:設定該目的資料卷的該資料卷區塊更新 表(VBUT)中紀錄對應該欲寫入區塊的序號(DstVBUT.SeqNum) 等於該第二變數的值。 8. 如申請專利範圍第3項所述之進行資料卷複製的方法’其中對 該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟: 判斷該主機輸出入要求(Host IO)是否是一寫入要求;以及 ’從該來源資料卷的一欲讀取區塊讀取資料。 9. 如申請專利範圍第3項所述之進行資料卷複製的方法,其中對 該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟: 判斷該主機輸出入要求(HostI〇)是否是一寫入要求; 判斷該目的資料卷是否是可存取的; 設定一同步錯誤旗標(SyncErrorFlag)為“真(TRUE)” ;以及 拷貝該主機輸出入要求(HostI0)的資料至該來源資料卷的 該欲寫入區塊。 10. 如申請專利範圍第3項所述之進行資料卷複製的方法’其中更 43 201028844 增加一步驟:判斷對應該多少一邏輯碟輸出入要求(LD ΙΟ)的程 序是否都已執行完成。 11. 如申請專利範圍第項所述之進行資料卷複製的方法’其中 更增加一步驟:回報送出該彡機輪出入要求(Host ΙΟ)的一主機 (Host),該主機輸出入要求(H〇stI〇)已處理完畢。 12. 如申請專利範圍第1項所述之進行資料卷複製的方法,其中更 増加一步驟:判斷是否是一初始的同步複製作業。 13. 如申請專利範圍第η項所述之進行資料卷複製的方法,其中 更增加以下步驟: 初始化該目的資料卷的〆資料卷區塊更新表(VBUT):以及 初始化該目的資料卷的該主要序號變數》 14· 一種進行資料卷複製的方法,係應用於一目的資料卷與一來源 資料卷在一同步複製(sync)作業的過程、完成之時或完成之後發 生一分離事件,其包含: 在該來源資料卷的一資料卷記錄表(VLT)中配置一第一項 目(entry),並且初始化該第一項目的複數個攔位,包括設定一 第爛位的序说為一初始設定值(initial setting value)、以及設 定一第一攔位的操作代碼(〇pC〇d)為一代表來源資料卷狀態的 操作代碼; 在該目的資料卷的一資料卷記錄表(VLT)中配置一第二項 目(entry) ’並且初始化該第二項目的複數個攔位,包括設定一 第二棚位的操作代瑪(〇pC〇d)為一代表目的資料卷狀態的操作 代碼; 。增加該目的資料卷的一主要序號變數的值,並將該主要序 號變數的值拷貝至該目的資料卷的該資料卷記錄表(vlt)的該 第二項目(entry)中紀錄序號的一第一欄位,以及拷貝至該來源 44 201028844 .資料卷的該資料卷記錄表(VLT)的該第一項目(emry)中紀錄另 一資料卷的VLT entry的序號的一第四攔位;其中更指派該目 的資料卷的該主要序號變數的現行值給一第二變數; 設定該目的資料卷的該資料卷記錄表(VLT)的該第二項目 (entry)中一第四欄位為一起始位址,其中該第四攔位用於紀錄 下一個要進行同步複製的資料區塊的索引號 (DstVLT.NxtSynBlk); 增加該來源資料卷的一主要序號變數的值,並將該來源資 • 料卷的該主要序號變數的值拷貝至該來源資料卷的該資料卷記 錄表(VLT)的該第一項目(entry)中紀錄序號的該第一攔位;其中 更指派該來源資料卷的該主要序號變數的值給該第一變數; 在該目的資料卷的該資料卷記錄表(VLT)中配置一第三項 目(entry),並且初始化該第三項目的複數個欄位,包括設定一 第二欄位的操作代碼(OpCod)為一代表分離狀態的操作代碼; 再次增加該目的資料卷的該主要序號變數的值並將之指 派給一第三變數,並將增加後的該目的資料卷的該主要序號變 0 數的值拷貝至該目的資料卷的該資料卷記錄表(VLT)的該第三 項目(entry)中紀錄序號的一第一欄位;以及 判斷該目的資料卷與該來源資料卷的該同步複製(sync)作 業是否已經完成。 15.如申請專利範圍第14項所述之進行資料卷複製的方法,其中 更增加一步驟:執行一背景拷貝來源資料卷至目的資料卷 (Background Copy .of Source to Destination Volume)程序0 16.如申請專利範圍第14項所述之進行資料卷複製的方法,其中 更增加一步驟:判斷是否有一主機輸出入要求(Host 10)要對該 來源資料卷或該目的資料卷存取資料。 45 201028844 • 17·如申請專利範圍第16項所述之進行資料卷複製的方法,其中 更增加一步驟:將該主機輸出入要求(Host ΙΟ)分解為至少一邏 輯碟輸出入要求(LD 10),每一該邏輯碟輸出入要求(LD IO)皆 對應到該來源資料卷或目標資料卷中一欲存取資料區塊 (block)。 18. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中 對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步 驟: ▲ 判斷該主機輸出入要求(HostIO)是否是一寫入要求; ❿ 判斷該目的資料卷是否是可存取的; 判斷該主機輸出入要求(Host 10)是否是要存取該來源資料 卷; 執行一檢查/拷貝來源資料卷的區塊資料至目的資料卷 (Check/Copy Block from Source to Destination Volume)的程序; 以及 拷貝該主機輸出入要求(Host IO)的資料至該來源資料卷的 該欲存取貨料區塊。 19. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中 對該至少一邏輯碟輸出入要求(LD ΙΟ)的每一並行執行以下步 驟: 判斷該主機輸出入要求(HostIO)是否是一寫入要求; 判斷該目的資料卷是否是可存取的; 判斷該主機輸出入要求(Host 10)是否是要存取該來源資料 卷; 判斷該主機輸出入要求(Host 10)是否是要存取該目的資料 卷並且只有該欲存取資料區塊的部分會被修改資料;以及 46 201028844 拷貝該主機輸出入要求(Host ΙΟ)的資料至該目的資料卷的 該欲存取資料區塊。 20. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中 對該至少一邏輯碟輸出入要求(LD ΙΟ)的每一並行執行以下步 驟: 判斷該主機輸出入要求(HostIO)是否是一寫入要求; 判斷該目的資料卷是否是可存取的; 判斷該主機輸出入要求(HostIO)是否是要存取該來源資料 卷; 判斷該主機輸出入要求(HostIO)是否是要存取該目的資料 卷並且只有該欲存取資料區塊的部分會被修改資料; 執行一檢查/拷貝來源資料卷的區塊資料至目的資料卷 (Check/Copy Block from Source to Destination Volume)的程序; 以及 拷貝該主機輸出入要求(Host IO)的資料至該目的資料卷的 該欲存取資料區塊。 21. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中 _ 對該至少一邏輯碟輸出入要求(LD 10)的每一並行執行以下步 驟: 判斷該主機輸出入要求(HostIO)是否是一寫入要求; 判斷該目的資料卷是否是可存取的; 設定一同步錯誤旗標(SyncErrorFlag)為“真(TRUE)” ;以及 判斷該主機輸出入要求(Host 10)是否是要存取該來源資料 卷。 22. 如申請專利範圍第21項所述之進行資料卷複製的方法,其中 更增加一步驟:拷貝該主機輸出入要求(Host IO)的資料至該來 47 201028844 源資料卷的該欲存取資料區塊。 23. 如申請專利範圍第18項或第19項或第20項或第21項或第 22項所述之進行資料卷複製的方法,其中更增加以下步驟: 判斷該主機輸出入要求(Host 10)是要存取該來源資料卷或 是該目的資料卷;以及 設定該來源資料卷的一資料卷區塊更新表(VBUT)中對應 該欲存取資料區塊的序號(SrcVBUT.SeqNum)等於該第一變數 的值。 24. 如申請專利範圍第18項或第19項或第20項或第21項或第 22項所述之進行資料卷複製的方法,其中更增加以下步驟: 判斷該主機輸出入要求(Host 10)是要存取該來源資料卷或 是該目的資料卷;以及 設定該目的資料卷的一資料卷區塊更新表(VBUT)中對應 該欲存取資料區塊的序號(DstVBUT.SeqNum)等於該第三變數 的值。 25. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中 對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步 驟. 判斷該主機輸出入要求(HostIO)是否是一寫入要求; 判斷該主機輸出入要求(Host IO)是否是存取該目的資料 卷;以及 判斷該目的資料卷的一資料卷區塊更新表(VBUT)中對應 該欲存取資料區塊的一項目(entry)是否被標示為“資料無效 (DATA INVALID),,。 26. 如申請專利範圍第25項所述之進行資料卷複製的方法,其中 更增加以下步驟:回覆一錯誤(error)訊息。 48 201028844 . 27.如申請專利範圍第25項所述之進行資料卷複製的方法,其中 更增加以下步驟: 判斷該目的資料卷的,同步錯誤旗標(syncErrorFlag)是否 曾被設立起來、並且該目的資料卷中正進行處理的該資料卷區 塊更新表(VBUT)的該項目(entry)的序號(DstVBUT.SeqNum)是 否小於該目的資料卷的該第二變數的值'並且該來源資料卷中 正進行處理的該資料卷匾塊更新表(VBUT)的該項目(entry)的 序號(SrcVBUT. SeqNum)是否大於或等於該第一變數的值。 28. 如申請專利範圍第27項所述之進行資料卷複製的方法,其中 更增加以下步驟: 標示該目的資料卷的該資料卷區塊更新表(VBUT)中對應 該欲存取資料區塊的該項目(entry)為‘‘資料無效(DATA INVALID)” ;以及 回覆一錯誤(error)訊息。 29. 如申請專利範圍第27項所述之進行資料卷複製的方法,其中 更增加以下步驟: • 判斷該主機輸出入要求(Host 1〇)是否是存取該來源資料 卷;以及 從該來源資料卷的該欲存取區塊讀取資料。 30_如申請專利範圍第27項所述之進行資料卷複製的方法,其中 更增加以下步驟: 判斷該主機輸出入要求(Host 1〇)是否是存取該來源資料 卷; 判斷該主機輸出入要求(Host 1〇)是否是存取該目的資料卷 並且判斷該目的資料卷中正進行處理的該資料卷區塊更新表 (VBUT)的該項目(entry)的序號(DstVBUT.SeqNum)是否小於該 49 201028844 目的資料卷的該第二變數的值;以及 從該來源資料卷的該欲存取區塊讀取資料。 31. 如申請專利範圍第27項所述之進行資料卷複製的方法,其中 更增加以下步驟: 判斷該主機輸出入要求(Host IO)是否是存取該來源資料 卷; 判斷該主機輸出入要求(Host IO)是否是存取該目的資料卷 並且判斷該目的資料卷中正進行處理的該資料卷區塊更新表 (VBUT)的該項目(entry)的序號(DstVBUT.SeqNum)是否小於該 目的資料卷的該第二變數的值;以及 從該目的資料卷的該欲存取區塊讀取資料。 32. 如申請專利範圍第17項所述之進行資料卷複製的方法,其中 更增加一步驟:判斷對應該至少一邏輯碟輸出入要求(LD 10) 的程序是否都已執行完成。 33. 如申請專利範圍第32項所述之進行資料卷複製的方法,其中 更增加一步驟:回報送出該主機輸出入要求(Host 10)的一主機 (Host),該主機輸出入要求(Host 10)已處理完畢。 34. 如申請專利範圍第4項所述之進行資料卷複製的方法,其中 該目的資料卷之資料卷區塊更新表的一致性檢查(Sync Process DstVBUT Entry Consistency Check)程序係包含以下三個判斷步 驟: 判斷該目的資料卷的該資料卷區塊更新表(VBUT)中該正 進行處理之資料區塊的序號(DstVBUT.SeqNum)是否大於該第 二變數的值; 判斷該目的資料卷的該資料卷區塊更新表(VBUT)中該正 進行處理之資料區塊的序號(DstVBUT.SeqNum)是否等於該第 201028844 二變數的值,並且該目的資料卷的該資料卷記錄表(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)。 51 201028844 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 52 201028844 Block In-Sync)的程序,並且檢查該程序是否回傳一“偽 (FALSE)’’值。 42.如申請專利範圍第41項所述之進行資料卷複製的方法,其中 該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/c〇py Block from Source to Destination Volume)的程序更包含以下步 驟: 拷貝該來源資料卷的區塊資料至該目的資料卷;以及 設定該目的資料卷的該資料卷區塊更新表(VBUT)中該正 進行處理之資料區塊的序號(DstVBUT.SeqNum)等於該第二變 數的值。 43.如申請專利範圍第18項或第20項或第37項所述之進行資料 卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的 資料卷(Check/Copy Block from Source to Destination Volume)的 程序係包含以下步驟: 判斷該目的資料卷的一資料卷區塊更新表(VBUT)中一正 進行處理之資料區塊的序號(DstVBUT.SeqNum)是否小於該第 二變數的值; 判斷該目的資料卷是否已經與該來源資料卷分離(sPHt) ’ 並且該來源資料卷的一資料卷區塊更新表(VBUT)中一正進行 處理之資料區塊的序號(SrcVBUT.SeqNum)是否大於或等於該 第一變數的值;以及 標示該目的資料卷的該資料卷區塊更新表(VBUT)中對應 該正進行處理之資料區塊的一項目(entry)為“資料無效(DATA invalid),’。 44·如申請專利範圍第18項或第20項或第37項所述之進行資料 卷複製的方法,其中該檢查/拷貝來源資料卷的麁塊資剩至目的 53 201028844 資料卷(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)是否不是其對應的該來源資料卷的身分代 54 201028844 碼; 判斷與該目的資料卷的該資料卷區塊更新表(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項所述之進行資料卷複製的方法,其中 i 該檢查資料卷區塊是否已在同步狀態(Check Volume Block i In-Sync)的程序的該五個判斷步驟的所有判斷結果皆為“否”,則 回傳一“真(TRUE)”訊息。 48. 如申請專利範圍第45項所述之進行資料卷複製的方法,其中 該初始設定值(initial setting value)是 “〇(nuii)’,。 49· 一種磁碟陣列控制器’可應用於進行一實體儲存裝置陣列(pSD Array)中複數個資料卷間的資料複製,係包含: 一記憶體,用來緩衝傳送於一主機及該實體儲存裝置陣列之 間通過該磁碟陣列控制器的資料;以及 一中央處理電路’利用該複數個資料卷各自專屬的一資料卷記 55 201028844 錄表(VLT)與一資料卷區塊更新表(VBUT)進行資料複製作業; 其中,該資料卷記錄表(VLT)的一項目(entry)具有一第一攔 位’用於紀錄一序號(SeqNum)的、一第二攔位,用於紀錄一操 作代碼(OpCod)、一第三欄位,用於紀錄與之產生關係的一另一 資料卷身分(AltVolID)、以及一第四棚位,用於紀錄與之產生關 聯的該另一資料卷的該資料卷記錄表(VLT)的該項目(VLT entry) 的序號(AltVolSN)或者紀錄本身下一個要進行複製的資料區塊 (block)的一索引號(NxtSynBlk);以及 其中’該資料卷區塊更新表(VBUT)的一項目(entry)紀錄一 資料區塊(block)的更新狀態資訊。 50. —種進行資料卷複製的方法,其包含: 形成一第一鏡射對,該第一鏡射對係由一第一資料卷與— 第二資料卷所組成; 管理該第一資料卷的一資料卷記錄表(VLT)與一資料卷區 塊更新表(VBUT) ’其中’該資料卷記錄表(VLT)用於紀錄該第 一資料卷與該第二資料卷形成一鏡射對後的同步狀態資訊,該 資料卷區塊更新表(VBUT)用於紀錄該第一資料卷的每一資料 區塊(block)的更新狀態資訊; 形成一第二鏡射對,該第二鏡射對係由該第一資料卷與— 第三資料卷所組成;以及 管理該第一資料卷的該資料卷記錄表(VLT)與該資料卷區 塊更新表(VBUT),其中,該資料卷記錄表(VLT)用於紀錄該第 一資料卷與該第三資料卷形成一鏡射對後的同步狀態資訊,該 資料卷區塊更新表(VBUT)用於紀錄該第一資料卷的每一資料 區塊(block)的更新狀態資訊。 51. 如申請專利範圍第50項所述之進行資料卷複製的方法,其中 56 201028844 該第一鏡射對中的該第一資料卷與該第二資料卷間係進行資料 卷拷貝(volume copy)或資料卷鏡像(volume mirror)兩種複製作 業的其中之一。 52.如申請專利範圍第50項所述之進行資料卷複製的方法,其中 該第二鏡射對中的該第一資料卷與該第三資料卷間係進行資料 卷拷貝(volume copy)或資料卷鏡像(volume mirror)兩種複製作 業的其中之一。 57
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 true TW201028844A (en) | 2010-08-01 |
TWI451243B 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) | EP2211267B1 (zh) |
CN (2) | CN103336729B (zh) |
AT (1) | ATE549677T1 (zh) |
TW (2) | TWI526823B (zh) |
Families Citing this family (37)
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 |
US20120150818A1 (en) | 2010-12-14 | 2012-06-14 | Commvault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US9251186B2 (en) | 2012-06-13 | 2016-02-02 | Commvault Systems, Inc. | Backup using a client-side signature repository in a networked storage system |
US9665591B2 (en) | 2013-01-11 | 2017-05-30 | 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 |
US10592357B2 (en) | 2015-12-30 | 2020-03-17 | Commvault Systems, Inc. | Distributed file system in a distributed deduplication data storage system |
US10747630B2 (en) | 2016-09-30 | 2020-08-18 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including operations by a master monitor node |
US10509581B1 (en) * | 2017-11-01 | 2019-12-17 | Pure Storage, Inc. | Maintaining write consistency in a multi-threaded storage system |
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 |
US10521147B2 (en) | 2017-11-30 | 2019-12-31 | International Business Machines Corporation | Device reservation state synchronization 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 | 华为技术有限公司 | 一种数据同步方法和装置 |
US11442896B2 (en) | 2019-12-04 | 2022-09-13 | Commvault Systems, Inc. | Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources |
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)
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 | 情報記憶媒体、プログラム、情報再生方法、情報再生装置、データ転送方法、及びデータ処理方法 |
TWI353536B (en) * | 2006-01-26 | 2011-12-01 | Infortrend Technology Inc | Virtualized storage computer system and method of |
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 |
-
2009
- 2009-12-31 TW TW103125719A patent/TWI526823B/zh active
- 2009-12-31 TW TW098146524A patent/TWI451243B/zh active
-
2010
- 2010-01-22 CN CN201310195798.5A patent/CN103336729B/zh active Active
- 2010-01-22 EP EP10151447A patent/EP2211267B1/en active Active
- 2010-01-22 CN CN201010111122XA patent/CN101826044B/zh active Active
- 2010-01-22 EP EP11188638.8A patent/EP2434403B1/en active Active
- 2010-01-22 US US12/691,807 patent/US8645648B2/en active Active
- 2010-01-22 AT AT10151447T patent/ATE549677T1/de active
-
2013
- 2013-12-27 US US14/141,604 patent/US9483204B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TWI451243B (zh) | 2014-09-01 |
CN103336729B (zh) | 2016-12-28 |
EP2211267A3 (en) | 2010-10-13 |
US20100191927A1 (en) | 2010-07-29 |
EP2434403B1 (en) | 2013-07-10 |
CN101826044A (zh) | 2010-09-08 |
CN101826044B (zh) | 2013-06-26 |
US9483204B2 (en) | 2016-11-01 |
CN103336729A (zh) | 2013-10-02 |
EP2211267B1 (en) | 2012-03-14 |
TWI526823B (zh) | 2016-03-21 |
US20140115287A1 (en) | 2014-04-24 |
EP2211267A2 (en) | 2010-07-28 |
TW201441809A (zh) | 2014-11-01 |
EP2434403A1 (en) | 2012-03-28 |
ATE549677T1 (de) | 2012-03-15 |
US8645648B2 (en) | 2014-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201028844A (en) | Method and apparatus for performing volume replication using unified architecture | |
JP6605078B2 (ja) | 情報処理方法、情報処理装置、サーバ及びコンピュータ読み取り可能な記録媒体 | |
TWI414992B (zh) | 遠端非同步資料卷複製的方法及其裝置 | |
JP4809040B2 (ja) | ストレージ装置及びスナップショットのリストア方法 | |
KR102378367B1 (ko) | 분산 파일 시스템 | |
US11199989B2 (en) | Methods, apparatuses and computer program products for supporting and performing data replication of virtual machine | |
JP2009157785A (ja) | 待機系計算機の追加方法、計算機及び計算機システム | |
JP2014517363A (ja) | クローンファイル作成方法と、それを用いたファイルシステム | |
JP2005301590A (ja) | ストレージシステム及びデータ複製方法 | |
US11449260B2 (en) | Persistent hole reservation | |
CN113010496A (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
JP2009237826A (ja) | ストレージシステム及びそのボリューム管理方法 | |
CN113010549A (zh) | 基于异地多活系统的数据处理方法、相关设备及存储介质 | |
US10346077B2 (en) | Region-integrated data deduplication | |
US10025521B2 (en) | Obtaining additional data storage from another data storage system | |
EP4357949A1 (en) | Authentication method and apparatus, and storage system | |
US20080294858A1 (en) | Storage system and data management method | |
CN116594551A (zh) | 一种数据存储方法及装置 | |
US9436653B2 (en) | Shared-bandwidth multiple target remote copy | |
CN116339609A (zh) | 一种数据处理方法以及存储设备 | |
JP5874526B2 (ja) | バックアップ取得装置、バックアップ取得方法、およびバックアップ取得プログラム | |
CN117851369A (zh) | 一种基于分布式存储系统的大数据存储访问方法 | |
CN118069662A (zh) | 一种数据库的管理方法及相关设备 |