讀取存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件的制作方法
【專(zhuān)利摘要】本發(fā)明(圖6)針對(duì)一種用于讀取存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件的方法。存儲(chǔ)系統(tǒng)包括:根據(jù)預(yù)定的數(shù)據(jù)格式存儲(chǔ)第一文件集合的存儲(chǔ)裝置(104)以及存儲(chǔ)第二文件集合的高速緩存存儲(chǔ)器(106),第二文件集合是第一文件集合的子集。存儲(chǔ)系統(tǒng)被配置成允許一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)(110、120)讀取存儲(chǔ)在存儲(chǔ)裝置上和/或在高速緩存存儲(chǔ)器上的文件。該方法包括:-從一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)接收(602)用于讀取文件序列的至少一個(gè)讀取請(qǐng)求;-在該序列的文件當(dāng)中確定(604)一個(gè)或多個(gè)高速緩存的文件是否已經(jīng)被存儲(chǔ)在高速緩存存儲(chǔ)器中,以及一個(gè)或多個(gè)其余文件是否還沒(méi)有被存儲(chǔ)在高速緩存存儲(chǔ)器中;-考慮到根據(jù)所述預(yù)定的數(shù)據(jù)格式在存儲(chǔ)系統(tǒng)上存儲(chǔ)的所述一個(gè)或多個(gè)其余文件的給定位置,在其余文件內(nèi)確定(606)應(yīng)當(dāng)根據(jù)其讀取在存儲(chǔ)系統(tǒng)上所述其余文件的順序;-根據(jù)所述順序讀取(608)所述存儲(chǔ)系統(tǒng)上的所述一個(gè)或多個(gè)其余文件,并且將所述其余文件存儲(chǔ)在高速緩存存儲(chǔ)器上。
【專(zhuān)利說(shuō)明】讀取存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及用于存儲(chǔ)系統(tǒng)的高速緩存架構(gòu)的領(lǐng)域,并且具體地涉及用于讀取存儲(chǔ)系統(tǒng)上的文件的方法。
【背景技術(shù)】
[0002]盡管HDD (硬盤(pán)驅(qū)動(dòng))的技術(shù)在過(guò)去幾年有顯著的進(jìn)步,但是磁帶系統(tǒng)構(gòu)成當(dāng)前分層存儲(chǔ)基礎(chǔ)設(shè)施的組成部分。磁帶技術(shù)提供了若干重要的優(yōu)點(diǎn),包括低成本、數(shù)據(jù)的長(zhǎng)期存儲(chǔ)以及用于備份和災(zāi)難恢復(fù)的目的、節(jié)能、安全性、壽命和可靠性。
[0003]一旦數(shù)據(jù)已經(jīng)被記錄在磁帶系統(tǒng)中,介質(zhì)就是無(wú)源的。這意味著,其僅位于機(jī)架中并且不需要功率。與類(lèi)似的基于盤(pán)的系統(tǒng)相比,基于磁帶的歸檔少消耗大約290倍的功率。在安全方面,一旦數(shù)據(jù)已經(jīng)被記錄并且從訪問(wèn)系統(tǒng)移除盒帶盒帶(cartridge),數(shù)據(jù)就無(wú)法訪問(wèn),直到盒帶被重新安裝在有源系統(tǒng)中。安全性還通過(guò)驅(qū)動(dòng)級(jí)加密來(lái)增強(qiáng),這在線(xiàn)性磁帶開(kāi)放4代驅(qū)動(dòng)(LT0-4)中被引入,并且在企業(yè)級(jí)磁帶驅(qū)動(dòng)中也是標(biāo)準(zhǔn)。磁帶介質(zhì)具有30多年的壽命;然而,因?yàn)榇艓в布目焖侔l(fā)展以及與遷移到更高容量的盒帶相關(guān)聯(lián)的成本節(jié)約而導(dǎo)致這很少作為優(yōu)點(diǎn)。在可靠性方面,LT0-4磁帶具有比SAS(串行附連SCSI)HDD好至少一個(gè)數(shù)量級(jí)的誤比特率。此外,磁帶介質(zhì)是可移除的并且是可互換的事實(shí)意味著,對(duì)比HDD,磁帶驅(qū)動(dòng)的機(jī)械故障將不會(huì)導(dǎo)致數(shù)據(jù)丟失,因?yàn)楹袔Э梢院?jiǎn)單地被安裝在另一驅(qū)動(dòng)上。
[0004]所有的上述優(yōu)點(diǎn)都有貢獻(xiàn)于磁帶系統(tǒng)的主要純粹的優(yōu)點(diǎn),即成本和可靠性。盤(pán)和磁帶之間的成本節(jié)約的估計(jì)范圍是3至大于20的因子。
[0005]硬盤(pán)提供對(duì)數(shù)據(jù)的隨機(jī)訪問(wèn),并且通常包含由文件系統(tǒng)管理的文件索引。這些文件可以借助于使用各種操作系統(tǒng)和應(yīng)用的應(yīng)用程序接口(API)的標(biāo)準(zhǔn)集合來(lái)訪問(wèn)。相反,磁帶是通常使用稱(chēng)為“疊瓦(shingling) ”的技術(shù)來(lái)以線(xiàn)性序列的方式進(jìn)行寫(xiě)入,這提供了向后寫(xiě)入兼容性,但是也意味著,新的數(shù)據(jù)僅可以被附加在末尾,并且先前寫(xiě)入的區(qū)域僅在整個(gè)盒帶被回收并且重新寫(xiě)入時(shí),才可以被回收。在傳統(tǒng)的磁帶系統(tǒng)中,在給定的盒帶上寫(xiě)入的文件的索引通常僅保存在由諸如專(zhuān)用備份應(yīng)用之類(lèi)的應(yīng)用所管理的外部數(shù)據(jù)庫(kù)中。需要訪問(wèn)外部數(shù)據(jù)庫(kù)以取回?cái)?shù)據(jù)使得與諸如HDD或USB(通用串行總線(xiàn))驅(qū)動(dòng)的替代存儲(chǔ)方法相比不那么便攜和可訪問(wèn)。
[0006]為了解決這些缺點(diǎn),當(dāng)前在LT0-5磁帶驅(qū)動(dòng)系統(tǒng)中已經(jīng)引入了稱(chēng)為線(xiàn)性磁帶文件系統(tǒng)(LTFS)的新文件系統(tǒng),以支持使用標(biāo)準(zhǔn)和類(lèi)似的系統(tǒng)工具和接口來(lái)高效地訪問(wèn)磁帶。通過(guò)利用在新的LT0-5格式中所支持的雙分區(qū)功能來(lái)實(shí)現(xiàn)LTFS。所謂的索引分區(qū)用于寫(xiě)入索引,并且第二、大得多的分區(qū)用于數(shù)據(jù)本身。索引分區(qū)用于文件系統(tǒng)的目錄,而數(shù)據(jù)分區(qū)用于存儲(chǔ)文件系統(tǒng)中的實(shí)際用戶(hù)的文件。將索引放置在單獨(dú)分區(qū)中是有利的,因?yàn)槠淇梢栽诓挥绊憣?shí)際數(shù)據(jù)的情況下被改寫(xiě)。LTFS向用戶(hù)暴露類(lèi)似POSIX的文件系統(tǒng)接口,管理索引分區(qū)中的文件系統(tǒng)索引,并且將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)分區(qū)中。由LTFS軟件表示的文件系統(tǒng)使得在文件實(shí)際上位于磁帶上的同時(shí)以目錄列表在桌面上示出文件和目錄。文件系統(tǒng)用戶(hù)可以“拖放”文件至磁帶或者從磁帶“拖放”文件,并且可以運(yùn)行為盤(pán)系統(tǒng)開(kāi)發(fā)的應(yīng)用。在庫(kù)模式中,庫(kù)中的所有卷的內(nèi)容可以在沒(méi)有安裝獨(dú)立的盒帶的情況下被列出和搜索。所有這些功能有助于減少磁帶、文件管理和歸檔成本,并且消除對(duì)中間件層的依賴(lài)。因此,減少了所存儲(chǔ)的每千兆字節(jié)(GB)的成本。此外,磁帶變得跨平臺(tái)便攜(LTFS可用于Linux(商標(biāo))、蘋(píng)果Mac OS X(商標(biāo))、微軟Windows (商標(biāo))),支持和促進(jìn)平臺(tái)之間的數(shù)據(jù)共享。這些特征支持對(duì)磁帶的全新的使用情況,諸如視頻歸檔、醫(yī)療成像等。考慮磁帶優(yōu)于其他存儲(chǔ)解決方案的成本優(yōu)點(diǎn),對(duì)于磁帶盒帶容量和每GB成本的持續(xù)擴(kuò)展所表現(xiàn)出的潛力以及諸如LTFS的發(fā)展所提供的磁帶的增加的實(shí)用性,磁帶似乎將對(duì)在擴(kuò)充針對(duì)存檔數(shù)據(jù)存儲(chǔ)解決方案的市場(chǎng)產(chǎn)生重要的影響。
[0007]然而,即使通過(guò)LTFS,文件也以順序方式存儲(chǔ)在磁帶上,這產(chǎn)生了在諸如讀取和寫(xiě)入的I/o操作期間的不可忽略的較長(zhǎng)的訪問(wèn)時(shí)間。
[0008]引用列表
[0009]專(zhuān)利文獻(xiàn)
[0010]PTLl:US2008/0040539A1
[0011]PTL2:US2010/0211731A1
[0012]PTL3:US7864479B2
[0013]PTL4:US5829046
[0014]PTL5:US7644204B2
[0015]PTL6:US6711580B2
[0016]非專(zhuān)利文獻(xiàn)
[0017]NPLl:"Implementing an Automated Digital Video Archive Based on theVideo Edition of XenData Software", XenData White Paper, 2007 年 4 月
[0018]NPL2:^SGI(Trademark)COPAN(Trademark)Virtual Tape Library_300T/TX",
[0019]NPL3: "Driving to Best Practices in Archiving", L.DuBois, 2007 年 3 月,第 6頁(yè)
[0020]NPL4:"The Case for Massive Arrays of Idle Disks", D.Colarelli, D.Grunwaldand M.Neufeld, Dept, of Computer Science, Univ.0f Colorado, Boulder, 2002 年 I 月 7
曰,第3頁(yè)
[0021]NPL5:"Optimizing virtual tape performance:1mproving efficiency withdisk storage systems",D.Cuddihy, ATTO Technology Inc., Embedded SoftwareGroup, 2007 年 6 月,第 6 頁(yè)
【發(fā)明內(nèi)容】
[0022]問(wèn)題的解決方案
[0023]根據(jù)第一方面,本發(fā)明被實(shí)現(xiàn)為一種用于讀取存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件的方法,其中該存儲(chǔ)系統(tǒng)包括:存儲(chǔ)裝置,根據(jù)預(yù)定的數(shù)據(jù)格式存儲(chǔ)第一文件集合;以及高速緩存存儲(chǔ)器,存儲(chǔ)第二文件集合,第二文件集合是第一文件集合的子集,存儲(chǔ)系統(tǒng)被配置成允許一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)來(lái)讀取存儲(chǔ)在存儲(chǔ)裝置上和/或在高速緩存存儲(chǔ)器上的文件,該方法包括:[0024]-從一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)接收用于讀取文件序列的至少一個(gè)讀取請(qǐng)求;
[0025]-在該序列的文件當(dāng)中確定一個(gè)或多個(gè)被高速緩存的文件是否已經(jīng)被存儲(chǔ)在高速緩存存儲(chǔ)器中,以及一個(gè)或多個(gè)其余文件是否還沒(méi)有被存儲(chǔ)在高速緩存存儲(chǔ)器中;
[0026]-考慮到根據(jù)所述預(yù)定的數(shù)據(jù)格式在存儲(chǔ)系統(tǒng)上存儲(chǔ)的所述一個(gè)或多個(gè)其余文件的給定位置,在所述其余文件內(nèi)確定應(yīng)當(dāng)根據(jù)其在存儲(chǔ)系統(tǒng)上讀取所述其余文件的順序;
[0027]-根據(jù)所述順序讀取所述存儲(chǔ)系統(tǒng)上的所述一個(gè)或多個(gè)其余文件,并且將所述其余文件存儲(chǔ)在高速緩存存儲(chǔ)器上。
[0028]在實(shí)施例中,該方法可以包括以下特征中的一個(gè)或多個(gè):
[0029]-存儲(chǔ)系統(tǒng)包括用作高速緩存存儲(chǔ)器的非易失性存儲(chǔ)器;
[0030]-用作高速緩存存儲(chǔ)器的非易失性存儲(chǔ)器包括硬盤(pán)和/或固態(tài)驅(qū)動(dòng)的陣列;
[0031]-硬盤(pán)和/或固態(tài)驅(qū)動(dòng)的陣列被組織成單個(gè)邏輯地址空間;
[0032]-高速緩存存儲(chǔ)器是文件級(jí)高速緩存存儲(chǔ)器;
[0033]-高速緩存存儲(chǔ)器是塊級(jí)高速緩存存儲(chǔ)器。
[0034]-存儲(chǔ)裝置包括根據(jù)線(xiàn)性磁帶文件系統(tǒng)數(shù)據(jù)格式存儲(chǔ)第一文件集合的至少一個(gè)磁帶介質(zhì),并且其中根據(jù)作為線(xiàn)性磁帶文件系統(tǒng)數(shù)據(jù)格式的元數(shù)據(jù)的一部分的、每個(gè)其余文件的開(kāi)始?jí)K來(lái)確定存儲(chǔ)在存儲(chǔ)系統(tǒng)上的所述其余文件的位置;
[0035]-高速緩存存儲(chǔ)器包括使用先入先出策略管理來(lái)管理的第一區(qū)域和使用最近最少使用策略管理來(lái)管理的第二區(qū)域,第一區(qū)域和第二區(qū)域適用于根據(jù)用于高速緩存容量管理的規(guī)則集合來(lái)存儲(chǔ)所述第二文件集合;
[0036]-規(guī)則集合至少包括下述規(guī)則:
[0037]i)如果第一區(qū)域滿(mǎn),則第二集合的最早的文件被復(fù)制到存儲(chǔ)裝置,并且從第一區(qū)域排除;
[0038]ii)如果第一區(qū)域滿(mǎn)并且第二區(qū)域具有空閑容量,則第一區(qū)域獲得第二區(qū)域的空閑容量的給定百分比;
[0039]iii)如果第二區(qū)域滿(mǎn),則具有最少訪問(wèn)次數(shù)和最早的最后訪問(wèn)時(shí)間的第二集合的文件被復(fù)制到存儲(chǔ)裝置并且從第二區(qū)域排除;
[0040]iv)如果第二區(qū)域滿(mǎn)并且第一區(qū)域具有空閑容量,則第二區(qū)域獲得第一區(qū)域的可用容量的給定百分比。
[0041]根據(jù)另一方面,本發(fā)明被實(shí)現(xiàn)為一種存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程序,用于讀取存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件,其包括代碼裝置,用于使得計(jì)算機(jī)進(jìn)行根據(jù)本發(fā)明的方法的步驟。
[0042]在實(shí)施例中,計(jì)算機(jī)程序可以包括下述特征中的一個(gè)或多個(gè):
[0043]-代碼裝置,用于管理作為線(xiàn)性磁帶文件系統(tǒng)的存儲(chǔ)裝置,并且其中,存儲(chǔ)裝置包括具有使用線(xiàn)性磁帶文件系統(tǒng)管理的至少一個(gè)磁帶介質(zhì)的獨(dú)立磁帶庫(kù);
[0044]-計(jì)算機(jī)程序是用戶(hù)空間程序組件。
[0045]根據(jù)另一個(gè)方面,本發(fā)明被實(shí)現(xiàn)為一種存儲(chǔ)系統(tǒng),包括:
[0046]-存儲(chǔ)裝置,根據(jù)預(yù)定的數(shù)據(jù)格式存儲(chǔ)第一文件集合;
[0047]-高速緩存存儲(chǔ)器,存儲(chǔ)第二文件集合,第二文件集合是第一文件集合的子集;
[0048]-至少一個(gè)接口,用于從一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)接收讀取和寫(xiě)入請(qǐng)求;[0049]-處理單元,用于執(zhí)行根據(jù)本發(fā)明的計(jì)算機(jī)程序的指令。
[0050]現(xiàn)在將通過(guò)非限制性的方式并且參考附圖來(lái)描述實(shí)現(xiàn)本發(fā)明的過(guò)程和處理。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0051]圖1是根據(jù)本發(fā)明由其他系統(tǒng)遠(yuǎn)程訪問(wèn)存儲(chǔ)系統(tǒng)的架構(gòu)示圖的示例。
[0052]圖2是圖1上描繪的存儲(chǔ)系統(tǒng)的數(shù)據(jù)路徑視圖的示例。
[0053]圖3是圖1上描繪的存儲(chǔ)系統(tǒng)的數(shù)據(jù)路徑視圖的另一示例。
[0054]圖4是圖1-圖3上描繪的存儲(chǔ)系統(tǒng)的高速緩存的示例。
[0055]圖5a_圖5c是根據(jù)預(yù)定的數(shù)據(jù)格式存儲(chǔ)在存儲(chǔ)系統(tǒng)上的其余文件的位置的示例。
[0056]圖6是描述本發(fā)明的實(shí)施例的流程圖的示例。
【具體實(shí)施方式】
[0057]本發(fā)明描述了用于讀取存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件的方法。存儲(chǔ)系統(tǒng)是指保留數(shù)字?jǐn)?shù)據(jù)的計(jì)算機(jī)組件和記錄介質(zhì)。存儲(chǔ)系統(tǒng)包括:根據(jù)預(yù)定的數(shù)據(jù)格式存儲(chǔ)第一文件集合的存儲(chǔ)裝置。數(shù)據(jù)格式是指用于編碼數(shù)據(jù)以存儲(chǔ)在計(jì)算機(jī)文件系統(tǒng)中的存儲(chǔ)介質(zhì)上的格式。存儲(chǔ)系統(tǒng)還包括存儲(chǔ)第二文件集合的高速緩存存儲(chǔ)器,第二文件集合是第一文件集合的子集。高速緩存存儲(chǔ)器是存儲(chǔ)數(shù)據(jù)使得可以更快地服務(wù)對(duì)該數(shù)據(jù)的未來(lái)請(qǐng)求的組件。存儲(chǔ)系統(tǒng)被配置成允許一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)讀取存儲(chǔ)在存儲(chǔ)裝置和/或高速緩存存儲(chǔ)器上的文件。遠(yuǎn)程系統(tǒng)通常是指位于存儲(chǔ)系統(tǒng)的遠(yuǎn)程位置的任何系統(tǒng)或應(yīng)用。用于讀取存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件的方法包括:從一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)接收用于讀取文件序列的至少一個(gè)讀取請(qǐng)求。文件序列是指良好排序的有限的文件集合,通常以某個(gè)方式彼此相關(guān)。該方法包括在該序列的文件當(dāng)中確定一個(gè)或多個(gè)被高速緩存的文件是否已經(jīng)被存儲(chǔ)在高速緩存存儲(chǔ)器上、以及一個(gè)或多個(gè)其余文件是否還沒(méi)有被存儲(chǔ)在高速緩存存儲(chǔ)器上。該方法包括:考慮到根據(jù)所述預(yù)定的數(shù)據(jù)格式在存儲(chǔ)系統(tǒng)上存儲(chǔ)的所述一個(gè)或多個(gè)其余文件的給定位置,在所述其余文件內(nèi)確定應(yīng)當(dāng)根據(jù)其在存儲(chǔ)系統(tǒng)上讀取所述其余文件的順序。存儲(chǔ)系統(tǒng)上的文件的位置是指文件在存儲(chǔ)系統(tǒng)上的組織或地方。文件的定位可以通過(guò)物理地或虛擬地劃分?jǐn)?shù)據(jù)空間來(lái)執(zhí)行。該方法包括根據(jù)所述順序來(lái)讀取在存儲(chǔ)系統(tǒng)上的所述一個(gè)或多個(gè)其余文件,并且將其余文件存儲(chǔ)在高速緩存存儲(chǔ)器上。
[0058]因此,所提出的發(fā)明的重點(diǎn)在于,不僅在訪問(wèn)時(shí)延方面,而且在吞吐量和空間利用率方面,改善諸如磁帶存儲(chǔ)系統(tǒng)(例如,基于LTFS的磁帶存儲(chǔ)系統(tǒng))之類(lèi)的存儲(chǔ)系統(tǒng)的性能的技術(shù)。為此,存儲(chǔ)系統(tǒng)使用存儲(chǔ)裝置以及用于存儲(chǔ)裝置上的高速緩存層的高速緩存存儲(chǔ)器。存儲(chǔ)系統(tǒng)以允許文件的高速緩存預(yù)抓取的優(yōu)化讀取來(lái)讀取所請(qǐng)求的文件。因此,根據(jù)本發(fā)明的方法不僅提供了對(duì)最近和或頻繁高速緩存的文件的更快訪問(wèn),而且還被設(shè)計(jì)為加快諸如備份的或者對(duì)存儲(chǔ)在存儲(chǔ)裝置上的文件的恢復(fù)和遷移操作之類(lèi)的用例。
[0059]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱(chēng)為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0060]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線(xiàn)、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線(xiàn)的電連接、便攜式計(jì)算機(jī)盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0061]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0062]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線(xiàn)、有線(xiàn)、光纜、RF等等,或者上述的任意合適的組合。
[0063]可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如“C”語(yǔ)言或類(lèi)似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶(hù)計(jì)算機(jī)上執(zhí)行、部分地在用戶(hù)計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶(hù)計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類(lèi)的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶(hù)計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0064]下面將參考根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0065]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)。
[0066]計(jì)算機(jī)程序指令還可以被加載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上,以使得在計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上執(zhí)行可操作步驟序列,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖的一個(gè)或多個(gè)框中所規(guī)定的功能/動(dòng)作的處理。
[0067]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0068]圖1是根據(jù)本發(fā)明的實(shí)施例由其他系統(tǒng)110、120遠(yuǎn)程訪問(wèn)的存儲(chǔ)系統(tǒng)100的架構(gòu)視圖。存儲(chǔ)系統(tǒng)還可以被稱(chēng)為磁帶設(shè)備系統(tǒng)。根據(jù)本發(fā)明的實(shí)施例的存儲(chǔ)系統(tǒng)100包括至少一個(gè)計(jì)算機(jī)處理單元(CPU) 1000或處理器以及主存儲(chǔ)器1002,通常是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。CPU和DRAM連接到總線(xiàn)1004??偩€(xiàn)可以連接到顯示器控制器1006,顯示器控制器1006被連接到諸如IXD監(jiān)視器1008的顯示器。顯示器可以用于顯示關(guān)于存儲(chǔ)系統(tǒng)100的信息。總線(xiàn)還可以通過(guò)鍵盤(pán)/鼠標(biāo)控制器或USB控制器1010連接到鍵盤(pán)1012和鼠標(biāo)1014。總線(xiàn)還可以連接到符合例如以太網(wǎng)Ethernet (注冊(cè)商標(biāo))協(xié)議的通信控制器1014。通信控制器用于物理地將計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)連接,例如網(wǎng)絡(luò)130。該總線(xiàn)還通過(guò)諸如IDE或SATA或SCSI控制器的設(shè)備控制器1018連接到存儲(chǔ)設(shè)備,如硬盤(pán)104或DVD1020。
[0069]存儲(chǔ)系統(tǒng)100還包括根據(jù)預(yù)定的數(shù)據(jù)格式存儲(chǔ)第一文件集合的存儲(chǔ)裝置104。例如,存儲(chǔ)裝置可以是順序訪問(wèn)的介質(zhì),諸如獨(dú)立的磁帶驅(qū)動(dòng)(或磁帶庫(kù)),其可以支持多個(gè)磁帶驅(qū)動(dòng)或磁頭。獨(dú)立的磁帶驅(qū)動(dòng)用于在一個(gè)或多個(gè)磁帶盒帶上對(duì)線(xiàn)性磁帶進(jìn)行操作。存儲(chǔ)在磁帶驅(qū)動(dòng)上的數(shù)據(jù)的預(yù)定的數(shù)據(jù)格式可以使用保持文件內(nèi)容數(shù)據(jù)和關(guān)聯(lián)的文件元數(shù)據(jù)的LTFS格式的數(shù)據(jù)格式。因此,存儲(chǔ)在磁帶驅(qū)動(dòng)上并且使用LTFS格式寫(xiě)入的數(shù)據(jù)可以與能夠理解LTFS格式的其他系統(tǒng)110、120進(jìn)行交換。
[0070]存儲(chǔ)系統(tǒng)100還包括存儲(chǔ)第二文件集合的高速緩存存儲(chǔ)器,該第二文件集合是第一文件集合的子集。高速緩存存儲(chǔ)器優(yōu)化存儲(chǔ)系統(tǒng)的性能、開(kāi)發(fā)工作負(fù)載的時(shí)間和空間局部性。高速緩存存儲(chǔ)器是讀取高速緩存??蛇x地,高速緩存存儲(chǔ)器還可以是寫(xiě)入高速緩存。讀取高速緩存通過(guò)透明地存儲(chǔ)數(shù)據(jù)使得可以更快地服務(wù)對(duì)該數(shù)據(jù)的未來(lái)請(qǐng)求來(lái)改善性能。如果請(qǐng)求的數(shù)據(jù)被包含在高速緩存中,即,如果高速緩存命中發(fā)生,則該請(qǐng)求可以通過(guò)簡(jiǎn)單地讀取高速緩存來(lái)服務(wù),這比從后端存儲(chǔ)設(shè)備進(jìn)行讀取更快。否則,高速緩存未命中發(fā)生,并且必須從較慢的后端存儲(chǔ)設(shè)備抓取數(shù)據(jù)。
[0071]在實(shí)踐中,該存儲(chǔ)系統(tǒng)包括用作高速緩存存儲(chǔ)器的非易失性存儲(chǔ)器。有利地,非易失性存儲(chǔ)器允許在存儲(chǔ)系統(tǒng)被關(guān)閉時(shí)保留存儲(chǔ)在其上的文件。作為高速緩存存儲(chǔ)器的非易失性存儲(chǔ)器可以包括硬盤(pán)驅(qū)動(dòng)和或固態(tài)驅(qū)動(dòng)的陣列。大容量HDD和/或SSD的陣列可以以RAID(獨(dú)立盤(pán)冗余陣列)方案來(lái)配置。高速緩存存儲(chǔ)器控制器可以向服務(wù)器的操作系統(tǒng)暴露單個(gè)邏輯卷,從而使得更容易管理高速緩存存儲(chǔ)器。而且,諸如但不限于ext3、ext4或NTFS的常規(guī)的盤(pán)文件系統(tǒng)被安裝在該邏輯卷上,并且用于對(duì)盤(pán)陣列的所有I/O操作。高速緩存存儲(chǔ)器,即,整個(gè)盤(pán)陣列,專(zhuān)用于高速緩存并且不與系統(tǒng)的其他組件共享。
[0072]高速緩存存儲(chǔ)器可以是文件級(jí)高速緩存存儲(chǔ)器。替代地,高速緩存存儲(chǔ)器可以是塊級(jí)高速緩存存儲(chǔ)器。在該情況下,陣列的HDD和/或SSD用作不具有文件系統(tǒng)的原始設(shè)備,然后創(chuàng)建卷并且操作系統(tǒng)連接到這些卷,并且將其用作單獨(dú)的硬驅(qū)動(dòng)。塊級(jí)高速緩存存儲(chǔ)器可用于幾乎任何類(lèi)型的應(yīng)用,包括文件存儲(chǔ)、數(shù)據(jù)庫(kù)存儲(chǔ)、虛擬機(jī)文件系統(tǒng)(VMFS)卷
坐寸ο
[0073]通常,存儲(chǔ)系統(tǒng)包括服務(wù)器102,服務(wù)器102包括CPU和DRAM、總線(xiàn)、顯示器控制器、通信控制器。服務(wù)器102附連到可以運(yùn)行LTFS軟件的存儲(chǔ)裝置104,并且經(jīng)由標(biāo)準(zhǔn)的文件系統(tǒng)接口暴露底層磁帶容量。服務(wù)器102還直接附連到高速緩存存儲(chǔ)器106。服務(wù)器運(yùn)行操作系統(tǒng),諸如但不限于,Linux(商標(biāo))操作系統(tǒng)。服務(wù)器連接到網(wǎng)絡(luò)130,并且從而遠(yuǎn)程網(wǎng)絡(luò)用戶(hù)120和應(yīng)用130可以安裝存儲(chǔ)裝置(例如LTFS文件系統(tǒng)),并且直接存儲(chǔ)數(shù)據(jù)或從存儲(chǔ)裝置中取回?cái)?shù)據(jù)。
[0074]因此,存儲(chǔ)系統(tǒng)包括一個(gè)或多個(gè)存儲(chǔ)設(shè)備(例如,HDD/SSD陣列),其用作可以在邏輯上配置成單個(gè)邏輯地址空間的高速緩存存儲(chǔ)器以及可以包括并行操作的一個(gè)或多個(gè)磁帶驅(qū)動(dòng)的存儲(chǔ)裝置,如圖1中所示。存儲(chǔ)系統(tǒng)還包括一個(gè)或多個(gè)存儲(chǔ)設(shè)備,諸如磁帶介質(zhì)。磁帶庫(kù)通常使用LTFS文件系統(tǒng)來(lái)管理。應(yīng)當(dāng)理解,可以使用其他的文件系統(tǒng)。LTFS文件系統(tǒng)在磁帶庫(kù)和HDD陣列直接附連到的服務(wù)器102中運(yùn)行。高速緩存存儲(chǔ)器用作用于LTFS文件系統(tǒng)的高速緩存,有利地提供對(duì)存儲(chǔ)在存儲(chǔ)裝置上的數(shù)據(jù)的快速隨機(jī)訪問(wèn)。
[0075]現(xiàn)在參考圖6,現(xiàn)在描繪描述本發(fā)明的實(shí)施例的流程圖。
[0076]在步驟600-602,監(jiān)視存儲(chǔ)系統(tǒng)是否從一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)接收到用于讀取文件序列的至少一個(gè)讀取請(qǐng)求。換言之,作出讀取請(qǐng)求是否匹配特定模式的決定。該模式可能通過(guò)從目錄順序讀取的文件來(lái)表示。如圖1-圖3所示,遠(yuǎn)程系統(tǒng)可以是應(yīng)用。存儲(chǔ)系統(tǒng)通過(guò)其通信控制器和適當(dāng)?shù)慕涌?23、24、25、26、27來(lái)接收該請(qǐng)求。
[0077]在步驟604,在文件序列的文件當(dāng)中確定一個(gè)或多個(gè)被高速緩存的文件是否已經(jīng)被存儲(chǔ)在高速緩存存儲(chǔ)器上,以及一個(gè)或多個(gè)其余文件是否還沒(méi)有存儲(chǔ)在高速緩存存儲(chǔ)器上。換言之,確定請(qǐng)求的文件當(dāng)中哪些文件位于高速緩存上以及哪些位于存儲(chǔ)裝置上。這等于說(shuō),確定之前已經(jīng)匹配的所有文件的名稱(chēng);否則說(shuō),文件被存儲(chǔ)在高速緩存存儲(chǔ)器上。
[0078]接下來(lái),在步驟610,讀取存儲(chǔ)在高速緩存存儲(chǔ)器上的文件。這提供了對(duì)最近/經(jīng)常高速緩存的文件的更快訪問(wèn)。
[0079]然后,在步驟606,在一個(gè)或多個(gè)其余文件內(nèi)確定應(yīng)當(dāng)根據(jù)其在存儲(chǔ)系統(tǒng)上讀取其余文件的順序。因此,執(zhí)行對(duì)存儲(chǔ)在存儲(chǔ)裝置上的文件序列中所請(qǐng)求的文件的排序。否則,文件以某個(gè)順序來(lái)排列??紤]到根據(jù)其預(yù)定的數(shù)據(jù)格式而存儲(chǔ)在存儲(chǔ)系統(tǒng)上的其余文件的位置來(lái)執(zhí)行對(duì)這些文件的排序。
[0080]應(yīng)當(dāng)理解,步驟610和606可以同時(shí)執(zhí)行。
[0081]在諸如由LTFS管理的獨(dú)立磁帶驅(qū)動(dòng)的順序訪問(wèn)介質(zhì)中,通過(guò)LTFS格式來(lái)使得能夠根據(jù)其在磁帶上的位置對(duì)文件的排序,LTFS格式包括作為L(zhǎng)TFS元數(shù)據(jù)的一部分的、每個(gè)文件的開(kāi)始?jí)K,其可通過(guò)虛擬擴(kuò)展屬性而可用于用戶(hù)。
[0082]現(xiàn)在參考圖5a_圖5c,示出了根據(jù)預(yù)定的數(shù)據(jù)格式存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件的位置的示例。具體地,圖5a-圖5c示出了布置在諸如由LTFS管理的獨(dú)立磁帶驅(qū)動(dòng)(或磁帶庫(kù))的順序訪問(wèn)介質(zhì)中的文件。
[0083]存儲(chǔ)系統(tǒng)從一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)獲取讀取和寫(xiě)入命令。遠(yuǎn)程系統(tǒng)可以進(jìn)行對(duì)存儲(chǔ)在目錄或子目錄上的所有文件的讀取。然而,這些文件可能沒(méi)有被順序地布置在磁帶上,因?yàn)橐恍┪募赡芤呀?jīng)隨時(shí)間而改變,并且可能駐留在后續(xù)的位置中。獲得修改或在LTFS盒帶上覆寫(xiě)的文件被附接在磁帶上,而不是在現(xiàn)場(chǎng)被修改。在圖5a-圖5c中示出了上述情況。
[0084]圖5a示出了附屬于磁帶上的一個(gè)目錄的文件的位置。因?yàn)檫@些文件已經(jīng)按順序被備份,所以文件在磁帶上按順序排列。
[0085]圖5b示出了文件I和文件2已經(jīng)改變,因此被寫(xiě)入磁帶的末尾。文件I現(xiàn)在被稱(chēng)為文件I’,并且文件2現(xiàn)在被稱(chēng)為文件2’。
[0086]圖5c示出了文件3已經(jīng)改變并且在其備份之前其他文件已經(jīng)備份。改變的文件3被稱(chēng)為文件3’。圖5c中明確了文件1-文件5的最新版本的恢復(fù)可能需要使磁帶前后移動(dòng)多次,因?yàn)槲募?’在磁帶的末尾處,并且文件I’和文件2’位于文件1-文件5和文件3’之間。文件I’和文件2’因而在中間某個(gè)地方,而文件4和文件5朝著磁帶的開(kāi)始。
[0087]在圖5c中,文件可以根據(jù)其在由LTFS管理的磁帶上的位置或地點(diǎn)來(lái)排序:朝著磁帶的開(kāi)始的文件4和文件5,之后是在磁帶中間的文件I’和文件2’,并且最后是位于磁帶末尾的文件,文件3’。
[0088]返回參考圖6,在步驟608,根據(jù)排序步驟606來(lái)讀取存儲(chǔ)系統(tǒng)上的一個(gè)或多個(gè)其余文件。這些其余文件還被存儲(chǔ)在高速緩存存儲(chǔ)器上,即,文件從存儲(chǔ)裝置復(fù)制到高速緩存存儲(chǔ)器??蛇x地,文件可以以與其被讀取的相同的順序被復(fù)制在存儲(chǔ)裝置上。應(yīng)當(dāng)理解,存儲(chǔ)在存儲(chǔ)裝置上的文件的讀取和復(fù)制可以同時(shí)執(zhí)行。
[0089]替代地,在步驟608,首先根據(jù)排序步驟606來(lái)將其余文件存儲(chǔ)在高速緩存存儲(chǔ)器上,然后從高速緩存存儲(chǔ)器讀取。在該情況下,讀取也可以根據(jù)排序步驟來(lái)執(zhí)行。
[0090]因此,根據(jù)本發(fā)明的方法提供了將存儲(chǔ)在存儲(chǔ)裝置上的文件預(yù)抓取到高速緩存存儲(chǔ)器,從而允許加速常見(jiàn)的磁帶特定的用例,諸如備份/恢復(fù)和遷移。實(shí)際上,根據(jù)本發(fā)明,備份/恢復(fù)和遷移的這些操作需要讀取存儲(chǔ)在高速緩存存儲(chǔ)器上的文件序列。通常,將存儲(chǔ)在存儲(chǔ)裝置上的文件預(yù)抓取到高速緩存存儲(chǔ)器可以適用于存儲(chǔ)在存儲(chǔ)裝置的目錄(或子目錄)中的所有文件。因此,本發(fā)明的方法允許將存儲(chǔ)在目錄中的所有文件預(yù)抓取到高速緩存存儲(chǔ)器。
[0091]應(yīng)當(dāng)理解,根據(jù)本發(fā)明的方法不僅適用于存儲(chǔ)在一個(gè)目錄中的所有文件。其可以適用于從存儲(chǔ)裝置讀取多個(gè)文件的任何情況,而不論文件是否被存儲(chǔ)在存儲(chǔ)裝置的單個(gè)存儲(chǔ)設(shè)備上。例如,LTFS存儲(chǔ)設(shè)備可以包括一個(gè)磁帶或多個(gè)磁帶。在該情況下,文件序列中的文件根據(jù)其所存儲(chǔ)位于的磁帶并且根據(jù)其在磁帶上的位置來(lái)排序。結(jié)果,以分類(lèi)的順序讀取每個(gè)磁帶上的文件,并且以分類(lèi)的順序讀取磁帶。
[0092]現(xiàn)在參考圖2,示出了諸如應(yīng)用和客戶(hù)端的遠(yuǎn)程系統(tǒng)與如圖1所示的存儲(chǔ)系統(tǒng)之間的數(shù)據(jù)路徑視圖的示例。存儲(chǔ)系統(tǒng)100被諸如應(yīng)用110或客戶(hù)端120的系統(tǒng)例如經(jīng)由網(wǎng)絡(luò)來(lái)遠(yuǎn)程地訪問(wèn)。其他系統(tǒng)可能是文件系統(tǒng)服務(wù)器,諸如GPFS(通用并行文件系統(tǒng))集群或NAS(網(wǎng)絡(luò)附接存儲(chǔ))文件管理器。
[0093]遠(yuǎn)程系統(tǒng)可以通過(guò)使用網(wǎng)絡(luò)文件系統(tǒng)安裝存儲(chǔ)系統(tǒng)或者通過(guò)使用FTP (文件傳輸協(xié)議)協(xié)議或SSH(安全外殼)協(xié)議從其讀取數(shù)據(jù)和向其寫(xiě)入數(shù)據(jù)來(lái)訪問(wèn)存儲(chǔ)系統(tǒng)。應(yīng)當(dāng)理解,任何其他協(xié)議可以用于遠(yuǎn)程訪問(wèn)存儲(chǔ)系統(tǒng)100。
[0094]存儲(chǔ)系統(tǒng)100提供如圖2中所示的適當(dāng)接口 23、24、25、26、27,使得存儲(chǔ)系統(tǒng)可以用于適應(yīng)多個(gè)應(yīng)用Iio的存儲(chǔ)需要。在圖2中,存儲(chǔ)系統(tǒng)包括作為使用LTFS軟件22管理的存儲(chǔ)裝置的多個(gè)磁帶設(shè)備。以下是用于管理存儲(chǔ)在磁帶驅(qū)動(dòng)上的文件的應(yīng)用的示例,包括但不限于:
[0095]I)通過(guò)網(wǎng)絡(luò)連接到存儲(chǔ)系統(tǒng)的GPFS (或其他)文件系統(tǒng)的備份。整個(gè)GPFS文件系統(tǒng)或單個(gè)目錄或文件集合可以備份到存儲(chǔ)系統(tǒng)中。可以進(jìn)行完整備份或增量備份,并且可以在相同或不同的磁帶盒帶上支持多個(gè)版本。此外,可以在同一設(shè)備上支持源自相同或不同文件系統(tǒng)/集群的多個(gè)備份。有利地,LTFS使得備份能夠在磁帶盒帶上被自包含和自描述,使用戶(hù)不需要部署和維護(hù)TSM服務(wù)器。此外,GPFS的文件屬性可以被保存在LTFS上,并且還對(duì)LTFS實(shí)施一些修改。在以下步驟中概括了可以通過(guò)GPFS節(jié)點(diǎn)或通過(guò)磁帶設(shè)備本身來(lái)編排的備份處理:
[0096]a.在集群中運(yùn)行的GPFS策略識(shí)別從上次備份開(kāi)始已經(jīng)改變的文件;
[0097]b.該策略調(diào)用外部處理來(lái)執(zhí)行備份;
[0098]c.備份處理將文件復(fù)制到保存GPFS文件屬性的設(shè)備;
[0099]d.復(fù)制操作可以通過(guò)SSH或使用NFS/CIFS安裝來(lái)進(jìn)行;
[0100]e.當(dāng)該處理完成時(shí),磁帶盒帶可以被移除并且被置入庫(kù)中或移動(dòng)到任何其他系統(tǒng)。
[0101]文件可以通過(guò)僅讀取在相同或任何其他磁帶系統(tǒng)中的磁帶并且利用由LTFS提供的文件系統(tǒng)接口來(lái)從備份中恢復(fù),這允許保持與GPFS中相同的名稱(chēng)空間。這意味著已經(jīng)從文件管理器備份的任何文件可以具有允許容易恢復(fù)的LTFS中的名稱(chēng)(路徑和文件)。
[0102]2)從GPFS(或其他)文件系統(tǒng)的遷移文件,即使用磁帶存儲(chǔ)作為存儲(chǔ)層級(jí)中的層。用戶(hù)以用戶(hù)指定的GPFS策略的形式來(lái)指定針對(duì)文件或目錄的遷移準(zhǔn)則,并且系統(tǒng)通過(guò)將滿(mǎn)足前述指定準(zhǔn)則的文件遷移到磁帶設(shè)備來(lái)無(wú)縫地將數(shù)據(jù)置于磁帶上。對(duì)于遷移到磁帶設(shè)備的每個(gè)文件,該文件在GPFS中由文件存根(占位符)來(lái)替換。因此,文件保留在GPFS命名空間中,并且可以作為普通文件由用戶(hù)和現(xiàn)有應(yīng)用來(lái)訪問(wèn)。響應(yīng)于訪問(wèn)遷移的文件,從磁帶設(shè)備調(diào)回該文件。
[0103]3)與NAS文件管理器(例如,NetApp文件管理器)整合以將較早的快照從文件管理器復(fù)制到LTFS并且從文件管理器中刪除較早的快照。優(yōu)點(diǎn)在于通常需要更多的存儲(chǔ)容量的較早的快照被存儲(chǔ)在LTFS上并可以通過(guò)LTFS文件系統(tǒng)接口來(lái)無(wú)縫地訪問(wèn),LTFS文件系統(tǒng)接口可以是NAS接口,諸如也由NAS文件管理器提供的NFS或CIFS。
[0104]4)在介質(zhì)管理(MAM)中,介質(zhì)通常包含相同數(shù)據(jù)流的多個(gè)版本。常見(jiàn)的實(shí)踐是具有音頻-視頻流的高清版本以及所謂的“代理”,“代理”是相同內(nèi)容的低分辨率版本。這將非常有利于高速緩存與代理有關(guān)的文件,因?yàn)槠浔桓l繁地使用來(lái)編輯/剪輯內(nèi)容以產(chǎn)生剪輯列表,該剪輯列表以后將應(yīng)用于高清原始流以產(chǎn)生播放流或直接播放。
[0105]5)用于遠(yuǎn)程管理存儲(chǔ)系統(tǒng)的圖形用戶(hù)界面,包括但不限于,對(duì)所存儲(chǔ)的文件的介質(zhì)管理、版本、庫(kù)、格式檢查和恢復(fù)。
[0106]根據(jù)本發(fā)明的用于讀取存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件的方法可以被實(shí)現(xiàn)為在服務(wù)器102上運(yùn)行的計(jì)算機(jī)程序并且由服務(wù)器執(zhí)行。在實(shí)踐中,該方法以適用于管理存儲(chǔ)裝置的代碼部分來(lái)實(shí)現(xiàn)。例如并且參考圖2,該方法可以在適用于管理磁帶驅(qū)動(dòng)104的LTFS軟件的LTFS代碼內(nèi)實(shí)現(xiàn)。
[0107]替代地,該方法可以在服務(wù)器102外部被實(shí)現(xiàn)為外部模塊。因此,存儲(chǔ)裝置104的給定文件系統(tǒng)可以在未來(lái)用任何其他磁帶文件系統(tǒng)來(lái)替代。應(yīng)當(dāng)理解,這樣的外部模塊需要與存儲(chǔ)系統(tǒng)的OS和存儲(chǔ)裝置的文件系統(tǒng)二者對(duì)接。
[0108]優(yōu)選地,實(shí)現(xiàn)根據(jù)本發(fā)明的方法的計(jì)算機(jī)程序是用戶(hù)空間程序組件。有利地,這允許提高便攜性,因?yàn)橛脩?hù)空間軟件組件(相對(duì)于內(nèi)核空間軟件組件)允許低的實(shí)現(xiàn)復(fù)雜度。
[0109]現(xiàn)在參考圖3,示出了在圖1上描繪的存儲(chǔ)系統(tǒng)的數(shù)據(jù)路徑視圖的另一示例。存儲(chǔ)系統(tǒng)100包括網(wǎng)絡(luò)接口,例如圖1中的通信控制器1016。在圖3中,對(duì)存儲(chǔ)系統(tǒng)的所有I/O操作被實(shí)現(xiàn)為L(zhǎng)TFS文件系統(tǒng)操作。例如,客戶(hù)端對(duì)存儲(chǔ)系統(tǒng)的寫(xiě)入將總是作為對(duì)LTFS文件的寫(xiě)入操作,其以特定偏移開(kāi)始并且具有特定字節(jié)長(zhǎng)度,如圖3所示。在第一種情況下,遠(yuǎn)程用戶(hù)Iio使用NFS安裝來(lái)對(duì)存儲(chǔ)系統(tǒng)發(fā)出寫(xiě)入到文件“/Itfs/greetings.txt”。服務(wù)器(未示出)將此寫(xiě)入傳遞到LTFS22。然后,LTFS發(fā)現(xiàn)該文件已經(jīng)被高速緩存在HDD高速緩存106中,并且該寫(xiě)入在HDD上被吸收,其中“/Itfs/greetings.txt”是HDD文件系統(tǒng)上的ext3文件。在不同的情況下,另一個(gè)遠(yuǎn)程用戶(hù)120想要使用FTP協(xié)議從存儲(chǔ)系統(tǒng)上的文件讀取一些字節(jié)。用戶(hù)發(fā)出FTP get (獲得)請(qǐng)求,設(shè)備服務(wù)器將其轉(zhuǎn)換成LTFS讀取請(qǐng)求。LTFS在高速緩存中查找所請(qǐng)求的文件,但是在那里沒(méi)有發(fā)現(xiàn)該文件。因此,LTFS從磁帶庫(kù)中讀取所請(qǐng)求的文件,并且向用戶(hù)返回前100個(gè)字節(jié)。此時(shí),LTFS可以選擇是否在HDD上高速緩存文件。
[0110]現(xiàn)在參考圖4,現(xiàn)在討論在圖1上描繪的存儲(chǔ)系統(tǒng)的高速緩存存儲(chǔ)器的示例。高速緩存存儲(chǔ)器通常是非易失性?xún)?chǔ)存器,并且因此,高速緩存存儲(chǔ)器可以在文件級(jí)上安全地保存修改的和未修改的數(shù)據(jù)。
[0111]通常,高速緩存存儲(chǔ)器106被分成第一區(qū)域或空間40和第二區(qū)域或空間42。第一和第二區(qū)域適用于存儲(chǔ)原始存儲(chǔ)在存儲(chǔ)裝置中的文件。根據(jù)用于高速緩存容量管理的規(guī)則集合來(lái)執(zhí)行第一和第二區(qū)域中的文件的存儲(chǔ)。
[0112]在實(shí)踐中,第一區(qū)域是FIFO (先入先出)區(qū)域40,并且第二區(qū)域是LRU (最近最少使用)區(qū)域42。這等于說(shuō),高速緩存存儲(chǔ)器被劃分成FIFO高速緩存和LRU高速緩存。FIFO區(qū)域使用先入先出替換策略來(lái)管理,而LRU區(qū)域使用最近最少使用策略來(lái)管理。FIFO區(qū)域通常指定用于保持在寫(xiě)入到高速緩存之后僅被訪問(wèn)最多一次的文件。這例如是備份寫(xiě)入驗(yàn)證處理的情況。LRU區(qū)域通常指定用于高速緩存具有在不久多次訪問(wèn)的高概率的文件。
[0113]如該圖4所示,用戶(hù)寫(xiě)入通常將其數(shù)據(jù)寫(xiě)入到FIFO高速緩存,而用戶(hù)讀取通常由LRU高速緩存來(lái)服務(wù)。然而,這不是必需的:實(shí)際上,如果用戶(hù)提示該數(shù)據(jù)將在不久的將來(lái)被訪問(wèn)多次,則傳入的數(shù)據(jù)也可以被寫(xiě)入到LRU高速緩存。另一方面,用戶(hù)讀取可以由FIFO高速緩存來(lái)服務(wù),如果請(qǐng)求的數(shù)據(jù)被發(fā)現(xiàn)是在那里的話(huà)。
[0114]可選地,在同一時(shí)間,根據(jù)高速緩存的兩個(gè)區(qū)域的工作負(fù)載來(lái)在兩個(gè)區(qū)域之間移動(dòng)文件:實(shí)際上,高速緩存存儲(chǔ)器具有有限的存儲(chǔ)容量大小,并且其對(duì)FIFO和LRU部分的劃分需要特定水平的控制。換言之,高速緩存容量根據(jù)規(guī)則集合進(jìn)行管理。用于高速緩存容量管理的下述規(guī)則可以被使用:
[0115]-如果FIFO區(qū)域滿(mǎn),則最早的文件被排除。從高速緩存中排除文件可能需要首先將它們復(fù)制到磁帶;
[0116]-如果LRU區(qū)域滿(mǎn),則排除具有最少訪問(wèn)次數(shù)和最早的最后訪問(wèn)時(shí)間的文件。從高速緩存中排除文件可能需要首先將其復(fù)制到磁帶;[0117]-如果FIFO區(qū)域滿(mǎn)并且LRU區(qū)域具有至少50%的空閑容量,則FIFO區(qū)域獲得LRU區(qū)域容量的30% ;
[0118]-如果LRU區(qū)域滿(mǎn)并且FIFO區(qū)域具有至少50%的空閑容量,則FIFO區(qū)域獲得LRU區(qū)域容量的30%。
[0119]應(yīng)當(dāng)理解,上述百分比是設(shè)計(jì)參數(shù),并且可以根據(jù)特定的應(yīng)用和工作負(fù)載來(lái)改變。
【權(quán)利要求】
1.一種用于讀取存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件的方法,其中所述存儲(chǔ)系統(tǒng)包括: -根據(jù)預(yù)定的數(shù)據(jù)格式存儲(chǔ)第一文件集合的存儲(chǔ)裝置(104);以及 -存儲(chǔ)第二文件集合的高速緩存存儲(chǔ)器(106),所述第二文件集合是所述第一文件集合的子集, 所述存儲(chǔ)系統(tǒng)被配置成允許一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)(110、120)讀取存儲(chǔ)在所述存儲(chǔ)裝置上和/或所述高速緩存存儲(chǔ)器上的文件, 所述方法包括: -從一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)接收(602)用于讀取文件序列的至少一個(gè)讀取請(qǐng)求; -在所述序列的所述文件當(dāng)中確定(604) —個(gè)或多個(gè)被高速緩存的文件是否已經(jīng)被存儲(chǔ)在所述高速緩存存儲(chǔ)器中,以及一個(gè)或多個(gè)其余文件是否還沒(méi)有被存儲(chǔ)在所述高速緩存存儲(chǔ)器中; -考慮到根據(jù)所述預(yù)定的數(shù)據(jù)格式在所述存儲(chǔ)系統(tǒng)上存儲(chǔ)的所述一個(gè)或多個(gè)其余文件的給定位置,在所述其余文件內(nèi)確定(606)應(yīng)當(dāng)在所述存儲(chǔ)系統(tǒng)上根據(jù)其讀取所述其余文件的順序; -根據(jù)所述順序讀取(608)所述存儲(chǔ)系統(tǒng)上的所述一個(gè)或多個(gè)其余文件,并且將所述其余文件存儲(chǔ)在所述高速緩存存儲(chǔ)器上。
2.根據(jù)權(quán)利要求1所述的方法,其中所述存儲(chǔ)系統(tǒng)包括用作所述高速緩存存儲(chǔ)器的非易失性存儲(chǔ)器。
3.根據(jù)權(quán)利要求2所述的方法,其中用作所述高速緩存存儲(chǔ)器的所述非易失性存儲(chǔ)器包括硬盤(pán)和/或固態(tài)驅(qū)動(dòng)的陣列。
4.根據(jù)權(quán)利要求3所述的方法,其中所述硬盤(pán)和/或固態(tài)驅(qū)動(dòng)的陣列被組織成單個(gè)邏輯地址空間。
5.根據(jù)權(quán)利要求1至4中的任何一項(xiàng)所述的方法,其中所述高速緩存存儲(chǔ)器是文件級(jí)高速緩存存儲(chǔ)器。
6.根據(jù)權(quán)利要求1至4中的任何一項(xiàng)所述的方法,其中所述高速緩存存儲(chǔ)器是塊級(jí)高速緩存存儲(chǔ)器。
7.根據(jù)權(quán)利要求1至6中的任何一項(xiàng)所述的方法,其中所述存儲(chǔ)裝置包括至少一個(gè)磁帶介質(zhì),所述至少一個(gè)磁帶介質(zhì)根據(jù)線(xiàn)性磁帶文件系統(tǒng)數(shù)據(jù)格式來(lái)存儲(chǔ)所述第一文件集合,并且其中根據(jù)作為所述線(xiàn)性磁帶文件系統(tǒng)數(shù)據(jù)格式的元數(shù)據(jù)的一部分的、每個(gè)其余文件的開(kāi)始?jí)K來(lái)確定存儲(chǔ)在所述存儲(chǔ)系統(tǒng)上的所述其余文件的位置。
8.根據(jù)權(quán)利要求1至7中的任何一項(xiàng)所述的方法,其中所述高速緩存存儲(chǔ)器包括使用先入先出策略管理來(lái)管理的第一區(qū)域(40)和使用最近最少使用策略管理來(lái)管理的第二區(qū)域(42),所述第一區(qū)域和所述第二區(qū)域適用于根據(jù)用于高速緩存容量管理的規(guī)則集合來(lái)存儲(chǔ)所述第二文件集合。
9.根據(jù)權(quán)利要求8所述的方法,其中所述規(guī)則集合至少包括下述規(guī)則: i)如果所述第一區(qū)域滿(mǎn),則所述第二集合的最早的文件被復(fù)制到所述存儲(chǔ)裝置,并且從所述第一區(qū)域排除; ?)如果所述第一區(qū)域滿(mǎn)并且所述第二區(qū)域具有空閑容量,則所述第一區(qū)域獲得所述第二區(qū)域的所述空閑容 量的給定百分比;iii)如果所述第二區(qū)域滿(mǎn),則具有最少訪問(wèn)次數(shù)和最早的最后訪問(wèn)時(shí)間的所述第二集合的所述文件被復(fù)制到所述存儲(chǔ)裝置并且從所述第二區(qū)域排除; iv)如果所述第二區(qū)域滿(mǎn)并且所述第一區(qū)域具有空閑容量,則所述第二區(qū)域獲得所述第一區(qū)域的所述空閑容量的給定百分比。
10.一種存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序用于讀取存儲(chǔ)在存儲(chǔ)系統(tǒng)上的文件,包括用于使得計(jì)算機(jī)進(jìn)行根據(jù)權(quán)利要求1至9中的任何一項(xiàng)所述的方法的步驟的代碼裝置。
11.根據(jù)權(quán)利要求10所述的計(jì)算機(jī)程序,進(jìn)一步包括用于管理作為線(xiàn)性磁帶文件系統(tǒng)的所述存儲(chǔ)裝置的代碼裝置,并且其中所述存儲(chǔ)裝置包括獨(dú)立磁帶庫(kù),所述獨(dú)立磁帶庫(kù)具有使用所述線(xiàn)性磁帶文件系統(tǒng)來(lái)管理的至少一個(gè)磁帶介質(zhì)。
12.根據(jù)權(quán)利要求10至11中的任何一項(xiàng)所述的計(jì)算機(jī)程序,其中所述計(jì)算機(jī)程序是用戶(hù)空間程序組件。
13.一種存儲(chǔ)系統(tǒng)(100),包括: -根據(jù)預(yù)定的數(shù)據(jù)格式存儲(chǔ)第一文件集合的存儲(chǔ)裝置(104); -存儲(chǔ)第二文件集合的高速緩存存儲(chǔ)器(106),所述第二文件集合是所述第一文件集合的子集; -用于從一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)(110、120)接收讀取和寫(xiě)入請(qǐng)求的至少一個(gè)接口(23、.24、25、26、27); -用于執(zhí)行根據(jù)權(quán)利要求10至12中的任何一項(xiàng)所述的計(jì)算機(jī)程序的指令的處理單元(102)。
【文檔編號(hào)】G06F3/06GK103917962SQ201280054403
【公開(kāi)日】2014年7月9日 申請(qǐng)日期:2012年10月26日 優(yōu)先權(quán)日:2011年11月18日
【發(fā)明者】I·科爾特斯達(dá)斯, S·薩拉菲加諾維克, E·S·埃勒夫塞里奧, J·杰利托, R·哈斯, N·豪斯泰恩, A·索普, H·塞普 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司