專利名稱:對(duì)應(yīng)用程序透明的自治可用性的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施涉及存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)知曉的文件系統(tǒng)上的對(duì)應(yīng)用程序透明的自治可用性。
背景技術(shù):
計(jì)算機(jī)系統(tǒng)通常包括一個(gè)或多個(gè)用于處理數(shù)據(jù)和運(yùn)行應(yīng)用程序的主計(jì)算機(jī)(“主機(jī)”),用于存儲(chǔ)數(shù)據(jù)的直接訪問存儲(chǔ)設(shè)備(DASD)和用于控制主機(jī)和DASD之間的數(shù)據(jù)傳遞的存儲(chǔ)控制器。存儲(chǔ)控制器,也被稱為控制單元或存儲(chǔ)導(dǎo)向器,管理著對(duì)由若干硬盤驅(qū)動(dòng)器(另外被稱為直接訪問存儲(chǔ)設(shè)備(DASD))組成的存儲(chǔ)空間的訪問。主機(jī)可以通過存儲(chǔ)控制器將輸入/輸出(I/O)請(qǐng)求傳遞到存儲(chǔ)空間。
存儲(chǔ)控制器可以提供拷貝服務(wù)。采用所述的拷貝服務(wù),一個(gè)存儲(chǔ)設(shè)備諸如DASD上的數(shù)據(jù),可以被拷貝到同一個(gè)或另一個(gè)存儲(chǔ)設(shè)備,從而可以從兩個(gè)不同的設(shè)備提供對(duì)數(shù)據(jù)卷的訪問或?qū)崿F(xiàn)備份拷貝。
國(guó)際商用機(jī)器公司(IBM),本專利申請(qǐng)的受讓人,提供了用于在副存儲(chǔ)設(shè)備上保存數(shù)據(jù)的遠(yuǎn)程拷貝的遠(yuǎn)程拷貝服務(wù),包括擴(kuò)展的遠(yuǎn)程拷貝(XRC)和對(duì)等遠(yuǎn)程拷貝(PPRC)。這些系統(tǒng)提供了用于恢復(fù)在最后的安全的備份和系統(tǒng)故障之間的數(shù)據(jù)更新的技術(shù)。這種數(shù)據(jù)投影(shadowing)系統(tǒng)還可以提供非恢復(fù)目的的附加的遠(yuǎn)程拷貝,諸如在遠(yuǎn)程站點(diǎn)處的本地訪問。
拷貝服務(wù)的另一個(gè)例子是時(shí)點(diǎn)(point-in-time)拷貝,它涉及從源卷將所有數(shù)據(jù)物理地拷貝到目標(biāo)卷,從而目標(biāo)卷具有一個(gè)時(shí)間點(diǎn)上所述數(shù)據(jù)的拷貝。還可以通過邏輯地進(jìn)行數(shù)據(jù)的拷貝,并且然后僅當(dāng)必要時(shí)將數(shù)據(jù)拷貝過來進(jìn)行時(shí)點(diǎn)拷貝,這在效果上不同于物理拷貝,并且被稱為“即時(shí)虛擬拷貝”操作或“快速拷貝功能”。
即時(shí)虛擬拷貝操作通過修改元數(shù)據(jù)諸如關(guān)系表或指針以便將源數(shù)據(jù)對(duì)象既視為原始數(shù)據(jù)又視為拷貝來工作。響應(yīng)主機(jī)的拷貝請(qǐng)求,存儲(chǔ)子系統(tǒng)立即報(bào)告所述拷貝的創(chuàng)建而不進(jìn)行數(shù)據(jù)的任何物理拷貝。僅有“虛擬”拷貝被創(chuàng)建,并且主機(jī)完全不知道沒有附加的物理拷貝。主機(jī)或存儲(chǔ)子系統(tǒng)甚至可以在后臺(tái)處理過程中或在另一個(gè)時(shí)間創(chuàng)建原始數(shù)據(jù)對(duì)象的實(shí)際的物理拷貝。
一種這樣的實(shí)時(shí)虛擬拷貝操作被稱為FlashCopy操作。在共同被轉(zhuǎn)讓的題目為“Method,System,and Program for MaintainingElectronic Data of a Point-in-time”,發(fā)表于2003年8月26日的美國(guó)專利6,661,901中描述了FlashCopy操作的進(jìn)一步的細(xì)節(jié),此處通過參考將該專利申請(qǐng)完整地結(jié)合在內(nèi)。
典型地,通過存儲(chǔ)控制器提供的拷貝服務(wù)進(jìn)行的文件拷貝對(duì)于主計(jì)算機(jī)來說是非中斷性的。然而,恢復(fù)文件的處理(即,從備份拷貝將文件拷貝到原始(“源”)拷貝)可以是中斷性的。主計(jì)算機(jī)必須知道并且保持?jǐn)?shù)據(jù)將被拷貝到的位置。當(dāng)使用基于塊的拷貝服務(wù)時(shí)這變得特別困難,基于塊的拷貝服務(wù)拷貝卷的一部分而不是數(shù)據(jù)的整個(gè)卷。即使主計(jì)算機(jī)知道所有備份拷貝在何處,文件或邏輯單元號(hào)(LUN)的恢復(fù)仍然是手工密集的過程。LUN可以被描述為一個(gè)唯一的編號(hào),其標(biāo)識(shí)著特定磁盤,并且通常被用于指稱具有該LUN的磁盤。
再有,當(dāng)前當(dāng)存儲(chǔ)控制器發(fā)生故障時(shí),主計(jì)算機(jī)處的文件系統(tǒng)使用拷貝服務(wù)移植數(shù)據(jù)。然而,這不是一個(gè)高效的處理。
因此,在本領(lǐng)域中有對(duì)改進(jìn)的文件訪問和移植的持續(xù)需求。
發(fā)明內(nèi)容
提供了用于定位數(shù)據(jù)的制品,系統(tǒng)和方法。提供了用于與文件相關(guān)聯(lián)的塊的映射信息。確定拷貝服務(wù)已經(jīng)將源塊拷貝到了目標(biāo)塊。確定是否應(yīng)當(dāng)更新所述的映射信息以便指示所述的目標(biāo)塊。然后,響應(yīng)確定所述映射信息應(yīng)當(dāng)被更新以便指示所述的目標(biāo)塊,提供已更新的映射信息。
還提供了用于當(dāng)數(shù)據(jù)的源不可訪問時(shí)訪問數(shù)據(jù)的拷貝的技術(shù)。確定源塊不可使用。使用元數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù)定位作為不可使用的源塊的拷貝的目標(biāo)塊。指向源塊的指示符被轉(zhuǎn)換為指向所述的目標(biāo)塊。映射信息被在一個(gè)或多個(gè)客戶端計(jì)算機(jī)處更新以便取代所述源塊訪問所述目標(biāo)塊。
現(xiàn)在參考附圖,在全部圖中同樣的標(biāo)號(hào)表示相應(yīng)的部分圖1示出了本發(fā)明的某些實(shí)施方式可以被實(shí)施在其中的計(jì)算環(huán)境;圖2示出了根據(jù)本發(fā)明的某些實(shí)施方式的客戶端計(jì)算機(jī);圖3示出了根據(jù)本發(fā)明的某些實(shí)施方式的元數(shù)據(jù)服務(wù)器;圖4示出了根據(jù)本發(fā)明的某些實(shí)施方式的元數(shù)據(jù)存儲(chǔ);圖5示出了根據(jù)本發(fā)明的某些實(shí)施方式的存儲(chǔ)系統(tǒng);圖6示出了根據(jù)本發(fā)明的某些實(shí)施方式的用于打開文件的處理的邏輯;圖7示出了根據(jù)本發(fā)明的某些實(shí)施方式的用于更新映射信息的邏輯;圖8示出了根據(jù)本發(fā)明的某些實(shí)施方式的用于錯(cuò)誤處理的邏輯;圖9示出了根據(jù)本發(fā)明的某些實(shí)施方式的當(dāng)存儲(chǔ)控制器發(fā)生故障時(shí),用于處理正在處理中的讀和寫請(qǐng)求的邏輯;圖10示出了根據(jù)本發(fā)明的某些實(shí)施方式可以被使用的計(jì)算機(jī)系統(tǒng)的體系結(jié)構(gòu)。
具體實(shí)施例方式
在下面的說明中參考了附圖,所述附圖構(gòu)成了說明的一部分,并且示出了本發(fā)明的若干實(shí)施方式。應(yīng)當(dāng)理解,可以使用其它的實(shí)施方式,并且可以做出結(jié)構(gòu)上的或操作上的改變而不脫離本發(fā)明的實(shí)施方式的范圍。
圖1以一個(gè)方框圖示出了根據(jù)本發(fā)明的某些實(shí)施方式的計(jì)算環(huán)境。一個(gè)或多個(gè)客戶端計(jì)算機(jī)100a...100n被通過網(wǎng)絡(luò)170連接到元數(shù)據(jù)服務(wù)器群集130,并且被通過存儲(chǔ)網(wǎng)絡(luò)180連接到存儲(chǔ)系統(tǒng)150。存儲(chǔ)網(wǎng)絡(luò)180提供了客戶端計(jì)算機(jī)100a...100n和存儲(chǔ)系統(tǒng)150之間的直接數(shù)據(jù)傳輸。
每個(gè)客戶端計(jì)算機(jī)100a...100n分別包括文件系統(tǒng)120a...120n以及高速緩存122a...122n。客戶端計(jì)算機(jī)100a...100n可以運(yùn)行任何操作系統(tǒng)108a...108n(圖2),諸如AIX操作系統(tǒng),Linux操作系統(tǒng),Windows2000操作系統(tǒng),WindowsXP操作系統(tǒng),Solaris操作系統(tǒng),UNIX操作系統(tǒng)或HP-UX操作系統(tǒng)??蛻舳擞?jì)算機(jī)100a...100n還可以被稱為“存儲(chǔ)客戶端”。
文件系統(tǒng)120a...120n可以被稱為運(yùn)行某種操作系統(tǒng)(例如,Windows2000操作系統(tǒng),WindowsXP操作系統(tǒng)或HP-UX操作系統(tǒng))的客戶端計(jì)算機(jī)上的可安裝的文件系統(tǒng)(IFS),并且可以被稱為運(yùn)行其它操作系統(tǒng)(例如,AIX操作系統(tǒng),Linux操作系統(tǒng)或Solaris操作系統(tǒng))的客戶端計(jì)算機(jī)上的虛擬文件系統(tǒng)(VFS)??蛻舳擞?jì)算機(jī)100a...100n處的文件系統(tǒng)120a...120n可以被稱為存儲(chǔ)控制器客戶端文件系統(tǒng)。
文件系統(tǒng)120a...120n將元數(shù)據(jù)操作定向到元數(shù)據(jù)服務(wù)器群集130,并且將數(shù)據(jù)操作定向到被附加在高速存儲(chǔ)網(wǎng)絡(luò)180的存儲(chǔ)系統(tǒng)150。文件系統(tǒng)120a...120n使得對(duì)于客戶端計(jì)算機(jī)100a...100n的操作系統(tǒng)以及客戶端計(jì)算機(jī)100a...100n運(yùn)行的任何應(yīng)用程序是可見的元數(shù)據(jù)和讀自本地的被局部地附加的文件系統(tǒng)的元數(shù)據(jù)看起來是同樣的。文件系統(tǒng)120a...120n支持?jǐn)?shù)據(jù)的鎖定和緩存。
每個(gè)客戶端計(jì)算機(jī)100a...100n可以包括本領(lǐng)域中公知的任意的計(jì)算設(shè)備,諸如服務(wù)器,大型機(jī),工作站,個(gè)人計(jì)算機(jī),手持計(jì)算機(jī),膝上型電話設(shè)備,網(wǎng)絡(luò)應(yīng)用等。
元數(shù)據(jù)服務(wù)器群集130包括元數(shù)據(jù)服務(wù)器132a...132m。管理客戶端計(jì)算機(jī)可以被可選擇地連接到元數(shù)據(jù)服務(wù)器群集130,以便允許管理員直接向一個(gè)或多個(gè)元數(shù)據(jù)服務(wù)器132a...132m發(fā)送命令。每個(gè)元數(shù)據(jù)服務(wù)器132a...132m實(shí)現(xiàn)了一種SAN文件系統(tǒng)目錄,所述的SAN文件系統(tǒng)目錄存儲(chǔ)著文件和存儲(chǔ)設(shè)備上構(gòu)成所述文件的源塊之間的映射。所述的映射被存儲(chǔ)在元數(shù)據(jù)存儲(chǔ)140中。
元數(shù)據(jù)存儲(chǔ)被連接到存儲(chǔ)網(wǎng)絡(luò)180。元數(shù)據(jù)服務(wù)器132a...132m維護(hù)元數(shù)據(jù)存儲(chǔ)140中的數(shù)據(jù),包括例如,數(shù)據(jù)在存儲(chǔ)系統(tǒng)150內(nèi)的位置和數(shù)據(jù)被各個(gè)客戶端計(jì)算機(jī)100a...100n訪問的頻率如何。
存儲(chǔ)系統(tǒng)150包括一個(gè)或多個(gè)存儲(chǔ)控制器152a...152q,并且包括用于存儲(chǔ)數(shù)據(jù)(例如,文件)的共享的存儲(chǔ)池154。雖然示出了一個(gè)存儲(chǔ)系統(tǒng)150,但是可以有多個(gè)存儲(chǔ)系統(tǒng)被連接到存儲(chǔ)網(wǎng)絡(luò)180。
SAN可以被描述為共享的存儲(chǔ)設(shè)備的高速子網(wǎng)絡(luò)。存儲(chǔ)設(shè)備可以被描述為能夠存儲(chǔ)數(shù)據(jù)的任意組件。多個(gè)元數(shù)據(jù)服務(wù)器132a...132m可以訪問存儲(chǔ)系統(tǒng)150中的存儲(chǔ)設(shè)備。SAN知曉的文件系統(tǒng)可以被描述為包括元數(shù)據(jù)服務(wù)器群集130,元數(shù)據(jù)存儲(chǔ)140,存儲(chǔ)系統(tǒng)150,存儲(chǔ)網(wǎng)絡(luò)180和虛擬的并且可安裝的文件系統(tǒng)120a...120n。因此,在圖1中在組環(huán)境中示出了統(tǒng)一的文件系統(tǒng)。
每個(gè)網(wǎng)絡(luò)170和180可以包括任意類型的網(wǎng)絡(luò),諸如,例如,存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN),局域網(wǎng)(LAN),廣域網(wǎng)(WAN),因特網(wǎng),內(nèi)聯(lián)網(wǎng)等。
圖2示出了根據(jù)本發(fā)明的某個(gè)實(shí)施方式的客戶端計(jì)算機(jī)100a...100n。每個(gè)客戶端計(jì)算機(jī)100a...100n包括一個(gè)或多個(gè)中央處理單元(CPU)102a...102n,以及系統(tǒng)存儲(chǔ)器104a...104n,所述的系統(tǒng)存儲(chǔ)器可以被以易失的和/或非易失設(shè)備實(shí)現(xiàn)。一個(gè)或多個(gè)客戶端應(yīng)用程序106a...106n,操作系統(tǒng)108a...108n以及一個(gè)或多個(gè)錯(cuò)誤恢復(fù)系統(tǒng)112a...112n可以被存儲(chǔ)在系統(tǒng)存儲(chǔ)器104a中。操作系統(tǒng)108a...108n可以包括一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)器110a...110n。當(dāng)將指示符從一組塊轉(zhuǎn)換到另一組(例如,從源塊到目標(biāo)塊)以便確保數(shù)據(jù)一致轉(zhuǎn)換時(shí),可以使用錯(cuò)誤恢復(fù)系統(tǒng)112a...112n和設(shè)備驅(qū)動(dòng)器110a...110n。由于I/O可以發(fā)生在連續(xù)的流中,元數(shù)據(jù)服務(wù)器132a...132m和/或拷貝服務(wù)158a...158q(圖5)可以在所述塊被轉(zhuǎn)換到新塊以便使用新塊時(shí),指示存儲(chǔ)控制器152a...152q返回錯(cuò)誤指示。這將使得錯(cuò)誤恢復(fù)系統(tǒng)112a...112n和/或設(shè)備驅(qū)動(dòng)器110a...110n執(zhí)行重試操作,并且作為重試操作的一部分,更新局部(虛擬)塊地址到物理存儲(chǔ)的映射。然后接下來的I/O發(fā)生所述數(shù)據(jù)的新的位置上。
在常規(guī)的I/O系統(tǒng)中,當(dāng)檢測(cè)到永久錯(cuò)誤時(shí),設(shè)備驅(qū)動(dòng)器110a...110n和/或錯(cuò)誤恢復(fù)系統(tǒng)112a...112n向請(qǐng)求程序返回錯(cuò)誤指示。這通常導(dǎo)致應(yīng)用程序的非正常終止,應(yīng)用程序的非正常終止將導(dǎo)致應(yīng)用的運(yùn)行中斷。在本發(fā)明的實(shí)施方式中,錯(cuò)誤恢復(fù)系統(tǒng)112a...112n執(zhí)行附加的處理。特別是,最初,從執(zhí)行I/O操作的設(shè)備返回一個(gè)錯(cuò)誤。錯(cuò)誤恢復(fù)系統(tǒng)112a...112n確定所述設(shè)備是否是由SAN知曉的文件系統(tǒng)管理的虛擬設(shè)備。如果所述虛擬設(shè)備不是被SAN知曉的文件系統(tǒng)管理的,所述的錯(cuò)誤被返回給I/O請(qǐng)求活動(dòng)。如果所述虛擬設(shè)備是被SAN知曉的文件系統(tǒng)管理的,錯(cuò)誤恢復(fù)系統(tǒng)112a...112n通知元數(shù)據(jù)服務(wù)器132a...132m或通知客戶端計(jì)算機(jī)100a...100n,然后客戶端計(jì)算機(jī)100a...100n通知元數(shù)據(jù)服務(wù)器132a...132m發(fā)生了錯(cuò)誤。錯(cuò)誤恢復(fù)系統(tǒng)112a...112n等待做出重定向I/O的策略決定。元數(shù)據(jù)服務(wù)器132a...132m(或其它的策略引擎)確定是否轉(zhuǎn)換數(shù)據(jù)的指示符,轉(zhuǎn)換到什么數(shù)據(jù),并且執(zhí)行所述的轉(zhuǎn)換操作。客戶端計(jì)算機(jī)100a...100n被以新的映射更新,并且通知錯(cuò)誤恢復(fù)系統(tǒng)112a...112n它的等待結(jié)束了。如果數(shù)據(jù)被重新映射,錯(cuò)誤恢復(fù)系統(tǒng)112a...112n使用新的地址重試操作。如果數(shù)據(jù)沒有被重新映射,錯(cuò)誤恢復(fù)系統(tǒng)112a...112n返回一個(gè)錯(cuò)誤。在可替換的實(shí)現(xiàn)中,客戶端計(jì)算機(jī)100a...100n可以知道數(shù)據(jù)的新拷貝是可寫的還是不可寫的,并且如果所述的請(qǐng)求是針對(duì)寫的,并且所述數(shù)據(jù)被重新映射到只讀的位置,錯(cuò)誤恢復(fù)系統(tǒng)112a...112n可以報(bào)告一個(gè)錯(cuò)誤。
圖3示出了根據(jù)本發(fā)明的某種實(shí)施方式的元數(shù)據(jù)服務(wù)器132a...132m。每個(gè)元數(shù)據(jù)服務(wù)器132a...132m包括系統(tǒng)存儲(chǔ)器134a...134m,所述的系統(tǒng)存儲(chǔ)器可以被以易失的和/或非易失設(shè)備實(shí)現(xiàn)。每個(gè)元數(shù)據(jù)服務(wù)器132a...132m包括數(shù)據(jù)管理器136a...136m以及一個(gè)或多個(gè)服務(wù)器應(yīng)用程序138a...138m。
每個(gè)元數(shù)據(jù)服務(wù)器132a...132m可以追蹤對(duì)數(shù)據(jù)源塊和所述數(shù)據(jù)源塊的拷貝的多個(gè)引用。為了便于引用,數(shù)據(jù)源塊的拷貝將被稱為“目標(biāo)塊”。一組相關(guān)的源塊可以被描述為一個(gè)數(shù)據(jù)單元(例如,文件)。每個(gè)元數(shù)據(jù)服務(wù)器132a...132m還追蹤每個(gè)客戶端計(jì)算機(jī)100a...100n的位置。
每個(gè)元數(shù)據(jù)服務(wù)器132a...132m通過存儲(chǔ)文件和構(gòu)成所述文件的源以及目標(biāo)塊之間的映射,起用于SAN知曉的文件系統(tǒng)的目錄的作用。每個(gè)元數(shù)據(jù)服務(wù)器132a...132m還與(例如)由存儲(chǔ)系統(tǒng)150提供的拷貝服務(wù)158a...158q(圖5)一起工作。所述的拷貝服務(wù)允許基于策略的拷貝服務(wù),諸如時(shí)點(diǎn)拷貝服務(wù),連續(xù)拷貝服務(wù)等。每個(gè)元數(shù)據(jù)服務(wù)器132a...132m可以與其它的應(yīng)用程序或SAN元件一起工作以便執(zhí)行所述的拷貝服務(wù)。即,可以各種形式提供所述的拷貝服務(wù),諸如以在服務(wù)器計(jì)算機(jī)上或SAN結(jié)構(gòu)元件內(nèi)執(zhí)行的應(yīng)用程序的形式。
當(dāng)數(shù)據(jù)被通過所述的拷貝服務(wù)拷貝時(shí),不論拷貝服務(wù)(例如,時(shí)點(diǎn)拷貝服務(wù)或連續(xù)拷貝服務(wù))的類型是什么,每個(gè)元數(shù)據(jù)服務(wù)器132a...132m追蹤源塊和這些塊的拷貝之間的關(guān)系。此外,每個(gè)元數(shù)據(jù)服務(wù)器132a...132m能夠?qū)?duì)文件的塊引用從所述的源塊轉(zhuǎn)換到所述源塊的拷貝(例如,“目標(biāo)塊”),這使得所述目標(biāo)塊成為新的源塊。
圖4示出了根據(jù)本發(fā)明的某些實(shí)施方式的元數(shù)據(jù)存儲(chǔ)140。元數(shù)據(jù)存儲(chǔ)140包括映射信息142。映射信息包括具有與文件相關(guān)聯(lián)的行的表。對(duì)于每個(gè)文件,所述的映射信息包括文件名,源塊,它指示著該文件的源塊的位置,1-X個(gè)目標(biāo)塊和會(huì)話標(biāo)識(shí)符。1-X目標(biāo)塊表示源塊的一個(gè)或多個(gè)拷貝,并提供源塊的拷貝的位置。一個(gè)會(huì)話是一組拷貝服務(wù)關(guān)系,它們表示一組數(shù)據(jù)被保持為一致的狀態(tài)。文件的每個(gè)目標(biāo)拷貝(由目標(biāo)塊構(gòu)成)可以共享一個(gè)會(huì)話或者具有其自己的會(huì)話。此外,元數(shù)據(jù)存儲(chǔ)140可以存儲(chǔ)描述數(shù)據(jù)單元的位置、每個(gè)數(shù)據(jù)單元被每個(gè)客戶端計(jì)算機(jī)100a...100n訪問的頻率如何等的信息。
圖5示出了按照本發(fā)明的某些實(shí)施方式的存儲(chǔ)系統(tǒng)150。存儲(chǔ)系統(tǒng)150提供一個(gè)或多個(gè)存儲(chǔ)控制器152a...152q以及共享的存儲(chǔ)池154。每個(gè)存儲(chǔ)控制器152a...152q提供了拷貝服務(wù)158a...158q。每個(gè)共享的存儲(chǔ)池156a...156q提供了共享的存儲(chǔ)設(shè)備。在某些實(shí)施方式中,存儲(chǔ)設(shè)備(例如LUN)被分組到所述存儲(chǔ)池中,以便允許基于服務(wù)種類屬性(諸如性能和可靠性)的基于策略的管理。在某些實(shí)施方式中,每個(gè)存儲(chǔ)控制器152a...152q被連接到存儲(chǔ)池或存儲(chǔ)池中的一個(gè)或多個(gè)存儲(chǔ)設(shè)備(例如LUN)。存儲(chǔ)池156a...156q中的每一個(gè)都可以包括,例如,存儲(chǔ)設(shè)備的陣列,諸如直接訪問存儲(chǔ)設(shè)備(DASD)、硬盤捆綁(JBOD)、獨(dú)立磁盤冗余陣列(RAID)、虛擬化設(shè)備等。
圖6示出了按照本發(fā)明的某些實(shí)施方式的用于處理打開文件的邏輯??刂崎_始于方框600,客戶端計(jì)算機(jī)100a...100n上的應(yīng)用程序106a...106n在打開文件時(shí)向元數(shù)據(jù)服務(wù)器132a...132m發(fā)送對(duì)文件的請(qǐng)求。在方框602,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)管理器136a...136m基于一種或多種因素確定用于所述文件的哪些塊應(yīng)當(dāng)成為客戶端計(jì)算機(jī)100a...100n可用的。例如,用于所述文件的塊可以是源塊或目標(biāo)塊。所述的塊可以基于它們相對(duì)于客戶端計(jì)算機(jī)100a...100n的位置,基于客戶端計(jì)算機(jī)100a...100n與存儲(chǔ)系統(tǒng)150的連接,基于哪些塊最少被其它客戶端計(jì)算機(jī)100a...100n引用,基于讀/寫訪問模式,基于可靠性要求等等被選擇。
在方框604,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)管理器136a...136m向客戶端計(jì)算機(jī)100a...100n發(fā)送映射信息。在某些實(shí)施方式中,所述映射信息提供了所述塊的間接指針。在方框606,客戶端計(jì)算機(jī)100a...100n上的應(yīng)用程序106a...106n使用所述映射信息確定文件的塊的位置并且訪問所述塊。
圖7示出了按照本發(fā)明的某些實(shí)施方式的用于更新映射信息的邏輯??刂崎_始于方框700,拷貝服務(wù)158a...158q將數(shù)據(jù)的源塊拷貝到目標(biāo)塊。在方框702,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)管理器136a...136m為所述源塊以所述目標(biāo)塊的位置更新元數(shù)據(jù)存儲(chǔ)140。在方框704,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)管理器136a...136m確定哪些(如果有的話)客戶端計(jì)算機(jī)100a...100n應(yīng)當(dāng)被發(fā)送新拷貝的目標(biāo)塊的已更新的映射信息。例如,如果客戶端計(jì)算機(jī)100a接收到用于與FILEA相關(guān)聯(lián)的第一組目標(biāo)塊的映射信息,但是同樣與FILEA相關(guān)聯(lián)的新創(chuàng)建的目標(biāo)塊被確定為對(duì)于客戶端計(jì)算機(jī)100a是“更可用”的一組塊,那么元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)管理器136a...136m就為新拷貝的目標(biāo)塊向計(jì)算機(jī)100a發(fā)送已更新的映射信息。一組“更可用的”塊可以被描述為是一組不像別的塊組那樣經(jīng)常被訪問的塊。
在方框706,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)管理器136a...136m以已更新的映射信息更新適當(dāng)?shù)目蛻舳擞?jì)算機(jī)100a...100n的高速緩存。在方框708,客戶端計(jì)算機(jī)100a...100n上的應(yīng)用程序106a...106n在希望進(jìn)行下一次訪問時(shí)使用已更新的映射信息訪問文件的塊。因此,以圖6和圖7所述的處理,在打開文件時(shí),客戶端計(jì)算機(jī)100a...100n對(duì)元數(shù)據(jù)服務(wù)器132a...132m進(jìn)行一次訪問,以便獲得用于該文件的塊的映射信息。然后,元數(shù)據(jù)服務(wù)器132a...132m基于對(duì)新創(chuàng)建的目標(biāo)拷貝是否是客戶端計(jì)算機(jī)100a...100n的更好的匹配的確定,自動(dòng)更新映射信息。
在正常文件系統(tǒng)操作期間,如果對(duì)于一個(gè)文件數(shù)據(jù)的連續(xù)拷貝是適合的,則可以發(fā)出創(chuàng)建文件的塊的連續(xù)拷貝的請(qǐng)求??梢杂?,例如,元數(shù)據(jù)服務(wù)器132a...132m基于文件系統(tǒng)等級(jí)上的拷貝策略通過利用管理客戶端計(jì)算機(jī)190插入用戶指定的請(qǐng)求發(fā)出所述請(qǐng)求,或者由應(yīng)用程序106a發(fā)出所述請(qǐng)求。元數(shù)據(jù)服務(wù)器132a...132m可以在元數(shù)據(jù)存儲(chǔ)140中記錄該文件的目標(biāo)塊的位置。一旦進(jìn)行了所述文件的塊的拷貝,則在對(duì)源塊進(jìn)行更新時(shí),可以對(duì)所述目標(biāo)塊進(jìn)行更新。接著,SAN知曉的文件系統(tǒng)可以在源塊和目標(biāo)塊之間轉(zhuǎn)換而不影響任何應(yīng)用程序。
圖8示出了按照本發(fā)明的某些實(shí)施方式的用于錯(cuò)誤處理的邏輯。在正常系統(tǒng)操作期間,在SAN知曉的文件系統(tǒng)中可能會(huì)出錯(cuò),從而用于文件的源塊不再能訪問。本發(fā)明的實(shí)施方式自動(dòng)地解決了這個(gè)問題。在圖8中,控制開始于方框800,確定一個(gè)存儲(chǔ)控制器152a...152q發(fā)生了故障。在某些實(shí)施方式中,當(dāng)被提交給存儲(chǔ)控制器152a...152q的請(qǐng)求未被處理(例如,在某個(gè)時(shí)間段內(nèi))時(shí),應(yīng)用程序106a...106n和/或客戶端計(jì)算機(jī)100a...100n確定一個(gè)存儲(chǔ)控制器152a...152q發(fā)生了故障。在某些實(shí)施方式中,可選擇地,應(yīng)用程序106a...106n和/或客戶端計(jì)算機(jī)100a...100n向存儲(chǔ)控制器152a...152q重新提交所述請(qǐng)求。
在方框802,將存儲(chǔ)控制器152a...152q的故障通知給元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)位置管理器136a...136m。例如,所述通知可以來自應(yīng)用程序106a...106n和/或客戶端計(jì)算機(jī)100a...100n。當(dāng)存儲(chǔ)控制器152a...152q發(fā)生故障時(shí),通過存儲(chǔ)控制器152a...152q被訪問的源塊可以不再是可訪問的。在方框804,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)位置管理器136a...136m使用一種或多種策略確定將指向不可訪問的源塊的指示符轉(zhuǎn)換到可訪問的目標(biāo)塊是否適合。這些策略被用于確定何時(shí)適合于將指示符從初始的源塊轉(zhuǎn)向目標(biāo)塊,使所述目標(biāo)塊成為新的源塊。這種策略的一個(gè)例子是“如果被包含在這個(gè)數(shù)據(jù)所屬的會(huì)話中的所有數(shù)據(jù)都是一致的,那么轉(zhuǎn)換所述塊的指示符,并且透明地恢復(fù)所述數(shù)據(jù);如果所述數(shù)據(jù)不一致,那么不轉(zhuǎn)換所述指示符,并且允許進(jìn)行常規(guī)的錯(cuò)誤處理?!痹诜娇?06,如果確定適合于轉(zhuǎn)換指示符,則處理以方框808繼續(xù),否則,進(jìn)行處理。在方框808,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)位置管理器136a...136m使用元數(shù)據(jù)存儲(chǔ)140為每組不可訪問的源塊定位目標(biāo)塊。當(dāng)有多于一組的目標(biāo)塊可以用于一組不可訪問的源塊時(shí),元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)位置管理器136a...136m基于一種或多種策略選擇一組目標(biāo)塊。這種策略的一個(gè)例子是“如果初始的源塊是被使用連續(xù)拷貝服務(wù)被拷貝,則轉(zhuǎn)換打到也能夠被連續(xù)拷貝的一組目標(biāo)塊?!边@種策略的另一個(gè)例子是“轉(zhuǎn)換到物理上最接近將處理恢復(fù)的數(shù)據(jù)的應(yīng)用服務(wù)器的目標(biāo)塊?!边@種策略的又一例子是“轉(zhuǎn)換到所述數(shù)據(jù)的可靠性最高的拷貝”。
在方框810,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)位置管理器136a...136m識(shí)別出拷貝關(guān)系被在不可訪問的源塊和已定位目標(biāo)塊之間掛起。在方框812,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)位置管理器136a...136m將指示符從不可訪問源塊轉(zhuǎn)換為指向已定位目標(biāo)塊,使目標(biāo)塊成為“新的源塊”。在方框814,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)位置管理器136a...136m更新元數(shù)據(jù)存儲(chǔ)140。例如,為其塊在發(fā)生故障的存儲(chǔ)控制器152a...152q的存儲(chǔ)(例如LUN)上的每個(gè)文件更新映射信息142,從而指向這些文件的初始源塊的指示符被設(shè)置為指向新的源塊。再有,在映射信息142中所述新的源塊不再被看作是目標(biāo)塊。
在方框816,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)位置管理器136a...136m以已更新的映射信息更新適當(dāng)?shù)目蛻舳擞?jì)算機(jī)的高速緩存。例如,如果客戶端計(jì)算機(jī)100a具有變得不可訪問的源塊的映射信息,則元數(shù)據(jù)服務(wù)器132a...132m將為客戶端計(jì)算機(jī)100a更新高速緩存,以便作為替換訪問已定位的目標(biāo)塊(也被稱作“新的源塊”)。
在方框818,其高速緩存已被更新的客戶端計(jì)算機(jī)100a...100n上的應(yīng)用程序106a...106n在它的下面的塊訪問時(shí)使用所述已更新的映射信息。此外,在方框820,數(shù)據(jù)位置管理器136a...136m使用拷貝服務(wù)158a...158q進(jìn)行已定位目標(biāo)塊(“新的源塊”)的拷貝。在某些實(shí)施方式中,如果存在不可訪問的源塊的組的多于一組的目標(biāo)塊,則可以不進(jìn)行已定位目標(biāo)塊的拷貝。
圖9示出了按照本發(fā)明的某些實(shí)施方式的用于當(dāng)存儲(chǔ)控制器152a...152q出現(xiàn)故障時(shí)處理正在處理中的讀和寫請(qǐng)求的邏輯??刂崎_始于方框900,在已經(jīng)轉(zhuǎn)換了指示符(圖8的方框812)之后,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)位置管理器136a...136m使正在處理中的讀請(qǐng)求重定向到新的源塊。在方框902,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)位置管理器136a...136m凍結(jié)向存儲(chǔ)控制器152a...152q的寫。在方框904,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)管理器136a...136m將寫請(qǐng)求重定向到新的源塊(即,在圖8的方框808中定位的目標(biāo)塊)。
因此,當(dāng)客戶端計(jì)算機(jī)100a...100n請(qǐng)求文件時(shí),元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)管理器136a...136m為優(yōu)先選擇的塊組(例如,源塊或目標(biāo)塊)將映射信息發(fā)送給客戶端計(jì)算機(jī)100a...100n。以這種方式,元數(shù)據(jù)服務(wù)器132a...132m上的數(shù)據(jù)管理器136a...136m能夠基于各種因素提供具有最高可用性的塊。
此外,某些實(shí)施方式使用SAN知曉的文件系統(tǒng)及其能力,利用編目工具(例如元數(shù)據(jù)服務(wù)器)跟蹤文件的源塊和目標(biāo)塊的位置。尤其是,SAN知曉的文件系統(tǒng)能夠隨著文件的源塊的拷貝跟蹤文件的源塊。此外,通過將引用從源塊改變到目標(biāo)(“拷貝”)塊組,并且通過使所述目標(biāo)塊成為新的源塊,SAN知曉的文件系統(tǒng)能夠以預(yù)先拷貝或同步拷貝來替代文件。對(duì)于客戶端計(jì)算機(jī)100a...100n上的應(yīng)用程序而言,這種改變是透明的。
而且,所述的實(shí)施方式使用SAN知曉的文件系統(tǒng)中所提供的拷貝服務(wù)能力迅速而有效地移植數(shù)據(jù)。在某些實(shí)施方式中,底層的SAN硬件和SAN知曉的文件系統(tǒng)的拷貝服務(wù)軟件被用于從一個(gè)存儲(chǔ)控制器向另一個(gè)存儲(chǔ)控制器移植數(shù)據(jù),以進(jìn)行快速數(shù)據(jù)移植。
IBM和AIX是國(guó)際商用公司在美國(guó)和/或其它國(guó)家中的注冊(cè)商標(biāo)或普通法標(biāo)志(common law mark)。Windows是微軟公司在美國(guó)和/或其它國(guó)家中的注冊(cè)商標(biāo)。Solaris是Sun Microsystems在美國(guó)和/或其它國(guó)家中的注冊(cè)商標(biāo)或普通法標(biāo)志。Linux是Linus Torvalds在美國(guó)和/或其它國(guó)家中的注冊(cè)商標(biāo)。HP-UX是美國(guó)和/或其它國(guó)家中的一種Open Group UNIX 95的品牌產(chǎn)品。UNIX是Open Group在美國(guó)和/或其它國(guó)家中的注冊(cè)商標(biāo)或普通法標(biāo)志。
附加實(shí)施方式的細(xì)節(jié)所述的實(shí)施方式可以被利用編程和/或工程技術(shù)生產(chǎn)軟件、固件、硬件或其任意組合,實(shí)現(xiàn)為方法、裝置或制品。此處所使用的術(shù)語(yǔ)“制品”和“電路”是指在硬件邏輯(例如,集成電路芯片、可編程門陣列(PGA)、特定用途集成電路(ASIC)等)或計(jì)算機(jī)可讀介質(zhì)中實(shí)現(xiàn)的狀態(tài)機(jī)、代碼或邏輯,所述計(jì)算機(jī)可讀介質(zhì)諸如磁存儲(chǔ)介質(zhì)(例如,硬盤驅(qū)動(dòng)器、軟盤、磁帶等)、光學(xué)存儲(chǔ)(CD-ROM、光盤等)、易失性和非易失性存儲(chǔ)器設(shè)備(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等)。計(jì)算機(jī)可讀介質(zhì)中的代碼可以被處理器訪問和執(zhí)行。當(dāng)代碼或邏輯被處理器執(zhí)行時(shí),所述電路可以包括包含所述代碼或邏輯的介質(zhì)以及處理器,所述處理器執(zhí)行從所述介質(zhì)上載入的代碼。所述代碼(以所述代碼實(shí)現(xiàn)了本發(fā)明的實(shí)施方式)還可以通過傳輸介質(zhì)或者通過網(wǎng)絡(luò)從服務(wù)器被訪問。在這樣的情況下,所述的制品(其中實(shí)現(xiàn)了所述的代碼)可以包括傳輸介質(zhì),諸如網(wǎng)絡(luò)傳輸線,無線傳輸介質(zhì),通過空間、無線電波、紅外信號(hào)等傳播的信號(hào)。因此,“制品”可以包括其中包含了所述代碼的介質(zhì)。此外,“制品”可以包括軟件和硬件組件的組合,其中,所述代碼被包含、處理和執(zhí)行。當(dāng)然,本領(lǐng)域技術(shù)人員將會(huì)認(rèn)識(shí)到,可以對(duì)這種結(jié)構(gòu)進(jìn)行許多修改,并且制品可以包括本領(lǐng)域公知的任意信息承載介質(zhì)。
圖6-9的邏輯描述了以特定順序出現(xiàn)的特定操作。在替換實(shí)施方式中,某些邏輯操作可以以不同的順序執(zhí)行、修改或刪除。而且,可以向以上所述的邏輯添加操作,并且仍然符合所述的實(shí)施方式。還有,此處所述的操作可以順序地發(fā)生,或者某些操作可以被并行處理,或者被描述為由單個(gè)處理執(zhí)行的操作可以由分布式的處理執(zhí)行。
圖6-9示出的邏輯可以用軟件、硬件、可編程和不可編程門陣列邏輯或者以硬件、軟件、或門陣列邏輯的某些組合實(shí)現(xiàn)。
圖10示出了按照本發(fā)明的某些實(shí)施方式可以被使用的計(jì)算機(jī)系統(tǒng)的體系結(jié)構(gòu)1000??蛻舳擞?jì)算機(jī)、服務(wù)器計(jì)算機(jī)、存儲(chǔ)控制器和/或管理員客戶端計(jì)算機(jī)可以實(shí)現(xiàn)計(jì)算機(jī)結(jié)構(gòu)1000。計(jì)算機(jī)結(jié)構(gòu)1000可以實(shí)現(xiàn)處理器1002(例如,微處理器)、存儲(chǔ)器1004(例如,易失性存儲(chǔ)器設(shè)備)以及存儲(chǔ)1010(例如,非易失性存儲(chǔ)區(qū),諸如磁盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器等)。操作系統(tǒng)1005可以在存儲(chǔ)器1004中執(zhí)行。存儲(chǔ)1010可以包括內(nèi)部存儲(chǔ)設(shè)備、或者附加的或可通過網(wǎng)絡(luò)訪問的存儲(chǔ)。存儲(chǔ)1010中的計(jì)算機(jī)程序1006可以被以本領(lǐng)域公知的方式載入到存儲(chǔ)器1004中,并且由處理器1002執(zhí)行。所述體系結(jié)構(gòu)還包括網(wǎng)卡1008,以便能夠與網(wǎng)絡(luò)進(jìn)行通信。輸入設(shè)備1012被用于向處理器1002提供用戶輸入,并且可以包括鍵盤、鼠標(biāo)、輸入筆、麥克風(fēng)、觸敏顯示屏、或者本領(lǐng)域公知的其它任意的激活或輸入機(jī)制。輸出設(shè)備1014能夠呈現(xiàn)出來自處理器1002或者其它組件諸如顯示監(jiān)視器、打印機(jī)、存儲(chǔ)等的信息。計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)體系結(jié)構(gòu)1000可以包括比示出的更少的組件、此處未示出的附加組件、或者所示組件和附加組件的某種組合。
計(jì)算機(jī)體系結(jié)構(gòu)1000可以包括本領(lǐng)域公知的任意計(jì)算設(shè)備,諸如大型機(jī)、服務(wù)器、個(gè)人計(jì)算機(jī)、工作站、膝上型電腦、手持型計(jì)算機(jī)、電話設(shè)備、網(wǎng)絡(luò)設(shè)備、虛擬設(shè)備、存儲(chǔ)控制器等??梢允褂帽绢I(lǐng)域公知的任意處理器1002和操作系統(tǒng)1005。
出于示例和說明的目的給出了本發(fā)明的實(shí)施方式的上述說明。其并不意味著是窮盡的,也不意味著將本發(fā)明的實(shí)施方式限定為所公開的精確形式。根據(jù)以上教導(dǎo),能夠進(jìn)行許多修改和變化。本發(fā)明的實(shí)施方式的范圍不打算由這種詳細(xì)的說明來限定,而是由所附的權(quán)利要求來限定。以上的說明、例子和數(shù)據(jù)提供了本發(fā)明的實(shí)施方式的構(gòu)成的制造和使用的完整說明。因?yàn)樵诓幻撾x本發(fā)明的實(shí)施方式的精神和范圍的情況下能夠做出本發(fā)明的許多實(shí)現(xiàn)方案,本發(fā)明的這些實(shí)現(xiàn)方案屬于下面所附的權(quán)利要求或者任意的隨后提交的權(quán)利要求及其等效物的范圍內(nèi)。
權(quán)利要求
1.一種制品,包括用于定位數(shù)據(jù)的程序邏輯,其中所述程序邏輯使得操作被執(zhí)行,所述操作包括提供用于與文件相關(guān)聯(lián)的塊的映射信息;確定拷貝服務(wù)已經(jīng)將源塊拷貝到目標(biāo)塊;確定是否應(yīng)當(dāng)更新所述映射信息以便指向所述目標(biāo)塊;以及響應(yīng)于確定應(yīng)當(dāng)更新所述映射信息以便指向所述目標(biāo)塊,提供已更新的映射信息。
2.根據(jù)權(quán)利要求1的制品,其中所述操作還包括以所述目標(biāo)塊的位置更新元數(shù)據(jù)存儲(chǔ)。
3.根據(jù)權(quán)利要求1的制品,其中所述操作還包括當(dāng)文件被打開時(shí),接收對(duì)用于該文件的塊的位置的請(qǐng)求;響應(yīng)該請(qǐng)求,確定應(yīng)當(dāng)使與文件相關(guān)聯(lián)的哪些塊可用;以及發(fā)送用于被確定的塊的映射信息。
4.根據(jù)權(quán)利要求3的制品,其中所述操作還包括基于所述塊的可用性,確定應(yīng)當(dāng)使哪些所述塊可用。
5.根據(jù)權(quán)利要求1的制品,其中響應(yīng)于對(duì)映射信息的請(qǐng)求,將映射信息發(fā)送到客戶端計(jì)算機(jī),并且其中所述客戶端計(jì)算機(jī)使用所述映射信息訪問該文件。
6.根據(jù)權(quán)利要求1的制品,其中已更新的映射信息被自動(dòng)發(fā)送到客戶端計(jì)算機(jī),并且其中所述客戶端計(jì)算機(jī)使用已更新的映射信息訪問該文件。
7.一種制品,包括當(dāng)數(shù)據(jù)的源不可訪問時(shí)用于訪問數(shù)據(jù)的拷貝的程序邏輯,其中所述程序邏輯使得操作被執(zhí)行,所述操作包括確定源塊不可使用;使用元數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù),定位目標(biāo)塊,所述目標(biāo)塊是不可使用源塊的拷貝;對(duì)指向源塊的指示符進(jìn)行轉(zhuǎn)換以便指向所述目標(biāo)塊;以及更新一個(gè)或多個(gè)客戶端計(jì)算機(jī)上的映射信息,以便訪問所述目標(biāo)塊而不是所述源塊。
8.根據(jù)權(quán)利要求7的制品,其中所述操作還包括利用一種或多種策略,確定將指向所述源塊的指示符轉(zhuǎn)換為指向所述目標(biāo)塊是否適合。
9.根據(jù)權(quán)利要求7的制品,其中由于存儲(chǔ)控制器的故障,源塊成為是不可使用的。
10.根據(jù)權(quán)利要求7的制品,其中當(dāng)所述源塊成為不可使用時(shí),所述目標(biāo)塊與所述源塊已經(jīng)處于被掛起的連續(xù)拷貝關(guān)系。
11.根據(jù)權(quán)利要求7的制品,其中所述操作還包括創(chuàng)建所述目標(biāo)塊的拷貝。
12.根據(jù)權(quán)利要求7的制品,其中在被SAN知曉的文件系統(tǒng)管理的虛擬設(shè)備上源塊是不可使用的,并且其中所述操作還包括確定訪問所述源塊的I/O操作已經(jīng)失??;以及響應(yīng)更新映射信息,通過訪問所述目標(biāo)塊重試所述I/O操作。
13.一種用于定位數(shù)據(jù)的方法,包括提供用于與文件相關(guān)聯(lián)的塊的映射信息;確定拷貝服務(wù)已經(jīng)將源塊拷貝到目標(biāo)塊;確定是否應(yīng)當(dāng)更新所述映射信息以便指向所述目標(biāo)塊;以及響應(yīng)于確定應(yīng)當(dāng)更新所述映射信息以便指向所述目標(biāo)塊,提供已更新的映射信息。
14.根據(jù)權(quán)利要求13的方法,還包括以所述目標(biāo)塊的位置更新元數(shù)據(jù)存儲(chǔ)。
15.根據(jù)權(quán)利要求13的方法,還包括當(dāng)文件被打開時(shí),接收對(duì)用于該文件的塊的位置的請(qǐng)求;響應(yīng)該請(qǐng)求,確定應(yīng)當(dāng)使與文件相關(guān)聯(lián)的哪些塊可用;以及發(fā)送用于被確定的塊的映射信息。
16.根據(jù)權(quán)利要求15的方法,還包括基于所述塊的可用性,確定應(yīng)當(dāng)使哪些所述塊可用。
17.根據(jù)權(quán)利要求13的方法,其中響應(yīng)對(duì)所述映射信息的請(qǐng)求,所述映射信息被發(fā)送到客戶端計(jì)算機(jī),并且其中所述客戶端計(jì)算機(jī)使用所述的映射信息訪問該文件。
18.根據(jù)權(quán)利要求13的方法,其中所述已更新的映射信息被自動(dòng)發(fā)送到客戶端計(jì)算機(jī),并且其中所述客戶端計(jì)算機(jī)使用所述已更新的映射信息訪問該文件。
19.一種用于當(dāng)數(shù)據(jù)的源不可訪問時(shí)訪問數(shù)據(jù)的拷貝的方法,包括確定源塊不可使用;使用元數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù),定位目標(biāo)塊,所述目標(biāo)塊是所述不可使用的源塊的拷貝;對(duì)指向所述源塊的指示符進(jìn)行轉(zhuǎn)換以便指向所述目標(biāo)塊;以及更新一個(gè)或多個(gè)客戶端計(jì)算機(jī)上的映射信息,以便訪問所述目標(biāo)塊而不是所述源塊。
20.根據(jù)權(quán)利要求19的方法,還包括利用一種或多種策略,確定將指向所述源塊的指示符轉(zhuǎn)換為指向所述目標(biāo)塊是否適合。
21.根據(jù)權(quán)利要求19的方法,其中由于存儲(chǔ)控制器的故障所述源塊不可使用。
22.根據(jù)權(quán)利要求19的方法,其中當(dāng)源塊成為不可使用的時(shí),所述目標(biāo)塊與所述源塊已經(jīng)處于被掛起的連續(xù)拷貝關(guān)系。
23.根據(jù)權(quán)利要求19的方法,還包括創(chuàng)建所述目標(biāo)塊的拷貝。
24.根據(jù)權(quán)利要求19的方法,其中在被SAN知曉的文件系統(tǒng)管理的虛擬設(shè)備上源塊是不可使用的,并且所述方法還包括確定訪問所述源塊的I/O操作已經(jīng)失敗;以及響應(yīng)更新映射信息,通過訪問所述目標(biāo)塊重試所述I/O操作。
25.一種用于定位數(shù)據(jù)的系統(tǒng),包括能夠使操作被執(zhí)行的電路,所述操作包括提供用于與文件相關(guān)聯(lián)的塊的映射信息;確定拷貝服務(wù)已經(jīng)將源塊拷貝到目標(biāo)塊;確定是否應(yīng)當(dāng)更新所述映射信息以便指向所述目標(biāo)塊;以及響應(yīng)于確定應(yīng)當(dāng)更新所述映射信息以便指向所述目標(biāo)塊,提供已更新的映射信息。
26.根據(jù)權(quán)利要求25的系統(tǒng),其中所述操作還包括以所述目標(biāo)塊的位置更新元數(shù)據(jù)存儲(chǔ)。
27.根據(jù)權(quán)利要求25的系統(tǒng),其中所述操作還包括當(dāng)文件被打開時(shí),接收對(duì)用于該文件的塊的位置的請(qǐng)求;響應(yīng)該請(qǐng)求,確定應(yīng)當(dāng)使與文件相關(guān)聯(lián)的哪些塊可用;以及發(fā)送用于被確定的塊的映射信息。
28.根據(jù)權(quán)利要求27的系統(tǒng),其中所述操作還包括基于所述塊的可用性,確定應(yīng)當(dāng)使哪些所述塊可用。
29.根據(jù)權(quán)利要求25的系統(tǒng),其中響應(yīng)對(duì)所述映射信息的請(qǐng)求,所述映射信息被發(fā)送到客戶端計(jì)算機(jī),并且其中所述客戶端計(jì)算機(jī)使用所述的映射信息訪問該文件。
30.根據(jù)權(quán)利要求25的系統(tǒng),其中所述已更新的映射信息被自動(dòng)發(fā)送到客戶端計(jì)算機(jī),并且其中所述客戶端計(jì)算機(jī)使用所述已更新的映射信息訪問該文件。
31.一種用于當(dāng)數(shù)據(jù)的源不可訪問時(shí)訪問數(shù)據(jù)的拷貝的系統(tǒng),包括能夠使操作被執(zhí)行的電路,所述操作包括確定源塊不可使用;使用元數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù),定位目標(biāo)塊,所述目標(biāo)塊是所述不可使用的源塊的拷貝;對(duì)指向所述源塊的指示符進(jìn)行轉(zhuǎn)換以便指向所述目標(biāo)塊;以及更新一個(gè)或多個(gè)客戶端計(jì)算機(jī)上的映射信息,以便訪問所述目標(biāo)塊而不是所述源塊。
32.根據(jù)權(quán)利要求31的系統(tǒng),其中所述操作還包括利用一種或多種策略,確定對(duì)指向所述源塊的指示符進(jìn)行轉(zhuǎn)換以便指向所述目標(biāo)塊是否適合。
33.根據(jù)權(quán)利要求31的系統(tǒng),其中由于存儲(chǔ)控制器的故障,所述源塊不可使用。
34.根據(jù)權(quán)利要求31的系統(tǒng),其中當(dāng)所述源塊成為是不可使用的時(shí),所述目標(biāo)塊與所述源塊已經(jīng)處于被掛起的連續(xù)拷貝關(guān)系。
35.根據(jù)權(quán)利要求31的系統(tǒng),其中所述操作還包括創(chuàng)建所述目標(biāo)塊的拷貝。
36.根據(jù)權(quán)利要求31的系統(tǒng),其中在被SAN知曉的文件系統(tǒng)管理的虛擬設(shè)備上源塊是不可使用的,并且其中所述操作還包括確定訪問所述源塊的I/O操作已經(jīng)失敗;以及響應(yīng)更新映射信息,通過訪問所述目標(biāo)塊重試所述I/O操作。
37.一種用于定位數(shù)據(jù)的系統(tǒng),包括用于提供用于與文件相關(guān)聯(lián)的塊的映射信息的裝置;用于確定拷貝服務(wù)已經(jīng)將源塊拷貝到目標(biāo)塊的裝置;用于確定是否應(yīng)當(dāng)更新所述映射信息以便指向所述目標(biāo)塊的裝置;以及用于響應(yīng)于確定應(yīng)當(dāng)更新所述映射信息以便指向所述目標(biāo)塊,提供已更新的映射信息的裝置。
38.根據(jù)權(quán)利要求37的系統(tǒng),還包括用于以所述目標(biāo)塊的位置更新元數(shù)據(jù)存儲(chǔ)的裝置。
39.一種用于當(dāng)數(shù)據(jù)的源不可訪問時(shí)訪問數(shù)據(jù)的拷貝的系統(tǒng),包括用于確定源塊不可使用的裝置;用于使用元數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù),定位目標(biāo)塊的裝置,所述目標(biāo)塊是所述不可使用的源塊的拷貝;用于對(duì)指向所述源塊的指示符進(jìn)行轉(zhuǎn)換以便指向所述目標(biāo)塊的裝置;以及用于更新一個(gè)或多個(gè)客戶端計(jì)算機(jī)上的映射信息,以便訪問所述目標(biāo)塊而不是所述源塊的裝置。
40.根據(jù)權(quán)利要求39的系統(tǒng),還包括用于利用一種或多種策略,確定對(duì)指向所述源塊的指示符進(jìn)行轉(zhuǎn)換以便指向所述目標(biāo)塊是否適合的裝置。
全文摘要
提供了用于定位數(shù)據(jù)的技術(shù)。提供了用于與文件相關(guān)聯(lián)的塊的映射信息。確定拷貝服務(wù)已經(jīng)將源塊拷貝到目標(biāo)塊。確定是否應(yīng)當(dāng)更新所述映射信息以便指向所述目標(biāo)塊。然后響應(yīng)于確定應(yīng)當(dāng)更新所述映射信息以便指向所述目標(biāo)塊,提供已更新的映射信息。還提供了用于當(dāng)數(shù)據(jù)的源不可訪問時(shí)訪問數(shù)據(jù)的拷貝的技術(shù)。確定源塊不可使用。使用元數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù),定位目標(biāo)塊,所述目標(biāo)塊是不可使用源塊的拷貝。對(duì)指向源塊的指示符進(jìn)行轉(zhuǎn)換以便指向目標(biāo)塊。更新一個(gè)或多個(gè)客戶端計(jì)算機(jī)上的映射信息,以便訪問目標(biāo)塊而不是源塊。
文檔編號(hào)G06F17/30GK1776635SQ20051010412
公開日2006年5月24日 申請(qǐng)日期2005年9月19日 優(yōu)先權(quán)日2004年11月19日
發(fā)明者格里高里·艾德華·邁克布里奇, 孔明樂, 戴維·邁克爾·沙克爾福德 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司