TWI414992B - 遠端非同步資料卷複製的方法及其裝置 - Google Patents
遠端非同步資料卷複製的方法及其裝置 Download PDFInfo
- Publication number
- TWI414992B TWI414992B TW098146526A TW98146526A TWI414992B TW I414992 B TWI414992 B TW I414992B TW 098146526 A TW098146526 A TW 098146526A TW 98146526 A TW98146526 A TW 98146526A TW I414992 B TWI414992 B TW I414992B
- Authority
- TW
- Taiwan
- Prior art keywords
- volume
- data volume
- data
- destination
- source
- 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/2066—Optimisation of the communication load
-
- 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/2069—Management of state, configuration or failover
-
- 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
- G06F11/2074—Asynchronous techniques
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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]
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
本發明係關於一種資料卷複製的方法及其裝置,尤指一種將近端資料卷非同步複製至遠端資料卷的方法及其裝置。
在現代社會中,儲存裝置被廣泛地應用於各式各樣的電腦系統或儲存系統之中。依照儲存的目的,有些儲存裝置是用來儲存系統運作時需要常態性存取的資料,此類儲存裝置稱為主要儲存裝置(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 Extend)。許多儲存系統會對其部份或全部的資料卷(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)資料存取的服務。
資料卷複製雖然提供了以上種種的優點與功用,但是若是備份資料與來源資料皆儲存在同一地點的儲存系統之中,一但遇到一些重大的災害,例如:地震、火災、恐怖攻擊,導致整個儲存系統或儲存裝置遭到實體上的破壞,則仍然無法維護資料的安全性,會導致重要資料的永久性喪失。
為解決以上問題,遠端資料卷複製的方式應運而生,藉由將重要資料的備份資料複製至另一地點的遠端儲存裝置中,以確保重要資料的安全性。
只是,要將近端的資料複製至遠端的儲存裝置,需要透過網路來進行傳輸。因此,網路線傳輸的頻寬限制是進行遠端資料卷複製的一大瓶頸。因此,對於遠端資料卷複製領域而言,需要有一複製技術可以迴避此遠端資料傳輸的瓶頸限制,讓儲存系統的運作績效不至因此而明顯受到影響。
本發明之目的係在提供一種應用在遠端資料卷複製的方法及其裝置,可以因應資料遠端傳輸時之網路頻寬限制問題,而讓儲存系統的運作績效維持在較佳的水準。
依據本發明之一特色,提出一種遠端非同步資料卷複製的方法,其包含:鏡射(mirroring)位於一第一位置的一來源資料卷(source volume)的資料到位於一第二位置的一目的資料卷(destination volume);接收一主機輸出入要求(Host IO),該主機輸出入要求(Host IO)係來自位於該第一位置的一主機;執行一寫入備份(backup-on-write)操作,該寫入備份(backup-on-write)操作係判斷該來源資料卷(source volume)將被寫入的該資料區塊的資料是否與該目的資料卷(destination volume)相對應的一資料區塊的資料相同,而決定是否執行一將該來源資料卷(source volume)的該資料區塊的原始資料備份至位於該第一位置的一備份影像(Source BAS)的操作;將該主機輸出入要求(Host IO)的該新資料寫入該來源資料卷(source volume)的該資料區塊;以及回覆該主機該主機輸出入要求(Host IO)已經完成。
依據本發明之再一特色,提出一種執行遠端非同步資料卷複製的儲存系統,其包含:一第一儲存虛擬化子系統,位於一第一位置,包含有一第一控制器與一第一儲存單元,其中該第一儲存單元中具有一第一資料卷與一第一備份影像(Source BAS);一第二儲存單元,位於一第二位置,該第二儲存單元中具有一第二資料卷;以及一主機,位於該第一位置,與該第一儲存虛擬化子系統耦接,並對該第一儲存虛擬化子系統中的該第一資料卷發出一主機輸出入要求(Host IO);其中,當該第一儲存虛擬化子系統中的該第一控制器接收到該主機輸出入要求後,執行一寫入備份(backup-on-write)操作,該寫入備份(backup-on-write)操作判斷該第一資料卷將被寫入的一第一資料區塊的資料是否與該第二資料卷相對應的一第二資料區塊的資料相同,而決定是否執行一將該第一資料卷的該第一資料區塊的原始資料備份至該第一備份影像的操作;然後該第一控制器寫入該主機輸出入要求的一更新資料至該第一資料卷的該第一資料區塊,之後回覆該主機該主機輸出入要求(Host IO)已經完成。
本發明主要是提出一種遠端非同步資料卷複製的方法及其裝置。應用非同步複製(async)的方式,當近端儲存系統的主機(local host)對來源資料卷(source volume)寫入新資料時,若來源資料卷(source volume)被覆寫區塊的原始資料與遠端之目的資料卷(destination volume)的對應區塊的資料不同,則只要在近端“寫入備份(backup-on-write)”該原始資料至來源資料卷(source volume)的“時間點差備份影像”(Point-in-Time Differential Backup Image,或簡稱為“備份影像(Backup Image)”,或以“BAS”代表)之中,且該新資料寫入來源資料卷(source volume)完成後,不等待原始資料同步複製至遠端之目的資料卷(destination volume),即回覆近端主機(local host)其輸出入要求(IO request)已經完成。另一種狀況是,若來源資料卷(source volume)被覆寫區塊的原始資料與遠端之目的資料卷(destination volume)的對應區塊的資料相同一致,則不須“寫入備份(Backup-on-write,BOW)”該原始資料至來源資料卷的“備份影像”(Source BAS),只要新資料寫入來源資料卷(source volume)完成後,即回覆近端主機(local host)其輸出入要求(IO request)已經完成。
由於本發明在處理近端主機(local host)的輸出入要求(IO request)時,係採用非同步複製(async)的方式,也就是:所有的訊息與資料只先在近端處理傳輸,即可先行回覆近端主機(local host)其輸出入要求(IO request)已經完成。至於真正將資料拷貝至遠端之目的資料卷的程序,則留待背景拷貝程序或其他適當時機才執行。再者,本發明利用“時間點差備份(Point-in-Time Differential Backup)”技術備份來源資料卷(source volume)的資料變動,其中:只針對與遠端之目的資料卷(destination volume)不同的來源資料卷(source volume)的原始資料做“寫入備份(backup-on-write)”於來源資料卷的“備份影像”(Source BAS)的動作,不需要將所有的資料變動都寫入至來源資料卷的“備份影像”(Source BAS),使得須傳輸至遠端之目的資料卷(destination volume)之資料量可以降到最少。如此,根據本發明技術,可以迴避資料遠端傳輸時之網路頻寬限制問題,且可以讓儲存系統的運作績效維持在較佳的水準。
請參照第1圖,係為應用本發明之電腦系統的硬體架構示意圖。其中包括位於近端(local site)1的一主機(Host)11與一儲存虛擬化子系統(Storage Virtualization Subsystem,SVS)12,用於執行主要系統操作;以及位於遠端(Remote site)2的一儲存虛擬化子系統22,用於提供近端儲存虛擬化子系統12的備援之用。兩儲存虛擬化子系統12、22之間係透過一通訊媒體(Communication Medium)3互相溝通。該通訊媒體(Communication Medium)3可以是一區域網路(LAN)、廣域網路(WAN)、儲存區域網路(SAN)、網際網路(Internet)、或其他任何可以讓兩儲存虛擬化子系統12、22間互相傳遞訊息的通訊媒體(Communication Medium),例如:專用的資料傳輸通道(Dedicated Data Transfer Channel)。雖於此實施例當中,在近端1僅有一主機11與一儲存虛擬化子系統12相互連接;實際應用時,可以用一主機11連接多個儲存虛擬化子系統12,或是多個主機11連接一個儲存虛擬化子系統12,或是多主機11連接多儲存虛擬化子系統12。此外,在本發明的其他實施例中,遠端2也可能具有一或複數個主機(圖中沒有繪示)與儲存虛擬化子系統22相連接。雖然本發明之第1圖所示之實施例係設定主要系統處理是位於近端1,遠端2只是做為備援之用,因此沒有考慮遠端2是否有與主機(Host)相連接;但是,於本發明之另一實施例,遠端2亦可以做為儲存系統的主控端(Master)。
該位於近端1的主機11可為一主機電腦,如一伺服器系統、工作站、個人電腦系統等。近端1與遠端2的儲存虛擬化子系統12、22各自包含有一儲存虛擬化控制器(Storage Virtualization Controller,SVC)13、23,以及一連接至儲存虛擬化控制器13、23之實體儲存裝置陣列(Physical Storage Device Array,PSD Array)14、24。儲存虛擬化控制器13、23可為一磁碟陣列控制器或是一JBOD模擬器。在此,兩儲存虛擬化子系統12、22雖然僅各繪示一個實體儲存裝置陣列14、24連接至儲存虛擬化控制器13、23,但實際應用時可使用一個以上的實體儲存裝置陣列14、24,而且主機11也可為一儲存虛擬化控制器。
兩儲存虛擬化控制器(SVC)13、23皆是用來接受由主機11傳來的輸出入請求及相關資料(控制訊號及資料訊號),並執行此輸出入請求,或是將此輸出入請求各自映射至其實體儲存裝置陣列14、24。而實體儲存裝置陣列14、24包含有複數個實體儲存裝置(Physical Storage Device,PSD),這些實體儲存裝置可為,舉例而言,硬碟。儲存虛擬化控制器13、23可用來加強效能及/或改進資料可利用性(data availability),或是用來增加對主機11而言的單一邏輯媒體單元的儲存容量。
資料卷(volume)是一種虛擬的邏輯儲存單位。以近端1為例,儲存虛擬化控制器(SVC)13將實體儲存裝置陣列14儲存虛擬化為一至數個邏輯儲存裝置,並呈現給主機11存取資料。主機11可以決定該一至數個邏輯儲存裝置要規劃為幾個資料卷(volume);每個資料卷(volume)都有自己的檔案系統。一資料卷(volume)可能涵蓋一至數個實體儲存裝置(PSD),或者只有一個實體儲存裝置(PSD)的部分區域,或者數個實體儲存裝置(PSD)的部分區域組合而成。第1圖中為方便表示,不論是在近端1或遠端2,皆假設一個資料卷(volume)的儲存區域剛好涵蓋一個實體儲存裝置(PSD);但是,本發明的其他實施例並不以此為限,如前所述,本發明中所稱一個資料卷(volume)的範圍可能是一個實體儲存裝置(PSD)的部分區域、或是涵蓋一至數個實體儲存裝置(PSD)、或是數個實體儲存裝置(PSD)的部分區域組合而成。
進行資料卷(volume)複製時,須將近端的來源資料卷(source volume)的全部內容完整地複製至遠端的目的資料卷(destination volume);且此複製的過程,需要藉由通訊媒體(Communication Medium)3來傳輸資料。如以第1圖為例,可能是將近端的資料卷A 15a整體複製至遠端的資料卷P 25a,或者是其他可能的實施例。此時,扮演資料提供者的資料卷A 15a是來源資料卷(source volume),接受複製資料的資料卷P 25a是目的資料卷(destination volume)。來源資料卷與目的資料卷的容量大小未必相同;但是,通常目的資料卷的容量需要大於或等於來源資料卷的容量,以容納所有從來源資料卷複製而來的資料。
進行資料卷複製的做法是:先建立一來源資料卷(source volume)與一目的資料卷(destination volume)間為一個「鏡射對(mirroring pair)」的關係,例如:前述之資料卷A 15a與資料卷P 25a。鏡射對(mirroring pair)中兩資料卷可以位於同一儲存系統、或不同的儲存系統中;本發明技術係針對位於不同儲存系統的兩資料卷所形成的鏡射對(mirroring pair)做資料複製。鏡射對(mirroring pair)形成後,接下來的做法可能有以下數種實施例:第一種是,開始進行第一次的同步複製程序,以將來源資料卷(source volume)的資料鏡射(mirroring)至目的資料卷(destination volume);第二種是,若是鏡射對(mirroring pair)形成之初,近端1的來源資料卷(source volume)尚未儲存任何資料,則可以不進行上述之第一次的同步複製程序;第三種是,來源資料卷(source volume)先在近端1做一份鏡射(mirroring)的備份資料,然後再將此鏡射(mirroring)的備份資料複製到遠端2的目的資料卷(destination volume)。對於位於不同位置的兩資料卷而言,無論是以上哪一種做法,近端1與遠端2之間的處理程序都需要透過通訊媒體(Communication Medium)3來達成。依照應用的需要,可以設定在鏡射(mirroring)期間或完成之後的某個時間點,中止鏡射對(mirroring pair)中兩資料卷間的鏡像(mirror)關係,此操作稱為「分離(split)」。分離(split)指令的下達,意謂目的資料卷(destination volume)保存了分離(split)指令下達的時間點的來源資料卷(source volume)的狀態;且意謂此時間點之後,切斷來源資料卷(source volume)與目的資料卷(destination volume)間「鏡射對」的關係,該兩資料卷可以各自獨立地被存取資料或更新,並不需再維持彼此間各自更動資料的一致。
根據本發明技術,位於近端1與遠端2的兩資料卷間係採用非同步複製(async)方式複製資料,因此當兩資料卷間一形成鏡射對(mirroring pair)的關係之時,立即執行分離(split)作業。即使在此之後有“再同步(resync)”程序啟動,也立即再次執行分離(split)作業,讓分別位於近端與遠端的兩資料卷永遠處於分離(split)的狀態。由此可知,位於遠端2的目的資料卷(destination volume)所要複製的是:位於近端1的來源資料卷(source volume)在分離時間點的狀態。分離(split)之後,來源資料卷(source volume)還是會紀錄主機11對它所做的任何資料修改,但是該些修改並不需要複製至遠端2的目的資料卷(destination volume);除非之後有再同步(resync)程序啟動。
本發明所提出之遠端非同步資料卷複製的方法,係透過第1圖中的儲存虛擬化控制器(SVC)13、23而實現,其一實施例的架構示意圖如第2圖所示。
儲存虛擬化控制器13、23之主要目的是將實體儲存裝置(PSD)之各區段之組合映射(map)形成主機11可見之邏輯儲存裝置。由該主機11發出之輸出入請求(Host IO)於控制器13、23接收之後會先被剖析並解譯,且相關之操作及資料會被編譯成實體儲存裝置(PSD)的輸出入請求。
若以近端的儲存虛擬化控制器13為例說明,一儲存虛擬化控制器13包含有一主機端輸出入裝置連結控制器(Host-side IO Device Interconnect Controller)131、一中央處理電路(Central Processing Circuit,CPC)132、一記憶體133以及一裝置端輸出入裝置連結控制器(Device-side IO Device Interconnect Controller)134。此處雖以分開的功能方塊描述,但於實際應用時,部份甚至全部的功能方塊(functional block)皆可整合在一單一晶片上。遠端的儲存虛擬化控制器23亦具有上述之架構。
主機端輸出入裝置連結控制器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執行。
本發明方法係利用非同步複製(async)的方式來延遲資料真正複製至遠端之目的資料卷(destination volume)的時間,以使得對主機輸出入要求(host IO request)的回應時間可以有效地縮短;又,利用“時間點差備份(Point-in-Time Differential Backup)”技術做為來源資料卷(source volume)的資料更動時其原始資料的備份,使得來源資料卷(source volume)在分離(split)時間點的資料狀態得以保存,以便在未來的適當時間複製至遠端的目的資料卷(destination volume)。在本發明的另一實施例中,遠端之目的資料卷(destination volume)亦具有一“寫入備份影像”(Destination Backup-on-Write Image,或稱為Destination BAS),用以備份分離(split)時間點之目的資料卷(destination volume)的資料狀態,以因應有需要時,可以做為其本身資料之“返回(rollback)”之用。
本發明如何實施非同步複製(async)的技術內容將於下文中詳細說明;以下先就本發明中之“時間點差備份(Point-in-Time Differential Backup)”技術做一大略介紹如下。
請參照第3圖,“時間點差備份(Point-in-Time Differential Backup)”技術係採用一區段分配系統(Section Allocation System,以下簡稱為SAS)來進行管理備份卷(Backup Volume)之操作。SAS係為一類似檔案系統(file-system-like)結構,可由一或多個媒體區(Media Extent)(圖中沒有繪示)所組成,這些Media Extent係由將一或多個作為媒體區段供應者(media section providers)之邏輯碟/分割區(Logical Drives/Partition)格式化而形成。每個SAS係包含自己的區段分配表(Section Allocation Table,以下簡稱為SAT)、以及一節點表(Inode Table)(圖中沒有繪示)。其中,Inode Table係用以記錄檔案內容存放位置的資訊,即檔案內容的指向(pointer),使系統可以透過inode正確的去取得檔案的內容。此SAS和其所屬之每個Media Extent係有一用來識別目標(object)之唯一識別符(ID)。SAS係包含有:屬性區塊(Attribute Block),用以記載此SASID與Media Extent ID;一區塊關聯集(Block Association Set,以下簡稱為BAS)相關資訊欄位,用以記載指向每個區塊關聯集(BAS)之資訊(包含SAT 與Inode Table)、以及每個BAS其所關聯的來源資料卷(Source Volume)資訊;日誌(Journal)欄位,用來存放運作日誌,以供系統發生錯誤或斷電情事時可供回復(recovery)之用。
SAS可以包含有一或多個區塊關聯集(BAS),BAS是進行時間點(point-in-time,以下簡稱為PIT)備份(backup)的基礎。區塊關聯表(Block Association Tables,以下簡稱BAT)儲存在此BAS之中。BAT係用以儲存交互參考資訊以與具有原始儲存位置(LBA)之備份資料相對應,亦即每個BAT內記錄有指向其所對應之時間點差備份影像(PIT Differential Backup Image)之資訊。而時間點差備份影像(PIT Differential Backup Image)亦儲存於此BAS之中。
整體而言,每個BAS包含有:屬性區塊(Attribute Block),用以記載此BAS ID、BAS大小以及BAS相關設定等資訊;目錄(directory)欄位,記載BAT級數(level)以及已建置BAT之數量;日誌(Journal)欄位,用以存放運作日誌,以供系統發生錯誤或斷電情事時可供recovery之用;文件表(Folder Table),用以指向BAT;以及資料區(Data Area),用以存放Backup Image。
一般而言,建立一邏輯媒體(logical media;如LD/LV/Partition)之一時間點備份(PIT backup)之第一步驟即是在一獨立可用的logical media上建置SAS。接著,BAS應被建置、安裝及將其Source Volume映射至一或多個主機通道之ID/LUNs。最後,當來到從事PIT backup之時間點時,一相對應之BAT應被建置並且接著將其設定為BAS中現役的BAT(active BAT)。待其所關聯的來源資料卷(Source Volume)的某資料區塊將被更改之前,啟動“寫入備份(backup-on-write,以下簡稱BOW)”程序,將該區塊的原始資料複製至現役的BAT的時間點差備份影像(PIT Differential Backup Image)的對應區塊。
以上所述之SAS、BAS、BAT以及其他各欄位和資料區的功能、彼此間的交互作用,係為習知此技藝人士所熟知,因此下文不再對其細節多做贅述。
請參照第4A圖,本發明在進行將近端儲存子系統(Local Storage Subsystem)12的一來源資料卷(Source Volume)71非同步複製到遠端儲存子系統(Remote Storage Subsystem)22的一目的資料卷(Destination Volume)75之初,即在近端儲存子系統12建立該來源資料卷(Source Volume)71的時間點差備份(PIT Differential Backup)資訊,包括分離(split)時間點的區塊關聯表(BAT)與其所對應之時間點差備份影像(PIT Differential Backup Image)所需的儲存空間;圖中係以Source BAS 72做為代表。雖然圖中以及下文只有以Source BAS 72代表來源資料卷(Source Volume)71的時間點差備份(PIT Differential Backup)資訊;但事實上,如前文所述,進行寫入備份(BOW)所需的資訊還包括其對應的區段分配系統(SAS)、區塊關聯集(BAS)、以及其他各欄位的資訊。由於本發明方法只須紀錄該來源資料卷(Source Volume)71於分離(split)時間點的時間點差備份影像(PIT Differential Backup Image),因此其區塊關聯集(BAS)中只有一個用以紀錄分離(split)時間點之來源資料卷(Source Volume)71的資料狀態的Source BAS 72。
請參照第4B圖,於本發明之另一實施例,本發明在進行非同步複製程序之初,亦在遠端儲存子系統(Remote Storage Subsystem)22建立目的資料卷(Destination Volume)75的時間點差備份資訊,包括分離(split)時間點的區塊關聯集(BAS)與其所對應之時間點差備份影像(PIT Differential Backup Image)所需的儲存空間;圖中係以Destination BAS 76做為代表。當來源資料卷(Source Volume)71或Source BAS 72的資料寫入目的資料卷(Destination Volume)75時,該Destination BAS 76可以用以備份分離(split)時間點目的資料卷(destination volume)75的資料狀態,以因應有需要時,可以做為其本身資料之“返回(rollback)”之用。雖然圖中以及下文中只有以Destination BAS 76代表目的資料卷(Destination Volume)75的時間點差備份資訊;但事實上,如前文所述,其時間點差備份資訊亦包括其對應的區段分配系統(SAS)、區塊關聯集(BAS)、以及其他各欄位的資訊。於此實施例中,來源資料卷(Source Volume)71與目的資料卷(Destination Volume)75各別只有一個Source BAS 72與Destination BAS 76,用於紀錄分離(split)時間點的時間點差備份影像(PIT Differential Backup Image)。
本發明為紀錄來源資料卷(Source Volume)71與目的資料卷(Destination Volume)75複製期間,兩資料卷71、75間相互的狀態與本身資料區塊的資訊,請參照第5A圖與第5B圖,在兩資料卷71、75形成一鏡射對(mirroring pair)之時,即各自建立一專屬的資料卷記錄表(Volume Log Table,以下簡稱VLT)30,用以紀錄該兩資料卷71、75間的同步狀態資訊,以及建立一專屬的資料卷區塊更新表(Volume Block Update Table,以下簡稱VBUT)36,用以紀錄該資料卷的每一資料區塊(block)的更新狀態資訊。
第5A圖僅繪示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)71為例說明,可以為“0(null)”,表示擁有該VLT 30的來源資料卷(Source Volume)71與第三欄位33所紀錄的目的資料卷(Destination Volume)75之間還未分離(split)。但是,本發明方法在兩資料卷71、75形成一鏡射對(mirroring pair)之初,即馬上執行分離(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)71與第三欄位33所紀錄的目的資料卷(Destination Volume)75之間已經分離(split);反之,若是“0”代表還未分離(split)。
若是目的資料卷(Destination Volume)75,其VLT entry的第一欄位31的序號(SeqNum)的初始設定值(initial setting value),可以為“1”,表示第一個發生的複製事件;之後發生的複製事件所對應的VLT entry的序號,亦是由一主要序號變數(MstSN)指派,該主要序號變數(MstSN)可以由“2”開始累加。至於目的資料卷(Destination Volume)75是否已經與來源資料卷(Source Volume)71分離,則是從其VLT entry的第二欄位32來判斷,與第一欄位31的序號(SeqNum)無關。
當然在其他實施例中,來源資料卷(Source Volume)71與目的資料卷(Destination Volume)75的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)71的VLT entry的第一欄位31的序號(SeqNum)的初始設定值(initial setting value)不是“0(null)”,則以序號(SeqNum)是否是初始設定值(initial setting value)來判斷來源資料卷(Source Volume)71是否進入分離(split)狀態。例如:初始設定值(initial setting value)設定為“1”時,序號(SeqNum)是“1”即表示來源資料卷(Source Volume)71尚未與目的資料卷(Destination Volume)75分離(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紀錄:自己下一個要進行複製的資料區塊(block)的索引號(NxtSynBlk)。
值得注意的是,雖然前文以“SYNSRC”、“SYNDST”以及“SYNSPL”分別表示該資料卷當時的狀態是“來源資料卷(source volume)”、“目的資料卷(destination volume)”或“已經分離(split)”;但本發明不以此為限,在其他實施例中可以用其他代號來表示該三種狀態。
第5B圖僅繪示VBUT 36中一個項目(entry)所包含的欄位作為代表。實際上運作時,一個VBUT 36包含有複數個VBUT項目(VBUT entry),每一VBUT entry代表其所屬的資料卷的一個資料區塊(block);也就是該資料卷有多少資料區塊,其VBUT 36就對應有多少VBUT entry。一個VBUT entry可以包含2個欄位:第一欄位37是保留欄位;第二欄位38紀錄其對應的VLT entry的序號,表示該VBUT entry所對應的資料區塊的資料是因該序號的VLT entry的事件而更新,藉此追蹤該資料卷的每一資料區塊的狀態,例如:該資料區塊是否已經同步(synchronize)、該資料區塊是否在同步後又因主機11存取資料而產生改變。一個VBUT entry的資料長度可以是32bits,或是其他適當的長度。在其他實施例中,一個VBUT entry未必要包含兩個欄位,若是需要更加精簡,可以只包含一個第二欄位38即可。
本發明應用VLT 30與VBUT 36進行兩資料卷間的複製作業,有一些需要注意的原則,說明如下:第一原則、任何正在進行同步複製作業(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。
請參照第6A圖至第6E圖,係描繪本發明中遠端非同步複製(Remote Async Replication)來源資料卷(Source Volume)71至目的資料卷(Destination Volume)75之一實施例的流程圖。該實施例可同時適用於第4A圖與第4B圖的架構。以下關於第6A圖至第6E圖的流程說明,請同時參考第4A圖、第4B圖與第5A圖、第5B圖。
第6A圖的程序一開始時,先確認是否是初始的同步複製作業(step 201)。若是,則先初始化目的資料卷(Destination Volume)75的VBUT 36(step 202)以及初始化目的資料卷(Destination Volume)75的DstMstSN變數(step 203)。初始化的方式是設定VBUT 36中每一entry與DstMstSN變數各自等於一初始設定值,該初始設定值,於一實施例中可以是“0(null)”,或者在其他實施例中,可以是其他的初始設定值。
若step 201判斷的結果不是初始的同步複製作業、或是step 202與step 203結束後,則進入step 204:在來源資料卷(Source Volume)71的VLT 30中分派entry(SrcVLT)且適當地初始化其欄位,包括設定第二欄位32的操作代碼為“SYNSRC”、設定第一欄位31的序號為一初始設定值,例如:“0(Null)”。除此之外,更將此序號的初始設定值指派給一第一變數;於此實施例中稱為“SRCCURSPL”變數。接下來進入step 205:在目的資料卷(Destination Volume)75的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的區塊)。
以上的步驟皆完成後,由節點A 208進入第6B圖的程序。由於本發明方法設定近端的來源資料卷(Source Volume)71與遠端的目的資料卷(Destination Volume)75間永遠是分離(split)的狀態,因此節點A 208之後的流程描繪來源資料卷(Source Volume)71與目的資料卷(Destination Volume)75間的同步複製(sync)作業是在分離(split)的狀態下進行。
第6B圖首先將SrcMstSN的序號值增加1個單位且拷貝至SrcVLT的第一欄位31(SrcVLT.SeqNum);除此之外,更將此SrcMstSN序號的現行值再指派給前述之第一變數(SRCCURSPL)(step 209)。接下來在目的資料卷(Destination Volume)75的VLT 30中分派entry(DstVLT)且適當地初始化其欄位,包括設定第二欄位32的操作代碼為“SYNSPL”(step 210)。然後將DstMstSN變數值增加1個單位且拷貝至DstVLT的第一欄位31(DstVLT.SeqNum);除此之外,更將此DstMstSN的序號現行值指派給一第三變數(於此實施例中稱為“DSTCURSPL”變數)(step 2ll)。請注意,DstMstSN的變數值在進入此步驟增加1個單位前,已於前述第6A圖的step 206指派給第二變數(DSTCURSYN),因此第三變數(DSTCURSPL)與第二變數(DSTCURSYN)的值理論上相差1個單位。以上的步驟皆完成後,接下來會有兩個程序並行處理:step 213所表示的“Background Copy of Source to Destination”程序(其詳細流程將於下文中說明)、以及由節點B 214進入後因出現主機輸出入要求(Host IO)而啟動的程序(描述其詳細流程的第6C圖至第6E圖將於後文中說明)。
step 213所呼叫的“Background Copy of Source to Destination”程序主要是在背景執行將來源資料卷的資料拷貝至目的資料卷的作業。在此作業進行期間,會持續進行step 212的判斷:是否來源資料卷至目的資料卷的同步作業皆已全部完成?若以上判斷結果為“是”,則背景拷貝(background copy)的流程結束;否則,持續進行“Background Copy of Source to Destination”程序(step 213),直到step 212的判斷結果為“是”而結束背景拷貝的流程。
請參照第6C圖,由節點B 214進入本流程後,首先在step 215詢問:是否有任何Host IO要對來源資料卷(Source Volume)71存取資料?若step 215的判斷結果為“否”,則停留在step 215的詢問狀態;若step 215的判斷結果為“是”,則進入step 216:解析該Host IO並分解為1至複數個邏輯碟(Logical Drive,LD)輸出入要求(LD IO),每一LD IO皆對應到來源資料卷(Source Volume)71中一個欲存取的資料區塊(block)。接下來的流程分為兩個方向:一是回到step 215繼續判斷是否有其他Host IO要對來源資料卷(Source Volume)71存取資料;另一是根據該一至複數個LD IO同時並行執行第6D圖與第6E圖的流程(step 217)。也就是說如果有n個LD IO要對來源資料卷(Source Volume)71中n個資料區塊(block)進行存取,就會引發n個第6D圖與第6E圖的流程(steps 217-1...217-n)同時執行。其中任何一個LD IO所對應的流程執行完畢,便進入step 219判斷是否所有並行處理的流程(steps 217-1...217-n)都完成了。若否,則回到節點D 218,停留在step 219的詢問狀態;若是,則回報主機(Host)1此Host IO已處理完畢(step 220),然後回到step 215繼續判斷是否有其他Host IO要對來源資料卷(Source Volume)71存取資料。
值得注意的是,在第6C圖中,只要一有Host IO出現要對來源資料卷(Source Volume)71或目的資料卷(Destination Volume)75存取資料,該Host IO便立即由step 215進入流程處理,無論之前的Host IO是否已經處理完成。
請參照第6D圖與第6E圖,係針對存取每一資料區塊(block)之LD IO所做的處理程序,相當於第6C圖中一個step 217的處理方塊。其中,第6D圖是描述Host IO為“寫入(write)”時的處理程序;第6E圖是描述Host IO為“讀取(read)”時的處理程序。首先由第6D圖的step 221判斷該Host IO是否是對來源資料卷(Source Volume)71或目的資料卷(Destination Volume)75寫入資料?若否,表示該Host IO是要讀取資料,則由節點C 233進入第6E圖進行讀取資料的相關流程。第6E圖的相關流程細節將於後文中說明。若step 221的判斷結果為“是”,表示該Host IO是要寫入資料,則呼叫並執行“Check/Copy Block from Source to Destination”程序(step 224),以檢查並決定是否需要將來源資料卷(Source Volume)71之該處理資料區塊的原始資料拷貝至Source BAS 72做為一個寫入備份(backup-on-write)。此因處理Host IO而呼叫的“Check/Copy Block from Source to Destination”程序的詳細流程描述於第8A圖且將在後文中說明。step 224之後,將Host IO所欲寫入的資料寫入至其所欲寫入的來源資料卷(Source Volume)71的相對應資料區塊(step 226)。
在step 226之後,將第一變數(SRCCURSPL)的值指派給SrcVBUT.SeqNum(step 232),表示來源資料卷(Source Volume)71的相對應資料區塊是在SRCCURSPL代表的事件中更新資料。最後結束第6D圖的流程,由節點D 218回到第6C圖,然後進入step 219進行判斷。
若是step 221的判斷結果為“否”,則由節點C 233進入第6E圖進行讀取資料的相關流程。首先判斷該Host IO是否是針對來源資料卷(Source Volume)71讀取資料(step 239)?若以上判斷結果為“是”,則由來源資料卷(Source Volume)71的資料區塊讀取資料(step 242),然後結束此流程,由節點D218回到第6C圖。若step 239的判斷結果為“否”,則進一步判斷:該Host IO是否是針對目的資料卷(Destination Volume)75讀取資料、並且DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)是否小於前述第二變數(DSTCURSYN)的變數值(step 240)?若以上判斷結果為“是”,表示該欲讀取的資料區塊的資料尚未與來源資料卷(Source Volume)71的相對應資料區塊同步,因此轉由來源資料卷(Source Volume)71或Source BAS 72的相對應資料區塊讀取資料(step 243)。若step 240的判斷結果為“否”,則沒有以上疑慮,直接由目的資料卷(Destination Volume)75的資料區塊讀取資料(step 241),然後結束此流程,由節點D 218回到第6C圖。
請參照第7圖,係為本發明中背景拷貝來源資料卷至目的資料卷(Background Copy of Source to Destination Volume)程序之一實施例的流程圖;本程序為前文第6B圖的step 213所呼叫的程序。對於目的資料卷的VBUT entry所代表的每一資料區塊(step 401),呼叫並執行“檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination)”程序(step 402)。此因處理Background Copy而呼叫的“Check/Copy Block from Source to Destination”程序的詳細流程描繪於第8B圖,將於下文中說明。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”。
請參照第8A圖與第8B圖,係為本發明中檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)之一實施例的流程圖。其中,第8A圖為第6D圖的step 224所呼叫而進入,表示是因Host IO而執行的處理程序;第8B圖為第7圖的step 402所呼叫而進入,表示是因背景拷貝(background copy)而執行的處理程序。此兩種不同的呼叫來源會傳入不同的值,以供判斷:來源資料卷(Source Volume)71的資料只要在近端做寫入備份(BOW)(第8A圖)、還是要將位於Source BAS 72或Source Volume 71的資料複製至遠端的目的資料卷(Destination Volume)75(第8B圖)。
第8A圖首先判斷DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)是否小於DSTCURSYN(第二變數)的變數值(step 501)?如果以上判斷結果為“是”,呼叫“Check Volume Block In-Sync”程序(其詳細流程描繪於第9圖且將在後文中說明)並判斷其傳回值是否為“偽(FALSE)”(step 505)?如果以上判斷結果為“是”,表示該來源資料卷和目的資料卷的相對應資料區塊還未同步複製過。由於本程序是因處理Host IO而進入,因此在step 507啟動一個“寫入備份”(backup-on-write,BOW)的操作:若是來源資料卷(Source Volume)71中目前正處理的區塊資料不同於目的資料卷(Destination Volume)75的對應區塊的資料,則寫入備份(BOW)來源資料卷(Source Volume)71中該區塊的資料至Source BAS 72即可,而不是拷貝至目的資料卷(Destination Volume)75。如果Step 505的判斷結果為“否”,表示該來源資料卷和目的資料卷的相對應資料區塊已經同步複製過,因此不須進行任何處理,結束本程序。回到step 501,如果其判斷結果為“否”,表示目的資料卷(Destination Volume)75的對應區塊的資料已經更新,則跳過該資料區塊。在step 501判斷為“否”或step 507之後,結束本程序,回到呼叫本程序的第6D圖的Step 224,繼續執行其他步驟,最後在第6C圖的Step 220回覆主機(Host)11其Host IO已執行完成。
請參照第8B圖,本程序是因被背景拷貝程序呼叫而進入,表示將進行背景拷貝近端1的資料至遠端2的目的資料卷(Destination Volume)75。首先判斷DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)是否小於DSTCURSYN(第二變數)的變數值(step 501)?如果以上判斷結果為“是”,呼叫“Check Volume Block In-Sync”程序(其詳細流程描繪於第9圖且將在後文中說明)並判斷其傳回值是否為“偽(FALSE)”(step 505)?如果以上判斷結果為“是”,表示該來源資料卷和目的資料卷的相對應資料區塊還未同步複製過。接下來進一步判斷遠端的目的資料卷(Destination Volume)75是否是可存取的(step 222)?若當時目的資料卷(Destination Volume)75無法被存取,則設定「同步錯誤旗標(SyncErrorFlag)」為“真(TRUE)”(step 227)。若其判斷結果為“是”,表示當時的目的資料卷(Destination Volume)75是可以存取的,以下便可以進行拷貝資料至目的資料卷(Destination Volume)75的動作。在進行拷貝前先判斷Source BAS 72的對應區塊是否是空的(step 509)?如果以上判斷結果為“否”,表示來源資料卷(Source Volume)71之該對應區塊的原始資料已經寫入備份(BOW)至Source BAS 72,因此直接拷貝Source BAS 72上對應區塊的資料至遠端2的目的資料卷(Destination Volume)75(step 510)。如果step 509的判斷結果為“是”,表示來源資料卷(Source Volume)71之該對應區塊的原始資料並沒有寫入備份(BOW)至Source BAS 72。在這種情況下,是否要從來源資料卷(Source Volume)71複製該對應區塊的資料至目的資料卷(Destination Volume)75,係根據step 511的判斷式:SrcVBUT.SeqNum(來源資料卷中正進行處理的VBUT entry的序號)是否小於第一變數(SRCCURSPL)的變數值?如果以上判斷結果為“是”,表示來源資料卷(Source Volume)71之該對應區塊的資料在分離(split)時間點後未被更新,因此要將來源資料卷(Source Volume)71上該對應區塊的資料同步複製至目的資料卷(Destination Volume)75(step 512);如果step 511的判斷結果為“否”,表示該對應區塊在分離時間點後有被更新,且兩資料卷71、75在該對應區塊的資料就分離時間點而言是相同,因此不須再進行任何處理。
其中要注意的是,當本發明採用第4B圖的時間點差備份(PIT Differential Backup)架構時,也就是遠端的目的資料卷(Destination Volume)75亦需要做寫入備份(BOW)時,則在step 510與step 512對目的資料卷(Destination Volume)75寫入資料之前,須要先將目的資料卷(Destination Volume)75中被寫入區塊的資料寫入備份(BOW)至Destination BAS 76。
在step510或step512的處理之後、或是step511判斷結果為“否”後,須設定DstVBUT.SeqNum(目的資料卷中正進行處理的VBUT entry的序號)等於DSTCURSYN(第二變數)的變數值(step 513),表示目的資料卷(Destination Volume)75中該對應區塊的資料是因DSTCURSYN(第二變數)所代表的事件而變更;然後結束本程序。
回到step 501,如果其判斷結果為“否”,表示目的資料卷(Destination Volume)75的對應區塊的資料已經更新,則跳過該資料區塊,然後結束第8B圖的程序。
請參照第9圖,係為本發明中檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)程序之一實施例的流程圖;本程序為前文第8A圖與第8B圖的step 505所呼叫的程序。本程序主要有五個判斷條件,只要有任一判斷條件符合,本程序即回傳一個“偽(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)。
若發生來源資料卷(Source Volume)71無法連線的事件,且在此事件之前兩資料卷71、75間的同步/非同步複製作業還未完成,則會啟動一個“非同步複製失效轉移處理(Async replication failover process)”程序。此時目的資料卷(Destination Volume)75會開始進行一個“返回(Rollback)”作業,將本身的資料返回(Rollback)到Destination BAS 76所紀錄的狀態,並且每一有做Rollback的資料區塊所對應的Destination VBUT entry會因此而隨之更新。若是往後來源資料卷(Source Volume)71回到線上,則可以啟動一個“非同步複製失效回復處理(Async replication failback process)”程序。此操作會強迫目的資料卷(Destination Volume)75上該些有做“返回(Rollback)”作業的資料區塊反向同步複製到來源資料卷(Source Volume)71。其中要注意的是,目的資料卷(Destination Volume)75上尚未與來源資料卷(Source Volume)71進行同步複製的資料區塊也會被標註為:將來要同步複製回來源資料卷(Source Volume)71;因為來源資料卷(Source Volume)71和目的資料卷(Destination Volume)75的VBUT entries可能會不一致。此做法,再加上上述“返回(Rollback)”作業中更新Destination VBUT的作法,保證進行“失效回復(failback)”程序後可以使來源資料卷(Source Volume)71完全相同於目的資料卷(Destination Volume)75。
請參照第10圖,係為本發明中非同步複製失效轉移處理(Async replication failover process)程序之一實施例,總共有5個步驟,分述如下。首先在Step 801:從近端儲存虛擬化子系統12中解映射(unmap)目的資料卷(Destination Volume)75以及其區段分配系統(Destination SAS)。此做法可以保證在失效轉移(failover)之後,只有一個子系統(i.e.,遠端儲存虛擬化子系統22)可以存取目的資料卷(Destination Volume)75以及其區段分配系統(Destination SAS)。Step 802:掛載(mount)Destination SAS和Destination BAS 76在遠端儲存虛擬化子系統22的控制器(SVC)23上。Step 803:初始化一“返回(Rollback)”作業,用以將目的資料卷(Destination Volume)75的資料回復到Destination BAS 76所紀錄的狀態;並且,目的資料卷的VBUT(Destination VBUT)持續追蹤並紀錄因“返回(Rollback)”作業而導致的資料更新。Step 804:當該“返回(Rollback)”作業完成後,分離(split)目的資料卷(Destination Volume)75與Destination BAS 76。Step 805:將目的資料卷(Destination Volume)75映射(map)給主機(Host)11,以服務主機(Host)11的需求;並且,Destination VBUT持續追蹤並紀錄主機(Host)11對目的資料卷(Destination Volume)75所做的資料更新。
至於“非同步複製失效回復處理(Async replication failback process)”程序,於本發明中提出兩種實施例:第11圖描繪的是由近端的SVC 13(或稱為Source RAID Controller)做為“主人(Master)”,主導執行“再同步複製(resync)”作業;第12A圖與第12B圖描繪的是仍然由遠端的SVC 23(或稱為Destination RAID Controller)做為“主人(Master)”,主導執行“再同步複製(resync)”作業。其詳細流程分述如下。
請參照第11圖,描繪由近端的SVC 13(或稱為Source RAID Controller)做為“主人(Master)”,主導執行非同步複製失效回復處理(Async replication failback process)程序的流程圖。由於在非同步複製失效轉移處理(Async replication failover process)程序之時,已經轉換由遠端的SVC 23做為整個系統的“主人(Master)”,因此本程序首先要將“主人(Master)”再轉換給近端的SVC 13(或稱為Source RAID Controller),之後再進行由目的資料卷(Destination Volume)75到來源資料卷(Source Volume)71的“再同步複製(resync)”作業。Step 901:將目的資料卷(Destination Volume)75由主機(Host)11解映射(unmap)出來,並且卸載(dismount)目的資料卷的區段分配系統(Destination SAS)。Step 902:映射(map)目的資料卷(Destination Volume)75以及其區段分配系統(Destination SAS)給近端的SVC 13(或稱為Source RAID Controller)。Step 903:掛載(mount)來源資料卷的區段分配系統(Source SAS)和目的資料卷的區段分配系統(Destination SAS)在Source RAID Controller(SVC)13上。Step 904:初始化一“同步的再同步複製(synchronous resync)”作業,用以將目的資料卷(Destination Volume)75的資料同步複製至來源資料卷(Source Volume)71,之後分離(split)該兩資料卷71、75。Step 905:映射(map)來源資料卷(Source Volume)71給主機(Host)11存取。Step 906:當該“同步的再同步複製(synchronous resync)”作業完成,更改來源資料卷與目的資料卷間的複製模式為”非同步(Async)”。
請參照第12A圖與第12B圖,描繪仍然由遠端的SVC23(或稱為Destination RAID Controller)做為“主人(Master)”,主導執行非同步複製失效回復處理(Async replication failback process)程序的流程圖。其中第12A圖的流程決定再同步作業是由遠端的SVC 23(或稱為Destination RAID Controller)主導,其步驟如下。Step 911:映射(map)來源資料卷(Source Volume)71以及其區段分配系統(Source SAS)給遠端的SVC 23(或稱為Destination RAID Controller)。Step 912:掛載(mount)來源資料卷的區段分配系統(Source SAS)在遠端的SVC 23(或稱為Destination RAID Controller)上。Step 913:初始化一“同步”或“非同步”的“再同步複製”(synchronous or async resync)作業,用以將目的資料卷(Destination Volume)75的資料同步或非同步複製至來源資料卷(Source Volume)71。Step 913完成後,接下來進行第12B圖的流程,以進行“返回(Rollback)”程序:Step 921:從主機(Host)11解映射(unmap)目的資料卷(Destination Volume)75。Step 922:卸載(dismount)在遠端的SVC 23(或稱為Destination RAID Controller)中的目的資料卷的區段分配系統(Destination SAS)和來源資料卷的區段分配系統(Source SAS)。Step 923:解映射(unmap)遠端的SVC 23(或稱為Destination RAID Controller)中的來源資料卷(Source Volume)71以及其區段分配系統(Source SAS)。Step 924:映射(map)目的資料卷(Destination Volume)75以及其區段分配系統(Destination SAS)給近端的SVC 13(或稱為Source RAID Controller)。Step 925:掛載(mount)來源資料卷的區段分配系統(Source SAS)、目的資料卷的區段分配系統(Destination SAS)和Source BAS 72在近端的SVC 13(或稱為Source RAID Controller)上。Step 926:初始化一“返回(Rollback)”程序,用以將來源資料卷(Source Volume)71的資料回復到Source BAS 72所紀錄的狀態。來源資料卷的VBUT(Source VBUT)持續追蹤並紀錄因“返回(Rollback)”程序而導致的來源資料卷(Source Volume)71更新。Step 927:分離(split)來源資料卷(Source Volume)71與Source BAS 72,當該返回(Rollback)程序完成。Step 928:映射(map)來源資料卷(Source Volume)71給主機(Host)11,並且目的資料卷的VBUT(Destination VBUT)持續追蹤並紀錄目的資料卷(Destination Volume)75的更新狀態。Step 929:繼續進行一般的非同步複製(async replication)作業。
以下舉一實際範例,說明本發明如何搭配“時間點差備份(Point-in-Time Differential Backup)”技術而進行遠端非同步資料卷複製作業,且使系統的運作效率維持在一定的水準。此實際範例是以第4B圖的資料卷快照架構為例說明。
請參照第13A圖,假設一來源資料卷71具有6個資料區塊,分別是第一資料區塊711、第二資料區塊712、第三資料區塊713、第四資料區塊714、第五資料區塊715、以及第六資料區塊716。在遠端非同步資料卷複製作業中的一“再同步複製(resync)”開始之前,該來源資料卷71的第一資料區塊711、第二資料區塊712、第四資料區塊714、以及第六資料區塊716的儲存資料與遠端的目的資料卷752的相對應區塊的資料不同,而第三資料區塊713與第五資料區塊715的儲存資料與遠端的目的資料卷752的相對應區塊的資料相同。請同時參照第13B圖至第13D圖,在“再同步複製(resync)”開始之後,系統在近端與遠端各別建立一對應來源資料卷71的Source BAS 72、與一對應目的資料卷75的Destination BAS 76(繪示於第13D圖)。在該“再同步複製(resync)”期間,先有一Host IO要對第四資料區塊714寫入資料(第13B圖),之後又有二個Host IO分別要對第一資料區塊711與第三資料區塊713寫入資料(第13C圖)。在上述三個Host IO出現的時間,背景拷貝程序只有將第一資料區塊711的資料拷貝至遠端的目的資料卷75,其餘皆還未拷貝。如第13B圖與第13C圖中的橫向粗黑虛線代表:背景拷貝已經完成的進度。對第13B圖繪示的Host IO而言,因為第四資料區塊714的資料還未拷貝至遠端的目的資料卷75,並且第四資料區塊714的資料與目的資料卷75的相對應區塊的資料不同,因此,在處理將該Host IO的資料寫入第四資料區塊714之前,需先對第四資料區塊714的資料做一“寫入備份(backup-on-write,BOW)”的動作。也就是要先將來源資料卷71的第四資料區塊714的原始資料拷貝至Source BAS 72的相對應的第四資料區塊724,以保存來源資料卷71的第四資料區塊714在“分離時間點”(也就是“再同步複製(resync)開始”之時)的資料狀態,提供未來背景複製至目的資料卷75之用。對第13C圖繪示的二Host IO而言,因為第一資料區塊711已經同步複製至目的資料卷75的第一資料區塊751,又第三資料區塊713的資料原本就與目的資料卷75的第三資料區塊753的資料相同,因此本發明並不對該二Host IO對來源資料卷71寫入資料的行為做“寫入備份(BOW)”的動作。
值得注意的是,以上第13C圖本發明處理Host IO的做法是:只有對來源資料卷71中與目的資料卷75不同的資料區塊有做“寫入備份(BOW)”的動作,如此可以精簡資料處理的程序。
第13D圖繪示進行背景拷貝時,資料區塊複製的對應關係。本發明在進行背景拷貝時,請同時參照第8B圖,會先到Source BAS 72的對應區塊找找看是否有儲存資料(step 509)。如果有,直接拷貝Source BAS 72中該對應區塊的資料至目的資料卷75(step 510)。例如,第13D圖中將Source BAS 72的第四資料區塊724的資料拷貝至目的資料卷75的第四資料區塊754。如果Source BAS 72在該對應區塊是空的,再決定是否從來源資料卷71的對應區塊拷貝資料至目的資料卷75。其決定的機制取決於第8B圖的step 511:SrcVBUT.SeqNum是否小於第一變數(SRCCURSPL)的變數值?如果是,表示在分離(split)時間點後,來源資料卷71的該資料區塊的資料未被更新,當兩者還未同步複製過,須將來源資料卷71的該資料區塊的資料遠端複製至目的資料卷75的對應區塊(step 512);例如,第13D圖中將來源資料卷71的第一資料區塊711、第二資料區塊712和第六資料區塊716的資料拷貝至目的資料卷75的第一資料區塊751、第二資料區塊752和第六資料區塊756。如果step 511的判斷結果為“否”,則表示來源資料卷71的該資料區塊已被更新過、且兩資料卷71、75在該資料區塊的資料於分離時間點時是相同,因此不需再做資料複製的動作;例如,第13D圖中來源資料卷71的第三資料區塊713與第五資料區塊715。以上範例中所提及的每一對目的資料卷75的資料區塊做寫入動作的步驟,都需伴隨著一“寫入備份(BOW)”的處理。也就是先將目的資料卷75將被寫入區塊的資料,先“寫入備份(BOW)”至Destination BAT 76的對應區塊。例如,第13D圖中目的資料卷75的第一資料區塊751、第二資料區塊752、第四資料區塊754與第六資料區塊756的原始資料,需“寫入備份(BOW)”至Destination BAT 76的第一資料區塊761、第二資料區塊762、第四資料區塊764與第六資料區塊766。
總而言之,本發明利用非同步複製(Async replication)技術搭配“時間點差備份(Point-in-Time Differential Backup)”技術來進行將近端資料複製至遠端儲存媒體的作業,可以在資料真正進行背景拷貝之前,先回覆主機其Host IO已經完成,適當地避免等待資料在通訊媒體(Communication Medium)傳輸時所需花費的大量時間。又,本發明所提出的“寫入備份(Backup-on-Write,BOW)”技術只針對那些真的有需要備份至時間點差備份影像(Point-in-Time Differential Backup Image)的資料做備份,可以精簡資料處理的程序。
1...近端
2...遠端
11...主機
12、22...儲存虛擬化子系統
13、23...儲存虛擬化控制器
131...主機端輸出入裝置連結控制器
132...中央處理電路
133...記憶體
134...裝置端輸出入裝置連結控制器
14、24...實體儲存裝置陣列
15a-15b、25a-25b...資料卷
3...通訊媒體
30...資料卷記錄表(VLT)
31...資料卷記錄表的第一欄位
32...資料卷記錄表的第二欄位
33...資料卷記錄表的第三欄位
34...資料卷記錄表的第四欄位
40...資料卷區塊更新表(VBUT)
41...資料卷區塊更新表的第一欄位
42...資料卷區塊更新表的第二欄位
71...來源資料卷
711-716...來源資料卷的資料區塊
72...來源資料卷的備份影像(Source BAS)
721-726...來源資料卷的備份影像(Source BAS)的資料區塊
75...目的資料卷
751-756...目的資料卷的資料區塊
76...目的資料卷的備份影像(Destination BAS)
761-766...目的資料卷的備份影像(Destination BAS)的資料區塊
第1圖、描繪應用本發明之近端與遠端電腦儲存系統的硬體架構示意圖;
第2圖、描繪應用本發明方法之儲存虛擬化控制器(SVC)之一實施例示意圖;
第3圖、描繪本發明利用“時間點差備份(Point-in-Time Differential Backup)”技術時所根據的區段分配系統(SAS)架構之示意圖;
第4A圖、描繪本發明方法應用“時間點差備份(Point-in-Time Differential Backup)”技術時遠端與近端之資料卷架構之第一實施例的示意圖;
第4B圖、描繪本發明方法應用“時間點差備份(Point-in-Time Differential Backup)”技術時遠端與近端之資料卷架構之第二實施例的示意圖;
第5A圖、描繪用以紀錄資料卷複製資訊之資料卷記錄表(Volume Log Table,VLT)的資料結構;
第5B圖、描繪用以紀錄資料卷複製資訊之資料卷區塊更新表(Volume Block Update Table,VBUT)的資料結構;
第6A圖~第6E圖、描繪本發明中遠端非同步複製(Remote Async Replication)來源資料卷(source volume)至目的資料卷(destination volume)之一實施例的流程圖;
第7圖、描繪本發明中背景拷貝來源資料卷至目的資料卷(Background Copy of Source to Destination Volume)之一實施例的流程圖;
第8A圖、描繪本發明中因處理Host IO而呼叫的“檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)”程序之一實施例的流程圖;
第8B圖、描繪本發明中因處理背景拷貝而呼叫的“檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)”程序之一實施例的流程圖;
第9圖、描繪本發明中檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)之一實施例的流程圖;
第10圖、描繪本發明中非同步複製失效轉移處理(Async replication failover process)程序之一實施例的流程圖;
第11圖、描繪本發明中非同步複製失效回復處理(Async replication failback process)程序之第一實施例的流程圖;
第12A圖~第12B圖、描繪本發明中非同步複製失效回復處理(Async replication failback process)程序之第二實施例的流程圖;
第13A圖~第13D圖、描繪實施本發明之一實際範例。
3...通訊媒體
12、22...儲存虛擬化子系統
71...來源資料卷
72...來源資料卷的備份影像(Source BAS)
75...目的資料卷
76...目的資料卷的備份影像(Destination BAS)
Claims (44)
- 一種非同步資料卷複製的方法,其包含:鏡射(mirroring)位於一第一位置的一來源資料卷(source volume)的資料到位於一第二位置的一目的資料卷(destination volume);接收一主機輸出入要求(Host IO),該主機輸出入要求(Host IO)係來自位於該第一位置的一主機,且欲對該來源資料卷(source volume)的一第一資料區塊寫入一更新資料;執行一寫入備份(backup-on-write)操作,該寫入備份(backup-on-write)操作先判斷該來源資料卷(source volume)將被寫入的該第一資料區塊的資料是否與該目的資料卷(destination volume)相對應的一第二資料區塊的資料相同,而決定是否執行一將該來源資料卷(source volume)的該第一資料區塊的原始資料備份至位於該第一位置的一第一備份影像;寫入該更新資料至該來源資料卷(source volume)的該第一資料區塊;以及回覆該主機該主機輸出入要求(Host IO)已經完成。
- 如申請專利範圍第1項所述之非同步資料卷複製的方法,其中更進行一拷貝程序,用以將儲存於該第一備份影像中的資料、或該來源資料卷(source volume)中的相對應資料拷貝至該目的資料卷(destination volume)。
- 如申請專利範圍第2項所述之非同步資料卷複製的方法,其中該拷貝程序係藉由一通訊媒體(Communication Medium)將資料由該第一位置傳輸至該第二位置。
- 如申請專利範圍第1項所述之非同步資料卷複製的方法,其中更包含: 在該來源資料卷的一資料卷記錄表(VLT)中配置一第一項目(entry),並且初始化該第一項目的複數個欄位,包括設定一第一欄位的序號為一初始設定值(initial setting value)、以及設定一第二欄位的操作代碼為一代表來源資料卷狀態的操作代碼;其中更指派該第一欄位的該初始設定值(initial setting value)給一第一變數;在該目的資料卷的一資料卷記錄表(VLT)中配置一第二項目(entry),並且初始化該第二項目的複數個欄位,包括設定一第二欄位的操作代碼為一代表目的資料卷狀態的操作代碼;增加該目的資料卷的一主要序號變數的值,並將該主要序號變數的值拷貝至該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中紀錄序號的一第一欄位,以及拷貝至該來源資料卷的該資料卷記錄表(VLT)的該第一項目(entry)中紀錄另一資料卷的資料卷記錄表(VLT)之項目的序號的一第四欄位;其中更指派該目的資料卷的該主要序號變數的現行值給一第二變數;設定該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中一第四欄位為一起始位址,其中該第四欄位用於紀錄下一個要進行同步複製的資料區塊的索引號;增加該來源資料卷的一主要序號變數的值,並將該來源資料卷的該主要序號變數的值拷貝至該來源資料卷的該資料卷記錄表(VLT)的該第一項目(entry)中紀錄序號的該第一欄位;其中更指派該來源資料卷的該主要序號變數的值給該第一變數;在該目的資料卷的該資料卷記錄表(VLT)中配置一第三項目(entry),並且初始化該第三項目的複數個欄位,包括設定一第二欄位的操作代碼為一代表分離狀態的操作代碼; 再次增加該目的資料卷的該主要序號變數的值並將之指派給一第三變數,並將增加後的該目的資料卷的該主要序號變數的值拷貝至該目的資料卷的該資料卷記錄表(VLT)的該第三項目(entry)中紀錄序號的一第一欄位;以及判斷該目的資料卷與該來源資料卷的複製作業是否已經完成。
- 如申請專利範圍第4項所述之非同步資料卷複製的方法,其中更增加一步驟:執行一背景拷貝來源資料卷至目的資料卷(Background Copy of Source to Destination Volume)程序。
- 如申請專利範圍第4項所述之非同步資料卷複製的方法,其中更增加一步驟:判斷是否有一主機輸出入要求(Host IO)要對該來源資料卷存取資料。
- 如申請專利範圍第6項所述之非同步資料卷複製的方法,其中更增加一步驟:將該主機輸出入要求(Host IO)分解為至少一邏輯碟輸出入要求(LD IO),每一該邏輯碟輸出入要求(LD IO)皆對應到該來源資料卷中一欲存取資料區塊(block)。
- 如申請專利範圍第7項所述之非同步資料卷複製的方法,其中對該至少一邏輯碟輸出入要求(LD IO)的每一並行執行以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;執行一檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序;寫入該主機輸出入要求(Host IO)的資料至該來源資料卷的該欲存取資料區塊;以及設定該來源資料卷的一資料卷區塊更新表(VBUT)中對應該欲存取資料區塊的序號等於該第一變數的值。
- 如申請專利範圍第7項所述之非同步資料卷複製的方法,其中更增加以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;判斷該主機輸出入要求(Host IO)是否是存取該來源資料卷;以及從該來源資料卷的該欲存取區塊讀取資料。
- 如申請專利範圍第7項所述之非同步資料卷複製的方法,其中更增加以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;判斷該主機輸出入要求(Host IO)是否是存取該來源資料卷;判斷該主機輸出入要求(Host IO)是否是存取該目的資料卷並且判斷該目的資料卷中正進行處理的該資料卷區塊更新表(VBUT)的該項目(entry)的序號是否小於該目的資料卷的該第二變數的值;以及從該來源資料卷的該欲存取區塊、或該第一備份影像的相對位置的區塊讀取資料。
- 如申請專利範圍第7項所述之非同步資料卷複製的方法,其中更增加以下步驟:判斷該主機輸出入要求(Host IO)是否是一寫入要求;判斷該主機輸出入要求(Host IO)是否是存取該來源資料卷;判斷該主機輸出入要求(Host IO)是否是存取該目的資料卷並且判斷該目的資料卷中正進行處理的該資料卷區塊更新表(VBUT)的該項目(entry)的序號(DstVBUT.SeqNum)是否小於該目的資料卷的該第二變數的值;以及 從該目的資料卷的該欲存取區塊讀取資料。
- 如申請專利範圍第7項所述之非同步資料卷複製的方法,其中更增加一步驟:判斷對應該至少一邏輯碟輸出入要求(LD IO)的程序是否都已執行完成。
- 如申請專利範圍第12項所述之非同步資料卷複製的方法,其中更增加一步驟:回報送出該主機輸出入要求(Host IO)的一主機(Host),該主機輸出入要求(Host IO)已處理完畢。
- 如申請專利範圍第5項所述之非同步資料卷複製的方法,其中該背景拷貝來源資料卷至目的資料卷(Background Copy of Source to Destination Volume)程序係包含以下步驟:對於該目的資料卷的一資料卷區塊更新表(VBUT)的每一項目(VBUT entry)所代表的每一資料區塊,呼叫並執行一檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination)程序;以及判斷是否還有任何該資料卷區塊更新表(VBUT)中所紀錄的資料區塊尚未進行同步複製。
- 如申請專利範圍第14項所述之非同步資料卷複製的方法,如果判斷結果是該資料卷區塊更新表(VBUT)中還有資料區塊尚未進行同步複製(sync),則將該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中該第四欄位所紀錄的下一個要進行同步複製的資料區塊的索引號增加1個單位。
- 如申請專利範圍第14項所述之非同步資料卷複製的方法,如果判斷結果是該資料卷區塊更新表(VBUT)中所有的資料區塊都已同步複製(sync)完成,則設定該目的資料卷的該資料卷記錄表(VLT)的該第二項目(entry)中該第四欄位的值為一預設值,該預設值代表所有資料區塊的同步複製皆已完成。
- 如申請專利範圍第16項所述之非同步資料卷複製的方法,其中該預設值是“-1”。
- 如申請專利範圍第8項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序係包含以下步驟:判斷該目的資料卷的一資料卷區塊更新表(VBUT)中一正進行處理之資料區塊的序號是否小於該第二變數的值。
- 如申請專利範圍第18項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序更包含以下步驟:執行一檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)的程序,並且檢查該程序是否回傳一“偽(FALSE)”訊息。
- 如申請專利範圍第19項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序更包含以下步驟:拷貝該來源資料卷的區塊資料至該第一備份影像,以做為該寫入備份(backup-on-write)操作。
- 如申請專利範圍第14項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序係包含以下步驟:判斷該目的資料卷的一資料卷區塊更新表(VBUT)中一正 進行處理之資料區塊的序號是否小於該第二變數的值。
- 如申請專利範圍第21項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序更包含以下步驟:執行一檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)的程序,並且檢查該程序是否回傳一“偽(FALSE)”訊息。
- 如申請專利範圍第22項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序更包含以下步驟:判斷該目的資料卷是否是可存取。
- 如申請專利範圍第23項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序更包含以下步驟:設定一同步錯誤旗標為“真(TRUE)”。
- 如申請專利範圍第23項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序更包含以下步驟:判斷該第一備份影像的一對應區塊是否是空的。
- 如申請專利範圍第25項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序更 包含以下步驟:複製該第一備份影像的該對應區塊的資料至該目的資料卷;以及設定該目的資料卷中正進行處理的該資料卷區塊更新表的項目(VBUT entry)的序號等於該第二變數的值。
- 如申請專利範圍第25項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序更包含以下步驟:判斷該來源資料卷中正進行處理的該資料卷區塊更新表的項目(VBUT entry)的序號是否小於該第一變數的值;以及設定該目的資料卷中正進行處理的該資料卷區塊更新表的項目(VBUT entry)的序號等於該第二變數的值。
- 如申請專利範圍第25項所述之非同步資料卷複製的方法,其中該檢查/拷貝來源資料卷的區塊資料至目的資料卷(Check/Copy Block from Source to Destination Volume)的程序更包含以下步驟:判斷該來源資料卷中正進行處理的該資料卷區塊更新表的項目(VBUT entry)的序號是否小於該第一變數的值;複製該來源資料卷的該對應區塊的資料至該目的資料卷;以及設定該目的資料卷中正進行處理的該資料卷區塊更新表的項目(VBUT entry)的序號等於該第二變數的值。
- 如申請專利範圍第19項或第22項所述之非同步資料卷複製的方法,其中該檢查資料卷區塊是否已在同步狀態(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)。
- 如申請專利範圍第29項所述之非同步資料卷複製的方法,其中只要該檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)的程序的該五個判斷步驟的任一的判斷結果為“是”,則回傳該“偽(FALSE)”訊息。
- 如申請專利範圍第29項所述之非同步資料卷複製的方法,其中該檢查資料卷區塊是否已在同步狀態(Check Volume Block In-Sync)的程序的該五個判斷步驟的所有判斷結果皆為“否”,則回傳一“真(TRUE)”訊息。
- 如申請專利範圍第29項所述之非同步資料卷複製的方法,其中該初始設定值(initial setting value)是“0(null)”。
- 如申請專利範圍第4項所述之非同步資料卷複製的方法,其中更包含一非同步複製失效轉移處理(Async replication failover process)程序,包含以下步驟:解映射(unmap)在該第一位置的一第一儲存虛擬化子系統中的該目的資料卷以及其對應之一第二區段分配系統;掛載(mount)該第二區段分配系統和的一第二備份影像在該第二位置的一第二儲存虛擬化子系的一第二控制器上,其中該第二備份影像儲存於該第二位置;初始化一返回(Rollback)作業,用以將該目的資料卷的資料回復到該第二備份影像所紀錄的狀態,並且,該目的資料卷的該資料卷區塊更新表(Destination VBUT)持續追蹤並紀錄因該返回(Rollback)作業而導致的資料更新;分離該目的資料卷與該第二備份影像;以及映射(map)該目的資料卷給該主機,以服務該主機的需求,並且,該目的資料卷的該資料卷區塊更新表(Destination VBUT)持續追蹤並紀錄該主機對該目的資料卷所做的資料更新。
- 如申請專利範圍第33項所述之非同步資料卷複製的方法,其 中更包含一非同步複製失效回復處理(Async replication failback process)程序,包含以下步驟:解映射(unmap)該主機中的該目的資料卷,並且卸載(dismount)該目的資料卷的該第二區段分配系統;映射(map)該目的資料卷以及該第二區段分配系統給位於該第一位置的一第一儲存虛擬化子系的一第一控制器;掛載(mount)該來源資料卷的一第一區段分配系統和該目的資料卷的該第二區段分配系統在該第一控制器上。 初始化一同步的再同步複製(synchronous resync)作業,用以將該目的資料卷的資料複製至該來源資料卷,並且分離(split)該目的資料卷與該來源資料卷;映射(map)該來源資料卷給該主機存取;以及更改該來源資料卷與該目的資料卷間的一複製模式為非同步(Async)當該同步的再同步複製(synchronous resync)作業完成。
- 如申請專利範圍第33項所述之非同步資料卷複製的方法,其中更包含一非同步複製失效回復處理(Async replication failback process)程序,包含以下步驟:映射(map)該來源資料卷以及其對應之一第一區段分配系統給位於該第二位置的該第二儲存虛擬化子系的該第二控制;掛載(mount)該來源資料卷的該第一區段分配系統在該第二位置的該第二控制上;以及初始化一同步或非同步的再同步複製(synchronous or async resync)作業,用以將該目的資料卷的資料同步或非同步複製至該來源資料卷。
- 如申請專利範圍第35項所述之非同步資料卷複製的方法,其 中該非同步複製失效回復處理(Async replication failback process)程序更包含以下步驟:解映射(unmap)該主機中的該目的資料卷;卸載(dismount)位於該第二位置的該第二控制器中的該目的資料卷的該第二區段分配系統和該來源資料卷的該第一區段分配系統;解映射(unmap)位於該第二位置的該第二控制中的該來源資料卷以及該第一其區段分配系統;映射(map)該目的資料卷以及該第二區段分配系統給位於該第一位置的該第一控制器;掛載(mount)該來源資料卷的該第一區段分配系統、該目的資料卷的該第二區段分配系統和該第一備份影像在位於該第一位置的該第一控制器上;初始化一返回(Rollback)程序,用以將該來源資料卷的資料回復到該第一備份影像所紀錄的狀態,並且該來源資料卷的該資料卷區塊更新表(Source VBUT)持續追蹤並紀錄因該返回(Rollback)程序而導致的該來源資料卷的更新狀態;分離(split)該來源資料卷與該第一備份影像;映射(map)該來源資料卷給該主機(Host)11,並且該目的資料卷的該資料卷區塊更新表(Destination VBUT)持續追蹤並紀錄該目的資料卷的更新狀態;以及進行一非同步複製作業。
- 一種執行非同步資料卷複製的儲存系統,其包含:一第一儲存虛擬化子系統,位於一第一位置,包含有一第一控制器與一第一儲存單元,其中該第一儲存單元中具有一第一資料卷與一第一備份影像; 一第二儲存單元,位於一第二位置,該第二儲存單元中具有一第二資料卷;以及一主機,位於該第一位置,與該第一儲存虛擬化子系統耦接,並對該第一儲存虛擬化子系統中的該第一資料卷發出一主機輸出入要求(Host IO);其中,當該第一儲存虛擬化子系統中的該第一控制器接收到該主機輸出入要求後,執行一寫入備份(backup-on-write)操作,該寫入備份(backup-on-write)操作判斷該第一資料卷將被寫入的一第一資料區塊的資料是否與該第二資料卷相對應的一第二資料區塊的資料相同,而決定是否執行一將該第一資料卷的該第一資料區塊的原始資料備份至該第一備份影像的操作;然後該第一控制器寫入該主機輸出入要求的一更新資料至該第一資料卷的該第一資料區塊,之後回覆該主機該主機輸出入要求(Host IO)已經完成。
- 如申請專利範圍第37項所述之執行非同步資料卷複製的儲存系統,其中該第二儲存單元更具有一第二備份影像,用以當該第二資料卷的資料更動時,紀錄該第二資料卷的原始資料之用。
- 如申請專利範圍第37項所述之執行非同步資料卷複製的儲存系統,其中位於該第一位置的該第一儲存虛擬化子系統與位於該第二位置的該第二儲存單元之間係透過一通訊媒體(Communication Medium)傳輸資料。
- 如申請專利範圍第37項所述之執行非同步資料卷複製的儲存系統,其中該通訊媒體(Communication Medium)係為以下組合的其中之一:區域網路(LAN)、廣域網路(WAN)、儲存區域網路(SAN)、網際網路(Internet)、與專用的資料傳輸通道(Dedicated Data Transfer Channel)。
- 如申請專利範圍第37項所述之執行非同步資料卷複製的儲存系統,其中該第一備份影像係由一區段分配系統(SAS)管理。
- 如申請專利範圍第37項所述之執行非同步資料卷複製的儲存系統,其中該區段分配系統(SAS)包含有一第一屬性區塊,用以記載該區段分配系統(SAS)的身分(ID)與相關聯之至少一媒體區(Media Extent)的身分(ID);一區塊關聯集相關資訊欄位,用以記載指向一區塊關聯集(BAS)之資訊、以及與該區塊關聯集(BAS)關聯的該來源資料卷(Source Volume)的資訊;一第一日誌(Journal)欄位,用來存放一運作日誌,以供該系統發生錯誤或斷電情事時可供回復(recovery)之用。
- 如申請專利範圍第42項所述之執行非同步資料卷複製的儲存系統,其中該區塊關聯集相關資訊欄位更包含有一區段分配表(SAT)與一節點表(Inode Table)。
- 如申請專利範圍第42項所述之執行非同步資料卷複製的儲存系統,其中該區塊關聯集(BAS)更包含有一第二屬性區塊,用以記載該區塊關聯集(BAS)的身分(ID)、該區塊關聯集(BAS)的大小以及與該區塊關聯集(BAS)相關的設定;一目錄(directory)欄位,記載一區塊關聯表(BAT)的級數(level)以及已建置之該區塊關聯表的數量;一第二日誌(Journal)欄位,用以存放一運作日誌,以供該系統發生錯誤或斷電情事時可供回復(recovery)之用;一文件表(Folder Table),用以指向該區塊關聯表(BAT);以及一資料區(Data Area),用以存放該第一備份影像。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14665509P | 2009-01-23 | 2009-01-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201030598A TW201030598A (en) | 2010-08-16 |
TWI414992B true TWI414992B (zh) | 2013-11-11 |
Family
ID=42244476
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098146526A TWI414992B (zh) | 2009-01-23 | 2009-12-31 | 遠端非同步資料卷複製的方法及其裝置 |
TW102135389A TWI514249B (zh) | 2009-01-23 | 2009-12-31 | 遠端非同步資料卷複製的方法及執行該方法的儲存系統 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102135389A TWI514249B (zh) | 2009-01-23 | 2009-12-31 | 遠端非同步資料卷複製的方法及執行該方法的儲存系統 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9569321B2 (zh) |
EP (1) | EP2214102B1 (zh) |
CN (2) | CN103559107B (zh) |
TW (2) | TWI414992B (zh) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2353075A1 (en) * | 2008-11-07 | 2011-08-10 | Dell Compellent | Thin import for a data storage system |
CN102035862B (zh) * | 2009-09-30 | 2013-11-06 | 国际商业机器公司 | Svc集群中配置节点的故障移交方法和系统 |
US8601310B2 (en) * | 2010-08-26 | 2013-12-03 | Cisco Technology, Inc. | Partial memory mirroring and error containment |
US8479041B2 (en) * | 2010-10-13 | 2013-07-02 | International Business Machines Corporation | Disaster recovery failback |
US10289684B2 (en) * | 2011-05-03 | 2019-05-14 | Vmware, Inc. | Live migration of virtual machine persistent data using mirrored input-output operations |
US8949182B2 (en) | 2011-06-17 | 2015-02-03 | International Business Machines Corporation | Continuous and asynchronous replication of a consistent dataset |
EP2729877A4 (en) | 2011-07-08 | 2015-06-17 | Box Inc | DESKTOP APPLICATION FOR ACCESS AND INTERACTION WITH JOBS IN A CLOUD-BASED CONTENT MANAGEMENT SYSTEM AND SYNCHRONIZATION MECHANISMS THEREFOR |
JP5699852B2 (ja) * | 2011-08-12 | 2015-04-15 | 富士通株式会社 | 情報処理装置、ストレージ制御方法およびプログラム |
US9773051B2 (en) | 2011-11-29 | 2017-09-26 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US9575981B2 (en) | 2012-04-11 | 2017-02-21 | Box, Inc. | Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system |
GB2505272B (en) | 2012-05-04 | 2014-07-09 | Box Inc | Repository redundancy implementation of a system which incrementally updates clients with events that occurred via cloud-enabled platform |
US9794256B2 (en) | 2012-07-30 | 2017-10-17 | Box, Inc. | System and method for advanced control tools for administrators in a cloud-based service |
US9558202B2 (en) | 2012-08-27 | 2017-01-31 | Box, Inc. | Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment |
US9553758B2 (en) | 2012-09-18 | 2017-01-24 | Box, Inc. | Sandboxing individual applications to specific user folders in a cloud-based service |
US9116852B2 (en) | 2012-10-16 | 2015-08-25 | International Business Machines Corporation | Processing a copy command directed to a first storage architecture for data that is stored in a second storage architecture |
US9405704B2 (en) | 2012-10-16 | 2016-08-02 | International Business Machines Corporation | Establishing a point-in-time copy relationship between source logical addresses and target logical addresses |
US9135121B2 (en) | 2012-10-16 | 2015-09-15 | International Business Machines Corporation | Managing updates and copying data in a point-in-time copy relationship expressed as source logical addresses and target logical addresses |
US10235383B2 (en) | 2012-12-19 | 2019-03-19 | Box, Inc. | Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment |
US9396245B2 (en) * | 2013-01-02 | 2016-07-19 | Box, Inc. | Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9953036B2 (en) | 2013-01-09 | 2018-04-24 | Box, Inc. | File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9507795B2 (en) | 2013-01-11 | 2016-11-29 | Box, Inc. | Functionalities, features, and user interface of a synchronization client to a cloud-based environment |
EP2757491A1 (en) | 2013-01-17 | 2014-07-23 | Box, Inc. | Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform |
CN103092533B (zh) * | 2013-01-24 | 2016-04-27 | 上海爱数信息技术股份有限公司 | 一种数据远程同步的方法和系统 |
US10725968B2 (en) | 2013-05-10 | 2020-07-28 | Box, Inc. | Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform |
US10846074B2 (en) | 2013-05-10 | 2020-11-24 | Box, Inc. | Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client |
GB2515192B (en) | 2013-06-13 | 2016-12-14 | Box Inc | Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform |
US9805050B2 (en) | 2013-06-21 | 2017-10-31 | Box, Inc. | Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform |
US9535924B2 (en) | 2013-07-30 | 2017-01-03 | Box, Inc. | Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US10628263B1 (en) | 2013-08-02 | 2020-04-21 | David Cowen | Logfile-related technologies and techniques |
US9805068B1 (en) * | 2013-08-30 | 2017-10-31 | Veritas Technologies Llc | Systems and methods for facilitating features of system recovery environments during restore operations |
US10530854B2 (en) | 2014-05-30 | 2020-01-07 | Box, Inc. | Synchronization of permissioned content in cloud-based environments |
JP6189266B2 (ja) * | 2014-08-20 | 2017-08-30 | 東芝メモリ株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
US10284417B2 (en) * | 2015-06-22 | 2019-05-07 | Arista Networks, Inc. | Method and system for sharing state between network elements |
US10423588B2 (en) * | 2015-08-25 | 2019-09-24 | International Business Machines Corporation | Orchestrated disaster recovery |
WO2017064770A1 (ja) * | 2015-10-14 | 2017-04-20 | 株式会社日立製作所 | ストレージシステムおよびストレージシステムの制御方法 |
US20180143766A1 (en) * | 2016-11-18 | 2018-05-24 | International Business Machines Corporation | Failure protection copy management |
US10353605B2 (en) | 2017-01-30 | 2019-07-16 | International Business Machines Corporation | Optimizing off-loaded input/output (I/O) requests |
US10168928B2 (en) | 2017-03-10 | 2019-01-01 | International Business Machines Corporation | Managing data storage by an asynchronous copy service |
US10884884B2 (en) * | 2017-03-23 | 2021-01-05 | International Business Machines Corporation | Reversal of the direction of replication in a remote copy environment by tracking changes associated with a plurality of point in time copies |
CN109002254A (zh) * | 2017-06-07 | 2018-12-14 | 华为技术有限公司 | 存储处理方法、装置及相关设备 |
US11657068B2 (en) * | 2017-12-15 | 2023-05-23 | International Business Machines Corporation | Efficient migration between asynchronous data replication technologies |
US11671329B2 (en) | 2018-04-04 | 2023-06-06 | Arista Networks, Inc. | Computation of network flooding topologies |
US11132339B2 (en) | 2018-11-13 | 2021-09-28 | Netapp Inc. | Synchronous replication for synchronous mirror copy guarantee |
CN110018968B (zh) * | 2019-03-29 | 2021-07-16 | 联想(北京)有限公司 | 一种数据读取方法、电子设备及计算机存储介质 |
US11516287B2 (en) | 2020-04-29 | 2022-11-29 | Silicon Motion Technology (Hong Kong) Limited | Method and apparatus for performing simple storage service seamless migration using index objects |
US11297137B2 (en) | 2020-04-29 | 2022-04-05 | Silicon Motion Technology (Hong Kong) Limited | Method and apparatus for performing simple storage service seamless migration using index objects |
US12086159B1 (en) * | 2023-05-02 | 2024-09-10 | Dell Products L.P. | Techniques for adding and removing storage objects from groups |
Citations (4)
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 |
TW200617774A (en) * | 2004-05-27 | 2006-06-01 | Ibm | Fast reverse restore |
EP1816563A2 (en) * | 2006-01-26 | 2007-08-08 | Infortrend Technology, Inc. | Method of managing data snapshot images in a storage system |
TW200825739A (en) * | 2006-09-07 | 2008-06-16 | Ibm | Apparatus, system, and method for an improved synchronous mirror swap |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5263154A (en) * | 1992-04-20 | 1993-11-16 | International Business Machines Corporation | Method and system for incremental time zero backup copying of data |
JP4689137B2 (ja) * | 2001-08-08 | 2011-05-25 | 株式会社日立製作所 | リモートコピー制御方法、及びストレージシステム |
US6912629B1 (en) * | 1999-07-28 | 2005-06-28 | Storage Technology Corporation | System and method for restoring data from secondary volume to primary volume in a data storage system |
US7167962B2 (en) * | 1999-08-19 | 2007-01-23 | Hitachi, Ltd. | Remote copy for a storage controller with reduced data size |
US20030177306A1 (en) * | 2002-03-14 | 2003-09-18 | Cochran Robert Alan | Track level snapshot |
JP2004013367A (ja) * | 2002-06-05 | 2004-01-15 | Hitachi Ltd | データ記憶サブシステム |
JP4341897B2 (ja) * | 2002-08-29 | 2009-10-14 | 株式会社日立製作所 | 記憶装置システム及びデータ複製方法 |
US7039661B1 (en) * | 2003-12-29 | 2006-05-02 | Veritas Operating Corporation | Coordinated dirty block tracking |
US7277997B2 (en) * | 2004-03-16 | 2007-10-02 | International Business Machines Corporation | Data consistency for mirroring updatable source data storage |
JP4452533B2 (ja) * | 2004-03-19 | 2010-04-21 | 株式会社日立製作所 | システムおよび記憶装置システム |
US7343449B2 (en) * | 2004-03-22 | 2008-03-11 | Hitachi, Ltd. | Storage subsystem and storage system |
JP4476683B2 (ja) * | 2004-04-28 | 2010-06-09 | 株式会社日立製作所 | データ処理システム |
US7409510B2 (en) * | 2004-05-27 | 2008-08-05 | International Business Machines Corporation | Instant virtual copy to a primary mirroring portion of data |
JP2006048300A (ja) * | 2004-08-03 | 2006-02-16 | Hitachi Ltd | ディスクアレイ装置群およびそのコピー処理方法 |
JP4519563B2 (ja) * | 2004-08-04 | 2010-08-04 | 株式会社日立製作所 | 記憶システム及びデータ処理システム |
JP2006127217A (ja) * | 2004-10-29 | 2006-05-18 | Hitachi Ltd | 計算機システムおよび計算機システムの制御方法 |
US7657578B1 (en) * | 2004-12-20 | 2010-02-02 | Symantec Operating Corporation | System and method for volume replication in a storage environment employing distributed block virtualization |
JP4728031B2 (ja) * | 2005-04-15 | 2011-07-20 | 株式会社日立製作所 | リモートコピーペアの移行を行うシステム |
JP4738941B2 (ja) * | 2005-08-25 | 2011-08-03 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの管理方法 |
JP5111754B2 (ja) * | 2005-11-14 | 2013-01-09 | 株式会社日立製作所 | 記憶制御システム |
US8046545B2 (en) * | 2006-01-03 | 2011-10-25 | Emc Corporation | Continuous backup |
JP4800056B2 (ja) * | 2006-02-09 | 2011-10-26 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
US7430646B2 (en) * | 2006-03-31 | 2008-09-30 | Emc Corporation | Planned switchover in connection with triangular asynchronous replication |
JP2007280323A (ja) * | 2006-04-12 | 2007-10-25 | Hitachi Ltd | 記憶システム及びデータ管理方法 |
JP2007286860A (ja) * | 2006-04-17 | 2007-11-01 | Hitachi Ltd | データ転送方法及び情報処理装置 |
JP2008059443A (ja) * | 2006-09-01 | 2008-03-13 | Hitachi Ltd | 記憶システムおよびバックアップ方法 |
JP5244332B2 (ja) * | 2006-10-30 | 2013-07-24 | 株式会社日立製作所 | 情報システム、データ転送方法及びデータ保護方法 |
US7827366B1 (en) * | 2006-10-31 | 2010-11-02 | Network Appliance, Inc. | Method and system for providing continuous and long-term data protection for a dataset in a storage system |
JP2008299789A (ja) * | 2007-06-04 | 2008-12-11 | Hitachi Ltd | リモートコピーシステム及びリモートコピーの制御方法 |
US8055865B2 (en) * | 2007-08-06 | 2011-11-08 | International Business Machines Corporation | Managing write requests to data sets in a primary volume subject to being copied to a secondary volume |
JP2009093378A (ja) * | 2007-10-05 | 2009-04-30 | Hitachi Ltd | ストレージシステム |
JP5124237B2 (ja) * | 2007-11-02 | 2013-01-23 | 株式会社日立製作所 | ストレージシステムおよびストレージサブシステム |
WO2009085326A1 (en) * | 2008-01-03 | 2009-07-09 | Hewlett-Packard Development Company, L.P. | Performing mirroring of a logical storage unit |
JP2009211401A (ja) * | 2008-03-04 | 2009-09-17 | Hitachi Ltd | ストレージ装置及びその制御方法 |
JP5026309B2 (ja) * | 2008-03-06 | 2012-09-12 | 株式会社日立製作所 | バックアップデータ管理システム及びバックアップデータ管理方法 |
JP5147570B2 (ja) * | 2008-07-02 | 2013-02-20 | 株式会社日立製作所 | ストレージシステム及びリモートコピー復旧方法 |
US20100011368A1 (en) * | 2008-07-09 | 2010-01-14 | Hiroshi Arakawa | Methods, systems and programs for partitioned storage resources and services in dynamically reorganized storage platforms |
-
2009
- 2009-12-31 TW TW098146526A patent/TWI414992B/zh active
- 2009-12-31 TW TW102135389A patent/TWI514249B/zh active
-
2010
- 2010-01-22 CN CN201310494725.6A patent/CN103559107B/zh active Active
- 2010-01-22 CN CN2010101111111A patent/CN101826043B/zh active Active
- 2010-01-22 US US12/691,826 patent/US9569321B2/en active Active
- 2010-01-22 EP EP10151435A patent/EP2214102B1/en active Active
-
2017
- 2017-02-10 US US15/429,682 patent/US10379975B2/en active Active
Patent Citations (4)
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 |
TW200617774A (en) * | 2004-05-27 | 2006-06-01 | Ibm | Fast reverse restore |
EP1816563A2 (en) * | 2006-01-26 | 2007-08-08 | Infortrend Technology, Inc. | Method of managing data snapshot images in a storage system |
TW200825739A (en) * | 2006-09-07 | 2008-06-16 | Ibm | Apparatus, system, and method for an improved synchronous mirror swap |
Also Published As
Publication number | Publication date |
---|---|
TW201403452A (zh) | 2014-01-16 |
CN101826043B (zh) | 2013-11-20 |
US20170153954A1 (en) | 2017-06-01 |
US20100205392A1 (en) | 2010-08-12 |
CN101826043A (zh) | 2010-09-08 |
CN103559107A (zh) | 2014-02-05 |
TW201030598A (en) | 2010-08-16 |
US9569321B2 (en) | 2017-02-14 |
EP2214102A1 (en) | 2010-08-04 |
US10379975B2 (en) | 2019-08-13 |
CN103559107B (zh) | 2017-04-12 |
EP2214102B1 (en) | 2012-11-28 |
TWI514249B (zh) | 2015-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI414992B (zh) | 遠端非同步資料卷複製的方法及其裝置 | |
TWI451243B (zh) | 單一架構下進行資料卷複製的方法及其裝置 | |
US7594137B2 (en) | Storage system and data restoration method thereof | |
JP5031341B2 (ja) | 記憶システム及びデータ管理方法 | |
US6950915B2 (en) | Data storage subsystem | |
US7475208B2 (en) | Method for consistent copying of storage volumes | |
JP4958739B2 (ja) | 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム | |
US9009427B2 (en) | Mirroring mechanisms for storage area networks and network based virtualization | |
EP1311951A1 (en) | Three interconnected raid disk controller data processing system architecture | |
JP2005309550A (ja) | リモートコピー方法及びリモートコピーシステム | |
US20090177916A1 (en) | Storage system, controller of storage system, control method of storage system | |
US10846012B2 (en) | Storage system for minimizing required storage capacity during remote volume replication pair duplication | |
US7680839B1 (en) | System and method for resynchronizing mirrored volumes | |
US20240176713A1 (en) | Eliminating data resynchronization in cyber recovery solutions | |
US11256586B2 (en) | Remote copy system and remote copy management method | |
CN116339609A (zh) | 一种数据处理方法以及存储设备 | |
WO2017085792A1 (ja) | ストレージシステム、及びストレージシステムの制御方法 | |
JP2021033782A (ja) | リモートコピーシステム | |
JP5032620B2 (ja) | ディスクアレイ装置及び同ディスクアレイ装置に適用される論理ディスク再構成方法 | |
US20240176712A1 (en) | Optimizing data resynchronization in cyber recovery solutions |