亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于提供數(shù)據(jù)的長(zhǎng)期存儲(chǔ)的系統(tǒng)和方法

文檔序號(hào):6349748閱讀:232來(lái)源:國(guó)知局
專利名稱:用于提供數(shù)據(jù)的長(zhǎng)期存儲(chǔ)的系統(tǒng)和方法
用于提供數(shù)據(jù)的長(zhǎng)期存儲(chǔ)的系統(tǒng)和方法
背景技術(shù)
組織機(jī)構(gòu)產(chǎn)生和積累增長(zhǎng)的大量的電子數(shù)據(jù),其需要適當(dāng)?shù)乇A舨⒃谛枰獣r(shí)迅速地得到??紤]到涉及大量的數(shù)據(jù)以及多數(shù)這些數(shù)據(jù)延長(zhǎng)的保留期間,存儲(chǔ)系統(tǒng)的成本效益和能源效率是重要的。此外,存儲(chǔ)系統(tǒng)也應(yīng)能夠復(fù)原系統(tǒng)的部分故障。此外,存儲(chǔ)系統(tǒng)應(yīng)允許容量上的逐漸增長(zhǎng),以方便系統(tǒng)的升級(jí)和將數(shù)據(jù)移動(dòng)到新的存儲(chǔ)器件。


在以下的詳細(xì)描述和附圖中公開本發(fā)明的各種實(shí)施例。
圖I是圖示數(shù)據(jù)的長(zhǎng)期存儲(chǔ)系統(tǒng)的實(shí)施例的框圖。圖2是圖示片段存儲(chǔ)引擎的實(shí)施例的框圖。圖3是圖示數(shù)據(jù)的長(zhǎng)期存儲(chǔ)系統(tǒng)的實(shí)施例的框圖。圖4是圖示存儲(chǔ)數(shù)據(jù)的過(guò)程的實(shí)施例的流程圖。圖5是圖示存儲(chǔ)數(shù)據(jù)的過(guò)程的實(shí)施例的流程圖。圖6是圖示存儲(chǔ)片段的過(guò)程的流程圖。圖7是圖示從存儲(chǔ)系統(tǒng)讀取文件的過(guò)程的實(shí)施例的流程圖。圖8是圖示從存儲(chǔ)系統(tǒng)刪除文件的過(guò)程的實(shí)施例的流程圖。
具體實(shí)施例方式本發(fā)明能以眾多方式實(shí)施,包括作為過(guò)程;器件;系統(tǒng);物質(zhì)成分;包含在計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品;和/或處理器,諸如配置為運(yùn)行存儲(chǔ)在耦合于處理器的存儲(chǔ)器中和/或由該存儲(chǔ)器提供的指令的處理器。在本說(shuō)明書中,這些實(shí)現(xiàn),或本發(fā)明可采用的任何其它形式,均可指技術(shù)手段。一般而言,可在本發(fā)明的范圍內(nèi)改變所公開的過(guò)程的步驟順序。除非另有說(shuō)明,描述為配置成執(zhí)行任務(wù)的部件,諸如處理器或存儲(chǔ)器,可實(shí)現(xiàn)為在給定時(shí)間臨時(shí)配置為執(zhí)行任務(wù)的通用部件或制造為執(zhí)行該任務(wù)的特定部件。正如這里使用的,術(shù)語(yǔ)“處理器”是指配置為處理數(shù)據(jù)、諸如計(jì)算機(jī)程序指令的ー個(gè)或多個(gè)器件、電路、和/或處理核。本發(fā)明的一個(gè)或多個(gè)實(shí)施例的詳細(xì)描述連同圖示本發(fā)明的原理的附圖一起被提供在下面。結(jié)合這些實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求限定,并且本發(fā)明包括了眾多變形、修改和等效。在以下描述中說(shuō)明眾多具體細(xì)節(jié)以供徹底地理解本發(fā)明。這些細(xì)節(jié)為了舉例而被提供,本發(fā)明可根據(jù)權(quán)利要求實(shí)現(xiàn)而不使用ー些或全部的這些具體細(xì)節(jié)。為清楚起見,本發(fā)明涉及的技術(shù)領(lǐng)域所公知的技術(shù)材料未詳細(xì)描述,以便本發(fā)明被不必要地模糊。公開了提供數(shù)據(jù)的長(zhǎng)期存儲(chǔ)。將文件分為ー個(gè)或多個(gè)片段。將該ー個(gè)或多個(gè)片段存儲(chǔ)在第一存儲(chǔ)單元。將元數(shù)據(jù)添加到第一存儲(chǔ)單元以便能獨(dú)立于另一存儲(chǔ)單元地訪問(wèn)該文件。單個(gè)命名空間實(shí)現(xiàn)對(duì)存儲(chǔ)在第一存儲(chǔ)單元和另一存儲(chǔ)單元中的文件的訪問(wèn)。在一些實(shí)施例中,存儲(chǔ)系統(tǒng)能夠成本高效地和能量高效地用于存儲(chǔ)文件。將文件存儲(chǔ)為ー個(gè)或多個(gè)片段,其中在存儲(chǔ)系統(tǒng)(例如,跨越系統(tǒng)的ー個(gè)存儲(chǔ)単元的消重)消重片段(例如,僅存儲(chǔ)ー個(gè)副本且其用于/能用于重建多于ー個(gè)文件)。片段存儲(chǔ)在主存儲(chǔ)單元中并周期性地(例如,每個(gè)星期)基于轉(zhuǎn)移協(xié)議(例如,存儲(chǔ)單元大于當(dāng)非活動(dòng)時(shí)等等的容量限度、每小時(shí)片段數(shù)量)來(lái)存儲(chǔ),或當(dāng)存儲(chǔ)單元已滿或滿足ー個(gè)或多個(gè)條件(例如,為80%滿、為不足20%活動(dòng)、在最后ー小時(shí)已無(wú)訪問(wèn)等),將屬于基于移動(dòng)策略識(shí)別的文件的片段(例如,在預(yù)定的時(shí)間段未修改或訪問(wèn)的特定文件類型的文件待被移動(dòng)等)轉(zhuǎn)移到第ニ存儲(chǔ)單元。由于第二存儲(chǔ)單元已裝滿,將元數(shù)據(jù)轉(zhuǎn)移到第二存儲(chǔ)單元以便第二存儲(chǔ)單元具有全部的必要信息來(lái)訪問(wèn)在第二存儲(chǔ)單元中的文件。元數(shù)據(jù)能使得系統(tǒng)重建存儲(chǔ)在系統(tǒng)中的文件(例如,在整個(gè)系統(tǒng)中,在存儲(chǔ)單元中等)和/或?qū)⒋鎯?chǔ)在系統(tǒng)中的文件與它們的名稱關(guān)聯(lián)。這也允許系統(tǒng)為了節(jié)能而將存儲(chǔ)單元斷電或?qū)⒋鎯?chǔ)單元離線來(lái)升級(jí)存儲(chǔ)単元或者使得系統(tǒng)容錯(cuò),以便在任何給定的存儲(chǔ)單元故障時(shí)系統(tǒng)能夠運(yùn)作。當(dāng)存儲(chǔ)單元裝滿時(shí),系統(tǒng)從主存儲(chǔ)單元轉(zhuǎn)移片段到另一存儲(chǔ)單元。系統(tǒng)能通過(guò)增量地加入存儲(chǔ)單元來(lái)擴(kuò)展。利用單個(gè)命名空間訪問(wèn)文件,從而提供了易用的接ロ。由于僅有一個(gè)消重引擎用于多個(gè)存儲(chǔ)單元,所以高效地使用硬件。在一些實(shí)施例中,系統(tǒng)不具有主存儲(chǔ)單元并在第一存儲(chǔ)單元中存儲(chǔ)片段,然后當(dāng)?shù)谝淮鎯?chǔ)單元已滿時(shí),系統(tǒng)在第二存儲(chǔ)單元中存儲(chǔ)片段。在一些實(shí)施例中,文件由名稱進(jìn)行識(shí)別,該名稱獨(dú)立于存儲(chǔ)文件的存儲(chǔ)單元。當(dāng)接收待存放的文件時(shí),也接收與文件關(guān)聯(lián)的名稱。當(dāng)接收讀取文件的請(qǐng)求時(shí),也接收名稱。系統(tǒng)查找與系統(tǒng)中的文件關(guān)聯(lián)的元數(shù)據(jù)來(lái)識(shí)別與接收的名稱關(guān)聯(lián)的文件。然后查找與已識(shí)別的文件關(guān)聯(lián)的元數(shù)據(jù)來(lái)確定存儲(chǔ)已識(shí)別的文件的存儲(chǔ)單元。在各種的實(shí)施例中,與系統(tǒng)中的文件關(guān)聯(lián)的元數(shù)據(jù)保持在主存儲(chǔ)單元中、保持在存儲(chǔ)與元數(shù)據(jù)關(guān)聯(lián)的文件的每個(gè)存儲(chǔ)單元中、以分布式和/或冗余方式保持在跨越多個(gè)存儲(chǔ)単元中(例如,為了容錯(cuò))、保持在分離的存儲(chǔ)單元中或存儲(chǔ)單元中、或任何其它合適的存儲(chǔ)位置。
在一些實(shí)施例中,當(dāng)下ー個(gè)可用的存儲(chǔ)單元被識(shí)別(例如,被選擇)為活動(dòng)存儲(chǔ)單元時(shí),將與系統(tǒng)中的文件關(guān)聯(lián)的元數(shù)據(jù)復(fù)制到活動(dòng)存儲(chǔ)單元。這允許僅當(dāng)存儲(chǔ)單元上電時(shí),與系統(tǒng)中的文件關(guān)聯(lián)的元數(shù)據(jù)是可用的。在一些實(shí)施例中,后續(xù)僅對(duì)存儲(chǔ)在活動(dòng)存儲(chǔ)單元中的元數(shù)據(jù)的副本進(jìn)行與文件關(guān)聯(lián)的元數(shù)據(jù)的更新。在一些實(shí)施例中,如果活動(dòng)存儲(chǔ)單元已滿,則所有的元數(shù)據(jù)更新與活動(dòng)存儲(chǔ)單元保持齊平以便姆個(gè)存儲(chǔ)單元包含至少足夠的元數(shù)據(jù)來(lái)支持對(duì)其包含的文件的訪問(wèn)。當(dāng)活動(dòng)存儲(chǔ)單元故障時(shí),系統(tǒng)使用包含在其它附屬存儲(chǔ)單元(例如,先前活動(dòng)存儲(chǔ)單元)中的元數(shù)據(jù)來(lái)提供對(duì)仍在系統(tǒng)中的文件的訪問(wèn)。在一些實(shí)施例中,當(dāng)存儲(chǔ)單元不可用時(shí)(例如,存儲(chǔ)單元故障、正在升級(jí)等),系統(tǒng)仍提供對(duì)任何不存儲(chǔ)在故障存儲(chǔ)單元中的文件的訪問(wèn)。在一些實(shí)施例中,系統(tǒng)包括電源管理単元。在預(yù)知存儲(chǔ)單元空閑一段時(shí)間的情況下,系統(tǒng)將存儲(chǔ)單元斷電。系統(tǒng)仍能夠訪問(wèn)任何其它未斷電的存儲(chǔ)單元上的文件。然后,當(dāng)系統(tǒng)接收到指向存儲(chǔ)單元的請(qǐng)求時(shí),系統(tǒng)將存儲(chǔ)單元上電。將存儲(chǔ)単元斷電可包括將存儲(chǔ)単元的盤中的ー些電子設(shè)備關(guān)閉電源、盤降速、將盤斷電和/或?qū)⒋鎯?chǔ)単元中的電子設(shè)備斷電,或任何其它適當(dāng)?shù)碾姤?jié)約步驟。斷電動(dòng)作可取決于預(yù)知存儲(chǔ)單元空閑多久。在一些實(shí)施例中,預(yù)知存儲(chǔ)單元空閑的時(shí)間長(zhǎng)度基于存儲(chǔ)單元已經(jīng)空閑了多久。例如,如果存儲(chǔ)單元在預(yù)定的時(shí)間段內(nèi)未接收到任何請(qǐng)求,則存儲(chǔ)單元中的盤降速。在存儲(chǔ)單元在此外的預(yù)定時(shí)間段內(nèi)未接收到任何請(qǐng)求的情況下,存儲(chǔ)單元的盤被關(guān)閉電源。在一些實(shí)施例中,系統(tǒng)跟蹤盤已進(jìn)行電カ循環(huán)的次數(shù)并使用電カ循環(huán)信息來(lái)決定合適的斷電動(dòng)作。例如,當(dāng)電力循環(huán)的次數(shù)超過(guò)預(yù)定的閾值時(shí),系統(tǒng)可決定不再將盤斷電。在一些實(shí)施例中,在文件已刪除的情況下,更新與系統(tǒng)中的文件關(guān)聯(lián)的元數(shù)據(jù)以反映該文件已刪除。然后,通過(guò)將未從存儲(chǔ)単元(例如,容器、驅(qū)動(dòng)器、驅(qū)動(dòng)器陣列等)刪除的文件轉(zhuǎn)移到新的存儲(chǔ)單元并消重存儲(chǔ)在新的存儲(chǔ)單元中的片段來(lái)執(zhí)行空間回收過(guò)程來(lái)壓縮剩余的文件以裝滿整個(gè)存儲(chǔ)単元。一旦文件已從舊的存儲(chǔ)單元轉(zhuǎn)移,可使存儲(chǔ)單元用于存儲(chǔ)新的文件。在一些實(shí)施例中,系統(tǒng)是消重存儲(chǔ)系統(tǒng)(例如,加州,圣克拉拉Data Domain公司的存儲(chǔ)系統(tǒng))。每個(gè)存儲(chǔ)單元都是消重域,意味著數(shù)據(jù)(例如,片段)的重復(fù)塊(duplicatechunk)僅在每個(gè)存儲(chǔ)単元中而并不跨越不同的存儲(chǔ)單元被識(shí)別。每個(gè)存儲(chǔ)單元包含能用于決定片段是否已經(jīng)存在于存儲(chǔ)単元中的片段索引。在一些實(shí)施例中,片段索引使用指紋來(lái)索引片段。在一些實(shí)施例中,描述的系統(tǒng)用作包括其它存儲(chǔ)層的存儲(chǔ)層級(jí)中的存儲(chǔ)層。在此層級(jí)中的ー個(gè)或多個(gè)存儲(chǔ)層可使用不同種類的存儲(chǔ)器件和/或可以以不同特性諸如隨機(jī)更新性能而最優(yōu)化?;跀?shù)據(jù)管理策略周期性地在層間移動(dòng)文件來(lái)達(dá)到成本高效地匹配當(dāng)前的文件存儲(chǔ)要求。例如,文件可最初存儲(chǔ)在提供高性能讀和寫的存儲(chǔ)層。當(dāng)文件變老吋,根據(jù)本發(fā)明可將其移動(dòng)到存儲(chǔ)層中。在各種的實(shí)施例中,層包括不同的存儲(chǔ)技術(shù)(例如,帶、硬盤驅(qū)動(dòng)器、基于半導(dǎo)體的存儲(chǔ)器、光盤驅(qū)動(dòng)器等),不同的位置(例如,本地計(jì)算機(jī)存儲(chǔ)、本地網(wǎng)絡(luò)存儲(chǔ)、遠(yuǎn)程網(wǎng)絡(luò)存儲(chǔ)、分布式存儲(chǔ)、云存儲(chǔ)、歸檔存儲(chǔ)、庫(kù)存儲(chǔ)等),或任何其它合適的用于分層數(shù)據(jù)存儲(chǔ)系統(tǒng)的存儲(chǔ)。在一些實(shí)施例中,存儲(chǔ)系統(tǒng)遵循保留策略,其中保留或不保留不同年齡的文件(例如,移除大于7年的文件)。在一些實(shí)施例中,保留策略取決于文件的類型(例如,財(cái)務(wù)信息無(wú)限期保留,電子郵件保留I年,稅務(wù)信息保留7年等)。圖I是圖示數(shù)據(jù)的長(zhǎng)期存儲(chǔ)系統(tǒng)的實(shí)施例的框圖。在示出的例子中,用戶使用存儲(chǔ)用戶系統(tǒng)110或通過(guò)存儲(chǔ)用戶系統(tǒng)110經(jīng)由網(wǎng)絡(luò)108訪問(wèn)存儲(chǔ)系統(tǒng)100。在各種的實(shí)施例中,網(wǎng)絡(luò)108包括有線網(wǎng)絡(luò)、無(wú)線網(wǎng)絡(luò)、局域網(wǎng)、廣域網(wǎng)、因特網(wǎng)或任何其它合適的網(wǎng)絡(luò)中的ー個(gè)或多個(gè)。存儲(chǔ)系統(tǒng)100包括系統(tǒng)接ロ 102、片段存儲(chǔ)引擎104和多個(gè)存儲(chǔ)単元(在圖I中由存儲(chǔ)單元112、存儲(chǔ)單元114、存儲(chǔ)單元116和存儲(chǔ)單元118代表)。通過(guò)復(fù)制存儲(chǔ)系統(tǒng)106來(lái)復(fù)制存儲(chǔ)系統(tǒng)100。例如,通過(guò)將存儲(chǔ)在存儲(chǔ)單元上的片段和元數(shù)據(jù)存儲(chǔ)到另一存儲(chǔ)單元而復(fù)制存儲(chǔ)單元。在一些實(shí)施例中,存儲(chǔ)用戶系統(tǒng)110經(jīng)由網(wǎng)絡(luò)108發(fā)送待存儲(chǔ)的文件到存儲(chǔ)系統(tǒng)100。存儲(chǔ)系統(tǒng)100利用系統(tǒng)接ロ 102接收文件。片段存儲(chǔ)引擎104將文件分成片段(例如,在文件中識(shí)別ー個(gè)或多個(gè)片段的邊界-例如,哈希函數(shù)運(yùn)作于文件內(nèi)容的一部分上,當(dāng)哈希函數(shù)等于ー值、文件窗中的最小值、最大值或者極值時(shí)等)。存儲(chǔ)重建文件的片段和信息。片段存儲(chǔ)引擎104在存儲(chǔ)單元中存儲(chǔ)片段(例如,存儲(chǔ)單元112、存儲(chǔ)單元114、存儲(chǔ)單 元116或存儲(chǔ)單元118)。在各種的實(shí)施例中,存儲(chǔ)單元包括存儲(chǔ)器件、多個(gè)存儲(chǔ)器件、存儲(chǔ)器件的一部分、硬盤驅(qū)動(dòng)器、驅(qū)動(dòng)器陣列、半導(dǎo)體存儲(chǔ)器或任何其它合適的存儲(chǔ)單元。如果片段未事先存儲(chǔ)在存儲(chǔ)單元中,則片段存儲(chǔ)引擎104僅在存儲(chǔ)單元中存儲(chǔ)該片段。在片段已事先存儲(chǔ)的情況下,元數(shù)據(jù)存儲(chǔ)能利用事先存儲(chǔ)的片段重建文件的信息。在一些實(shí)施例中,存儲(chǔ)用戶系統(tǒng)110經(jīng)由網(wǎng)絡(luò)108請(qǐng)求存儲(chǔ)在存儲(chǔ)系統(tǒng)100上的文件。存儲(chǔ)系統(tǒng)100利用系統(tǒng)接ロ 102接收文件請(qǐng)求。片段存儲(chǔ)引擎104在合適的存儲(chǔ)單元中找到文件的組成片段并重建該文件。文件經(jīng)由網(wǎng)絡(luò)108被發(fā)送到存儲(chǔ)用戶系統(tǒng)110。在一些實(shí)施例中,存儲(chǔ)單元以壓縮形式存儲(chǔ)數(shù)據(jù)(例如,無(wú)損壓縮霍夫曼編碼、Lempel-Ziv Welch編碼;Λ編碼對(duì)片段的引用加上差別;劃分子段子段列表或?qū)ψ佣蔚囊茫?。在一些實(shí)施例中,不同存儲(chǔ)單元使用不同壓縮(例如,主存儲(chǔ)單元與其它存儲(chǔ)單元不同,一個(gè)存儲(chǔ)単元與另一存儲(chǔ)單元不同等)。圖2是圖示片段存儲(chǔ)引擎的實(shí)施例的框圖。在一些實(shí)施例中,圖2的系統(tǒng)用于實(shí)現(xiàn)圖I的片段存儲(chǔ)引擎104和/或圖3的片段存儲(chǔ)引擎304。在示出的例子中,片段存儲(chǔ)引擎200包括接ロ 202、分段器204、消重器206、文件系統(tǒng)208、索引210和存儲(chǔ)單元接ロ 212。片段存儲(chǔ)引擎200利用接ロ 202接收數(shù)據(jù)項(xiàng)。數(shù)據(jù)項(xiàng)或文件由分段器204和文件系統(tǒng)208處理。分段器204將數(shù)據(jù)項(xiàng)分成片段。在各種的實(shí)施例中,通過(guò)利用基于內(nèi)容的技術(shù)(例如, 在數(shù)據(jù)項(xiàng)的各種位置計(jì)算函數(shù),當(dāng)這個(gè)函數(shù)等于ー值時(shí)或當(dāng)該值是相對(duì)于計(jì)算的數(shù)據(jù)項(xiàng)的其它函數(shù)值的最小值、最大值或其它極值時(shí))、非基于內(nèi)容的技術(shù)(例如,基于數(shù)據(jù)項(xiàng)性質(zhì),例如,字節(jié)長(zhǎng)度、標(biāo)題、創(chuàng)建日期)或任何其它合適的技術(shù)來(lái)識(shí)別片段邊界從而將數(shù)據(jù)項(xiàng)分成片段。在各種實(shí)施例中,片段限定為最小和/或最大長(zhǎng)度,限定為每個(gè)數(shù)據(jù)項(xiàng)的最小或最大片段數(shù),或任何其他合適的限制。文件系統(tǒng)208處理信息來(lái)指示與數(shù)據(jù)項(xiàng)關(guān)聯(lián)的片段。在一些實(shí)施例中,指紋列表用于指示與數(shù)據(jù)項(xiàng)關(guān)聯(lián)的片段。文件系統(tǒng)208傳遞片段關(guān)聯(lián)信息到索引210。索引210用于利用存儲(chǔ)單元接ロ 212在存儲(chǔ)單元中定位存儲(chǔ)的片段。消重器206識(shí)別新接收的片段是否已存儲(chǔ)在存儲(chǔ)單元中。在片段已存儲(chǔ)在存儲(chǔ)單元中的情況下,存儲(chǔ)對(duì)先前存儲(chǔ)的片段的引用,而不是存儲(chǔ)新接收的片段。接ロ 202接收取回?cái)?shù)據(jù)項(xiàng)的請(qǐng)求。接ロ 202經(jīng)由存儲(chǔ)單元接ロ 212與文件系統(tǒng)208通信以識(shí)別存儲(chǔ)在存儲(chǔ)單元中的合適的片段。文件系統(tǒng)208經(jīng)由存儲(chǔ)單元接ロ 212與索引210通信以定位存儲(chǔ)在存儲(chǔ)單元中的合適的片段。合適的片段用于構(gòu)造請(qǐng)求的數(shù)據(jù)項(xiàng)。經(jīng)由接ロ 202提供數(shù)據(jù)項(xiàng)以響應(yīng)請(qǐng)求。在一些實(shí)施例中,文件系統(tǒng)208和/或索引210使用基于內(nèi)容的標(biāo)識(shí)符(例如,指紋)的樹來(lái)關(guān)聯(lián)文件與數(shù)據(jù)片段和在存儲(chǔ)單元中的它們的位置。由于合適的基于內(nèi)容的標(biāo)識(shí)符使用樹結(jié)構(gòu)容易識(shí)別,所以在與給定文件或數(shù)據(jù)項(xiàng)關(guān)聯(lián)的片段改變的情況下,基于內(nèi)容的標(biāo)識(shí)符將會(huì)改變且變化從與文件名(或目錄結(jié)構(gòu))關(guān)聯(lián)的樹的底部至頂部有效起伏。圖3是圖示數(shù)據(jù)的長(zhǎng)期存儲(chǔ)系統(tǒng)的實(shí)施例的框圖。在示出的例子中,用戶使用存儲(chǔ)用戶系統(tǒng)310或由存儲(chǔ)用戶系統(tǒng)310經(jīng)由網(wǎng)絡(luò)308訪問(wèn)存儲(chǔ)系統(tǒng)300。在各種的實(shí)施例中,網(wǎng)絡(luò)308包括有線網(wǎng)絡(luò)、無(wú)線網(wǎng)絡(luò)、局域網(wǎng)、廣域網(wǎng)、因特網(wǎng),或任何其他合適的網(wǎng)絡(luò)中的ー個(gè)或多個(gè)。存儲(chǔ)系統(tǒng)300包括系統(tǒng)接ロ 302、片段存儲(chǔ)引擎304、存儲(chǔ)單元接ロ引擎320和多個(gè)存儲(chǔ)単元(在圖3中由存儲(chǔ)單元312、存儲(chǔ)單元314、存儲(chǔ)單元316和存儲(chǔ)單元318代表)。通過(guò)復(fù)制存儲(chǔ)系統(tǒng)306來(lái)復(fù)制存儲(chǔ)系統(tǒng)300。在一些實(shí)施例中,存儲(chǔ)用戶系統(tǒng)310經(jīng)由網(wǎng)絡(luò)308發(fā)送待存儲(chǔ)的文件到存儲(chǔ)系統(tǒng)300。存儲(chǔ)系統(tǒng)300利用系統(tǒng)接ロ 302接收文件。片段存儲(chǔ)引擎304將文件分成片段(例如,在文件中識(shí)別ー個(gè)或多個(gè)片段的邊界-例如,哈希函數(shù)運(yùn)作于文件內(nèi)容的一部分上,當(dāng)哈希函數(shù)等于ー值、文件窗中的最小值、最大值或極值等時(shí))。存儲(chǔ)重建文件的片段和信息。片段存儲(chǔ)引擎304將片段存儲(chǔ)在主存儲(chǔ)單元312中。依照轉(zhuǎn)移協(xié)議、一組轉(zhuǎn)移條件、或任何其它合適的轉(zhuǎn)移規(guī)則,片段和元數(shù)據(jù)信息利用存儲(chǔ)單元接ロ引擎320從主存儲(chǔ)單元312轉(zhuǎn)移到另一存儲(chǔ)單元(例如,存儲(chǔ)單元314、存儲(chǔ)單元316或存儲(chǔ)單元318)。如果片段未事先存儲(chǔ)在存儲(chǔ)單元中,則片段存儲(chǔ)引擎304僅在存儲(chǔ)單元中存儲(chǔ)該片段。在片段已事先存儲(chǔ)的情況下,元數(shù)據(jù)存儲(chǔ)能利用事先存儲(chǔ)的片段來(lái)重建文件的信息。在一些實(shí)施例中,存儲(chǔ)用戶系統(tǒng)310經(jīng)由網(wǎng)絡(luò)308請(qǐng)求存儲(chǔ)在存儲(chǔ)系統(tǒng)300上的文件。存儲(chǔ)系統(tǒng)300利用系統(tǒng)接ロ 302接收文件請(qǐng)求。片段存儲(chǔ)引擎304找到用于在合適的存儲(chǔ)單元中存儲(chǔ)文件的片段并重建文件。經(jīng)由網(wǎng)絡(luò)308將該文件發(fā)送到存儲(chǔ)用戶系統(tǒng) 310。在一些實(shí)施例中,主存儲(chǔ)單元包括訪問(wèn)任何事先存儲(chǔ)的文件的元數(shù)據(jù)信息。在一些實(shí)施例中,元數(shù)據(jù)信息包括文件名、存儲(chǔ)與文件名關(guān)聯(lián)的片段的存儲(chǔ)單元、利用片段的文件重建信息和任何其它合適的元數(shù)據(jù)信息。在一些實(shí)施例中,元數(shù)據(jù)的副本存儲(chǔ)在用于存儲(chǔ)在存儲(chǔ)單元上的文件的存儲(chǔ)單元以便能僅利用存儲(chǔ)在存儲(chǔ)單元上的信息來(lái)訪問(wèn)存儲(chǔ)在存儲(chǔ)單元上的文件。在一些實(shí)施例中,在主要元數(shù)據(jù)丟失、損壞、損毀等情況下,能夠通過(guò)利用與存儲(chǔ)系統(tǒng)關(guān)聯(lián)的所有存儲(chǔ)單元的信息來(lái)重建主要的ー組元數(shù)據(jù)信息。在一些實(shí)施例中,能利用存儲(chǔ)在主存儲(chǔ)單元或其它存儲(chǔ)單元(例如,復(fù)制存儲(chǔ)單元)上的元數(shù)據(jù)信息來(lái)重建存儲(chǔ)單元的元數(shù)據(jù)。在一些實(shí)施例中,元數(shù)據(jù)信息包括索引信息(例如,存儲(chǔ)單元中片段的位置信息)。圖4是圖示存儲(chǔ)數(shù)據(jù)的過(guò)程的實(shí)施例的流程圖。在一些實(shí)施例中,圖4的過(guò)程用于在存儲(chǔ)系統(tǒng)(例如,圖I的存儲(chǔ)系統(tǒng))中存儲(chǔ)數(shù)據(jù)。在不出的例子中,在400中,接收待存儲(chǔ)的文件。在402中,將文件分成片段。在各種的實(shí)施例中,通過(guò)至少部分基于文件內(nèi)容(例如,一部分內(nèi)容匹配ー值、作為函數(shù)(例如,哈希函數(shù))輸入的一部分內(nèi)容匹配ー值、作為函數(shù)輸入的一部分內(nèi)容是相對(duì)于文件中的其它點(diǎn)的函數(shù)值的最小、最大或其它極值,等)、不基于文件內(nèi)容(例如,字節(jié)計(jì)數(shù)、文件標(biāo)記等)或任何其它的識(shí)別片段邊界的合適的方式來(lái)確定ー個(gè)或多個(gè)片段邊界,從而從文件產(chǎn)生片段。在404中,片段存儲(chǔ)在選擇的存儲(chǔ)單元(例如,活動(dòng)存儲(chǔ)單元)中。在406中,確定選擇的存儲(chǔ)單元是否已滿。在存儲(chǔ)單元已滿的情況下,在408中將元數(shù)據(jù)添加到選擇的存儲(chǔ)單元以便存儲(chǔ)單元包含訪問(wèn)存儲(chǔ)在選擇的存儲(chǔ)單元中的文件所需要的一整組信息。例如,元數(shù)據(jù)包含文件名和利用存儲(chǔ)在存儲(chǔ)單元中的片段的文件重建信息。選擇的存儲(chǔ)單元能被斷電、上電、使離線、使在線和/或在不影響數(shù)據(jù)存儲(chǔ)系統(tǒng)的其余部分情況下被升級(jí)。在410中,選擇下一存儲(chǔ)單元,以及過(guò)程結(jié)束。在選擇的存儲(chǔ)單元未滿的情況下,過(guò)程結(jié)束。在一些實(shí)施例中,如果將新文件和/或關(guān)聯(lián)的元數(shù)據(jù)信息寫入存儲(chǔ)單元時(shí)會(huì)超過(guò)存儲(chǔ)單元的容量,則認(rèn)為存儲(chǔ)單元已滿。在一些實(shí)施例中,在整個(gè)文件或關(guān)聯(lián)的元數(shù)據(jù)信息將不能裝入存儲(chǔ)單元中的情況下,移除一部分文件或元數(shù)據(jù)信息。圖5是圖示存儲(chǔ)數(shù)據(jù)的過(guò)程的實(shí)施例的流程圖。在一些實(shí)施例中,圖5的過(guò)程用于在存儲(chǔ)系統(tǒng)(例如,圖3的存儲(chǔ)系統(tǒng))中存儲(chǔ)數(shù)據(jù)。在不出的例子中,在500中,接收待存儲(chǔ)的文件。在502中,將文件分成片段。在各種的實(shí)施例中,通過(guò)至少部分基于文件內(nèi)容(例如,窗ロ內(nèi)容匹配ー值、函數(shù)輸入的窗ロ內(nèi)容匹配ー值、函數(shù)輸入的窗口內(nèi)容是相對(duì)于在文件中其它點(diǎn)的函數(shù)值的最小、最大或其它極值,等)、不基于文件的內(nèi)容(例如,字節(jié)計(jì)數(shù)、文件標(biāo)記等),或任何其它的識(shí)別片段邊界的合適的方式來(lái)確定ー個(gè)或多個(gè)片段邊界,從而從文件產(chǎn)生片段。在504中,片段存儲(chǔ)在主存儲(chǔ)單元中。在506中,根據(jù)轉(zhuǎn)移協(xié)議確定片段的轉(zhuǎn)移是否是合適的。在轉(zhuǎn)移是不合適的情況下,過(guò)程結(jié)束。在轉(zhuǎn)移是合適的情況下,在507中基于移動(dòng)策略選擇文件。例如,文件選擇為特定文件類型、未因文件類型的配置時(shí)間段而被修改或訪問(wèn)等。在508中,選擇的文件的片段從主存儲(chǔ)單元轉(zhuǎn)移到選擇的存儲(chǔ)單元。在510中,確定選擇的存儲(chǔ)單元是否已滿。在存儲(chǔ)單元已滿的情況下,在512中,添加元數(shù)據(jù)到選擇的存儲(chǔ)單元以便存儲(chǔ)單元包含訪問(wèn)存儲(chǔ)在選擇的存儲(chǔ)單元中的文件所需要的完整的ー套信息。例如,元數(shù)據(jù)包括文件名和利用存儲(chǔ)在存儲(chǔ)單元中的片段的文件重建信息。選擇的存儲(chǔ)單元能被斷電、上電、使離線、使在線和/或在不影響數(shù)據(jù)存儲(chǔ)系統(tǒng)的其余部分的情況下被升級(jí)。在514中,選擇 下一存儲(chǔ)單元,以及過(guò)程結(jié)束。在選擇的存儲(chǔ)單元未滿的情況下,過(guò)程結(jié)束。在一些實(shí)施例中,如果將新的文件和/或關(guān)聯(lián)元數(shù)據(jù)信息寫入存儲(chǔ)單元會(huì)超過(guò)存儲(chǔ)單元容量,則認(rèn)為存儲(chǔ)單元已滿。在一些實(shí)施例中,在整個(gè)文件或關(guān)聯(lián)元數(shù)據(jù)信息將不能裝入存儲(chǔ)單元中的情況下,移除一部分文件或元數(shù)據(jù)信息。圖6是圖示存儲(chǔ)片段的過(guò)程的流程圖。在一些實(shí)施例中,圖6的過(guò)程用于實(shí)現(xiàn)圖4的404和/或圖5的504。在示出的例子中,在600中確定該片段是否已事先存儲(chǔ)在存儲(chǔ)單元中。在各種的實(shí)施例中,消重域包括整個(gè)系統(tǒng)或存儲(chǔ)單元或一組存儲(chǔ)単元或任何其它合適的存儲(chǔ)器件組,在該情況下確定片段是否已事先分別存儲(chǔ)在整個(gè)系統(tǒng)、存儲(chǔ)単元、該組存儲(chǔ)單元或合適的存儲(chǔ)器件組中。在片段已事先存儲(chǔ)的情況下,在612中將元數(shù)據(jù)存儲(chǔ)存儲(chǔ)單元中,從而關(guān)聯(lián)事先存儲(chǔ)的片段和存儲(chǔ)單元與文件名。例如,元數(shù)據(jù)存儲(chǔ)在主存儲(chǔ)單元或活動(dòng)存儲(chǔ)單元中,且能用于通過(guò)識(shí)別關(guān)聯(lián)的片段、片段的順序和重建文件所需要的任何其他指令,來(lái)實(shí)現(xiàn)具有文件名的文件的重建。在片段未事先存儲(chǔ)的情況下,在602中將片段存儲(chǔ)在存儲(chǔ)單元中。例如,片段存儲(chǔ)在主存儲(chǔ)單元、活動(dòng)存儲(chǔ)單元等。在604中,更新用于存儲(chǔ)單元的索引。例如,該索引具有添加的對(duì)應(yīng)于新存儲(chǔ)片段的入口,包括片段的標(biāo)識(shí)符(例如,指紋)和在存儲(chǔ)單元中的位置(例如,到在存儲(chǔ)單元中的存儲(chǔ)位置的指針)。在606中,元數(shù)據(jù)存儲(chǔ)存儲(chǔ)單元中從而將片段和存儲(chǔ)單元與文件名關(guān)聯(lián)。例如,元數(shù)據(jù)存儲(chǔ)在主存儲(chǔ)単元或活動(dòng)存儲(chǔ)單元中井能用于通過(guò)識(shí)別已關(guān)聯(lián)的片段、片段的順序、和重建文件所需要的任何其他的指令來(lái)實(shí)現(xiàn)具有文件名的文件的重建。圖7是圖示從存儲(chǔ)系統(tǒng)讀取文件的過(guò)程的實(shí)施例的流程圖。在示出的例子中,在700中,接收讀取文件的請(qǐng)求。在702中,使用與文件關(guān)聯(lián)的元數(shù)據(jù)來(lái)確定存儲(chǔ)與該文件關(guān)聯(lián)的片段的存儲(chǔ)單元。在704中,確定存儲(chǔ)單元是否上電。在存儲(chǔ)單元未上電的情況下,在706中,將存儲(chǔ)單元上電,并控制進(jìn)行到708。在存儲(chǔ)單元已上電的情況下,在708中,利用索引確定存儲(chǔ)單元中的片段的位置。在710中,取回該片段。在712中,利用取回的片段和元數(shù)據(jù)信息重建該文件。在714中,提供請(qǐng)求的文件。在一些實(shí)施例中,與文件關(guān)聯(lián)的片段可存儲(chǔ)在多于ー個(gè)的存儲(chǔ)單元中。例如,當(dāng)文件的片段更新時(shí),更新的片段存儲(chǔ)在主存儲(chǔ)單元或活動(dòng)存儲(chǔ)單元中,而文件的其它片段可存儲(chǔ)在另一存儲(chǔ)單元中。在一些實(shí)施例中,電源管理協(xié)議確定何時(shí)將存儲(chǔ)單元斷電和上電。例如,在給定時(shí)間內(nèi)未接收到任何訪問(wèn)請(qǐng)求的存儲(chǔ)單元被斷電,而在給定時(shí)間段接收頻繁的訪問(wèn)或多于訪問(wèn)閾值數(shù)的訪問(wèn)請(qǐng)求的存儲(chǔ)單元保持上電。在一些實(shí)施例中,還由電源管理協(xié)議基于希望的訪問(wèn)速度或電カ節(jié)約指示不同水平的斷電(例如,上電、降速、暫停、關(guān)閉電源、上速(spinning) # ノ。。圖8是圖示從存儲(chǔ)系統(tǒng)刪除文件的過(guò)程的實(shí)施例的流程圖。在示出的例子中,在800中,接收刪除文件的請(qǐng)求。在802中,更新與文件關(guān)聯(lián)的元數(shù)據(jù)來(lái)指示文件已刪除。在一些實(shí)施例中,周期性地在系統(tǒng)上執(zhí)行清理過(guò)程來(lái)收回用于存儲(chǔ)僅與已刪除的 文件關(guān)聯(lián)的片段的存儲(chǔ)空間。盡管為了清楚理解的目的已通過(guò)一些細(xì)節(jié)描述了上述的實(shí)施例,但本發(fā)明并不限于所提供的細(xì)節(jié)。還有很多實(shí)現(xiàn)本發(fā)明的變形方式。所公開的實(shí)施例是說(shuō)明性的而不是限制性的。
權(quán)利要求
1.一種用于存儲(chǔ)文件的系統(tǒng),包括 處理器,配置為 將文件分成一個(gè)或多個(gè)片段; 在第一存儲(chǔ)單元中存儲(chǔ)所述一個(gè)或多個(gè)片段;以及 添加元數(shù)據(jù)到所述第一存儲(chǔ)單元以便所述文件能獨(dú)立于第二存儲(chǔ)單元地訪問(wèn),其中單個(gè)命名空間實(shí)現(xiàn)對(duì)存儲(chǔ)在所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元中的文件的訪問(wèn);以及 存儲(chǔ)器,耦合至所述處理器并配置為提供指令至所述處理器。
2.如權(quán)利要求I所述的系統(tǒng),其中,所述第一存儲(chǔ)單元包括元數(shù)據(jù)信息以提供對(duì)存儲(chǔ)在所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元中的文件的訪問(wèn)。
3.如權(quán)利要求I所述的系統(tǒng),其中,所述第一存儲(chǔ)單元包括消重域。
4.如權(quán)利要求I所述的系統(tǒng),其中,在所述第一存儲(chǔ)單元已滿的情況下,所述處理器進(jìn)一步配置為將所述一個(gè)或多個(gè)片段存儲(chǔ)到第三存儲(chǔ)單元。
5.如權(quán)利要求I所述的系統(tǒng),其中,根據(jù)轉(zhuǎn)移協(xié)議,處理器進(jìn)一步配置為根據(jù)移動(dòng)策略識(shí)別待轉(zhuǎn)移的轉(zhuǎn)移文件并轉(zhuǎn)移構(gòu)成所述轉(zhuǎn)移文件的一組片段到第三存儲(chǔ)單元。
6.如權(quán)利要求5所述的系統(tǒng),其中,所述轉(zhuǎn)移協(xié)議包括在所述第一存儲(chǔ)單元在預(yù)定的容量限度之上的情況下轉(zhuǎn)移所述一組片段的規(guī)則。
7.如權(quán)利要求5所述的系統(tǒng),其中,所述轉(zhuǎn)移協(xié)議包括根據(jù)時(shí)間表來(lái)轉(zhuǎn)移所述一組片段的規(guī)則。
8.如權(quán)利要求5所述的系統(tǒng),其中,所述轉(zhuǎn)移協(xié)議包括在未訪問(wèn)所述第一存儲(chǔ)單元的情況下轉(zhuǎn)移所述一組片段的規(guī)則。
9.如權(quán)利要求5所述的系統(tǒng),其中,轉(zhuǎn)移包括在所述第三存儲(chǔ)單元中存儲(chǔ)與所述轉(zhuǎn)移文件關(guān)聯(lián)的元數(shù)據(jù),使得所述轉(zhuǎn)移文件從所述第三存儲(chǔ)單元被訪問(wèn)。
10.如權(quán)利要求5所述的系統(tǒng),其中,所述移動(dòng)策略包括在預(yù)定的時(shí)間段未訪問(wèn)文件的情況下識(shí)別所述文件的規(guī)則。
11.如權(quán)利要求5所述的系統(tǒng),其中,所述移動(dòng)策略包括在預(yù)定的時(shí)間段修改文件的情況下識(shí)別所述文件的規(guī)則。
12.如權(quán)利要求10所述的系統(tǒng),其中,所述預(yù)定的時(shí)間段至少部分基于所述文件的類型來(lái)確定。
13.如權(quán)利要求5所述的系統(tǒng),其中,所述第三存儲(chǔ)單元斷電而所述第二存儲(chǔ)單元保持運(yùn)作,以訪問(wèn)存儲(chǔ)在所述第二存儲(chǔ)單元中的文件。
14.如權(quán)利要求13所述的系統(tǒng),其中,當(dāng)預(yù)知所述第三存儲(chǔ)單元空閑一段時(shí)間時(shí),所述第三存儲(chǔ)單元被斷電。
15.如權(quán)利要求13所述的系統(tǒng),其中,斷電包括以下的一個(gè)或多個(gè)將所述第三存儲(chǔ)單元中的盤的一些電子設(shè)備關(guān)閉電源、盤降速、盤斷電、以及將第三存儲(chǔ)單元中的電子設(shè)備斷電。
16.如權(quán)利要求I所述的系統(tǒng),其中,所述處理器進(jìn)一步配置為當(dāng)接收到刪除文件的指示時(shí)更新所述第一存儲(chǔ)單元中的元數(shù)據(jù)。
17.如權(quán)利要求16所述的系統(tǒng),其中,在空間回收過(guò)程中,丟棄僅與已刪除的文件相關(guān)聯(lián)的片段。
18.如權(quán)利要求I所述的系統(tǒng),其中,通過(guò)復(fù)制已存儲(chǔ)的片段和元數(shù)據(jù)而復(fù)制所述第一存儲(chǔ)單兀。
19.如權(quán)利要求I所述的系統(tǒng),其中,將文件分成一個(gè)或多個(gè)片段包括確定片段邊界。
20.如權(quán)利要求19所述的系統(tǒng),其中,至少部分基于所述文件的內(nèi)容來(lái)確定片段邊界。
21.如權(quán)利要求20所述的系統(tǒng),其中,至少部分基于利用施加到至少一部分所述文件的函數(shù)而計(jì)算出的值來(lái)確定片段邊界。
22.一種用于存儲(chǔ)數(shù)據(jù)的方法,包括 將文件分成一個(gè)或多個(gè)片段; 在第一存儲(chǔ)單元中存儲(chǔ)所述一個(gè)或多個(gè)片段;以及 添加元數(shù)據(jù)到所述第一存儲(chǔ)單元以便能獨(dú)立于第二存儲(chǔ)單元地訪問(wèn)所述文件,其中單個(gè)命名空間實(shí)現(xiàn)對(duì)存儲(chǔ)在所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元中的文件的訪問(wèn)。
23.一種用于存儲(chǔ)數(shù)據(jù)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包含在計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中并包括計(jì)算機(jī)指令以用于 將文件分成一個(gè)或多個(gè)片段; 在第一存儲(chǔ)單元中存儲(chǔ)所述一個(gè)或多個(gè)片段;以及 添加元數(shù)據(jù)到所述第一存儲(chǔ)單元以便所述文件能獨(dú)立于第二存儲(chǔ)單元地訪問(wèn),其中單個(gè)命名空間實(shí)現(xiàn)對(duì)存儲(chǔ)在所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元中的文件的訪問(wèn)。
全文摘要
一種用于存儲(chǔ)文件的系統(tǒng),包括處理器和存儲(chǔ)器。處理器配置為將文件分成一個(gè)或多個(gè)片段;在第一存儲(chǔ)單元中存儲(chǔ)該一個(gè)或多個(gè)片段;以及添加元數(shù)據(jù)到第一存儲(chǔ)單元以便該文件能獨(dú)立于第二存儲(chǔ)單元地訪問(wèn),其中單個(gè)命名空間實(shí)現(xiàn)對(duì)存儲(chǔ)在第一存儲(chǔ)單元和第二存儲(chǔ)單元中的文件的訪問(wèn)。存儲(chǔ)器耦合至處理器并配置為提供指令到處理器。
文檔編號(hào)G06F7/00GK102667709SQ201080028493
公開日2012年9月12日 申請(qǐng)日期2010年6月17日 優(yōu)先權(quán)日2009年6月25日
發(fā)明者R·H·帕特森, 許為善 申請(qǐng)人:Emc公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1