專利名稱::用于提高存儲(chǔ)管理系統(tǒng)的可伸縮性和可移植性的技術(shù)的制作方法
技術(shù)領(lǐng)域:
:0004本公開一般涉及數(shù)據(jù)存儲(chǔ),并且,更具體地,涉及用于提高存儲(chǔ)管理系統(tǒng)的可伸縮性和可移植性的技術(shù)。
背景技術(shù):
:0005在相關(guān)的10/924,652號(hào)美國專利申請和10/668,833號(hào)美國專利申請中,公開了一種依賴時(shí)間的數(shù)據(jù)存儲(chǔ)和恢復(fù)技術(shù)。這種技術(shù)的實(shí)施例提供持續(xù)數(shù)據(jù)保護(hù)(CDP)的解決方案,其中指向存儲(chǔ)系統(tǒng)(或數(shù)據(jù)存儲(chǔ)器)的寫入命令被含有當(dāng)前存儲(chǔ)器和時(shí)間存儲(chǔ)器的存儲(chǔ)管理系統(tǒng)攔截。0006圖1示出CDP系統(tǒng)100的一個(gè)示例性實(shí)施例。存儲(chǔ)管理系統(tǒng)106可攔截由主機(jī)102發(fā)出的指向存儲(chǔ)系統(tǒng)104的寫入命令。在存儲(chǔ)管理系統(tǒng)106中,當(dāng)前存儲(chǔ)器108可保持或者可存取存儲(chǔ)系統(tǒng)1045的數(shù)字內(nèi)容的當(dāng)前(或鏡像)拷貝。時(shí)間存儲(chǔ)器110可記錄與每個(gè)被攔截的寫入命令關(guān)聯(lián)的信息,例如在該寫入命令的有效負(fù)荷中的新數(shù)據(jù)和/或響應(yīng)寫入命令在當(dāng)前存儲(chǔ)器中要被覆蓋的舊數(shù)據(jù)。對響應(yīng)寫入命令的新數(shù)據(jù)或者舊數(shù)據(jù)的記錄可被稱為寫時(shí)拷貝(COW)操作,而所記錄的新的或舊數(shù)據(jù)可被稱為COW數(shù)據(jù)。時(shí)間存儲(chǔ)器110也可記錄與所攔截的寫入命令以及/或者對應(yīng)的cow操作關(guān)聯(lián)的其他信息(即元數(shù)據(jù)),例如時(shí)間戳,所述舊數(shù)據(jù)被改寫的當(dāng)前存儲(chǔ)器中的原始位置,以及所述cow數(shù)據(jù)被拷貝到的時(shí)間存儲(chǔ)器中的目的地位置。每個(gè)cow操作一般備份一個(gè)或更多cow數(shù)據(jù)塊,從而產(chǎn)生一組cow數(shù)據(jù)和相應(yīng)的元數(shù)據(jù)。經(jīng)過一段時(shí)間,多組cow數(shù)據(jù)和相應(yīng)的元數(shù)據(jù)(包括時(shí)間戳)可累積為關(guān)于在所述當(dāng)前存儲(chǔ)器108或者所述存儲(chǔ)系統(tǒng)104中已經(jīng)被寫入或改寫的內(nèi)容的歷史記錄的集合。所述時(shí)間存儲(chǔ)器110的內(nèi)容可被編索引,例如基于時(shí)間和/或存儲(chǔ)地址,以便于所述備份數(shù)據(jù)的高效存取。0007由于當(dāng)前存儲(chǔ)器108中包含存儲(chǔ)系統(tǒng)104的數(shù)字內(nèi)容的當(dāng)前拷貝以及在時(shí)間存儲(chǔ)器110中包含歷史記錄,所以存儲(chǔ)管理系統(tǒng)106為存儲(chǔ)系統(tǒng)104增加了一個(gè)新的維度,即時(shí)間。假定所述存儲(chǔ)管理系統(tǒng)106已經(jīng)和所述存儲(chǔ)系統(tǒng)104自一個(gè)過去時(shí)刻操作性耦連,所述存儲(chǔ)管理系統(tǒng)106可快速而準(zhǔn)確地把存儲(chǔ)系統(tǒng)104中的任何可尋址的內(nèi)容恢復(fù)到所述過去時(shí)刻到當(dāng)前時(shí)刻之間的任何時(shí)間點(diǎn)。0008對于上述CDP方法有著很廣泛的實(shí)施選擇。圖2示出一個(gè)示例性實(shí)施,其中存儲(chǔ)管理系統(tǒng)206與主機(jī)202以及存儲(chǔ)系統(tǒng)204都操作性耦連。所述存儲(chǔ)管理系統(tǒng)206可位于也可不位于所述主機(jī)202和所述存儲(chǔ)系統(tǒng)204之間的關(guān)鍵數(shù)據(jù)路徑20中。如果沒有位于所述關(guān)鍵數(shù)據(jù)路徑20中,所述存儲(chǔ)管理系統(tǒng)206可在任何希望它來攔截主機(jī)202和所述存儲(chǔ)系統(tǒng)204之間的通信的時(shí)候,切換為"捕獲模式"。所述存儲(chǔ)管理系統(tǒng)206—般用一個(gè)或者更多處理器模塊208實(shí)現(xiàn),其中每個(gè)處理器模塊208完成一系列的操作,例如數(shù)據(jù)攔截、數(shù)據(jù)復(fù)制、記錄生成以及元數(shù)據(jù)索引等。0009圖3示出可伸縮的存儲(chǔ)管理系統(tǒng)300的示例性實(shí)施。所述存儲(chǔ)管理系統(tǒng)300可包括多個(gè)通過內(nèi)部網(wǎng)絡(luò)(或者背板)30互聯(lián)的處理器模塊302。每個(gè)處理器模塊302可包含一個(gè)與目標(biāo)接口306、只讀存儲(chǔ)器(ROM)308、存儲(chǔ)器310、啟動(dòng)器接口312以及內(nèi)部網(wǎng)絡(luò)接口314通信的中央處理單元(CPU)304。所述CPU304可在一個(gè)或更多個(gè)集成電路中實(shí)現(xiàn),并可包括其他"膠合"邏輯(未示出),用于和其他集成電路相接,例如總線接口、時(shí)鐘以及通信接口。CPU304可執(zhí)行在ROM308中提供的軟件和在存儲(chǔ)器310中的軟件,這些軟件可以被讀取,例如通過內(nèi)部網(wǎng)絡(luò)接口314。所述內(nèi)部網(wǎng)絡(luò)接口314可連接所述處理器模塊302到所述內(nèi)部網(wǎng)絡(luò)30,這樣所述處理器模塊302可與其他處理器模塊通信。在一個(gè)實(shí)現(xiàn)中,一組或者更多組處理器模塊302成支架安裝在存儲(chǔ)管理系統(tǒng)中,并且內(nèi)部網(wǎng)絡(luò)30也連接每個(gè)支架到存儲(chǔ)管理系統(tǒng)內(nèi)包含的其他支架。這種分布式處理產(chǎn)生了大小(例如存儲(chǔ)器容量、處理速度等)可按比例放大或者縮小以適應(yīng)所需容量的系統(tǒng)。0010但是上述對存儲(chǔ)管理系統(tǒng)的模塊化只是朝向可伸縮性的第一步驟。許多限制仍然約束著其中可部屬存儲(chǔ)管理系統(tǒng)的環(huán)境。同樣存在平臺(tái)特殊的限制約束著處理器模塊的可移植性。此外,存儲(chǔ)管理系統(tǒng)的當(dāng)前架構(gòu)不能充分利用新興的智能轉(zhuǎn)換技術(shù)。0011縱觀前述,希望提供一種克服上述不足和缺點(diǎn)的存儲(chǔ)管理架
發(fā)明內(nèi)容0012本發(fā)明公開一種用于提高存儲(chǔ)管理系統(tǒng)的可伸縮性和可移植性的技術(shù)。在一個(gè)特別的示范性實(shí)施例中,所述技術(shù)可實(shí)現(xiàn)為與存儲(chǔ)系統(tǒng)操作性耦連的存儲(chǔ)管理系統(tǒng)。存儲(chǔ)管理系統(tǒng)可包括多個(gè)處理器模塊(processormodule),其中每個(gè)處理器模塊都能夠攔截指向所述存儲(chǔ)系統(tǒng)的寫入命令,備份與該寫入命令關(guān)聯(lián)的數(shù)據(jù),并且產(chǎn)生包含所備份數(shù)據(jù)的時(shí)間戳的元數(shù)據(jù)。所述存儲(chǔ)管理系統(tǒng)也可包括一個(gè)或更多個(gè)索引模塊,索引模塊基于所述元數(shù)據(jù)生成所述備份數(shù)據(jù)的一個(gè)或者更多個(gè)索引表,其中所述一個(gè)或更多個(gè)索引模塊與所述處理器模塊和所述存儲(chǔ)系統(tǒng)通信。0013根據(jù)這個(gè)特別的示例性實(shí)施例的其他方面,多個(gè)處理器模塊的數(shù)目是根據(jù)所述存儲(chǔ)管理系統(tǒng)的所需容量可增減的(可伸縮的)。0014根據(jù)這個(gè)特別的示例性實(shí)施例的其他方面,多個(gè)處理器模塊可配置成具有容錯(cuò)冗余。0015根據(jù)這個(gè)特別的示例性實(shí)施例的附加方面,多個(gè)處理器模塊可通過光纖連接與所述存儲(chǔ)系統(tǒng)耦連。0016根據(jù)這個(gè)特別的示例性實(shí)施例的另一個(gè)方面,多個(gè)處理器模塊中的每個(gè)可包括至少一個(gè)目標(biāo)接口以及至少一個(gè)啟動(dòng)器接口。0017根據(jù)這個(gè)特別的示例性實(shí)施例的又另一個(gè)方面,多個(gè)處理器模塊可相互通信。0018根據(jù)這個(gè)特別的示例性實(shí)施例的另一個(gè)方面,在刀片場(bladefarm)中的一個(gè)或更多個(gè)索引模塊的數(shù)量可基于由刀片場支持的處理器模塊的數(shù)量而增減。0019根據(jù)這個(gè)特別的示例性實(shí)施例的進(jìn)一步方面,所述一個(gè)或更多個(gè)索引模塊可通過光纖連接存取在所述存儲(chǔ)系統(tǒng)中的一個(gè)或更多個(gè)元數(shù)據(jù)存儲(chǔ)裝置。0020根據(jù)這個(gè)特別的示例性實(shí)施例的又一另外方面,所述一個(gè)或更多個(gè)索引模塊可通過一個(gè)或更多個(gè)內(nèi)部網(wǎng)絡(luò)與所述多個(gè)處理器模塊通信。0021根據(jù)這個(gè)特別的示例性實(shí)施例的又一另外方面,所述一個(gè)或更多個(gè)索引模塊可通過多個(gè)中介和代理與所述多個(gè)處理器模塊通信。0022根據(jù)這個(gè)特別的示例性實(shí)施例的另一個(gè)方面,所述一個(gè)或更多個(gè)索引模塊可執(zhí)行一個(gè)或更多個(gè)功能,這些功能從由刀片結(jié)構(gòu)、重映射引擎、全局?jǐn)?shù)據(jù)庫、產(chǎn)品復(fù)原、時(shí)間線壓縮、索引數(shù)據(jù)庫接口、元數(shù)據(jù)空間管理以及賣主多路徑組成的組中選擇。0023在另一個(gè)特別的示例性實(shí)施例中,所述技術(shù)可實(shí)現(xiàn)為用于提高與存儲(chǔ)系統(tǒng)操作性耦連的存儲(chǔ)管理系統(tǒng)的可移植性和可伸縮性的方法。所述方法可包括將多個(gè)處理器模塊耦連到存儲(chǔ)系統(tǒng),其中每個(gè)處理器模塊都能夠攔截指向所述存儲(chǔ)系統(tǒng)的寫入命令,備份與該寫入命令關(guān)聯(lián)的數(shù)據(jù),并且產(chǎn)生包含所備份數(shù)據(jù)的時(shí)間戳的元數(shù)據(jù)。所述方法還可包括耦連包含一個(gè)或者更多索引模塊的刀片場到所述存儲(chǔ)系統(tǒng)。所述方法可進(jìn)一步包括使所述刀片場與多個(gè)處理器模塊通過一個(gè)或更多個(gè)內(nèi)部網(wǎng)絡(luò)通信,其中所述一個(gè)或更多個(gè)索引模塊基于所述元數(shù)據(jù)產(chǎn)生一個(gè)或更多個(gè)用于備份數(shù)據(jù)的索引表。0024在又一個(gè)特別的示例性實(shí)施例中,所述技術(shù)可實(shí)現(xiàn)為至少一個(gè)信號(hào),其被包含在至少一個(gè)載波中,用于傳輸計(jì)算機(jī)程序的指令,這些指令被配置為是至少一個(gè)處理器可讀的以指示所述至少一個(gè)處理器執(zhí)行計(jì)算機(jī)處理以完成前述的方法。0025在又一個(gè)特別的示例性實(shí)施例中,所述技術(shù)可實(shí)現(xiàn)為至少一個(gè)處理器可讀的載體,其用于存儲(chǔ)計(jì)算機(jī)程序指令,所述指令被設(shè)置為可被至少一個(gè)處理器讀取以指示所述至少一個(gè)處理器執(zhí)行計(jì)算機(jī)處理以完成前述的方法。0026在另一個(gè)特別的示例性實(shí)施例中,所述技術(shù)可實(shí)現(xiàn)為用于提高操作性耦連到存儲(chǔ)系統(tǒng)的存儲(chǔ)管理系統(tǒng)的可移植性和可伸縮性的方法。該方法可包括在多個(gè)處理器模塊攔截指向存儲(chǔ)系統(tǒng)的寫入命令。該方法還可包括備份與所述寫入命令關(guān)聯(lián)的數(shù)據(jù)。所述方法可進(jìn)一步包括產(chǎn)生包含備份數(shù)據(jù)的時(shí)間戳的元數(shù)據(jù)。所述方法可附加包括在一個(gè)或更多個(gè)索引模塊中基于所述元數(shù)據(jù)生成備份數(shù)據(jù)的一個(gè)或更多個(gè)索引表,其中所述一個(gè)或更多個(gè)索引模塊與所述處理器模塊和所述存儲(chǔ)系統(tǒng)通信。0027將參照在附圖中示出的示范性實(shí)施例更加詳細(xì)地闡述本公開內(nèi)容。雖然在下面參照示例性實(shí)施例對本公開內(nèi)容進(jìn)行闡述,但是應(yīng)了解本公開不受限于此。本領(lǐng)域的普通技術(shù)人員在獲取本技術(shù)后會(huì)認(rèn)識(shí)到在如此處闡述的本公開的范圍內(nèi)的附加的實(shí)施、修改和實(shí)施例,以及在其他領(lǐng)域的使用,并且認(rèn)識(shí)到關(guān)于本公開的重要實(shí)用性。0028為了促進(jìn)對本公開更完全的理解,現(xiàn)在引用附圖,在圖中相似的組件使用相似的數(shù)字引用。這些圖不應(yīng)解釋為對本公開的限制,而只是示例。0029圖1示出持續(xù)數(shù)據(jù)保護(hù)系統(tǒng)的示例性實(shí)施例。0030圖2示出持續(xù)數(shù)據(jù)保護(hù)的示例性實(shí)現(xiàn)。0031圖3示出可伸縮存儲(chǔ)管理系統(tǒng)的示例性實(shí)現(xiàn)。0032圖4示出根據(jù)本公開的實(shí)施例的存儲(chǔ)管理系統(tǒng)的示例性實(shí)現(xiàn)。0033圖5示出圖解說明根據(jù)本公開的實(shí)施例的示例性TSD刀片的框圖。0034圖6示出根據(jù)本公開的實(shí)施例的TSD刀片的示例性軟件組件。0035圖7示出的是圖解說明根據(jù)本公開的實(shí)施例的示例性索引刀片的框圖。0036圖8示出根據(jù)本公開的實(shí)施例的索引刀片中的示例性軟件組件。0037圖9示出的是圖解說明根據(jù)本公開的實(shí)施例的示例性連接處理器(connectionhandler)的框圖。具體實(shí)施例方式0038在本文中,"備份數(shù)據(jù)"一般指的是已經(jīng)被記錄和/或組織的數(shù)據(jù),目的是復(fù)原或者恢復(fù)存儲(chǔ)系統(tǒng)的數(shù)字內(nèi)容。0039"寫時(shí)拷貝數(shù)據(jù)"(或者"COW數(shù)據(jù)")指的是在寫時(shí)拷貝操作中已經(jīng)被記錄的真實(shí)數(shù)據(jù)(例如在響應(yīng)寫入命令時(shí)要被寫入的新數(shù)據(jù)或者要被改寫的舊數(shù)據(jù))。響應(yīng)寫入命令而被寫入的新數(shù)據(jù)有時(shí)被稱為"后像數(shù)據(jù)"或者"后像";而響應(yīng)寫入命令而要被改寫的舊數(shù)據(jù)有時(shí)被稱為"前像數(shù)據(jù)"或者"前像"。0040"元數(shù)據(jù)"指的是在關(guān)于寫時(shí)拷貝操作中的相應(yīng)COW數(shù)據(jù)的信息數(shù)據(jù)(例如時(shí)間戳)。典型地,一個(gè)寫時(shí)拷貝操作導(dǎo)致一組COW數(shù)據(jù)和相應(yīng)的元數(shù)據(jù)的產(chǎn)生。盡管它們相關(guān),但是COW數(shù)據(jù)和相應(yīng)的元數(shù)據(jù)可保存在獨(dú)立的存儲(chǔ)裝置或段內(nèi)。在時(shí)間存儲(chǔ)器內(nèi),COW數(shù)據(jù)可被組織為一個(gè)或更多個(gè)加時(shí)間戳的"數(shù)據(jù)塊"。0041典型的"存儲(chǔ)系統(tǒng)"可包括一個(gè)或更多個(gè)存儲(chǔ)裝置,存儲(chǔ)裝置可以是物理的、虛擬的或者邏輯的裝置或者它們的組合。根據(jù)一個(gè)實(shí)施例,存儲(chǔ)系統(tǒng)可包括存儲(chǔ)區(qū)域網(wǎng)(SAN),SAN具有一個(gè)或更多個(gè)數(shù)據(jù)集,其中每個(gè)數(shù)據(jù)集可包含一個(gè)或更多個(gè)節(jié)點(diǎn),并且其中一個(gè)或更多個(gè)邏輯單元(LU)可耦連到每個(gè)節(jié)點(diǎn)。在下文中,為了便于說明,術(shù)語"存儲(chǔ)系統(tǒng)"可指整個(gè)存儲(chǔ)系統(tǒng)或者它的一部分(例如數(shù)據(jù)集、節(jié)點(diǎn)或LU)。0042本公開的實(shí)施例提供伸縮性和/或移植性更好的存儲(chǔ)管理系統(tǒng)的改進(jìn)架構(gòu)。在關(guān)于時(shí)間存儲(chǔ)器的功能中,輸入/輸出(I/O)處理與索引功能物理地隔開。1/0處理可用一個(gè)或更多個(gè)被稱為"時(shí)間存儲(chǔ)器伺服器(TSD)刀片"的I/0處理模塊實(shí)現(xiàn),同時(shí)索引功能可以由一個(gè)或更多個(gè)被稱為"索引刀片"的索引模塊完成。所述索引刀片可被聚集為支持一個(gè)或更多個(gè)TSD刀片集的索引刀片場。0043參考圖4,示出根據(jù)本公開的實(shí)施例的存儲(chǔ)管理系統(tǒng)400的示例性實(shí)現(xiàn)。該存儲(chǔ)管理系統(tǒng)400可包括一個(gè)或更多個(gè)通過光纖連接(例如41和42)與存儲(chǔ)區(qū)域網(wǎng)(SAN)402耦連的存儲(chǔ)管理器件(例如404和406)。所述存儲(chǔ)管理器件404可包括一個(gè)或更多個(gè)TSD刀片405,而所述存儲(chǔ)管理器件406可包含一個(gè)或更多個(gè)TSD刀片407。所述光纖連接41可具有至少兩個(gè)通道,一個(gè)用于啟動(dòng)器模式而另一個(gè)用于目標(biāo)模式。對于所述光纖連接42也一樣。每個(gè)TSD刀片可執(zhí)行時(shí)間存儲(chǔ)器功能(一些是本地的而其它是遠(yuǎn)程的)以備份SAN402中的數(shù)字內(nèi)容。TSD刀片可配置為在類似Revivio公司的CPS1200持續(xù)保護(hù)系統(tǒng)的硬件平臺(tái)上的模塊組件,或者嵌入到智能開關(guān)或者一些其它類型的硬件中。優(yōu)選地,每個(gè)存儲(chǔ)管理器件(例如404或406)包括至少兩個(gè)TSD刀片以實(shí)現(xiàn)容錯(cuò)。每個(gè)存儲(chǔ)管理器件可耦連(例如通過以太網(wǎng)連接45、46或者47、48)到兩個(gè)內(nèi)部子網(wǎng)——內(nèi)部子網(wǎng)1和內(nèi)部子網(wǎng)2。所述存儲(chǔ)管理器件也可耦連到局域網(wǎng)(LAN)。0044所述存儲(chǔ)管理系統(tǒng)400也可包括通過光纖連接43和44耦連到所述SAN402的索引刀片場408。所述索引刀片場408可包括多個(gè)索引刀片409,索引刀片409可通過光纖連接43和44與SAN402中的元數(shù)據(jù)存儲(chǔ)裝置通信。所述索引刀片409也可通過內(nèi)部子網(wǎng)1和內(nèi)部子網(wǎng)2經(jīng)由冗余連接49和50與所述存儲(chǔ)管理器件404和406中的每一個(gè)通信。因?yàn)樗饕δ芎退鯰SD刀片物理地分隔開,所以索引刀片場408可支持多個(gè)存儲(chǔ)管理器件并且適應(yīng)所述存儲(chǔ)管理器件和/或所述SAN402的伸縮。所述存儲(chǔ)管理器件的容量可通過添加或移除TSD刀片和/或通過增加或減少所述存儲(chǔ)管理器件的數(shù)量來按比例增加或降低。所述索引刀片場408的容量也可通過添加或移除所述索引刀片409來按比例增加或降低。0045根據(jù)本公開的實(shí)施例,所述索引刀片場408可以是一個(gè)可伸縮的、松散地耦連的一組索引刀片409,其運(yùn)行索引軟件組件的基本集,所述索引軟件組件支持基本的索引存儲(chǔ)和檢索以及諸如產(chǎn)品復(fù)原、時(shí)間線壓縮(或者時(shí)間線回滾)以及分層存儲(chǔ)服務(wù)等的增值特性。所述索引刀片409典型地不參與工作負(fù)荷/工作單元配置。替代地,邏輯單元數(shù)(LUN)分配可被動(dòng)態(tài)處理。中介和代理負(fù)責(zé)心搏連接(heart-beatingconnection),而且,如果刀片(無論是TSD還是索引)停止,在來自刀片配置管理器的幫助下,適當(dāng)?shù)闹匦屡渲每扇缦旅婷枋龅哪菢舆M(jìn)行。0046利用分開的TSD和索引刀片的優(yōu)勢,對前像表格插入的提交可被批處理化以優(yōu)化性能。在索引操作可在與I/O處理在同一個(gè)刀片上運(yùn)行的配置中,可在刀片間復(fù)制索引批處理以保證提交批處理仍發(fā)生。0047根據(jù)一個(gè)實(shí)施例,在索引刀片場408中的每個(gè)索引刀片409可需要通向同一組元數(shù)據(jù)邏輯單元(LU)的光纖連接。元數(shù)據(jù)LU可用來作為利用元數(shù)據(jù)I/0管理器的裸設(shè)備(rawdevice),以保證沒有兩個(gè)索引刀片往同一個(gè)區(qū)域?qū)懭?。在另一個(gè)實(shí)施例中,為了利用現(xiàn)存的I/O接口,索引數(shù)據(jù)可存儲(chǔ)在伯克利(Berkeley)數(shù)據(jù)庫中。最初地,結(jié)構(gòu)化查詢語言(SQL)數(shù)據(jù)庫可用于"全局"數(shù)據(jù)庫。0048將元數(shù)據(jù)LU作為刀片間共享的裸設(shè)備集來管理的通用性意味著文件系統(tǒng)不再必須自覺管理,并且對當(dāng)前存儲(chǔ)器LU的數(shù)據(jù)的索引不需要限制為宿留文件系統(tǒng)的刀片。這使得當(dāng)前存儲(chǔ)器LUN分配可以是完全動(dòng)態(tài)的而不需要永久性的配置,盡管工作負(fù)荷仍與所述TSD刀片相關(guān)。0049重映射引擎技術(shù)在2005年10月14日申請的60/726,192號(hào)美國臨時(shí)申請中被公開,其全部內(nèi)容合并與此作為參考。重映射引擎技術(shù)可進(jìn)一步加強(qiáng)刀片場的通用性。重映射引擎的目標(biāo)之一可以是提供一個(gè)"通配的"接口,其用于執(zhí)行不需要重映射引擎知道或者維護(hù)關(guān)于用戶生成的對象(例如時(shí)間圖像)的狀態(tài)的重映射讀和寫。0050具有分開的TSD和索引刀片可具備將更多硬件資源分配給索引的附加優(yōu)勢。這樣,常常有可用的CPU周期用于執(zhí)行特性相關(guān)的索引刀片任務(wù),例如,如2005年10月14日申請的60/726,187號(hào)的美國臨時(shí)申請中公開的時(shí)間線壓縮,該臨時(shí)申請的全部內(nèi)容合并在此作為參考。此外,對于索引組件運(yùn)行的平臺(tái)不再有任何苛刻的限制,使得系統(tǒng)設(shè)計(jì)者能夠自由地探索,例如,64位架構(gòu)、刀片中心、LINUX操作系統(tǒng)的最新版本等。0051圖5示出一個(gè)圖解說明根據(jù)本公開的實(shí)施例的示例性TSD刀片500的框圖。這個(gè)框圖只示出了TSD刀片500的主要組件。所述TSD刀片500可包括耦連到存儲(chǔ)器504、目標(biāo)接口506、啟動(dòng)器接口508以及網(wǎng)絡(luò)接口510的CPU502。所述存儲(chǔ)器504可優(yōu)選地具有不小于1千兆字節(jié)(GB)的容量。所述目標(biāo)接口506和所述啟動(dòng)器接口508可各支持光纖通道,用于與關(guān)聯(lián)的存儲(chǔ)系統(tǒng)或者SAN通信。所述網(wǎng)絡(luò)接口50可支持很多通信端口,例如,至少兩個(gè)用于與內(nèi)部子網(wǎng)通信的千兆位以太網(wǎng)絡(luò)(GigE)端口(例如GigE端口l和GigE端口2)、管理端口12以及一個(gè)或更多個(gè)用于與其它TSD刀片進(jìn)行內(nèi)部通信的端口(未示出)。0052圖6示出根據(jù)本公開的實(shí)施例的TSD刀片中的示例性軟件組件。用于所述TSD刀片的主要軟件組件可包括功能模塊,諸如可移植的TSD應(yīng)用程序接口(API)602、TSD索引API604、中介和代理606以及刀片配置管理器608。0053所述可移植的TSD應(yīng)用程序接口602支持如60/726,193號(hào)美國臨時(shí)申請中公開的所有的外部接口,所述美國臨時(shí)申請于2005年10月14日申請,其全部內(nèi)容合并在此作為參考。否則,當(dāng)前TSD實(shí)現(xiàn)中的大部分仍未受影響,除了優(yōu)選通過所述TSD索引API604與所述索引層進(jìn)行所有交互。在可能時(shí)利用分開的索引刀片的優(yōu)勢,可進(jìn)行其它改進(jìn)。例如,由于索引數(shù)據(jù)在兩處,由TSD啟動(dòng)的作為1/0事件鏈的一部分的索引操作只需要等待成功地拷貝到所述索引刀片上,代替了數(shù)據(jù)庫提交(磁盤I/0)。0054可設(shè)計(jì)和實(shí)現(xiàn)所述TSD索引應(yīng)用程序接口604以提供在存儲(chǔ)管理系統(tǒng)中組件的清楚分隔。使用TSD索引應(yīng)用程序接口604,使得TSD可能和索引服務(wù)在平臺(tái)上本地地(共駐內(nèi)存的)交互,或者通過傳送遠(yuǎn)程進(jìn)行交互。0055所述中介和代理606可包括作為與運(yùn)行在索引刀片上的中介的接口的代理。這些代理的一般責(zé)任可包括,例如,建立和維護(hù)與所需索引刀片的連接、從所述TSD索引應(yīng)用程序接口604接收輸入(將呼叫轉(zhuǎn)換為消息)、并且提供異步(回調(diào))消息傳遞。根據(jù)一個(gè)實(shí)施例,可實(shí)現(xiàn)下述代理中的一個(gè)或更多個(gè)分配器代理、索引器代理以及重映射代理。所述分配器代理可負(fù)責(zé)與索引分配器代理的通信以根據(jù)要求分配時(shí)間存儲(chǔ)器空間。所述分配器代理可包括數(shù)據(jù)塊的本地緩存。所述索引器代理可負(fù)責(zé)轉(zhuǎn)發(fā)批量的索引請求到在索引刀片上運(yùn)行的索引器代理。在典型的操作中,索引批處理在已經(jīng)被成功地復(fù)制到所述索引刀片場的時(shí)候認(rèn)為完成該處理工作。所述重映射代理可負(fù)責(zé)轉(zhuǎn)發(fā)請求到在索引刀片上運(yùn)行的(多個(gè))重映射引擎中介。0056所述中介和代理606可包括為來自在索引刀片上運(yùn)行的代理的請求進(jìn)行服務(wù)的中介。一個(gè)這樣的中介可以是I/0中介。所述I/0中介可偵聽來自于正在處理產(chǎn)品復(fù)原或時(shí)間線壓縮的索引刀片的批量1/0請求,并且可轉(zhuǎn)發(fā)所述I/0請求到適當(dāng)?shù)腡SD刀片接口。所述1/0中介可負(fù)責(zé)跟蹤每個(gè)請求的狀態(tài)并且當(dāng)請求結(jié)束的時(shí)候適當(dāng)?shù)貙λ鏊饕镀M(jìn)行響應(yīng)。0057所述刀片配置管理器608可負(fù)責(zé)刀片間通信、發(fā)現(xiàn)、服務(wù)以及配置。TSD刀片、索引刀片以及索引LUN分配的非永久性(即運(yùn)行時(shí))配置可由所述刀片配置管理器608維護(hù)。通過刀片間通信和協(xié)作,自配置構(gòu)造可建立起來并且刀片間的動(dòng)態(tài)負(fù)荷平衡可實(shí)現(xiàn)。0058圖7示出的是圖解說明根據(jù)本公開的實(shí)施例的示例性索引刀片700的框圖。這個(gè)圖只示出了所述索引刀片700的主要組件。所述索引刀片700可包括2個(gè)32位CPU(即CPU1和CPU2)、4GB的隨機(jī)存取存儲(chǔ)器(RAM)702、2個(gè)光纖連接端口(即光纖通道l和光纖通道2),以及兩個(gè)以太網(wǎng)端口(即GigE接口l和GigE接口2)。所述索引刀片700可進(jìn)一步包括用于與索引刀片場中的其它索引刀片通信的內(nèi)部網(wǎng)絡(luò)接口(未示出)。0059圖8示出根據(jù)本公開的實(shí)施例的索引刀片中的示例性軟件組件。用于索引刀片的主要軟件組件包括功能模塊,例如刀片配置管理器802、中介和代理804、重映射引擎806、全局?jǐn)?shù)據(jù)庫808、新產(chǎn)品復(fù)原810、時(shí)間線壓縮812、索引數(shù)據(jù)庫接口814、元數(shù)據(jù)空間管理器816以及賣主多路徑軟件818。0060所述全局?jǐn)?shù)據(jù)庫808可在由刀片配置管理器決定的索引刀片上運(yùn)行。除了時(shí)間線壓縮812和新產(chǎn)品復(fù)原810所要求的改變,對于所述全局?jǐn)?shù)據(jù)庫808而言沒有多少改變。0061新產(chǎn)品復(fù)原810可基于重新設(shè)計(jì)的產(chǎn)品復(fù)原,從而消除它對于區(qū)域映射的依賴性并提高它的效率。0062所有的索引表都可以使用伯克利數(shù)據(jù)庫。對于索引數(shù)據(jù)庫接口814,為了隱藏要求的各種查詢,可能需要伯克利數(shù)據(jù)庫接口庫。此外,可執(zhí)行一套調(diào)試?yán)虂頄嗽兯鏊饕龜?shù)據(jù)。0063元數(shù)據(jù)空間管理器816可負(fù)責(zé)為元數(shù)據(jù)分配和管理存儲(chǔ)空間。0064可依賴賣主多路徑軟件818來提供元數(shù)據(jù)存儲(chǔ)所需的高可用性(HA)級別。0065中介和代理804可包括相互截然不同的子組件,每個(gè)子組件提供截然不同的API方法集并負(fù)責(zé)特定的任務(wù)集。這些子組件的主要的和常見的職責(zé)可包括,例如從同位體(peer)刀片接收消息和將消息發(fā)送給同位體刀片,處理與中斷和同位體刀片的通信相關(guān)的故障,向主動(dòng)提供的消息的接口處理器注冊回調(diào),以及統(tǒng)計(jì)性采集和報(bào)告。0066可用共同的方法和數(shù)據(jù)建立基類。中介和代理都繼承這個(gè)基類。下面是對一些主要的代理和中介的討論。0067在代理和中介804中提供插入代理和中介子組件。插入代理可從TSD處接收對于各種片(slice)的批量索引請求,在各個(gè)片的緩沖區(qū)中緩存這些請求,并將批量的請求發(fā)送給同位體插入中介(即在同位體索引刀片中的插入中介)。在接收到來自同位體插入中介的響應(yīng)時(shí),就可認(rèn)為該批量是安全的,并調(diào)用完成此事件的TSD回調(diào)。根據(jù)本公開的實(shí)施例,為了便于管理和負(fù)載平衡的目的,每個(gè)LU都可劃分為多個(gè)固定大小的邏輯分區(qū)(例如每個(gè)分區(qū)16GB),其中每個(gè)固定大小的邏輯分區(qū)可被稱為一個(gè)"片"。0068每個(gè)片中可有J和S緩沖區(qū)。當(dāng)活動(dòng)的緩沖區(qū)充滿時(shí),替代緩沖區(qū)可激活而且先前的活動(dòng)緩沖區(qū)可擦除到磁盤的暫存區(qū)域(scratcharea)。當(dāng)達(dá)到最大BII行計(jì)數(shù)時(shí),可指示所述插入中介密封活動(dòng)的BII表,并且一旦接收到"密封"響應(yīng),所述暫存區(qū)域可被釋放。所述暫存區(qū)域能夠容納活動(dòng)的BII表的全部內(nèi)容,而且如果發(fā)生索引刀片故障就需要它。這就減輕所述索引數(shù)據(jù)庫接口814在活動(dòng)表格滿的時(shí)候提交數(shù)據(jù)行的負(fù)擔(dān)。0069在TSD刀片上的存儲(chǔ)器利用可以是所關(guān)心的并且肯定對諸如緩沖區(qū)大小和片大小這樣的因素進(jìn)行限制。0070插入中介可從同位體插入代理(即在同位體索引刀片中的插入代理)處接收批量的索引請求,并可發(fā)出插入到索引數(shù)據(jù)庫接口814中。0071重映射代理和中介子組件可在中介和代理804中提供。重映射中介可接收來自同位體重映射代理(即在同位體索引刀片上的重映射代理)的重映射請求并且將這些請求轉(zhuǎn)發(fā)到重映射引擎806。它還可把所述重映射引擎806的結(jié)果轉(zhuǎn)發(fā)到所述同位體重映射代理。0072I/O代理子組件可在中介和代理804中提供。I/O代理可轉(zhuǎn)發(fā)批量的I/O序列到在TSD刀片上運(yùn)行的I/O中介。時(shí)間線回滾和產(chǎn)品復(fù)原可都需要I/0操作。0073時(shí)間存儲(chǔ)器(TS)分配中介子組件可在中介和代理804中提供。所述TS分配中介可在每個(gè)索引刀片上運(yùn)行。它可接收來自在TSD刀片上運(yùn)行的TS分配代理的分配請求。0074此外,時(shí)間線回滾(TLR)中介和產(chǎn)品復(fù)原(PR)中介也可在中介和代理804中提供。0075根據(jù)本公開的實(shí)施例,為促進(jìn)索引刀片和TSD刀片間的通信和協(xié)作,可提供多個(gè)對象。示例性對象可包括,例如接口處理器(IfaceHdlr)、刀片消息頭(BladeMsgHdr)以及連接處理器(ConnHdlr)。0076所述接口處理器可以是一個(gè)定義刀片間通信所需的方法的抽象基類。所述接口處理器可與一個(gè)或兩個(gè)物理網(wǎng)絡(luò)連接一起工作。在存在兩個(gè)物理網(wǎng)絡(luò)連接的情況下,對于每次發(fā)送,接口層可隨機(jī)地選擇連接中的一個(gè)來傳輸以在兩個(gè)物理網(wǎng)絡(luò)上分配網(wǎng)絡(luò)通信量。一個(gè)物理路徑的丟失是可以容許的。兩個(gè)網(wǎng)絡(luò)上的連接的丟失可被認(rèn)為是故障事件,并可通過調(diào)用注冊的故障處理回調(diào)來處理。0077所述接口處理器可支持各種大小的消息,優(yōu)選地它們具有相同的消息頭。接收器線程可首先在處理消息的其余部分之前把到達(dá)消息的消息頭部分取出。批量的多個(gè)消息也可被支持。0078所有的消息發(fā)送可以是異步的并可以為響應(yīng)處理使用回調(diào)。所述接口處理器可支持"發(fā)送然后遺忘(fireandforget)"的消息發(fā)送,也支持需要響應(yīng)的消息。對于后者,可支持在適當(dāng)?shù)捻憫?yīng)狀態(tài)下可進(jìn)行回調(diào)的超時(shí)。接收到的主動(dòng)提供的消息(對消息發(fā)送不進(jìn)行響應(yīng)的那些消息)可通過調(diào)用注冊的回調(diào)來處理。0079所述類可支持面向連接和無連接的接口類型。面向連接的接口處理器可構(gòu)造為"服務(wù)器"或"客戶端",這個(gè)區(qū)別可影響"""ec^方法和其它的行為。0080下面列出的是可被所述接口處理器定義或使用的一組示例性公共(public)方法僅對無連接接口對象有效??蓪θ窟B接的刀片進(jìn)行消息廣僅對無連接接口對象有效,可將私人消息發(fā)送到指定地址。攀se"《臘gj僅對面向連接的接口有效。發(fā)送指定消息到同位體刀片。僅對面向連接的接口有效。異步調(diào)用直到到同位體刀片的連接建立之后才返回。為特定的msgID(消息標(biāo)識(shí))注冊回調(diào)??蔀橥粋€(gè)msgID注冊多個(gè)回調(diào),這種情況下每個(gè)注冊的回調(diào)都可被調(diào)用。返回IfaceStats。重置IfaceStats。0081起初,可實(shí)現(xiàn)使用用戶數(shù)據(jù)報(bào)協(xié)議(UDP)數(shù)據(jù)報(bào)的無連接接口和使用傳輸控制協(xié)議(TCP)的面向連接的接口。0082刀片消息頭可以是包含在所有消息里的公共頭。每個(gè)中介或代理可為其API集定義特定的消息,但是所有的消息共享這個(gè)公共消息頭。所述公共消息頭可包含下面字段中的一個(gè)或更多個(gè)參Mog/c7V調(diào)6er參Msg2)^e消息的唯一標(biāo)識(shí)每個(gè)消息的增量數(shù)(對于代理/中介是唯一的)攀i&s/Ge"7V訓(xùn)Zer這個(gè)響應(yīng)對應(yīng)的MsgGenNumber。如果消息不是響應(yīng),則它可設(shè)置為0。消息體的長度(除了頭以外)。*SpareFields(備用字段)用于將來使用的一些備用字段。0083明顯地沒有出現(xiàn)在這個(gè)列表中的是版本字段。是否使用版本字段取決于在改變消息版本的方法和不改變MsgType的內(nèi)容但只是生成新MsgType的方法之間進(jìn)行的選擇。0084連接處理器可以是一個(gè)充當(dāng)一個(gè)代理、中介和接口處理器的容器對象的基類。存在繼承自所述基類的TSD連接處理器(tsdConnHdr)和索引連接處理器(idxConnHdlr)。0085每個(gè)連接處理器可代表在TSD刀片和索引刀片間的連接點(diǎn)。這個(gè)連接點(diǎn)需要的所有代理、中介和接口處理器都可包含在連接處理器中。這樣,所有的基于LU或片的TSD刀片和索引刀片間的交互可通過適當(dāng)?shù)倪B接處理器進(jìn)行。0086一些LunConfig可維護(hù)連接處理器和LUN/片之間的關(guān)系。這可能是延展包括片和連接處理頭信息的LunConfig的當(dāng)前實(shí)現(xiàn)。0087連接處理器可通過刀片配置管理器來實(shí)例化(例示)。0088圖9示出圖解說明根據(jù)本公開的實(shí)施例的示例性連接處理器的框圖。TSD刀片(未示出)的TSD連接處理器910可與索引刀片(未示出)的索引連接處理器920通信。如圖所示,所述TSD連接處理器910充當(dāng)接口處理器912、插入代理914、重映射代理916以及I/O中介918的容器對象。類似地,所述索引連接處理器920充當(dāng)接口處理器922、插入中介924、重映射中介926以及I/O代理928的容器對象。所述兩個(gè)接口處理器(912和922)經(jīng)內(nèi)部子網(wǎng)l和內(nèi)部子網(wǎng)2進(jìn)行相互通信,在相應(yīng)的中介和代理之間的消息通過內(nèi)部子網(wǎng)1和內(nèi)部子網(wǎng)2得以路由。0089將索引功能從I/0處理分離也需要針對TSD刀片和索引刀片200680042687.9的管理解決方法。根據(jù)本公開的實(shí)施例,刀片的配置可由刀片配置管理器來管理。0090在靜態(tài)刀片配置中,在刀片完全運(yùn)轉(zhuǎn)之前,一組刀片配置數(shù)據(jù)在軟件安裝中或通過供應(yīng)的工具被設(shè)定。這些配置數(shù)據(jù)可包括,例如子網(wǎng)和刀片節(jié)點(diǎn)ID的網(wǎng)際協(xié)議(IP)配置。靜態(tài)刀片配置信息可在本地磁盤的文件里持久保存。0091當(dāng)?shù)镀瑔?dòng)時(shí),它們可廣播它們的刀片信息到所有已經(jīng)在運(yùn)行的刀片,并且依次可私下地被發(fā)送每個(gè)運(yùn)行刀片的刀片信息。這樣,所述刀片配置管理器可了解每個(gè)其它刀片的重要信息。一個(gè)bladelnfo結(jié)構(gòu)中的示例性字段可包括bladeNodeId刀片的唯一標(biāo)識(shí)(ID),也用于子網(wǎng)地址以形成該節(jié)點(diǎn)的完全I(xiàn)P地址。索引刀片類型或者TSD刀片類型參applianceID如果刀片是TSD刀片,則這可以是此器件的唯一標(biāo)識(shí)。索引刀片可不使用此字段。參戸W"o"/D索引刀片場可以是可分區(qū)的,這樣特定的刀片集可以用以服務(wù)來自特定的RevivioCDP器件的LUN。刀片當(dāng)前可服務(wù)的LUN片的數(shù)目。在刀片上運(yùn)行的服務(wù)的標(biāo)記,例如全局?jǐn)?shù)據(jù)庫服務(wù)器。存儲(chǔ)器中磁盤全局?jǐn)?shù)據(jù)庫分區(qū)信息的拷貝。0092此外,刀片的信息在任何時(shí)候變化,所述刀片就可廣播已變化的bladelnfo到其它刀片和/或所述索引刀片場。0093刀片可相互協(xié)商以決定由哪個(gè)刀片來運(yùn)行特定的服務(wù),諸如全局?jǐn)?shù)據(jù)庫服務(wù)器。0094如果刀片獨(dú)自啟動(dòng)并且沒有其它刀片在運(yùn)行,那么在決定它應(yīng)該繼續(xù)處理和開始服務(wù)之前,它等待某個(gè)預(yù)設(shè)定的時(shí)間。0095每個(gè)索引刀片可包括兩個(gè)用于元數(shù)據(jù)LUN存取的光纖連接端口。在索引刀片場中的所有索引刀片可被分區(qū)以看到同樣的元數(shù)據(jù)LUN集。元數(shù)據(jù)LUN發(fā)現(xiàn)可在索引刀片初始啟動(dòng)的時(shí)候進(jìn)行,并且一個(gè)后臺(tái)進(jìn)程可周期性地運(yùn)行發(fā)現(xiàn)以查找被已經(jīng)加入到己經(jīng)在運(yùn)行的索引刀片的LUN。隨后判斷所發(fā)現(xiàn)的LUN集中的哪些LUN用于元數(shù)據(jù)。一種方法是允許所述索引刀片使用任何以及所有所發(fā)現(xiàn)的LUN。這種方法不需要具有用于元數(shù)據(jù)LUN分配的外部管理接口。一個(gè)替代性的方法可以是具有用于索引刀片場的管理接口,它可允許用戶為元數(shù)據(jù)分配LUN。0096當(dāng)索引刀片場首次啟動(dòng)時(shí),贏得協(xié)商運(yùn)行全局?jǐn)?shù)據(jù)庫服務(wù)的索引刀片可負(fù)責(zé)選擇在其上運(yùn)行全局?jǐn)?shù)據(jù)庫并且查詢所有其它索引刀片以確保此LUN對索引刀片場的所有成員可見的LUN。接著在元數(shù)據(jù)LUN上為全局?jǐn)?shù)據(jù)庫建立分區(qū)并且開始服務(wù)。所述全局?jǐn)?shù)據(jù)庫分區(qū)信息可存儲(chǔ)在本地磁盤文件中并廣播到場中其它索引刀片。每個(gè)索引刀片可保存所述分區(qū)信息,所述信息對于任何索引刀片安裝分區(qū)和開始全局?jǐn)?shù)據(jù)庫服務(wù)都是充分的。0097在新索引刀片場上開始服務(wù)的索引刀片也可在全局?jǐn)?shù)據(jù)庫中用它己經(jīng)發(fā)現(xiàn)的元數(shù)據(jù)LUN填充一個(gè)表。當(dāng)其它索引刀片有權(quán)使用全局?jǐn)?shù)據(jù)庫服務(wù)時(shí)(例如,通過服務(wù)所有者的廣播),它們也可用被發(fā)現(xiàn)的元數(shù)據(jù)LUN集填充該表。因?yàn)榭赡芤笏械乃饕镀梢娡粋€(gè)LUN集,所以目標(biāo)可以是產(chǎn)生一個(gè)對所有的索引刀片都可見的聯(lián)合LUN集。對場中一些但不是全部的索引刀片可見的任何LUN可被標(biāo)志為不可用。所述索引刀片一直到已經(jīng)確定了一個(gè)公共的LUN集才進(jìn)入運(yùn)行狀態(tài)。0098當(dāng)后來的索引刀片引導(dǎo)進(jìn)入具有一個(gè)或更多個(gè)處在運(yùn)行狀態(tài)的索引刀片的一個(gè)場中并且所述后來的索引刀片不可見所述運(yùn)行的刀片可見的相同元數(shù)據(jù)LUN集時(shí),它可能不接著引導(dǎo)進(jìn)入運(yùn)行狀態(tài)。0099在TSDLUN配置背景下,索引刀片可不負(fù)責(zé)LUN而是被唯一地識(shí)別為給予索引刀片的LBA排列,作為全局性的唯一LUN標(biāo)識(shí)符。這樣識(shí)別的存儲(chǔ)器單元可以是片。所述唯一標(biāo)識(shí)符可允許不同的存儲(chǔ)管理器件向同一個(gè)索引刀片場提供LUN。對這個(gè)新LUN標(biāo)識(shí)符的使用可在TSD和所述索引刀片應(yīng)用中傳播。因?yàn)樗饕镀玫竭@些偽LUN,所以可能不知曉片大小。可移植的TSDAPI可能仍需要片管理功能以分隔跨越片邊界的索引操作。0100在TSDLUN配置背景下,可不直接分配LUN到索引刀片。替代地,當(dāng)LUN被TSD置于捕獲模式時(shí),LUN所有者可被動(dòng)態(tài)選擇。用于判斷LUN所有權(quán)的TSD刀片和索引刀片的示例性序列圖解說明在下面的表格中表l.LUN所有權(quán)判斷序列<table>tableseeoriginaldocumentpage22</column></row><table>5開始WO朋Mr;更新丄w"6Hv"e/^—map6一旦已經(jīng)建立刀片連接,就廣播更新后的刀片配置0101所述刀片配置管理器可啟動(dòng)無連接接口處理器(數(shù)據(jù)報(bào))以及,除了刀片發(fā)現(xiàn)和LUN所有權(quán)談判之外,它可負(fù)責(zé)服務(wù)談判、連接處理器生成以及故障處理協(xié)作。0102在TSD刀片和索引刀片之間的API也可用于在兩個(gè)刀片之間的所有通信中。所述API也可嵌入到各自的代理中。配置API可由刀片配置管理器來處理。下面提供了根據(jù)其相關(guān)代理排序的示例性API調(diào)用的列表。0103所述配置API可包括配置特定的信息并可通過所述刀片配置管理器處理。所述配置API可包括同步調(diào)用,負(fù)責(zé)把LUN通知到所述索引刀片場。它直到談判好LUN的所有者才返回。索引刀片LUN所有權(quán)可以是動(dòng)態(tài)的,取消了對永久性配置的需要。參7gmoveL,同步調(diào)用,負(fù)責(zé)從索引刀片處移除LUN。攀GW77艦同步調(diào)用,獲取當(dāng)前系統(tǒng)時(shí)間。0104插入代理API可包括參/"(ier8/同步調(diào)用,負(fù)責(zé)處理批量的索引操作。收到返回,調(diào)用者就可以可靠地假定索引記錄是安全的。參Comm//同步調(diào)用,負(fù)責(zé)強(qiáng)制索引刀片提交所有的未完成的索引BI。0105重映射代理API可包括參7ema//ea(i異步調(diào)用,負(fù)責(zé)基于給定時(shí)間重映射LBA排列。攀W價(jià)(3p,Ye異步調(diào)用,負(fù)責(zé)重映射時(shí)間圖像寫入。參L^她Ma尸異步調(diào)用,負(fù)責(zé)更新后像映射(AI、BI、DW)。0106TS分配代理API可包括拳J〃ocC7z,A同步調(diào)用,負(fù)責(zé)分配為給定的LUN分配新的時(shí)間存儲(chǔ)器(TimeStore)塊。異步調(diào)用,負(fù)責(zé)密封時(shí)間存儲(chǔ)器塊。爿必/7e歸ve丄Cy7V同步調(diào)用,負(fù)責(zé)添加或刪除時(shí)間存儲(chǔ)器LUN。同步調(diào)用,負(fù)責(zé)添加、刪除或修改配額組。參GeZ27me//we/w/b同步調(diào)用,負(fù)責(zé)獲取給定的LUN或配額組的時(shí)間線信息。0107TLR代理API可包括同步調(diào)用,負(fù)責(zé)添加、刪除或修改時(shí)間線回滾檔案。同步調(diào)用,負(fù)責(zé)為給定的LUN或配額組獲取時(shí)間線回滾信息。0108批量的I/0請求可以通過I/0代理從索引刀片轉(zhuǎn)發(fā)到TSD刀片。0109在這里要注意的是根據(jù)如上所述的本公開,用于實(shí)現(xiàn)可伸縮和/或可移植的存儲(chǔ)管理系統(tǒng)的技術(shù)典型地要在一定程度上包括對輸入數(shù)據(jù)的處理以及產(chǎn)生輸出數(shù)據(jù)。這個(gè)輸入數(shù)據(jù)處理和輸出數(shù)據(jù)生成可通過硬件或者軟件實(shí)現(xiàn)。例如,可在存儲(chǔ)區(qū)域網(wǎng)(SAN)或類似的或相關(guān)的電路中使用特定的電子元件以實(shí)現(xiàn)根據(jù)上述的本公開的與存儲(chǔ)管理系統(tǒng)的可伸縮性和/或可移植性相關(guān)聯(lián)的功能。替代地,根據(jù)所存儲(chǔ)指令運(yùn)行的一個(gè)或更多個(gè)處理器可實(shí)現(xiàn)與根據(jù)上述的本公開的存儲(chǔ)管理系統(tǒng)可伸縮性和/或可移植性相關(guān)的功能。如果是這樣的一個(gè)情況,那么它在本公開的范圍內(nèi),這樣的指令可被存儲(chǔ)在一個(gè)或更多個(gè)處理器可讀的載體(例如磁盤)中,或者通過一個(gè)或更多個(gè)信號(hào)傳輸?shù)揭粋€(gè)或更多個(gè)處理器中。0110本公開并不限于這里闡述的特定實(shí)施例的范圍。事實(shí)上,根據(jù)前面的描述和附圖,除了本文上面描述的這些,本公開的其它各種實(shí)施例和對本公開的改變對本領(lǐng)域的一般技術(shù)人員是顯而易見的。這樣,這種其它實(shí)施例和改變都在本公開的范圍之內(nèi)。進(jìn)一步,盡管本公開在這里是在特定的環(huán)境中為特定目的的特定實(shí)施的背景中介紹的,但本領(lǐng)域的普通技術(shù)人員應(yīng)明白其有用性不限于此并且本公開可在任意多個(gè)環(huán)境中為任何數(shù)量的目的進(jìn)行有益地實(shí)施。此外,下面闡述的權(quán)利要求應(yīng)考慮到此處闡述的本公開的全文和精神來解釋。權(quán)利要求1.一種與存儲(chǔ)系統(tǒng)操作性地耦連的存儲(chǔ)管理系統(tǒng),所述存儲(chǔ)管理系統(tǒng)包括多個(gè)處理器模塊,其中每一個(gè)處理器模塊能夠攔截指向所述存儲(chǔ)系統(tǒng)的寫入命令,備份與所述寫入命令相關(guān)聯(lián)的數(shù)據(jù),并產(chǎn)生含有所備份數(shù)據(jù)的時(shí)間戳的元數(shù)據(jù);以及一個(gè)或更多個(gè)索引模塊,其基于所述元數(shù)據(jù)產(chǎn)生一個(gè)或更多個(gè)用于所述備份數(shù)據(jù)的索引表,其中所述一個(gè)或更多個(gè)索引模塊與所述處理器模塊和存儲(chǔ)系統(tǒng)通信。2.根據(jù)權(quán)利要求1所述的存儲(chǔ)管理系統(tǒng),其中所述多個(gè)處理器模塊的數(shù)量是基于所述存儲(chǔ)管理系統(tǒng)的所需容量可增減的。3.根據(jù)權(quán)利要求1所述的存儲(chǔ)管理系統(tǒng),其中所述多個(gè)處理器模塊被配置為容錯(cuò)冗余的。4.根據(jù)權(quán)利要求1所述的存儲(chǔ)管理系統(tǒng),其中所述多個(gè)處理器模塊通過光纖連接與所述存儲(chǔ)系統(tǒng)耦連。5.根據(jù)權(quán)利要求1所述的存儲(chǔ)管理系統(tǒng),其中所述多個(gè)處理器模塊的每一個(gè)包括至少一個(gè)目標(biāo)接口和至少一個(gè)啟動(dòng)器接口。6.根據(jù)權(quán)利要求1所述的存儲(chǔ)管理系統(tǒng),其中所述多個(gè)處理器模塊相互通信。7.根據(jù)權(quán)利要求1所述的存儲(chǔ)管理系統(tǒng),其中刀片場中的所述一個(gè)或更多個(gè)索引模塊的數(shù)量是基于所述刀片場支持的處理器模塊的數(shù)量可增減的。8.根據(jù)權(quán)利要求1所述的存儲(chǔ)管理系統(tǒng),其中所述一個(gè)或更多個(gè)索引模塊通過光纖連接存取所述存儲(chǔ)系統(tǒng)中的一個(gè)或更多個(gè)元數(shù)據(jù)存儲(chǔ)裝置。9.根據(jù)權(quán)利要求1所述的存儲(chǔ)管理系統(tǒng),其中所述一個(gè)或更多個(gè)索引模塊通過一個(gè)或更多個(gè)內(nèi)部網(wǎng)絡(luò)與所述多個(gè)處理器模塊通信。10.根據(jù)權(quán)利要求1所述的存儲(chǔ)管理系統(tǒng),其中所述一個(gè)或更多個(gè)索引模塊通過多個(gè)中介和代理與所述多個(gè)處理器模塊通信。11.根據(jù)權(quán)利要求1所述的存儲(chǔ)管理系統(tǒng),其中所述一個(gè)或更多個(gè)索引模塊進(jìn)一步執(zhí)行一個(gè)或更多個(gè)功能,所述功能從刀片結(jié)構(gòu)、重映射引擎、全局?jǐn)?shù)據(jù)庫、產(chǎn)品復(fù)原、時(shí)間線壓縮、索引數(shù)據(jù)庫接口、元數(shù)據(jù)空間管理以及賣主多路徑中選擇。12.—種用于提高與存儲(chǔ)系統(tǒng)操作性耦連的存儲(chǔ)管理系統(tǒng)的可移植性和可伸縮性的方法,所述方法包括耦連多個(gè)處理器模塊到所述存儲(chǔ)系統(tǒng),其中每個(gè)處理器模塊能夠攔截指向所述存儲(chǔ)系統(tǒng)的寫入命令,備份與所述寫入命令相關(guān)聯(lián)的數(shù)據(jù),并為所備份數(shù)據(jù)產(chǎn)生含有時(shí)間戳的元數(shù)據(jù);耦連含有一個(gè)或更多個(gè)索引模塊的刀片場到所述存儲(chǔ)系統(tǒng);以及使所述刀片場通過一個(gè)或更多個(gè)內(nèi)部網(wǎng)絡(luò)與所述多個(gè)處理器模塊通信,其中所述一個(gè)或更多個(gè)索引模塊基于所述元數(shù)據(jù)為所述備份數(shù)據(jù)產(chǎn)生一個(gè)或更多個(gè)索引表。13.在至少一個(gè)載波中包含的至少一個(gè)信號(hào),用于傳輸計(jì)算機(jī)程序指令,所述指令被設(shè)置為被至少一個(gè)處理器可讀,用于指示所述至少一個(gè)處理器來執(zhí)行計(jì)算機(jī)處理,以執(zhí)行根據(jù)權(quán)利要求12所述的方法。14.至少一個(gè)處理器可讀的載體,用于存儲(chǔ)計(jì)算機(jī)程序指令,所述指令被設(shè)置為被至少一個(gè)處理器可讀取,用于指示所述至少一個(gè)處理器來執(zhí)行計(jì)算機(jī)處理,以執(zhí)行根據(jù)權(quán)利要求12所述的方法。15.—種用于提高與存儲(chǔ)系統(tǒng)操作性耦連的存儲(chǔ)管理系統(tǒng)的可移植性和可伸縮性的方法,所述方法包括在多個(gè)處理器模塊攔截指向所述存儲(chǔ)系統(tǒng)的寫入命令;備份與所述寫入命令相關(guān)聯(lián)的數(shù)據(jù);為所備份數(shù)據(jù)產(chǎn)生含有時(shí)間戳的元數(shù)據(jù);以及在一個(gè)或更多個(gè)索引模塊,基于所述元數(shù)據(jù)為所述備份數(shù)據(jù)產(chǎn)生一個(gè)或更多個(gè)索引表,其中所述一個(gè)或更多個(gè)索引模塊和所述處理器模塊以及所述存儲(chǔ)系統(tǒng)通信。全文摘要本發(fā)明公開了一種用于提高存儲(chǔ)管理系統(tǒng)的可伸縮性和可移植性的技術(shù)。在一個(gè)特定示例實(shí)施例中,所述技術(shù)可實(shí)現(xiàn)為與存儲(chǔ)系統(tǒng)操作性耦連的存儲(chǔ)管理系統(tǒng)。所述存儲(chǔ)管理系統(tǒng)可包括多個(gè)處理器模塊,其中每個(gè)處理器模塊能夠攔截指向所述存儲(chǔ)系統(tǒng)的寫入命令,備份與所述寫入命令相關(guān)的數(shù)據(jù),并且產(chǎn)生含有所備份數(shù)據(jù)的時(shí)間戳的元數(shù)據(jù)。所述存儲(chǔ)管理系統(tǒng)也可包括一個(gè)或更多個(gè)索引模塊,索引模塊基于所述元數(shù)據(jù)產(chǎn)生備份數(shù)據(jù)的一個(gè)或更多個(gè)索引表,其中所述一個(gè)或更多個(gè)索引模塊與所述處理器模塊和所述存儲(chǔ)系統(tǒng)通信。文檔編號(hào)G06F12/00GK101535965SQ200680042687公開日2009年9月16日申請日期2006年10月13日優(yōu)先權(quán)日2005年10月14日發(fā)明者C·A·羅克,M·D·安東尼,R·P·帕塞里尼,R·W·佩里申請人:塞門鐵克操作公司