專利名稱:用于存儲區(qū)域網(wǎng)絡內部的分配數(shù)據(jù)的方法和裝置的制作方法
技術領域:
本發(fā)明涉及存儲網(wǎng)絡內部的分配數(shù)據(jù),并且,本發(fā)明的實現(xiàn)提供對應用透明的自動數(shù)據(jù)復制,以為存儲區(qū)域網(wǎng)絡(SAN)的意識文件系統(tǒng)改進訪問性能。
背景技術:
計算系統(tǒng)通常包括一個或多個用于處理數(shù)據(jù)和運行應用程序的主機計算機(“主機”)、用于存儲數(shù)據(jù)的直接訪問存儲設備(DASD)和用于控制主機與直接訪問存儲設備間數(shù)據(jù)傳輸?shù)拇鎯刂破?。存儲控制器,也被稱為控制單元或存儲導向器,管理對由許多硬盤所組成的存儲空間的訪問,其中硬盤也被稱為直接訪問存儲設備(DASD)。主機可以通過該存儲控制器與存儲空間進行輸入/輸出(I/O)請求通信。
存儲控制器可以提供拷貝服務。利用該拷貝服務,在一個存儲設備如DASD上的數(shù)據(jù)可以被拷貝到同一個或其它存儲設備中,以使對數(shù)據(jù)卷的訪問可以從兩個不同的設備來提供,或者具有備份拷貝。
國際商業(yè)機器公司(IBM),本專利申請的受讓人,提供用于維護第二級存儲設備上的數(shù)據(jù)的遠程拷貝的遠程拷貝服務,包括擴展遠程拷貝(XRC)和遠程點對點拷貝(PPRC)。這些系統(tǒng)提供用于恢復最后的安全備份與系統(tǒng)故障之間的數(shù)據(jù)更新的技術。這樣的數(shù)據(jù)備份系統(tǒng)也可以提供非恢復目的的附加遠程拷貝,比如在遠程站點處的本地訪問。
另一個拷貝服務的例子是時間點拷貝,它包括將所有的數(shù)據(jù)從源卷物理拷貝到目標卷,以使目標卷具有在該時間點處的數(shù)據(jù)的拷貝。時間點拷貝也可以通過在邏輯上產(chǎn)生延遲物理拷貝的效果而獲得,而這被稱為“即時虛擬拷貝”操作或“快速復制功能”。
即時虛擬拷貝操作通過修改元數(shù)據(jù)如關系表或指針而運行,以將源數(shù)據(jù)對象同時視為原本和拷貝。響應于主機的拷貝請求,存儲子系統(tǒng)立即報告拷貝的創(chuàng)建,而不做數(shù)據(jù)的任何物理拷貝。只有“虛擬”的拷貝已被創(chuàng)建,而主機完全不知道不存在另外的物理拷貝。在后臺處理期間或在其它時間,主機或存儲子系統(tǒng)甚至可以進行創(chuàng)建原始數(shù)據(jù)對象的實際的物理拷貝。
一個這樣的即時虛擬拷貝操作被稱作瞬時拷貝(FlashCopy)操作。瞬時拷貝操作的進一步詳細資料于2003年8月26日公開在共同受讓的美國專利6661901中,標題為“Method,System,and Program forMaintaining Electronic Data as of a Point-in-Time”,通過參考將該專利申請的全部并入此文。
存儲控制器可以連接至一組邏輯單元號(LUN)。LUN可以被描述為識別特定磁盤的唯一號碼,且典型地用于指代具有該LUN的磁盤。有多種工具和實用程序提供報告顯示LUN是“熱點”或成為應用程序性能的主要瓶頸。例如,如果許多應用程序正嘗試訪問在一個LUN上的文件,則該LUN可以被描述為“熱點”,并且,訪問該LUN可以影響這些應用程序的性能。盡管工具和實用程序能夠指示哪些LUN正成為“熱點”,但他們并不解決該問題。而是,系統(tǒng)管理者負責將一個或多個應用程序從一個“熱點”LUN移動到第二LUN上,以使應用程序訪問該第二LUN,而且,系統(tǒng)管理者還負責將“熱點”LUN上的數(shù)據(jù)映射到該第二LUN上,以使被移動的應用程序可以訪問在該第二LUN上的數(shù)據(jù)。這個傳統(tǒng)的解決方案由于使數(shù)據(jù)移動而導致應用程序中斷。
因此,在本領域中,對改良的文件訪問始終有需求。
發(fā)明內容
所提供的是用于在存儲網(wǎng)絡內部分配數(shù)據(jù)的制造物、系統(tǒng)和方法。在本發(fā)明的一個實施例中,確定源存儲設備正成為瓶頸,并且接著識別一個或多個數(shù)據(jù)塊以從源存儲設備移動(如復制)至一個或多個其它存儲設備。選擇該一個或多個其它存儲設備,并使用拷貝服務,以將這些塊從源存儲設備移動至一個或多個其它存儲設備。用已被移動的塊的位置來更新元數(shù)據(jù)存儲。
作為例子,下面參照附圖更詳細地描述本發(fā)明的實施例,附圖中相似的附圖標記代表相對應的部分圖1示例說明根據(jù)本發(fā)明的某些實現(xiàn)所執(zhí)行的計算環(huán)境。
圖2示例說明根據(jù)本發(fā)明的某些實現(xiàn)的客戶計算機。
圖3示例說明根據(jù)本發(fā)明的某些實現(xiàn)的元數(shù)據(jù)服務器。
圖4示例說明根據(jù)本發(fā)明的某些實現(xiàn)的元數(shù)據(jù)存儲。
圖5示例說明根據(jù)本發(fā)明的某些實現(xiàn)的存儲系統(tǒng)。
圖6示例說明根據(jù)本發(fā)明的某些實現(xiàn)當打開文件時所用的邏輯。
圖7示例說明根據(jù)本發(fā)明的某些實現(xiàn)用于更新映射信息的邏輯。
圖8示例說明根據(jù)本發(fā)明的某些實現(xiàn)用于跨越一個或多個存儲設備存儲塊的邏輯。
圖9示例說明根據(jù)本發(fā)明的某些實現(xiàn)用于維護性能信息的應用程序的邏輯。
圖10示例說明根據(jù)本發(fā)明的某些實現(xiàn)可以使用的計算機系統(tǒng)的體系結構。
具體實施例方式
在下面的描述中,參照附圖,其構成本文的一部分并且示例說明本發(fā)明的幾個實現(xiàn)。當然,可以利用其它的實現(xiàn),并且,在本發(fā)明的實現(xiàn)的領域內可以進行結構的和操作的改變。
圖1是示例說明根據(jù)本發(fā)明的某些實現(xiàn)的計算環(huán)境的方框圖。一個或多個客戶計算機100a...100n經(jīng)由網(wǎng)絡170連接至元數(shù)據(jù)服務器群集130,還經(jīng)由存儲網(wǎng)絡180連接至存儲系統(tǒng)150。存儲網(wǎng)絡180提供客戶計算機100a...100n與存儲系統(tǒng)150間的直接的數(shù)據(jù)傳輸。
每一個客戶計算機100a...100n分別包括具有緩存122a...122n的文件系統(tǒng)120a...120n。客戶計算機100a...100n可以運行任何操作系統(tǒng)108a...108n(圖2),如AIX操作系統(tǒng)、Linux操作系統(tǒng)、Windows2000操作系統(tǒng)、Windows XP操作系統(tǒng)、Solaris操作系統(tǒng)、UNIX操作系統(tǒng)或HP-UX操作系統(tǒng)。客戶計算機100a...100n也可以被稱為“存儲客戶”。
在運行某些操作系統(tǒng)(Windows2000操作系統(tǒng)、WindowsXP操作系統(tǒng)、或HP-UX操作系統(tǒng))的客戶計算機上,文件系統(tǒng)120a...120n可以被稱為可安裝文件系統(tǒng)(IFS),而在運行某些其它的操作系統(tǒng)(AIX操作系統(tǒng)、Linux操作系統(tǒng)或Solaris操作系統(tǒng))的客戶計算機上,文件系統(tǒng)120a...120n可以被稱為虛擬文件系統(tǒng)(VFS)。在客戶計算機100a...100n處的文件系統(tǒng)120a...120n可以被稱為存儲控制器客戶文件系統(tǒng)。
文件系統(tǒng)120a...120n指導對元數(shù)據(jù)服務器群集130的元數(shù)據(jù)操作,并且指導對安裝在高速存儲網(wǎng)絡180的存儲系統(tǒng)150的數(shù)據(jù)操作。文件系統(tǒng)120a...120n產(chǎn)生元數(shù)據(jù),該元數(shù)據(jù)對每個客戶計算機100a...100n的操作系統(tǒng)以及客戶計算機100a...100n運行的任何應用程序可見,就像從當?shù)氐谋镜剡B接的文件系統(tǒng)所讀取的元數(shù)據(jù)。文件系統(tǒng)120a...120n支持數(shù)據(jù)的鎖定和緩存。
每個客戶計算機100a...100n可以包含本領域所知的任何計算設備,比如服務器、大型機器、工作站、個人計算機、手持計算機、膝上電話設備以及網(wǎng)絡儀表等等。
元數(shù)據(jù)服務器群集130包括元數(shù)據(jù)服務器132a...132m。管理客戶計算機190可以選擇性地連接至元數(shù)據(jù)服務器群集130,以允許管理者直接向一個或多個元數(shù)據(jù)服務器132a...132m提交命令。每一個元數(shù)據(jù)服務器132a...132m實現(xiàn)SAN文件系統(tǒng)目錄,該目錄存儲文件與組成該文件的存儲設備上的源塊之間的映射。該映射存儲在元數(shù)據(jù)存儲140中。
元數(shù)據(jù)存儲連接至存儲網(wǎng)絡180。元數(shù)據(jù)服務器132a...132m維護元數(shù)據(jù)存儲140中的數(shù)據(jù),包括,例如存儲系統(tǒng)150中數(shù)據(jù)的位置,以及每個客戶計算機100a...100n訪問數(shù)據(jù)的頻繁程度。
存儲系統(tǒng)150包括一個或多個存儲控制器152a...152q,還包括用于存儲數(shù)據(jù)(如文件)的共享存儲池154。盡管示例說明了一個存儲系統(tǒng)150,但可以連接多個存儲系統(tǒng)至存儲網(wǎng)絡180。
性能分析系統(tǒng)192連接至元數(shù)據(jù)服務器群集130和存儲系統(tǒng)150。性能分析系統(tǒng)192確定是否一個或多個存儲設備正成為瓶頸,并發(fā)送適當?shù)耐ㄖ?br>
SAN可以被描述為共享存儲設備的高速子網(wǎng)絡。存儲設備可以被描述為能夠存儲數(shù)據(jù)的任何部件。多個元數(shù)據(jù)服務器132a...132m可以訪問存儲系統(tǒng)150中的存儲設備。SAN意識文件系統(tǒng)可以被描述為包括元數(shù)據(jù)服務器群集130、元數(shù)據(jù)存儲140、存儲系統(tǒng)150、存儲網(wǎng)絡180以及虛擬和可安裝文件系統(tǒng)120a...120n。因此,圖1中示例說明了群集環(huán)境中的統(tǒng)一的文件系統(tǒng)。
每個網(wǎng)絡170和180都可以包含任何類型的網(wǎng)絡,例如,存儲區(qū)域網(wǎng)絡(SAN)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、互聯(lián)網(wǎng)以及內部網(wǎng)等等。
圖2示例說明根據(jù)本發(fā)明的某些實現(xiàn)的客戶計算機100a...100n。每個客戶計算機100a...100n包括一個或多個中央處理單元(CPU)102a...102n以及可以在易失性和/或非易失性設備中實現(xiàn)的系統(tǒng)內存104a...104n。可以在系統(tǒng)內存104a存儲一個或多個客戶應用106a...106n、操作系統(tǒng)108a...108n以及一個或多個錯誤恢復系統(tǒng)112a...112n。操作系統(tǒng)108a...108n可以包括一個或多個設備驅動器110a...110n。為保證數(shù)據(jù)的一致轉換,當從一個塊集向另一個塊集(如從源塊向目標塊)轉換指示器時可以使用錯誤恢復系統(tǒng)112a...112n和設備驅動器110a...110n。指示器的轉換進一步公開在Gregory E.McBride等的美國專利申請No.10/994,149中,標題為“Application TransparentAutonomic Availability On A Storage Area Network Aware FileSystem”,申請于2004年11月19日,客戶的案號為SJO920030071US1,通過參考將該專利申請的全部并入此文。由于連續(xù)流中可能出現(xiàn)I/O,因此在塊被轉換至要使用的新塊時,元數(shù)據(jù)服務器132a...132m和/或拷貝服務158a...158q(圖5)可以指示存儲控制器152a...152q返回錯誤指示。這將導致錯誤恢復系統(tǒng)112a...112n和/或設備驅動器110a...110n執(zhí)行重試操作,并且,作為重試操作的部分,更新本地(虛擬)塊地址到物理存儲的映射。下一個I/O接著進行至新的數(shù)據(jù)位置。
在正常的I/O系統(tǒng)中,當檢測到永久錯誤時,設備驅動器110a...110n和/或錯誤恢復系統(tǒng)112a...112n返回錯誤指示至請求程序。這通常導致應用程序的異常終止,從而致使應用中斷。在本發(fā)明的實現(xiàn)中,錯誤恢復系統(tǒng)112a...112n執(zhí)行附加處理。特別地,最初,從執(zhí)行I/O操作的設備處返回錯誤。錯誤恢復系統(tǒng)112a...112n確定設備是否是正在被SAN意識文件系統(tǒng)管理的虛擬設備。如果該虛擬設備并非正在被SAN意識文件系統(tǒng)管理,則向I/O請求返回錯誤以采取行動。如果該虛擬設備正在被SAN意識文件系統(tǒng)管理,則錯誤恢復系統(tǒng)112a...112n通知元數(shù)據(jù)服務器132a...132m有錯誤出現(xiàn),或者,錯誤恢復系統(tǒng)112a...112n先通知客戶計算機100a...100n而客戶計算機100a...100n接著通知元數(shù)據(jù)服務器132a...132m有錯誤出現(xiàn)。錯誤恢復系統(tǒng)112a...112n等待產(chǎn)生有關改變I/O方向的策略決定。元數(shù)據(jù)服務器132a...132m(或其它策略引擎)決定是否轉換指示器到數(shù)據(jù)、轉換哪些數(shù)據(jù)以及執(zhí)行轉換操作。客戶計算機100a...100n用新的映射來更新,并且通知錯誤恢復系統(tǒng)112a...112n它的等待結束了。如果數(shù)據(jù)被重映射,則錯誤恢復系統(tǒng)112a...112n使用新地址重試操作。如果數(shù)據(jù)未被重映射,則錯誤恢復系統(tǒng)112a...112n返回錯誤。在可選的實現(xiàn)中,客戶計算機100a...100n可以知道數(shù)據(jù)的新拷貝是否是可寫的,并且,如果請求是用于寫入的而數(shù)據(jù)被映射到只讀的位置,則錯誤恢復系統(tǒng)112a...112n可以報告錯誤。
圖3示例說明根據(jù)本發(fā)明的某些實現(xiàn)的元數(shù)據(jù)服務器132a...132m。每個元數(shù)據(jù)服務器132a...132m包括可以在易失性和/或非易失性設備中實現(xiàn)的系統(tǒng)內存134a...134m。每個系統(tǒng)內存134a...134m包括數(shù)據(jù)管理器136a...136m、塊移動管理器137a...137m以及一個或多個服務器應用138a...138m。
每個元數(shù)據(jù)服務器132a...132m能夠保持對數(shù)據(jù)源塊和數(shù)據(jù)源塊的拷貝的多重引用的跟蹤。為便于參考,數(shù)據(jù)源塊的拷貝將被稱為“目標塊”。一組相關的源塊可以被描述為數(shù)據(jù)單元(如文件)。每個元數(shù)據(jù)服務器132a...132m也跟蹤每個客戶計算機100a...100n的位置。
通過存儲文件與組成該文件的源塊和目標塊之間的映射,每個元數(shù)據(jù)服務器132a...132m為SAN意識文件系統(tǒng)擔當目錄。每個元數(shù)據(jù)服務器132a...132m也與由例如存儲系統(tǒng)150提供的拷貝服務158a...158q(圖5)一起工作??截惙赵试S基于拷貝服務的策略,例如時間點拷貝服務以及連續(xù)拷貝服務等等。每個元數(shù)據(jù)服務器132a...132m可以與其它應用程序或SAN元件一起工作以執(zhí)行拷貝服務。換句話說,拷貝服務可以以多種形式提供,例如以在服務器計算機上或SAN結構元件中執(zhí)行的應用的形式。
由于數(shù)據(jù)是經(jīng)由拷貝服務拷貝的,因此每個元數(shù)據(jù)服務器132a...132m跟蹤源數(shù)據(jù)塊與那些數(shù)據(jù)塊的拷貝之間的關系,而不考慮拷貝服務的類型(如時間點拷貝服務或連續(xù)拷貝服務)。此外,每個元數(shù)據(jù)服務器132a...132m能夠為文件塊從源塊到源塊的拷貝(即,“目標塊”)交換引用,這使目標塊成為新的源塊。
圖4示例說明根據(jù)本發(fā)明的某些實現(xiàn)的元數(shù)據(jù)存儲140。元數(shù)據(jù)存儲140包括映射信息142。該映射信息包括具有與文件相關的行的表。對每個文件來說,映射信息包括文件名、為該文件指示源塊的位置的源塊、1-X目標塊以及會話標識符。1-X目標塊表現(xiàn)源塊的一個或多個拷貝,并提供源塊的拷貝的位置。會話是表現(xiàn)一組保持在一致狀態(tài)的數(shù)據(jù)的一組拷貝服務關系。每個文件的目標拷貝(由目標塊組成的)可以共享會話或具有它自己的會話。此外,元數(shù)據(jù)存儲140可以存儲描述數(shù)據(jù)單元的位置以及每個客戶計算機100a...100n訪問每個數(shù)據(jù)單元的頻繁程度等的信息。
圖5示例說明根據(jù)本發(fā)明的某些實現(xiàn)的存儲系統(tǒng)150。存儲系統(tǒng)150提供一個或多個存儲控制器152a...152q,并共享存儲池154。每個存儲控制器152a...152q提供拷貝服務158a...158q。每個共享存儲池156a...156p提供共享存儲設備。在某些實現(xiàn)中,存儲設備(如LUN)組合成存儲池,以在服務等級屬性例如性能和可靠性的基礎上允許基于策略的管理。在某些實現(xiàn)中,每個存儲控制器152a...152q連接至存儲池或存儲池中的一個或多個存儲設備(如LUN)。每個存儲池156a...156p可以包括,舉例說來,存儲設備陣列,例如直接訪問存儲設備(DASD)、簡單磁盤捆綁(JBOD)、獨立冗余磁盤陣列(RAID)以及虛擬設備等等。
圖6示例說明根據(jù)本發(fā)明的某些實現(xiàn)用于處理打開文件的邏輯??刂破鹗加诳?00,其中,當打開文件時,客戶計算機100a...100n處的應用程序106a...106n為該文件發(fā)送請求到元數(shù)據(jù)服務器132a...132m。在框602中,元數(shù)據(jù)服務器132a...132m處的數(shù)據(jù)管理器136a...136m在一個或多個因素的基礎上來確定對該文件來說哪些塊應該被設為對客戶計算機100a...100n可用。舉例來說,用于該文件的塊可以是源塊或目標塊。塊的選擇可以基于他們對客戶計算機100a...100n的位置、基于客戶計算機100a...100n具有的與存儲系統(tǒng)150的連接、基于哪些塊正被其它的客戶計算機100a...100n引用得最少、基于讀/寫的訪問模式以及基于可靠性要求等等。
在框604中,元數(shù)據(jù)服務器132a...132m處的數(shù)據(jù)管理器136a...136m發(fā)送映射信息至客戶計算機100a...100n。在某些實現(xiàn)中,該映射信息提供到塊的間接指針。在框606中,客戶計算機100a...100n處的應用程序106a...106n使用該映射信息以確定文件塊的位置并訪問塊。
圖7示例說明根據(jù)本發(fā)明的某些實現(xiàn)用于更新映射信息的邏輯。控制起始于框700,其中,拷貝服務158a...158q拷貝數(shù)據(jù)的源塊到數(shù)據(jù)的目標塊。在框702中,元數(shù)據(jù)服務器132a...132m處的數(shù)據(jù)管理器136a...136m用源塊的目標塊的位置來更新元數(shù)據(jù)存儲140。在框704中,元數(shù)據(jù)服務器132a...132m處的數(shù)據(jù)管理器136a...136m確定哪個(如果有的話)客戶計算機100a...100n應該被發(fā)送更新后的最近拷貝的目標塊的映射信息。舉例來說,如果客戶計算機100a接收第一組與FILEA相關的目標塊的映射信息,但最近創(chuàng)建的、也與FILEA相關的目標塊被確定為對客戶計算機100a“更可用的”的一組塊,則元數(shù)據(jù)服務器132a...132m處的數(shù)據(jù)管理器136a...136m發(fā)送更新后的最近拷貝的目標塊的映射信息至客戶計算機100a。“更可用的”的一組塊可以被表述為不如其它組塊訪問頻繁的一組塊。
在框706中,元數(shù)據(jù)服務器132a...132m處的數(shù)據(jù)管理器136a...136m用更新后的映射信息來更新適當?shù)目蛻粲嬎銠C100a...100n的緩存。在框708中,客戶計算機100a...100n處的應用程序106a...106n使用更新后的映射信息去訪問下一次要求訪問的文件的塊。因此,利用圖6和圖7所描述的處理,一旦打開文件以獲得該文件的塊的映射信息,客戶計算機100a...100n訪問元數(shù)據(jù)服務器132a...132m。然后,元數(shù)據(jù)服務器132a...132m在確定對客戶計算機100a...100n來說最近創(chuàng)建的目標拷貝是否更匹配的基礎上自動地更新映射信息。
在正常的文件系統(tǒng)操作期間,如果數(shù)據(jù)的連續(xù)拷貝對文件是適當?shù)模瑒t可以產(chǎn)生創(chuàng)建文件的塊的連續(xù)拷貝的請求。產(chǎn)生該請求可以,比如,通過基于文件系統(tǒng)級的拷貝策略的元數(shù)據(jù)服務器132a...132m、通過使用管理客戶計算機190以插入用戶指定的請求或者通過應用程序106a。元數(shù)據(jù)服務器132a...132m會在元數(shù)據(jù)存儲140中記錄該文件的目標塊的位置。一旦產(chǎn)生文件的塊的拷貝,可以與向源塊進行的更新一樣對目標塊進行更新。接著,SAN意識文件系統(tǒng)可以在源塊與目標塊之間轉換而不影響任何應用程序。
圖8示例說明根據(jù)本發(fā)明的某些實現(xiàn)用于跨越一個或多個存儲設備存儲塊的邏輯??刂破鹗加诳?00,其中,性能分析系統(tǒng)192確定一個或多個存儲設備正成為瓶頸,并將其指示發(fā)送到元數(shù)據(jù)服務器132a...132m處的塊移動管理器137a...137m。在框802中,塊移動管理器137a...137m確定每個存儲設備的哪些塊正導致該瓶頸(即,哪些塊正被多個應用程序106a...106n訪問,因此導致瓶頸)。在框804中,塊移動管理器137a...137m確定這些塊中的哪個正導致每個存儲設備的最多的I/O工作。在框806中,塊移動管理器137a...137m在塊對瓶頸的影響的基礎上,將與塊相關的文件分級。
在框808中,塊移動管理器137a...137m確定哪些文件的哪些塊將被移動到使用性能信息和/或其它技術的一個或多個其它存儲設備。在某些實現(xiàn)中,性能信息是從客戶計算機100a...100n處獲得的,并被用于決定怎樣跨越存儲設備而分配塊。在某些可選的實現(xiàn)中,使用循環(huán)技術來確定哪些塊將被保留在存儲設備上而哪些將被移動到其它存儲設備。舉例說來,在某些實現(xiàn)中,使用分段來跨越多個存儲設備存儲文件的塊,以使該文件的不同的塊可以同時被訪問。此外,舉例來說,如果文件的塊的一半被從第一存儲設備移動到第二存儲設備,則第一存儲設備用于該文件的工作量減半。
在框810中,塊移動管理器137a...137m選擇一個或多個存儲設備以將塊移動到其中。要么選擇現(xiàn)有的設備,要么生成新設備,這已在Murthy V.Devarakonda的未決美國專利申請No.2003/0225801A1中公開,其公開于2003年12月4日,申請于2002年5月31日,公開號為No.10/159,494,標題為“Method,System,and Program for A PolicyBased Storage Manager,”,通過參考將該專利申請的全部并入此文。在框812中,塊移動管理器137a...137m使用拷貝服務158a...158q來拷貝那些將被移動到一個或多個存儲設備的塊。在某些實現(xiàn)中,如果塊的拷貝已經(jīng)存在,則指導應用程序106a...106n通過更新它們的塊的映射信息來使用塊的拷貝。在某些實現(xiàn)中,發(fā)起即時虛擬拷貝操作(如,瞬時拷貝操作),并且,在最初的存儲設備上保持某些塊有效、在最初的存儲設備上使某些其它的塊無效以及該無效的塊在塊所拷貝到的目標存儲設備上為有效。
在框814中,當使用拷貝服務來進行塊的拷貝時,塊移動管理器137a...137m在元數(shù)據(jù)存儲140中更新塊的位置以指示該塊已經(jīng)被移動。舉例來說,對塊被移動的每個文件來說,更新映射信息142以將這些文件的移動的塊的指示器設為指向塊的位置。在框816中,發(fā)送更新后的映射信息至適當?shù)目蛻粲嬎銠C100a...100n,以使那些客戶計算機處的應用程序106a...106n中能夠訪問已被移動的塊。在框818中,可選地,塊的拷貝可以被用來增加那些被頻繁訪問的塊的可用性。
圖9示例說明根據(jù)本發(fā)明的某些實現(xiàn)用于維護性能信息(由塊移動管理器137a...137m使用)的應用程序106a...106n的邏輯。在框900中,客戶計算機100a...100n處的應用程序106a...106n訪問文件的塊。在框902中,應用程序106a...106n存儲關于訪問的性能信息。在框904中,應用程序106a...106n發(fā)送性能信息至塊移動管理器137a...137m。在某些實現(xiàn)中,應用程序106a...106n周期性地發(fā)送該性能信息。在某些實現(xiàn)中,一接收到來自塊移動管理器137a...137m的性能信息的請求,應用程序106a...106n就發(fā)送性能信息。
在某些實現(xiàn)中,存儲設備為LUN。因此,實現(xiàn)使用SAN意識文件系統(tǒng)、性能分析工具以及拷貝服務,以將應用數(shù)據(jù)從“熱點”LUN自主而透明地移動到一個或多個新的LUN。
IBM和AIX是美國和/或其它國家內國際商業(yè)機器公司的注冊商標或普通法商標。Windows是美國和/或其它國家內微軟公司的注冊商標。Solaris是美國和/或其它國家內Sun Microsystems的注冊商標或普通法商標。Linux是美國和/或其它國家內Linus Torvalds的注冊商標。HP-UX是美國和/或其它國家內的Open Group UNIX 95品牌產(chǎn)品。UNIX是美國和/或其它國家內The Open Group的注冊商標或普通法商標。
所描述的實現(xiàn)可以作為方法、裝置或者使用編程和/或工程技術以生產(chǎn)出軟件、固件、硬件或它們的任何組合的制造物而執(zhí)行。這里所用的術語“制造物”和“電路”涉及狀態(tài)機、代碼或邏輯,在硬件邏輯(如,集成電路芯片、可編程門陣列(PGA)以及專用集成電路(ASIC)等等)或計算機可讀的介質例如磁存儲介質(如,硬盤、軟盤以及磁帶等等)、光存儲器(CD-ROM以及光盤等等)以及易失性和非易失性存儲器設備(如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件以及可編程邏輯等等)中執(zhí)行。計算機可讀的介質中的代碼由處理器訪問和執(zhí)行。當由處理器執(zhí)行該代碼或邏輯時,電路可以包括包括該代碼或邏輯的介質以及執(zhí)行從介質加載的代碼的處理器。執(zhí)行實現(xiàn)的代碼還可以通過傳輸介質或從網(wǎng)絡上的服務器訪問。在這樣的情況下,在其中執(zhí)行代碼的制造物可以包含傳輸介質,例如網(wǎng)絡傳輸線、無線傳輸介質、通過空間傳播的信號、無線電波以紅外信號等等。因此,“制造物”可以包含介質,代碼被收錄其中。此外,“制造物”可以包含硬件和軟件部件的組合,代碼在其中被收錄、處理和執(zhí)行。當然,本領域的技術人員將認識到可以對這個結構進行許多修改,此外,該制造物可以包含本領域所知的任何信息承載介質。
圖6-9的邏輯描述以特殊的順序出現(xiàn)的特定操作。在可選的實現(xiàn)中,某些邏輯操作可以以不同的順序執(zhí)行、修改或移除。此外,可以在上述邏輯中加入操作而仍然符合所描述的實現(xiàn)。此外,這里所描述的操作可以順序地出現(xiàn),或某些操作可以并行處理或被描述成由單一處理執(zhí)行的操作可以由分布式處理執(zhí)行。
圖6-9所示出的邏輯可以在軟件、硬件、可編程和非可編程門陣列邏輯中或在硬件、軟件或門陣列邏輯的某些組合中執(zhí)行。
圖10示例說明根據(jù)本發(fā)明的某些實現(xiàn)可以使用的計算機系統(tǒng)的體系結構1000??蛻粲嬎銠C、服務器計算機、存儲控制器和/或管理客戶計算機可以執(zhí)行計算機體系結構1000。計算機體系結構1000可以實現(xiàn)處理器1002(如,微處理器)、內存1004(如,易失性存儲器設備)和存儲1010(如,非易失性存儲區(qū),例如磁盤驅動器、光盤驅動器以及磁帶驅動器等等)。操作系統(tǒng)1005可以在內存1004中執(zhí)行。存儲1010可以包含內部存儲設備或者附加的或網(wǎng)絡可訪問的存儲。存儲1010中的計算機程序1006可以被加載入內存1004,并由處理器1002以本領域所知的方式執(zhí)行。該體系結構還包括網(wǎng)卡1008,以使能與網(wǎng)絡通信。輸入設備1012被用來向處理器1002提供用戶輸入,且可以包括鍵盤、鼠標、指示筆、麥克風、觸摸顯示屏或本領域所知的任何其它激活或輸入機制。輸出設備1014能夠表現(xiàn)來自處理器1002或其它部件例如顯示器、打印機以及存儲等等的信息。計算機系統(tǒng)的計算機體系結構1000可以包括比在此示出的部件少的部件、在此未示出的附加的部件、或示出的部件和附加的部件的某些組合。
計算機體系結構1000可以包含本領域所知的任何計算設備,例如,大型機、服務器、個人計算機、工作站、膝上電腦、手持電腦、電話設備、網(wǎng)絡儀表、虛擬設備以及存儲控制器等等。可以使用本領域所知的任何處理器1002和操作系統(tǒng)1005。
出于示例和描述的目的,前面提供了本發(fā)明的實現(xiàn)的描述。并不旨在排他或將本發(fā)明的實現(xiàn)限制于所公開的確切方式。根據(jù)上面的描述,可以進行許多修改和變更。本發(fā)明的實現(xiàn)的范圍不由此詳細的描述所限制,而是由此后附上的權利要求所限定。上述說明、示例和數(shù)據(jù)提供了本發(fā)明的實現(xiàn)設備的組成部分的制造和使用的完整描述。由于在不脫離本發(fā)明的實現(xiàn)的精神和范圍的情況下可以獲得本發(fā)明的許多實現(xiàn),因此本發(fā)明的實現(xiàn)歸于其后附上的權利要求或以后提交的權利要求和它們的等價物。
權利要求
1.一種用于分配數(shù)據(jù)的方法,包括確定源存儲設備正成為瓶頸;識別將被從該源存儲設備移動到一個或多個其它存儲設備的一個或多個塊;選擇該一個或多個其它存儲設備;使用復制服務以把塊從該源存儲設備移動到該一個或多個其它存儲設備;和用已移動的塊的位置更新元數(shù)據(jù)存儲。
2.如權利要求1所述的方法,其中,識別該一個或多個塊還包括確定源存儲設備的哪些塊正導致該瓶頸。
3.如權利要求1所述的方法,其中,識別該一個或多個塊還包括確定哪些塊正導致該源存儲設備的最多的輸入/輸出(I/O)工作。
4.如權利要求3所述的方法,還包括在塊對瓶頸的影響的基礎上,將與塊相關的文件分級。
5.如權利要求1所述的方法,其中,使用性能信息識別該一個或多個塊以確定哪些塊將被移動。
6.如權利要求1所述的方法,其中,使用循環(huán)技術確定識別將被移動的一個或多個塊。
7.如權利要求1所述的方法,其中,確定源存儲設備正成為瓶頸的步驟包括分析數(shù)據(jù)訪問性能。
8.如權利要求1所述的方法,還包括創(chuàng)建那些被頻繁訪問的塊的附加拷貝。
9.如權利要求1所述的方法,還包括發(fā)送更新后的映射信息至一個和多個客戶計算機,以使那些客戶計算機處的應用程序能夠訪問已被移動的塊。
10.一種用于分配數(shù)據(jù)的系統(tǒng),包括確定源存儲設備正成為瓶頸的裝置;識別將被從該源存儲設備移動到一個或多個其它存儲設備的一個或多個塊的裝置;選擇該一個或多個其它存儲設備的裝置;把塊從該源存儲設備移動到該一個或多個其它存儲設備的裝置;和用已移動的塊的位置更新元數(shù)據(jù)存儲的裝置。
11.如權利要求10所述的系統(tǒng),其中,識別該一個或多個塊的裝置還包括確定源存儲設備的哪些塊正導致該瓶頸的裝置。
12.如權利要求10所述的系統(tǒng),其中,確定源存儲設備正成為瓶頸的裝置包括性能分析系統(tǒng)。
13.如權利要求10所述的系統(tǒng),其中,用于移動的裝置還包括創(chuàng)建那些被頻繁訪問的塊的附加拷貝的裝置。
14.一種用于分配數(shù)據(jù)的系統(tǒng),包括能夠使操作被執(zhí)行的電路,該操作包括確定源存儲設備正成為瓶頸;識別將被從該源存儲設備移動到一個或多個其它存儲設備的一個或多個塊;選擇該一個或多個其它存儲設備;使用復制服務以把塊從該源存儲設備移動到該一個或多個其它存儲設備;和用已移動的塊的位置更新元數(shù)據(jù)存儲。
15.一種用于分配數(shù)據(jù)的包括程序邏輯的制造物,其中,該程序邏輯使操作被執(zhí)行,該操作包括確定源存儲設備正成為瓶頸;識別將被從該源存儲設備移動到一個或多個其它存儲設備的一個或多個塊;選擇該一個或多個其它存儲設備;使用復制服務以把塊從該源存儲設備移動到該一個或多個其它存儲設備;和用已移動的塊的位置更新元數(shù)據(jù)存儲。
全文摘要
本發(fā)明提供一種當源存儲設備正成為瓶頸時用于在存儲設備間移動數(shù)據(jù)的方法和裝置。一個和多個數(shù)據(jù)塊作為將被從該源存儲設備移動或復制到一個或多個其它存儲設備的塊而被識別。選擇該一個或多個其它存儲設備,并且,使用拷貝服務以把塊從該源存儲設備移動到該一個或多個其它存儲設備。用已移動的塊的位置更新元數(shù)據(jù)存儲。
文檔編號G06F11/20GK101027632SQ200580032614
公開日2007年8月29日 申請日期2005年11月18日 優(yōu)先權日2004年11月19日
發(fā)明者格利高里·E·麥克布里德, 黎強明, 戴維·M·沙克爾福德 申請人:國際商業(yè)機器公司