專利名稱:副本數(shù)據(jù)的動態(tài)安置的制作方法
副本數(shù)據(jù)的動態(tài)安置
背景技術(shù):
隨著計算設(shè)備變得更加普及并且在大眾之間廣泛地使用,這些設(shè)備生成和利用的數(shù)據(jù)量快速地增長。例如,計算和數(shù)據(jù)存儲技術(shù)的近來的進步已經(jīng)使得甚至形狀因子最受限制的設(shè)備也能夠針對各種耗費大量數(shù)據(jù)的應(yīng)用(如文檔編輯、媒體處理等)存儲和處理大量的信息。進一步,通信技術(shù)近來的進步可以使得計算設(shè)備能夠高速率地傳遞數(shù)據(jù)。除了其它技術(shù)之外,這些進步尤其已導(dǎo)致例如可以使用網(wǎng)絡(luò)上多個位置處的計算設(shè)備進行的分布式計算服務(wù)的實施方案。另外,這些進步已經(jīng)使得能夠?qū)崿F(xiàn)諸如基于網(wǎng)絡(luò)的存儲的服務(wù)的實施,所述服務(wù)允許計算設(shè)備的用戶將與計算設(shè)備相關(guān)聯(lián)的數(shù)據(jù)的一個或多個復(fù)本保持在網(wǎng)絡(luò)上的遠(yuǎn)程位置?,F(xiàn)有的系統(tǒng)和/或數(shù)據(jù)存儲解決方案使得用戶能夠在與其原始的源分離的位置和/或介質(zhì)中存儲信息。由此,例如可以將來自計算設(shè)備的數(shù)據(jù)從硬盤驅(qū)動器復(fù)制到諸如磁帶(tape)驅(qū)動器、外部硬盤驅(qū)動器之類的外部介質(zhì)。然而,在基于網(wǎng)絡(luò)的存儲的實施方案和/或可用來提供物理上的遠(yuǎn)程位置以用于存儲數(shù)據(jù)的其它解決方案中,與用戶機和遠(yuǎn)程存儲位置之間的用戶數(shù)據(jù)的傳輸和恢復(fù)相關(guān)聯(lián)的成本和復(fù)雜度可能在很大程度上限制系統(tǒng)的有用性。
發(fā)明內(nèi)容
以下呈現(xiàn)對于本創(chuàng)新的簡化的總結(jié),以便提供對于這里描述的某些方面的基本理解。該總結(jié)不是對于所請求保護的主題的詳盡的綜述。其并非旨在識別所請求保護的主題的關(guān)鍵或決定性的要素,也并非旨在描繪主題創(chuàng)新的范圍。其唯一目的在于以簡化的形式呈現(xiàn)所請求保護的主題的某些構(gòu)思,作為對于稍后呈現(xiàn)的更詳細(xì)描述的前序。本主題創(chuàng)新涉及方便數(shù)據(jù)的分布式存儲的系統(tǒng)和/或方法。分布式文件系統(tǒng)可以在存儲節(jié)點上實施,以使得系統(tǒng)將數(shù)據(jù)的多個復(fù)本(例如副本)置于各種完全不同的存儲節(jié)點以保證數(shù)據(jù)的可用性并使數(shù)據(jù)的丟失最小化??梢赃x擇副本的安置和數(shù)量以滿足可用性和耐用性要求。另外,可以優(yōu)化安置決定以降低成本(例如存儲成本、帶寬成本、延遲成本寸y。根據(jù)一個方面,動態(tài)地評估存儲節(jié)點以識別各個特征。在一個示例中,所述特征可包括存儲節(jié)點的可用性、存儲節(jié)點的容量、與存儲節(jié)點相關(guān)聯(lián)的數(shù)據(jù)存儲成本、與存儲節(jié)點相關(guān)聯(lián)的數(shù)據(jù)傳輸成本、存儲節(jié)點的定位、網(wǎng)絡(luò)拓?fù)?、與存儲節(jié)點相關(guān)聯(lián)的用戶偏好、副本要求的便利選擇。這些特征可用于生成最佳的安置決定。另外,這些特性可用于支持副本安置的動態(tài)重新分配。根據(jù)另一方面,可以通過在此描述的分布式存儲技術(shù)來支持混合備份架構(gòu)。在混合備份架構(gòu)中,備份數(shù)據(jù)可以保留在網(wǎng)絡(luò)或互聯(lián)網(wǎng)絡(luò)內(nèi)的全球位置(例如“云”)以及一個或多個對等點上。據(jù)此,某些或所有的備份數(shù)據(jù)可以從云或靠近的對等點獲得,由此降低了與恢復(fù)操作相關(guān)聯(lián)的延遲和帶寬消耗。在一個示例中,可以基于諸如但不限于位置的可用性、 網(wǎng)絡(luò)拓?fù)?、位置資源等等之類的因素來以智能和自動的方式選擇要用于存儲和/或重新獲得備份數(shù)據(jù)的位置的選擇。下列描述和附圖詳細(xì)闡述了所請求保護的主題的某些說明性的方面。然而,這些方面只表示可以采用本創(chuàng)新原理的各種方式中的一些,所請求保護的主題旨在包括所有這些方面及其等同體。當(dāng)結(jié)合附圖加以考慮時,所請求保護的主題的其他優(yōu)點和新穎特性將會根據(jù)對于本創(chuàng)新的下列詳細(xì)描述而變得顯而易見。
圖1圖示根據(jù)各種方面的方便副本數(shù)據(jù)在一組存儲節(jié)點之間的分布式安置的示例系統(tǒng)的框圖。圖2圖示根據(jù)各種方面的方便生成副本要求的示例系統(tǒng)的框圖。圖3圖示根據(jù)一個或多個方面的方便在一組存儲節(jié)點之間分發(fā)數(shù)據(jù)的副本的示例系統(tǒng)的框圖。圖4圖示根據(jù)各種方面的方便監(jiān)視存儲節(jié)點以動態(tài)分發(fā)副本的示例系統(tǒng)的框圖。圖5圖示可與在此描述的各種方面結(jié)合使用的示例網(wǎng)絡(luò)實施方案的框圖。圖6圖示根據(jù)各種方面的方便生成和分發(fā)數(shù)據(jù)副本的示例系統(tǒng)的框圖。圖7圖示根據(jù)各種方面的用于生成要在分布式文件系統(tǒng)中存儲的部分?jǐn)?shù)據(jù)的副本要求的示例性方法。圖8圖示根據(jù)各種方面的用于在存儲節(jié)點之間分發(fā)部分?jǐn)?shù)據(jù)的副本的示例性方法。圖9圖示可以采用所請求保護的主題的新穎方面的示例性聯(lián)網(wǎng)環(huán)境。圖10圖示根據(jù)所請求保護的主題可采用的示例性操作環(huán)境。
具體實施例方式參照附圖描述所請求保護的主題,其中貫穿各附圖,相似的附圖標(biāo)記用以指代相似的要素。在下列描述中,為了說明,闡述許多特定的細(xì)節(jié)以便提供對于主題創(chuàng)新的徹底理解。然而,可能顯而易見的是,所請求保護的主題可以在沒有這些特定細(xì)節(jié)的情況下加以實施。在其它例子中,以框圖形式示出了公知的結(jié)構(gòu)和設(shè)備,以方便描述主題創(chuàng)新。如這里所使用的,措詞“組件”、“系統(tǒng)”、“數(shù)據(jù)存儲裝置”、“云”、“對等點”、“超級對等點”、“客戶端”等旨在指代與計算機有關(guān)的實體(硬件、硬件上執(zhí)行的軟件和/或固件)。 例如,組件可以是處理器上運行的進程、對象、可執(zhí)行程序、程序、函數(shù)、庫、子例程和/或計算機,或者硬件和軟件的組合。通過說明的方式,服務(wù)器上運行的應(yīng)用程序和服務(wù)器兩者均可以是組件。一個或多個組件可以駐留在進程內(nèi),并且組件可以局部化于一個計算機上和 /或分布在兩個或更多個計算機之間。各種方面將會以可包括數(shù)個組件、模塊等的系統(tǒng)而加以呈現(xiàn)。要明白和理解的是, 所述各種系統(tǒng)可以包括額外的組件、模塊等,和/或可以并非包括結(jié)合附圖討論的所有這些組件、模塊等。也可以使用這些辦法的組合??梢詫﹄娮釉O(shè)備(其包括利用了觸摸屏顯示技術(shù)和/或鼠標(biāo)和鍵盤類型的接口的設(shè)備)執(zhí)行在此公開的各種方面。這些設(shè)備的示例包括計算機(臺式和移動式)、智能電話、個人數(shù)字助理(PDA)以及其它有線和無線的電子設(shè)備。
此外,所請求保護的主題可以實施為使用標(biāo)準(zhǔn)編程和/或工程技術(shù)來產(chǎn)生用以控制計算機實施所公開主題的軟件、固件、硬件或其任何組合的方法、裝置或制造品。這里使用的術(shù)語“制造品,,旨在囊括可以從任何計算機可讀設(shè)備、載體或介質(zhì)訪問的計算機程序。例如,計算機可讀介質(zhì)可包括但不限于磁存儲裝置(例如硬盤、軟盤、磁條……)、光盤 (例如,高密度盤(⑶)、數(shù)字多功能盤(DVD)……)、智能卡和閃存設(shè)備(例如卡、棒、鍵驅(qū)動器……)。另外,應(yīng)當(dāng)理解,載波可用以承載計算機可讀電子數(shù)據(jù)(如發(fā)送和接收電子郵件時或訪問諸如因特網(wǎng)或局域網(wǎng)(LAN)之類的網(wǎng)絡(luò)時所使用的那些)。當(dāng)然,本領(lǐng)域技術(shù)人員要認(rèn)識到,可以在不脫離所請求保護的主題的范圍或精神的情況下對這種配置進行許多修改。此外,用語“示例性,,在此用以表示用作示例、例子或說明。在此描述為“示例性,, 的任何方面或設(shè)計不一定要解釋為相比于其它方面或設(shè)計是優(yōu)選的或有益的。而是,用語示例性的使用旨在以具體形式公開構(gòu)思。如本申請中所使用的,術(shù)語“或”旨在表示包容的 “或”而非排它的“或”。即,除非另外指定或根據(jù)上下文清楚地,否則“X采用A或B”旨在表示任何的自然包容置換。即,如果X采用A ;X采用B ;或者X既采用A又采用B,那么“X采用A或B”在任何的上述例子之下都是滿足的。另外,本申請和所附權(quán)利要求書中使用的冠詞“一”應(yīng)當(dāng)一般解釋為表示“一個或多個”,除非另外指定或者根據(jù)上下文清楚地指明是單數(shù)形式。現(xiàn)在轉(zhuǎn)到附圖,圖1圖示根據(jù)各種方面的方便副本數(shù)據(jù)在一組存儲節(jié)點之間的分布式安置的系統(tǒng)100。在一個示例中,系統(tǒng)100可用以實施將復(fù)本文件、系統(tǒng)圖像和/或其它數(shù)據(jù)安置在多臺機器上的分布式文件系統(tǒng)。在一個方面中,所述機器可以是個人計算機、 膝上型計算機、服務(wù)器、便攜式數(shù)字助理(PDA)、移動設(shè)備、智能電話、蜂窩電話、便攜式游戲設(shè)備、媒體播放器或者可以存儲、操作和/或傳輸數(shù)據(jù)的任何其它適當(dāng)?shù)挠嬎阍O(shè)備。根據(jù)一個方面,可以結(jié)合基于網(wǎng)絡(luò)的或在線的備份解決方案(例如,如下文進一步詳細(xì)地描述的云備份系統(tǒng))來利用系統(tǒng)100,基于網(wǎng)絡(luò)的或在線的備份解決方案在客戶機關(guān)聯(lián)到的網(wǎng)絡(luò)或互聯(lián)網(wǎng)絡(luò)上的一個或多個遠(yuǎn)程存儲位置存儲來自客戶機的備份信息。傳統(tǒng)的在線備份解決方案通過將在各種時間點從備份客戶端獲得的一組文件保持在遠(yuǎn)程的存儲位置而工作。隨后,通過按照請求從存儲位置重新獲取一個或多個文件以進行恢復(fù)。為了保證數(shù)據(jù)的可用性和/或防止數(shù)據(jù)丟失,系統(tǒng)100可以方便數(shù)據(jù)在一組存儲節(jié)點108當(dāng)中的分布式存儲。這組存儲節(jié)點108可以包括客戶機(例如個人計算機、膝上型計算機等)、服務(wù)器、移動設(shè)備、網(wǎng)絡(luò)存儲裝置、云存儲位置和/或在分布式環(huán)境中可訪問的任何其它適當(dāng)?shù)拇鎯ρb置。更具體地,當(dāng)客戶機上的用戶期望可靠地存儲數(shù)據(jù)(如數(shù)據(jù)部分 104)時,復(fù)制處理組件102可用于生成副本要求以滿足可用性、耐用性和/或冗余性標(biāo)準(zhǔn)。 副本要求可以是指定要分散在存儲節(jié)點108之間的數(shù)據(jù)部分104的副本的總數(shù)的參數(shù)。在一個示例中,復(fù)制處理組件102可以基于存儲節(jié)點108的特征來識別副本要求。存儲節(jié)點的特征可以包括這樣的特性,這些特性例如但不限于存儲節(jié)點的可用性、存儲節(jié)點的存儲容量、存儲節(jié)點上的存儲成本、從/向存儲節(jié)點傳輸?shù)某杀?、存儲?jié)點相對于原始節(jié)點的網(wǎng)絡(luò)接近度和/或定位以及網(wǎng)絡(luò)拓?fù)涞?。?fù)制處理組件102可以針對每個存儲節(jié)點108單獨地動態(tài)地評估這些特征。要理解,可以進行這些評估和/或重估,以使得在一時間段上保持關(guān)于節(jié)點特征的歷史和/或統(tǒng)計的信息,以方便對于副本要求的智能確定。
在另一個方面中,一旦生成反映要分散的副本數(shù)量的副本要求,則安置組件106 可用以根據(jù)副本要求在一個或多個存儲節(jié)點108當(dāng)中復(fù)制數(shù)據(jù)部分104。在一個示例中,副本要求可以指示需要數(shù)據(jù)部分104的三個副本或復(fù)本,以滿足可用性、冗余性和/或耐用性的級別。據(jù)此,安置組件106可以將三個副本散發(fā)在一組存儲節(jié)點108中的三個節(jié)點。類似于復(fù)制處理組件102,安置組件106可以基于評估出的存儲節(jié)點108的特征來做出安置決定。安置組件106可以從存儲節(jié)點108選擇一個或多個節(jié)點來保留副本。通過示例的方式, 安置組件106可以選擇客戶機附近的存儲位置來保留新備份版本的副本,以便在一旦恢復(fù)時方便保持網(wǎng)絡(luò)帶寬的更加快速的重新獲取。要理解,系統(tǒng)100可包括任何適當(dāng)?shù)暮?或必要的接口組件(未示出),其提供各種適配器、連接器、通道、通信路徑等以將復(fù)制處理組件102和安置組件106集成至幾乎任何的應(yīng)用、操作和/或數(shù)據(jù)庫系統(tǒng)(一個或多個)和/或彼此集成。另外,接口組件可提供各種適配器、連接器、通道、通信路徑等,其提供與復(fù)制處理組件102、安置組件106、存儲節(jié)點 108和/或系統(tǒng)100所關(guān)聯(lián)的組件的交互以及在復(fù)制處理組件102、安置組件106、存儲節(jié)點 108和/或系統(tǒng)100所關(guān)聯(lián)的組件之間的交互?,F(xiàn)在轉(zhuǎn)至圖2,圖示了根據(jù)各種方面的方便生成副本要求的系統(tǒng)200。如圖2圖示,系統(tǒng)200可包括復(fù)制處理組件102,其可基于數(shù)據(jù)和/或存儲位置的特征來創(chuàng)建副本要求(例如確保數(shù)據(jù)存儲的可用性和/或可靠性所需要的復(fù)本的數(shù)量)。在一個示例中,可將部分?jǐn)?shù)據(jù)104提供給復(fù)制處理組件102,其中復(fù)制處理組件102可以確定與數(shù)據(jù)部分104相關(guān)聯(lián)的副本要求。根據(jù)一個方面,復(fù)制處理組件102可以分析數(shù)據(jù)部分104以方便對于副本要求的確定。具體地,復(fù)制處理組件102可以利用數(shù)據(jù)評估組件202來檢查可能影響所要求的和/ 或可能的復(fù)本數(shù)量的數(shù)據(jù)部分104的屬性。在一個示例中,數(shù)據(jù)評估組件202可以探知數(shù)據(jù)部分104的大小。在另一個示例中,數(shù)據(jù)評估組件202可以評估數(shù)據(jù)部分104以確定是否可以將數(shù)據(jù)部分104壓縮和/或分割以減小對于各個存儲節(jié)點的存儲影響。例如,可以將數(shù)據(jù)部分104劃分為多個片段(例如,塊(chunk)、方塊(block)等),以使得可以將相應(yīng)的塊各自分發(fā)給不同的存儲節(jié)點。由于可以在存儲成本沒有相對增大的情況下實現(xiàn)存儲節(jié)點的更大的多樣化,因此這種分割可以在減小副本要求的同時增強可靠性。另外,數(shù)據(jù)評估組件202可以探知附于數(shù)據(jù)部分104的任何許可證(例如數(shù)據(jù)權(quán)限管理)。此外,數(shù)據(jù)評估組件202可以針對禁止和/或限制復(fù)制處理、分割或其它數(shù)據(jù)操作的事項來分析許可證。根據(jù)另外的方面,安置組件102可以包括網(wǎng)絡(luò)分析器組件204,其可分析與系統(tǒng) 200相關(guān)聯(lián)的計算網(wǎng)絡(luò)以及分析存儲節(jié)點108。網(wǎng)絡(luò)分析器組件204可以識別存儲節(jié)點的特征,以使得識別出的特征可以方便判定副本要求。所述特征可包括存儲節(jié)點(例如,基于設(shè)備活動級別、通電或斷電狀況等)的可用性、節(jié)點的可用存儲空間、節(jié)點的存儲成本、向/ 從節(jié)點傳輸數(shù)據(jù)的成本、節(jié)點的網(wǎng)絡(luò)定位等。這些特征可以方便例如以最佳定位平衡各種數(shù)據(jù)的可用性。根據(jù)另一個方面,復(fù)制處理組件102可包括量化組件206,其至少部分基于數(shù)據(jù)評估組件202和/或網(wǎng)絡(luò)分析器組件204提供的結(jié)果來生成對于數(shù)據(jù)部分104的副本要求。 例如,量化組件206可以利用通過對于數(shù)據(jù)部分104的評估所獲取的信息以生成要求。在一個示例中,量化組件206可以在數(shù)據(jù)部分104很大(例如消耗大量的存儲資源)時減小副本要求,以便平衡可用性和存儲成本。在另一個示例中,量化組件206可以類似地減小對于可分離的數(shù)據(jù)部分的要求。利用能夠加以分割的數(shù)據(jù)部分,可以在保持存儲利用級別的同時通過存儲節(jié)點的更大多樣化來增大可用性。另外,量化組件206可以考慮通過授權(quán)許可或其它數(shù)字權(quán)限管理所施加的對于復(fù)制處理的限制。量化組件206可以進一步基于通過對存儲節(jié)點108的分析所獲得的信息來生成副本要求。具體地,量化組件206可以在生成副本要求時對網(wǎng)絡(luò)分析器組件204確定出的存儲節(jié)點108的特征進行分解。量化組件206可以單獨地評估存儲節(jié)點108的特征和/或集合可用存儲節(jié)點108的特征。在一個示例中,可以在存儲節(jié)點108的可用性為高時指定更低的副本要求。在另一個示例中,可以在存儲容量充足和/或存儲成本低的時候指示更高的副本要求。根據(jù)另一個方面,量化組件206可以采用基于機器學(xué)習(xí)和/或啟發(fā)式方法的統(tǒng)計模型以方便對于針對各個信息的副本要求的智能、自動的指定。具體地,量化組件206可以采用這樣的模型其并入、集合和/或利用了量化組件206基于網(wǎng)絡(luò)分析器組件204和 /或數(shù)據(jù)評估組件202所提供的信息的各個判定。在一個示例中,量化組件206可以利用任何適當(dāng)?shù)娜斯ぶ悄?Al)、機器學(xué)習(xí)和/或本領(lǐng)域公知的其它算法(一種或多種)。當(dāng)在本說明書中使用時,術(shù)語“智能”是指用以基于關(guān)于系統(tǒng)的現(xiàn)有信息來推斷或斷定(例如推測) 系統(tǒng)當(dāng)前或?qū)淼臓顟B(tài)的能力。人工智能可用于在無人干預(yù)的情況下識別特定的上下文 (context)或動作,或者生成系統(tǒng)的特定狀態(tài)的概率分布。人工智能依賴于將高級數(shù)學(xué)算法(例如決策樹、神經(jīng)網(wǎng)絡(luò)、回歸分析、聚類分析、基因算法和加強學(xué)習(xí))應(yīng)用于系統(tǒng)上的一組可用數(shù)據(jù)(信息)。例如,可以將眾多方法中的一種或多種用于從數(shù)據(jù)中進行學(xué)習(xí),然后從這樣構(gòu)造的例如隱馬爾可夫模型(HMM)和有關(guān)的原型依賴模型的模型推斷更一般的概率圖模型,如例如由使用貝葉斯模型評分或近似的結(jié)構(gòu)搜索所創(chuàng)建的貝葉斯網(wǎng)絡(luò)、線性分類器 (如支持向量機(SVM))、非線性分類器(如稱為“神經(jīng)網(wǎng)絡(luò)”方法、模糊邏輯方法的方法,以及根據(jù)實施在此描述的各種自動方面的其它辦法(其進行數(shù)據(jù)融合等))。圖3圖示根據(jù)一個或多個方面的在一組存儲節(jié)點當(dāng)中分發(fā)數(shù)據(jù)的副本的系統(tǒng) 300。如圖3圖示,系統(tǒng)300可包括安置組件106,其可以根據(jù)副本要求在存儲節(jié)點108之間分發(fā)數(shù)據(jù)部分104的復(fù)本。在一個示例中,可以如上面參照圖1和圖2所述那樣通過諸如復(fù)制處理組件102之類的復(fù)制處理組件生成副本要求。根據(jù)一個方面,安置組件106可包括網(wǎng)絡(luò)分析器組件302,其可以分析與系統(tǒng)300 相關(guān)聯(lián)的計算網(wǎng)絡(luò)以及分析存儲節(jié)點108。網(wǎng)絡(luò)分析器組件302可以識別存儲節(jié)點的特征, 以使得識別出的特征可以方便判定副本要求。所述特征可以包括存儲節(jié)點(例如,基于設(shè)備活動級別、通電或斷電狀況等)的可用性、節(jié)點的可用存儲空間、節(jié)點的存儲成本、向/從各節(jié)點傳輸數(shù)據(jù)的成本、節(jié)點的網(wǎng)絡(luò)定位等。在另一個方面中,安置組件106可包括策略生成組件304,其利用識別出的特征生成安置策略306。安置組件106可以另外地包括分發(fā)組件308,其根據(jù)安置策略306將數(shù)據(jù)部分104的副本分散至存儲節(jié)點108。在一個示例中,安置策略306指定存儲節(jié)點的優(yōu)先級,以便安置組件106可以在最初嘗試將數(shù)據(jù)部分104的副本置于較高優(yōu)先級的節(jié)點。例如,安置策略306可包括被優(yōu)先級化和評級的存儲節(jié)點的列表,其中針對網(wǎng)絡(luò)分析器組件 302識別出的每個特征提供相應(yīng)列表。
在另一個示例中,分發(fā)組件308可以在所有特征當(dāng)中利用節(jié)點的優(yōu)先級的集合。 例如,分發(fā)組件308可以以統(tǒng)計方式組合(例如,平均、啟發(fā)式組合、機器學(xué)習(xí)或其它的統(tǒng)計模型)對于每個特征的節(jié)點的優(yōu)先級以得到累積的或總的優(yōu)先級。分發(fā)組件308可以將數(shù)據(jù)部分104復(fù)制到最高評級的存儲節(jié)點,直至副本要求中所指定的數(shù)量。在另一個示例中,分發(fā)組件308可以根據(jù)安置策略306利用一個或多個標(biāo)準(zhǔn)以選擇存儲節(jié)點。例如,分發(fā)組件308可以采用一個標(biāo)準(zhǔn),以使得將副本存儲于具有最高可用性的存儲節(jié)點。據(jù)此,分發(fā)組件308根據(jù)安置策略選擇就可用性而言具有最高優(yōu)先級的存儲節(jié)點。要注意,不受限制地或者不失一般性,分發(fā)組件308可以利用其它的標(biāo)準(zhǔn)。例如,另一標(biāo)準(zhǔn)可以偏好具有大存儲容量和/或低成本存儲豐富的存儲節(jié)點。據(jù)此,分發(fā)組件308 可以選擇就存儲容量和/或存儲成本而言具有最高優(yōu)先級的存儲節(jié)點。要理解,根據(jù)一個方面,用戶可以人工地配置安置策略306。例如,用戶可以在各存儲節(jié)點108內(nèi)指定優(yōu)選的存儲節(jié)點,以使得分發(fā)組件308將大量的副本分散至優(yōu)選節(jié)點。 此外,用戶可以指示限制存儲節(jié)點108上的對于系統(tǒng)300可用的存儲的參數(shù)。在另一個示例中,用戶可以指定標(biāo)準(zhǔn)偏好。例如,分發(fā)組件308可以根據(jù)用戶設(shè)定的偏好,對一種特征 (如可用性)比另一種特征(例如存儲容量)更高地加權(quán)。根據(jù)另一個方面,安置組件106可以包括索引組件310和/或否則與索引組件310 相關(guān)聯(lián),該索引組件310可以保持列出了數(shù)據(jù)部分104的副本和副本已經(jīng)分發(fā)到的存儲節(jié)點之間的關(guān)系的索引。在一個示例中,索引組件310可以在分發(fā)組件308做出有關(guān)副本安置的分發(fā)決定時添加、刪除和/或修改索引中的條目。在另一示例中,可以在各存儲節(jié)點108 之間連同數(shù)據(jù)部分104的副本一起分發(fā)索引。要注意,不受限制地或者不失一般性,整個索引可以被復(fù)制并存儲于一個或多個節(jié)點,或者索引可以在多個節(jié)點之間以塊的方式予以分割和分發(fā)。盡管未在圖3中描繪,但是要理解,系統(tǒng)300可以采用機器學(xué)習(xí)和推理(MLR)技術(shù)以針對各個信息方便對于存儲節(jié)點的智能、自動選擇。在一個示例中,可以采用任何適當(dāng)?shù)娜斯ぶ悄?Al)、機器學(xué)習(xí)和/或本領(lǐng)域公知的其它算法(一個或多個)。當(dāng)在本說明書中使用時,術(shù)語“智能”是指用以基于關(guān)于系統(tǒng)的現(xiàn)有信息來推斷或斷定(例如推測)系統(tǒng)當(dāng)前或?qū)淼臓顟B(tài)的能力。人工智能可用于在無人干預(yù)的情況下識別特定的上下文或動作, 或者生成系統(tǒng)的特定狀態(tài)的概率分布。人工智能依賴于將高級數(shù)學(xué)算法(例如決策樹、神經(jīng)網(wǎng)絡(luò)、回歸分析、聚類分析、基因算法和加強學(xué)習(xí))應(yīng)用于系統(tǒng)上的一組可用數(shù)據(jù)(信息)。 例如,可以將眾多方法中的一種或多種用于從數(shù)據(jù)中進行學(xué)習(xí),然后從這樣構(gòu)造的例如隱馬爾可夫模型(HMM)和有關(guān)的原型依賴模型的模型推斷更一般的概率圖模型,如例如由使用貝葉斯模型評分或近似的結(jié)構(gòu)搜索所創(chuàng)建的貝葉斯網(wǎng)絡(luò)、線性分類器(如支持向量機 (SVM))、非線性分類器(如稱為“神經(jīng)網(wǎng)絡(luò)”方法、模糊邏輯方法的方法,以及根據(jù)實施在此描述的各種自動方面的其它辦法(其進行數(shù)據(jù)融合等))。參照圖4,所圖示的是根據(jù)各種方面的方便監(jiān)視存儲節(jié)點以動態(tài)分發(fā)副本的系統(tǒng) 400。如圖4中所描繪的,系統(tǒng)400可以包括監(jiān)視一組存儲節(jié)點108的觀察組件402。盡管在圖4中描繪了與存儲節(jié)點108分離的觀察組件402,但要理解,觀察組件402可以包括分別與每個存儲節(jié)點相關(guān)聯(lián)的監(jiān)視代理。監(jiān)視代理可負(fù)責(zé)監(jiān)視和報告與代理關(guān)聯(lián)的各個存儲節(jié)點的狀況。
根據(jù)一個方面,觀察組件402可以監(jiān)視存儲節(jié)點108。具體地,觀察組件402可以跟蹤各個存儲節(jié)點108的健康、性能、可用存儲量、可用帶寬、連接性、總體可用性和/或其它資源的可用性。另外,觀察組件402可以跟蹤上面分別參照圖2和圖3描述的網(wǎng)絡(luò)分析器組件204和/或302所識別出的特征。觀察組件402可以將監(jiān)視結(jié)果傳遞至安置組件 106,其可以有效地重新分配信息(例如副本)。在一個示例中,安置組件106可以將更多個副本分配給由觀察組件402確定為具有更高可用存儲量的存儲位置。在另一個示例中,安置組件106可以基于監(jiān)視數(shù)據(jù)在存儲節(jié)點108之間分發(fā)副本,以實現(xiàn)可靠性和/或耐用性要求。在一個示例中,特定存儲節(jié)點可以就對于客戶機的定位而言是最佳的。然而,存儲節(jié)點可能呈現(xiàn)低的可用性。據(jù)此,安置組件106可選擇輔助存儲節(jié)點以保留另外的副本。這種冗余性向客戶機保證了在不總是最佳位置的情況下,數(shù)據(jù)的副本從某個存儲節(jié)點將會是可用的。根據(jù)另一個方面,安置組件106可以基于監(jiān)視結(jié)果動態(tài)地調(diào)整副本的分發(fā)。觀察組件402可以持續(xù)地將有關(guān)存儲節(jié)點108的監(jiān)視結(jié)果傳遞至安置組件106。繼而,安置組件 106可以在存儲節(jié)點108周圍移動副本。在一個示例中,安置組件106可以增大冗余性、減小冗余性、從靠近存儲容量的節(jié)點刪除副本、將另外的副本分配給具有增大的存儲可用性的節(jié)點等。接下來參見圖5,提供了示圖500,其圖示了可以結(jié)合這里描述的各種方面加以利用的示例網(wǎng)絡(luò)實施方案。如示圖500圖示,網(wǎng)絡(luò)實施方案可以利用混合點對點和基于云的結(jié)構(gòu),其中云服務(wù)提供商510與一個或多個超級對等點520以及一個或多個對等點530-540 交互。圖5中圖示的網(wǎng)絡(luò)實施方案可以利用如上面參照先前的附圖所描述的分布式存儲系統(tǒng),以實施混合點對點/基于云的備份架構(gòu)。根據(jù)一個方面,云服務(wù)提供商510可以用來從與超級對等點(一個或多個)520和/ 或?qū)Φ赛c(一個或多個)530-540相關(guān)聯(lián)的網(wǎng)絡(luò)/互聯(lián)網(wǎng)絡(luò)(例如因特網(wǎng))上的給定位置來遠(yuǎn)程實施一個或多個計算服務(wù)。云服務(wù)提供商510可以源自一個位置,或者可替代地,云服務(wù)提供商510可以實施為分布式的基于因特網(wǎng)的服務(wù)提供商。在一個示例中,云服務(wù)提供商 510可以用來將備份功能提供給與云服務(wù)提供商510相關(guān)聯(lián)的一個或多個對等點520440。 據(jù)此,云服務(wù)提供商510可以實施備份服務(wù)512和/或提供相關(guān)聯(lián)的數(shù)據(jù)存儲裝置514。在一個示例中,數(shù)據(jù)存儲裝置514可以與超級對等點520處的備份客戶端522和/ 或相應(yīng)對等點530或540處的備份客戶端532或542進行交互,以用作對于駐留于相應(yīng)對等點實體520440的數(shù)據(jù)的中心存儲位置。以此方式,通過數(shù)據(jù)存儲裝置514,云服務(wù)提供商510可以有效地用作對于位于對等點520-540的數(shù)據(jù)的在線“保險箱”。可以理解的是, 可以針對諸如文件(例如,文檔、照片、音頻、視頻等)、系統(tǒng)信息等之類的任何適當(dāng)類型(一種或多種)的信息進行備份。另外地或可替代地,可以實施分布式網(wǎng)絡(luò)存儲,以便超級對等點520和/或?qū)Φ赛c530-540也被配置為包括相應(yīng)的數(shù)據(jù)存儲裝置524、534和/或M4以用于備份與相關(guān)聯(lián)的本地網(wǎng)絡(luò)上的一臺或多臺機器相關(guān)聯(lián)的數(shù)據(jù)。在另一個示例中,可以將諸如重復(fù)數(shù)據(jù)刪除、增量存儲之類的技術(shù)和/或其他適當(dāng)?shù)募夹g(shù)用于降低示圖500代表的網(wǎng)絡(luò)中的一個或多個對應(yīng)實體處的數(shù)據(jù)存儲裝置514、5M、534和/或544所要求的存儲空間量,以用于實施基于云的備份服務(wù)。根據(jù)另一個方面,云服務(wù)提供商510可以與一個或多個對等點機器520、530和/或540交互。如示圖500中所圖示的,一個或多個對等點520可被指定為超級對等點,并且可以用作相關(guān)聯(lián)的本地網(wǎng)絡(luò)中的云服務(wù)提供商510和一個或多個其它對等點530-540之間的聯(lián)絡(luò)器。盡管未在圖5中圖示,但應(yīng)當(dāng)理解,在認(rèn)為合適的情況下,任何適當(dāng)?shù)膶Φ赛c 530和/或MO以及指定的超級對等點(一個或多個)520都可以與云服務(wù)提供商510直接交互。由此,可以理解的是,云服務(wù)提供商510、超級對等點(一個或多個)520和/或?qū)Φ赛c 530或540可以在任何適當(dāng)?shù)臅r間相互通信,以在示圖500中所圖示的各個實體之間同步文件或其他信息。在一個示例中,超級對等點520可以是網(wǎng)絡(luò)上的與對等點520-540相關(guān)聯(lián)的中心實體,如內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)、企業(yè)服務(wù)器、家用服務(wù)器和/或被確定為具有以這里描述的方式用作超級對等點的能力的任何其它適當(dāng)?shù)挠嬎阍O(shè)備(一個或多個)。除了標(biāo)準(zhǔn)的對等點功能之外,超級對等點(一個或多個)520可負(fù)責(zé)在本地網(wǎng)絡(luò)中的對等點520-540之間收集、 分發(fā)和/或索引數(shù)據(jù)。例如,超級對等點520可以保持存儲索引526,該存儲索引5 可包括對應(yīng)于對等點520-540的各個文件和/文件片段的身份,以及對于網(wǎng)絡(luò)中和/或云數(shù)據(jù)存儲裝置514中可以找到文件或其片段的相應(yīng)位置(一個或多個)的指示器(一個或多個)。 另外地或可替代地,例如通過經(jīng)由云上傳組件5 在指定的非峰值時段將各個數(shù)據(jù)上傳至云服務(wù)提供商510,超級對等點520可以用作其它對等點530-540和云服務(wù)提供商510之間的網(wǎng)關(guān)。在另一個方面中,提供備份對等點550,其可以將文件或其它信息備份到對等點 530和M0、超級對等點520和/或云510。在一個示例中,可以在云510、超級對等點520 和/或一個或多個對等點530-540之間分發(fā)文件或部分?jǐn)?shù)據(jù),以使得將此文件或部分?jǐn)?shù)據(jù)的副本存儲在一個或多個位置。備份對等點550可包括復(fù)制處理組件552,其可生成副本要求(例如需要存儲的副本的數(shù)量)。復(fù)制處理組件可以分析數(shù)據(jù)存儲裝置556中保留的文件或部分?jǐn)?shù)據(jù),以及識別對等點530440、超級對等點520和云510的特征?;谠摲治觯瑥?fù)制處理組件552可以確定對于此文件或部分?jǐn)?shù)據(jù)的適當(dāng)副本要求。備份對等點550可以進一步包括安置組件554,其選擇一個或多個存儲節(jié)點以存儲文件或部分?jǐn)?shù)據(jù)的副本。存儲節(jié)點可包括云510、超級對等點520和/或?qū)Φ赛c530440。 在一個示例中,安置組件5M可以根據(jù)從分配給存儲節(jié)點的特征得到的安置策略來做出安
置決定。要理解的是,系統(tǒng)500中圖示的數(shù)據(jù)存儲裝置(例如數(shù)據(jù)存儲裝置514、522、532、 542和556)例如可以是易失性存儲器或非易失性存儲器,或者可以包括易失性和非易失性存儲器兩者。通過圖示而非限制的方式,非易失性存儲器可包括只讀存儲器(ROM)、可編程 ROM (PROM)、電可編程ROM (EPROM)、電可擦除可編程ROM (EEPROM)或閃存。易失性存儲器可包括用作外部高速緩存存儲器的隨機存取存儲器(RAM)。通過說明而非限制的方式,RAM 可以以許多形式可用,如靜態(tài)RAM (SRAM)、動態(tài)RAM (DRAM)、同步DRAM (SDRAM)、雙倍數(shù)據(jù)率 SDRAM (DDR SDRAM)、增強 SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), Rambus 直接 RAM (RDRAM)、直接 Rambus 動態(tài) RAM (DRDRAM)和 Rambus 動態(tài) RAM (RDRAM)。本主題系統(tǒng)和方法的數(shù)據(jù)存儲裝置旨在不加以限制地包含這些和任何其它適當(dāng)類型的存儲器。另外, 要理解的是,數(shù)據(jù)存儲裝置可以是服務(wù)器、數(shù)據(jù)庫、硬件驅(qū)動器、筆式驅(qū)動器、外部硬盤驅(qū)動器、便攜式硬盤驅(qū)動器等。
圖6圖示根據(jù)各種方面的生成和分發(fā)數(shù)據(jù)副本的系統(tǒng)600。系統(tǒng)600可包括復(fù)制處理組件102和安置組件106,其可以基本上類似于先前圖中描述的各個組件、框、系統(tǒng)和接口。系統(tǒng)600進一步包括智能組件602。智能組件602可以由復(fù)制處理組件102和/或安置組件106用來例如推斷存儲節(jié)點的特征、部分?jǐn)?shù)據(jù)的屬性、副本的最佳安置、部分?jǐn)?shù)據(jù)的副本要求等。智能組件602可以采用信息價值(VOI)計算,以便識別適當(dāng)?shù)拇鎯?jié)點來實現(xiàn)副本的最佳分配。例如,通過利用VOI計算,可以確定最理想和/或合適的副本分配。此外,要明白的是,智能組件602可提供從經(jīng)由事件和/或數(shù)據(jù)捕獲的一組觀察中推斷或推測系統(tǒng)、 環(huán)境和/或用戶的狀態(tài)。推測可用于識別特定的上下文或動作,或者例如可以生成關(guān)于狀態(tài)的概率分布。推測可以是概率統(tǒng)計的一即,基于數(shù)據(jù)和事件的考慮關(guān)于感興趣狀態(tài)的概率分布的計算。推測也可以涉及用于從一組事件和/或數(shù)據(jù)構(gòu)成更高級別的事件的技術(shù)。 這種推測導(dǎo)致從一組觀察到的事件和/或存儲的事件數(shù)據(jù)構(gòu)造新的事件或動作,而不管事件是否很接近地時間相關(guān),以及事件和數(shù)據(jù)是否來自一個或若干個事件和數(shù)據(jù)源。結(jié)合通過結(jié)合所請求保護的主題執(zhí)行自動和/或推測的動作,可以采用各種分類(明確地和/或隱含地訓(xùn)練的)方案和/或系統(tǒng)(如支持向量機、神經(jīng)網(wǎng)絡(luò)、專家系統(tǒng)、貝葉斯信念網(wǎng)絡(luò)、模糊邏輯、數(shù)據(jù)融合引擎......)。分類器是將輸入屬性矢量χ= (xl,x2, x3, x4, xn)映射到輸入屬于一定類別 (class)的置信度(confidence)的函數(shù),S卩,f (x) confidence (class)。這種分類可采用基于概率的和/或統(tǒng)計的分析(例如,分解至分析效用和成本),以預(yù)測或推測用戶期望自動執(zhí)行的動作。支持向量機(SVM)是可以采用的分類器的示例。SVM通過在可能輸入的空間中找到超曲面(該超曲面試圖將觸發(fā)標(biāo)準(zhǔn)與非觸發(fā)標(biāo)準(zhǔn)事件進行分離)而工作。直觀上, 這使得分類針對靠近但不同于訓(xùn)練數(shù)據(jù)的測試數(shù)據(jù)進行校正。可以采用提供了獨立的不同形態(tài)的其它定向和非定向的模型分類辦法,例如包括樸素貝葉斯、貝葉斯網(wǎng)絡(luò)、決策樹、神經(jīng)網(wǎng)絡(luò)、模糊邏輯模型和概率分類模型。這里所用的分類也包括用來開發(fā)優(yōu)先級模型的統(tǒng)計回歸。復(fù)制處理組件102和/或安置組件106可以進一步利用呈現(xiàn)組件604,其提供各種類型的用戶界面以方便用戶與耦接至系統(tǒng)600的任何組件(例如存儲節(jié)點、復(fù)制處理組件、 安置組件、安置策略、備份客戶端、備份服務(wù)等)之間的交互。如所描繪的,呈現(xiàn)組件604是可以與復(fù)制處理組件102和安置組件106 —起使用的分離的實體。然而,要理解的是,呈現(xiàn)組件604和/或類似的觀看組件可以并入到復(fù)制處理組件102、安置組件106和/或單獨的單元中。呈現(xiàn)組件604可以提供一個或多個圖形用戶界面(⑶I)、命令行界面等。例如,可以做出這樣的⑶I 其向用戶提供用以加載、導(dǎo)入、讀取、編輯(等)數(shù)據(jù)的區(qū)域或手段,并且可包括用以呈現(xiàn)這樣的結(jié)果的區(qū)域。這些區(qū)域可以包含已知的文本和/或圖形區(qū)域(包括對話框、靜態(tài)控件、下拉菜單、列表框、彈出菜單、編輯控件、組合框、單選按鈕、復(fù)選框、按鈕和圖形框。另外,可以采用用以方便呈現(xiàn)的應(yīng)用,如用于導(dǎo)航的垂直和/或水平滾動條,以及用以確定區(qū)域是否將會是可瀏覽的工具條按鈕。例如,用戶可以與耦接和/或并入至復(fù)制處理組件102和/或安置組件106中的一個或多個組件進行交互,以指示對于副本的生成、數(shù)量和安置的偏好。用戶例如也可以與區(qū)域進行交互,以便經(jīng)由各種設(shè)備(如鼠標(biāo)、滾動球、觸摸板、數(shù)字小鍵盤(keypad)、鍵盤、觸摸屏、筆和/或語音啟動、身體運動檢測)選擇和提供信息。典型地,在錄入信息之后可以采用諸如鍵盤上的按鈕或確認(rèn)鍵之類的機構(gòu),以便開始搜索。然而,要理解的是,所請求保護的主題不就此受限。例如,僅僅使復(fù)選框高亮就可以開始信息傳達。在另一個示例中,可以采用命令行界面。例如,命令行界面可以經(jīng)由提供文本消息向用戶提示(例如經(jīng)由顯示器上的文本消息和音頻音調(diào))信息。用戶然后可以提供合適的消息,如與界面提示中提供的選項對應(yīng)的字母數(shù)字輸入或者對于提示中提出的問題的答案。 要理解的是,命令行界面可以結(jié)合GUI和/或API加以使用。另外,命令行界面可以結(jié)合具有有限圖形支持的顯示器(例如黑白、EGA、VGA、SVGA等)和/或硬件(例如視頻卡),和/或低帶寬通信信道加以使用。圖7-8圖示了根據(jù)請求保護的主題的方法和/或流程圖。為了說明簡化起見,將該方法描繪和描述為一系列的動作。要明白和理解的是,本主題創(chuàng)新不限于圖示的動作和 /或動作的順序。例如,動作可以以各種順序和/或同時地發(fā)生,并且可以與這里未呈現(xiàn)和描述的其它動作一起發(fā)生。此外,為了實施根據(jù)所要求保護的主題的方法,可以并不要求所有圖示的動作。另外,本領(lǐng)域技術(shù)人員將明白和理解的是,可以經(jīng)由狀態(tài)圖或事件將該方法可替代地表示為一系列相互關(guān)聯(lián)的狀態(tài)。另外,應(yīng)當(dāng)進一步理解的是,下文和貫穿此說明書所公開的方法能夠存儲在制造品上,以方便將這些方法輸送和轉(zhuǎn)移至計算機。這里使用的術(shù)語制造品旨在囊括從任何的計算機可讀設(shè)備、載體或介質(zhì)可訪問的計算機程序。參見圖7,圖示了用于生成要在分布式文件系統(tǒng)中存儲的部分?jǐn)?shù)據(jù)的副本要求的方法700。在附圖標(biāo)記702處,分析部分?jǐn)?shù)據(jù)以探知屬性。該屬性可包括這部分?jǐn)?shù)據(jù)的存儲量大小、這部分?jǐn)?shù)據(jù)是否可以被壓縮和/或分割以降低存儲量或其它適當(dāng)?shù)膶傩?。另外,可以分析這部分?jǐn)?shù)據(jù)以授權(quán)許可可能限制或否則影響可用的副本復(fù)本數(shù)量的事項(例如數(shù)字權(quán)限管理)。在附圖標(biāo)記704處,可以評估一個或多個存儲節(jié)點以探知節(jié)點的特征。在一個示例中,存儲節(jié)點的特征可包括這樣的特性,這些特性例如但不限于存儲節(jié)點的可用性、存儲節(jié)點的存儲容量、存儲節(jié)點上的存儲成本、向/從存儲節(jié)點傳輸?shù)某杀?、存儲?jié)點相對于原始節(jié)點的定位和/或網(wǎng)絡(luò)接近度以及網(wǎng)絡(luò)拓?fù)涞取T诟綀D標(biāo)記706處,可以生成副本要求。副本要求指定要在一個或多個存儲節(jié)點之間分發(fā)的副本的數(shù)量。在一個示例中,副本要求可以基于這部分?jǐn)?shù)據(jù)的屬性。在另一個示例中,可以根據(jù)評估出的存儲節(jié)點的特征來生成副本要求。現(xiàn)在轉(zhuǎn)至圖8,圖示了用于在存儲節(jié)點之間分發(fā)部分?jǐn)?shù)據(jù)的副本的方法800。在附圖標(biāo)記802處,可以獲得副本要求。副本要求指示要在一個或多個存儲節(jié)點之間分散的副本的數(shù)量。在附圖標(biāo)記804處,評估所述一個或多個存儲節(jié)點的特征。在附圖標(biāo)記806處, 該特征可用于生成安置策略。安置策略指定存儲節(jié)點的優(yōu)先級,以使得可以將副本置于更高優(yōu)先級的節(jié)點。例如,安置策略可包括予以優(yōu)先級化或評級的存儲節(jié)點的列表,其中針對每個特征提供相應(yīng)列表。在附圖標(biāo)記808處,可以根據(jù)策略和/或副本要求將副本分發(fā)至存儲節(jié)點。為了提供用于實施所請求保護的主題的各種方面的另外的上下文,圖9-10和下列討論旨在提供對于其中可以實施本主題創(chuàng)新的各種方面的適當(dāng)計算環(huán)境的簡潔的、一般的描述。例如,諸如對等點和超級對等點之類的客戶機以及云存儲位置可以在這種適當(dāng)?shù)挠嬎悱h(huán)境中加以實施。盡管上面已經(jīng)在本地計算機和/或遠(yuǎn)程計算機上運行的計算機程序的計算機可執(zhí)行指令的一般上下文中描述了所請求保護的主題,但是本領(lǐng)域技術(shù)人員將認(rèn)識到,本主題創(chuàng)新也可以結(jié)合其它的程序模塊加以實施。通常,程序模塊包括執(zhí)行特定任務(wù)和/或?qū)嵤┨囟ǔ橄髷?shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)等。通常,程序模塊包括執(zhí)行具體任務(wù)和/或?qū)嵤┨囟ǔ橄髷?shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)等。此外,本領(lǐng)域技術(shù)人員要理解的是,所請求保護的主題可以利用每一個均可以在操作上耦接至一個或多個相關(guān)聯(lián)設(shè)備的其它計算機系統(tǒng)配置(包括單處理器或多處理器計算機系統(tǒng)、小型計算機、大型計算機以及個人計算機、手持式計算設(shè)備、基于微處理器或可編程消費類電子產(chǎn)品等)加以實施。也可以在其中通過經(jīng)由通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行某些任務(wù)的分布式計算環(huán)境中實施所圖示的各方面。在分布式計算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程的存儲器存儲裝置兩者之中。計算機通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是可由計算機訪問的任何可用介質(zhì),并且包括易失性和非易失性介質(zhì)、可拆除和非可拆除介質(zhì)兩種。通過示例而非限制的方式,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)可包括用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)之類的信息的以任何方法或技術(shù)實施的易失性和非易失性介質(zhì)、可拆除和非可拆除介質(zhì)。計算機存儲介質(zhì)包括但不限于RAM、ROM、EEPR0M、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁盒、磁帶、磁盤存儲或其它的磁存儲裝置或者可用于存儲期望的信息并可由計算機訪問的任何其它介質(zhì)。通信介質(zhì)通常以諸如載波或其它傳輸機制之類的調(diào)制的數(shù)據(jù)信號來包含計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。術(shù)語“調(diào)制的數(shù)據(jù)信號”是指這樣的信號其特征中的一個或多個以對信號中的信息進行編碼的這種方式加以設(shè)置或改變。通過示例而非限制的方式,通信介質(zhì)包括有線介質(zhì)(如有線網(wǎng)絡(luò)或直接有線連接)和無線介質(zhì)(如聲學(xué)、RF、紅外和其它的無線介質(zhì))。上面的任何的組合應(yīng)當(dāng)也包括在計算機可讀介質(zhì)的范圍內(nèi)?,F(xiàn)在參照圖9,圖示了可操作用以執(zhí)行所公開的架構(gòu)的示例性計算編譯系統(tǒng)的示意框圖。系統(tǒng)900包括一個或多個客戶端902??蛻舳?02可以是硬件和/或軟件(例如線程、進程、計算設(shè)備)。在一個示例中,客戶端902可以通過采用在此描述的一個或多個特性而容納cookie (—個或多個)和/或相關(guān)聯(lián)的上下文信息。系統(tǒng)900還包括一個或多個服務(wù)器904。服務(wù)器904也可以是硬件和/或軟件 (例如線程、進程、計算設(shè)備)。在一個示例中,服務(wù)器904可以通過采用在此描述的一個或多個特性而容納用以執(zhí)行變換的線程??蛻舳?02和服務(wù)器904之間的一種可能的通信可以是適于在兩個或更多個計算機進程之間傳送的數(shù)據(jù)分組的形式。數(shù)據(jù)分組例如可以包括 cookie和/或相關(guān)聯(lián)的上下文信息。系統(tǒng)900包括可用于方便客戶端(一個或多個)902和服務(wù)器(一個或多個)904之間的通信的通信框架906 (例如諸如因特網(wǎng)之類的全球通信網(wǎng) 可以通過有線(包括光纖)和/或無線技術(shù)方便通信??蛻舳?一個或多個)902在操作上連接至可用于存儲客戶端(一個或多個)902本地的信息(例如cookie (—個或多個) 和/或相關(guān)聯(lián)的上下文信息)的一個或多個客戶端數(shù)據(jù)存儲裝置908。類似地,服務(wù)器(一個或多個)904在操作上連接至可用于存儲服務(wù)器904本地的信息的一個或多個服務(wù)器數(shù)據(jù)存儲裝置910。參考圖10,用于實施在此描述的各種方面的示例性環(huán)境1000包括計算機1002,計算機1002包括處理單元1004、系統(tǒng)存儲器1006和系統(tǒng)總線1008。系統(tǒng)總線1008耦接至系統(tǒng)組件,系統(tǒng)組件包括但不限于處理單元1004或系統(tǒng)存儲器1006。處理單元1004可以是各種在商業(yè)上可用的處理器中的任何一個。雙微處理器和其它的多處理器架構(gòu)也可以用作處理單元1004。系統(tǒng)總線1008可以是若干類型的總線結(jié)構(gòu)中的任何一種,其可以通過使用各種在商業(yè)上可用的總線架構(gòu)中的任何一種而進一步與存儲器總線(具有或沒有存儲器控制器)、外設(shè)總線和本地總線互連。系統(tǒng)存儲器1006包括只讀存儲器(ROM) 1010和隨機存取存儲器(RAM) 1012。基本輸入/輸出系統(tǒng)(BIOS)存儲在諸如R0M、Era0M、EEPR0M之類的非易失性存儲器1010中,該BIOS包含幫助例如在啟動期間在計算機1002內(nèi)的各元件之間傳輸信息的基本例程。RAM 1012還可以包括諸如靜態(tài)RAM之類的用于緩存數(shù)據(jù)的高速RAM。計算機1002進一步包括內(nèi)部硬盤驅(qū)動器(HDD) 1014 (例如EIDE、SATA),該內(nèi)部硬盤驅(qū)動器1014也可配置在適當(dāng)?shù)臋C箱(未示出)中以供外部使用;磁性軟盤驅(qū)動器(FDD) 1016 (例如用以從或向可拆除盤1018進行讀取或?qū)懭?;以及光盤驅(qū)動器1020 (例如讀取 CD-ROM盤1022,或者用以從或向諸如DVD之類的其它高容量光學(xué)介質(zhì)進行讀取或?qū)懭?。硬盤驅(qū)動器1014、磁盤驅(qū)動器1016和光盤驅(qū)動器1020可以分別通過硬盤驅(qū)動器接口 1024、 磁盤驅(qū)動器接口 10 和光學(xué)驅(qū)動器接口 10 而連接至系統(tǒng)總線1008。用于外部驅(qū)動器的接口 IOM的實施方案包括通用串行總線(USB)和IEEE-1394接口技術(shù)中的至少一個或兩者。其它的外部驅(qū)動器連接技術(shù)在本主題公開的考慮之內(nèi)。驅(qū)動器和其相關(guān)聯(lián)的計算機可讀介質(zhì)提供了對于數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計算機可執(zhí)行指令等的非易失性存儲。對于計算機1002,驅(qū)動器和介質(zhì)容納對于適當(dāng)數(shù)字格式的任何數(shù)據(jù)的存儲。盡管上面的計算機可讀介質(zhì)的描述涉及HDD、可拆卸磁盤和可拆卸光學(xué)介質(zhì)(如 CD或DVD),但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,在示例性的操作環(huán)境中,也可以使用可由計算機讀取的其它類型的介質(zhì)(如極碟(zip)驅(qū)動器、磁盒、閃存卡、磁筒等),并且進一步,任何這種介質(zhì)可包括用于執(zhí)行在此公開的方法的計算機可執(zhí)行指令。多個程序模塊可存儲在驅(qū)動器和RAM 1012中,包括操作系統(tǒng)1030、一個或多個應(yīng)用程序1032、其它的程序模塊1034和程序數(shù)據(jù)1036。操作系統(tǒng)、應(yīng)用、模塊和/或數(shù)據(jù)中的所有或部分也可緩存在RAM 1012中。要理解的是,所請求保護的主題可以利用各種商業(yè)上可用的操作系統(tǒng)或操作系統(tǒng)的組合而加以實施。用戶可以通過一個或多個有線/無線的輸入設(shè)備(例如鍵盤1038和諸如鼠標(biāo)1040 之類的指向設(shè)備)而將命令和信息鍵入至計算機1002。其它的輸入設(shè)備(未示出)可以包括麥克風(fēng)UR遙控器、操縱桿、游戲板、手寫筆、觸摸屏等。這些和其它的輸入設(shè)備經(jīng)常通過耦接至系統(tǒng)總線1008的輸入設(shè)備接口 1042而連接至處理單元1004,但是可以通過其它接口 (如并行端口、串行端口、IEEE-1394端口、游戲端口、USB端口、頂接口等)進行連接。監(jiān)視器1044或其它類型的顯示設(shè)備也經(jīng)由接口(如視頻適配器1046)連接至系統(tǒng)總線1008。除了監(jiān)視器1044之外,計算機通常還包括諸如揚聲器、打印機等之類的其它外設(shè)輸出設(shè)備(未示出)。
通過使用經(jīng)由有線和/或無線通信與一個或多個遠(yuǎn)程計算機(如遠(yuǎn)程計算機1048 (一個或多個))的邏輯連接,計算機1002可以在聯(lián)網(wǎng)的環(huán)境中工作。遠(yuǎn)程計算機(一個或多個)1048可以是工作站、服務(wù)器計算機、路由器、個人計算機、便攜式計算機、基于微處理器的娛樂設(shè)施、對等點設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點,并且通常包括所描述的與計算機1002有關(guān)的許多或所有的元件(盡管為了簡潔起見,僅圖示了存儲器/存儲裝置1050)。所描繪的邏輯連接包括對于局域網(wǎng)(LAN) 1052和/或更大的網(wǎng)絡(luò)(例如,廣域網(wǎng)(WAN) 1054)的有線 /無線連接。這種LAN和WAN聯(lián)網(wǎng)環(huán)境在辦公室和公司中是普遍的,并且方便了都可以連接至全球通信網(wǎng)絡(luò)(例如因特網(wǎng))的企業(yè)范圍的計算機網(wǎng)絡(luò)(例如內(nèi)聯(lián)網(wǎng))。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用的時候,計算機1002通過有線和/或無線的通信網(wǎng)絡(luò)接口或適配器1056連接至本地網(wǎng)絡(luò)1052。適配器1056可方便到LAN 1052的有線或無線通信,其也可包括布置在其上的用于與無線適配器1056進行通信的無線接入點。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用的時候,計算機1002可包括調(diào)制解調(diào)器1058,或者連接至WAN 10 上的通信服務(wù)器,或者具有用于通過WAN 1054 (例如通過因特網(wǎng))建立通信的其它裝置。調(diào)制解調(diào)器1058 (其可以是內(nèi)部或外部以及有線或無線設(shè)備)經(jīng)由串行端口接口 1042連接至系統(tǒng)總線1008。在聯(lián)網(wǎng)的環(huán)境中,所描繪的有關(guān)計算機1002的程序模塊或其部分可以存儲在遠(yuǎn)程存儲器/存儲裝置1050中。要理解的是,所示的網(wǎng)絡(luò)連接是示例性的,并且可以使用在計算機之間建立通信鏈路的其它手段。計算機1002可操作用于與在操作上以無線通信方式布置的任何無線設(shè)備或?qū)嶓w (例如打印機、掃描儀、臺式和/或便攜式計算機、便攜式數(shù)字助理、通信衛(wèi)星、與無線可檢測標(biāo)簽相關(guān)聯(lián)的任何設(shè)備或者位置(如售貨亭、報攤、洗手間)以及電話)進行通信。這至少包括Wi-Fi和藍(lán)牙 無線技術(shù)。由此,與傳統(tǒng)的網(wǎng)絡(luò)或僅僅是至少兩個設(shè)備之間的ad hoc(專用)通信一樣,通信可以是預(yù)定義的結(jié)構(gòu)。Wi-Fi或無線保真是與使得設(shè)備能夠在基站范圍內(nèi)的任何地方發(fā)送和接收數(shù)據(jù)的手機中所使用的無線技術(shù)類似的無線技術(shù)。Wi-Fi網(wǎng)絡(luò)使用IEEE-802.il (a、b、g等)無線電技術(shù)以提供安全、可靠和快速的無線連接。Wi-Fi網(wǎng)絡(luò)可用于將計算機連接至彼此、因特網(wǎng)和有線網(wǎng)絡(luò)(其使用IEEE-802. 3或以太網(wǎng))。Wi-Fi網(wǎng)絡(luò)例如以13Mbps (802. Ila)或 54 Mbps (802. lib)數(shù)據(jù)速率工作在未經(jīng)授權(quán)許可的2. 4GHz和5GHz無線電波段中,或者與含有這兩個波段(雙波段)的產(chǎn)品一起工作。因此,使用Wi-Fi無線技術(shù)的網(wǎng)絡(luò)可以提供與 IOBaseT有線以太網(wǎng)類似的真實世界性能。上面已經(jīng)描述的內(nèi)容包括所請求保護的主題的示例。當(dāng)然,不可能描述用于描述所請求保護的主題的目標(biāo)的組件或方法的每個可設(shè)想到的組合,但是本領(lǐng)域普通技術(shù)人員可以認(rèn)識到的是,許多進一步的組合和置換是可能的。據(jù)此,詳細(xì)的描述旨在包含落入所附權(quán)利要求書的精神和范圍內(nèi)的所有這些變更、修改和變型。特別地,且針對上述組件、設(shè)備、電路、系統(tǒng)等所執(zhí)行的各種功能,除非另外指出, 否則用以描述這些組件的術(shù)語(包括對于“手段”的引用)旨在對應(yīng)于執(zhí)行所描述的組件的特定功能(例如功能上的等同體)的任何組件,即使在結(jié)構(gòu)上不等同于所公開的結(jié)構(gòu),其執(zhí)行在此說明的示例性方面中的功能。就此,還要認(rèn)識到的是,所描述的方面包括用于執(zhí)行各種方法的動作和/或事件的系統(tǒng)以及具有計算機可執(zhí)行指令的計算機可讀介質(zhì)。另外,盡管可能已經(jīng)針對若干實施方案中的僅一個公開了具體的特性,然而如可能對于任何給定或具體的應(yīng)用而言所期望和有利的那樣,這種特性可以與其它實施方案的一個或多個其它特性組合。此外,就具體的描述或權(quán)利要求書中使用術(shù)語“包括”和“包含” 及其變體而言,這些術(shù)語以與術(shù)語“含有”類似的方式旨在是包容性的。
權(quán)利要求
1.一種方便副本在一組存儲節(jié)點之間的分配的系統(tǒng),包括處理器,其耦接至保留計算機可執(zhí)行指令的存儲器,所述處理器執(zhí)行復(fù)制處理組件(102),其至少部分地基于數(shù)據(jù)(104)的屬性或者一個或多個存儲節(jié)點 (108)的特征來生成對于部分?jǐn)?shù)據(jù)(104)的副本要求;以及安置組件(106),其根據(jù)所述副本要求在所述一個或多個存儲節(jié)點之間分發(fā)所述部分?jǐn)?shù)據(jù)的一個或多個副本,所述安置組件基于識別出的存儲節(jié)點的特征來選擇要存儲副本的存儲節(jié)點。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述部分?jǐn)?shù)據(jù)的屬性包括以下之中的至少一個所述部分?jǐn)?shù)據(jù)的大小、所述部分?jǐn)?shù)據(jù)的壓縮性、所述部分?jǐn)?shù)據(jù)的可恢復(fù)性或?qū)τ谒霾糠謹(jǐn)?shù)據(jù)的授權(quán)限制。
3.如權(quán)利要求1所述的系統(tǒng),其中,所述復(fù)制處理組件包括識別所述部分?jǐn)?shù)據(jù)的屬性的數(shù)據(jù)評估組件。
4.如權(quán)利要求1所述的系統(tǒng),進一步包含網(wǎng)絡(luò)分析器組件,其評估一個多個存儲節(jié)點, 以便將特征分配給所述一個或多個存儲節(jié)點。
5.如權(quán)利要求1所述的系統(tǒng),其中,存儲節(jié)點的特征包括以下之中的至少一個存儲節(jié)點的可用性、存儲節(jié)點的可用存儲容量、對應(yīng)于存儲節(jié)點的存儲的成本、向或自存儲節(jié)點的數(shù)據(jù)傳輸?shù)某杀净虼鎯?jié)點相對于原始節(jié)點的網(wǎng)絡(luò)定位。
6.如權(quán)利要求1所述的系統(tǒng),其中,所述復(fù)制處理組件包括量化組件,其根據(jù)對于所述部分?jǐn)?shù)據(jù)的屬性以及一個或多個存儲節(jié)點的特征的分析來選擇副本要求。
7.如權(quán)利要求6所述的系統(tǒng),其中,所述量化組件采用基于機器學(xué)習(xí)或啟發(fā)式方法的至少一個的統(tǒng)計模型。
8.如權(quán)利要求1所述的系統(tǒng),其中,所述安置組件包括策略生成組件,其根據(jù)所述一個或多個存儲節(jié)點的特征生成安置策略,其中,所述安置策略指定存儲節(jié)點的評級,并且所述安置組件利用安置策略分發(fā)副本以使得所述安置組件將優(yōu)先級給予更高評級的存儲節(jié)點。
9.如權(quán)利要求1所述的系統(tǒng),其中,所述安置組件包括保持索引的分類組件,所述索引包含所述部分?jǐn)?shù)據(jù)的副本和副本已分發(fā)到的存儲節(jié)點之間的關(guān)系的列表,其中,當(dāng)安置組件做出分發(fā)決定時,安置組件對索引中的條目進行添加、刪除或修改中的至少一個。
10.如權(quán)利要求1所述的系統(tǒng),進一步包含觀察組件,其監(jiān)視所述一個或多個存儲節(jié)點以檢測特征的變化,其中,所述安置組件基于所述觀察組件持續(xù)傳遞的監(jiān)視結(jié)果來動態(tài)地調(diào)節(jié)副本的分發(fā)。
11.如權(quán)利要求1所述的系統(tǒng),其中,所述復(fù)制處理組件利用用戶偏好生成副本要求, 并且所述安置組件利用用戶偏好分發(fā)副本。
12.如權(quán)利要求1所述的系統(tǒng),其中,所述這組存儲節(jié)點包括一個或多個對等點或云存儲位置,其中,所述安置組件通過相比于對應(yīng)于云存儲位置的存儲節(jié)點,向?qū)?yīng)于對等點的存儲節(jié)點施加更高級別的偏好來分發(fā)副本。
13.—種在一個或多個存儲位置當(dāng)中存儲數(shù)據(jù)的方法,包含采用執(zhí)行計算機可讀存儲介質(zhì)上存儲的計算機可執(zhí)行指令的處理器以實施下列動作將特征分配給一個或多個存儲節(jié)點,所述特征包括以下之中的至少一個所述一個或多個存儲節(jié)點的可用性、所述一個或多個存儲節(jié)點的存儲容量、與所述一個或多個存儲節(jié)點處的數(shù)據(jù)的存儲相關(guān)聯(lián)的成本或所述一個或多個存儲節(jié)點在網(wǎng)絡(luò)中的定位(704、804); 至少部分地基于所分配的特征來指定對于部分?jǐn)?shù)據(jù)的副本要求(706);以及根據(jù)所分配的特征和所述副本要求,將一個或多個副本置于所述一個或多個存儲節(jié)點 (808)。
14.如權(quán)利要求13所述的方法,進一步包含利用所分配的特征以生成在特征方面對所述一個或多個存儲節(jié)點進行優(yōu)先級化的安置策略。
15.一種方便在一組存儲節(jié)點當(dāng)中分發(fā)數(shù)據(jù)的副本的系統(tǒng),包含用于評估部分?jǐn)?shù)據(jù)以探知如下屬性的裝置,所述屬性包含以下之中的至少一個所述部分?jǐn)?shù)據(jù)的大小、所述部分?jǐn)?shù)據(jù)的壓縮性、所述部分?jǐn)?shù)據(jù)的可分離性或附于所述部分?jǐn)?shù)據(jù)的許可證的事項(102、202、702);用于識別一組存儲節(jié)點的特征的裝置,所述特征包括存儲節(jié)點的可用性、存儲節(jié)點的容量或存儲節(jié)點的網(wǎng)絡(luò)定位(102、204、704、804);用于基于所述部分?jǐn)?shù)據(jù)的屬性或所述這組存儲節(jié)點的特征中的至少一個來生成副本要求的裝置(102、206、706);以及用于根據(jù)基于所識別出的特征的安置策略來選擇至少一個存儲節(jié)點的裝置,所選擇出的存儲節(jié)點存儲所述部分?jǐn)?shù)據(jù)的副本(106、308、808)。
全文摘要
所請求保護的主題涉及方便數(shù)據(jù)的分布式存儲的系統(tǒng)和/或方法。分布式文件系統(tǒng)可以在存儲節(jié)點上實施,以使得系統(tǒng)將數(shù)據(jù)的多個復(fù)本(例如副本)置于各種完全不同的存儲節(jié)點上以保證數(shù)據(jù)的可用性并使數(shù)據(jù)的丟失最小化。動態(tài)地評估存儲節(jié)點以識別各個特征。在一個示例中,特征可包括存儲節(jié)點的可用性、存儲節(jié)點的容量、與存儲節(jié)點相關(guān)聯(lián)的數(shù)據(jù)存儲成本、與存儲節(jié)點相關(guān)聯(lián)的數(shù)據(jù)傳輸成本、存儲節(jié)點的定位、網(wǎng)絡(luò)拓?fù)浠蚺c存儲節(jié)點相關(guān)聯(lián)的用戶偏好。這些特征可用于生成最佳的安置決定。
文檔編號G06F17/00GK102414692SQ201080018060
公開日2012年4月11日 申請日期2010年4月21日 優(yōu)先權(quán)日2009年4月24日
發(fā)明者E. S. 墨菲 E., D. 梅爾 J., V. 萊辛斯基 Y. 申請人:微軟公司