本文討論的實施方式涉及在存儲網(wǎng)絡中的存儲的管理。
背景
個人數(shù)據(jù)(例如照片、視頻、文檔等)的量增加,使得用于存儲個人數(shù)據(jù)的不同方法和系統(tǒng)也增加。然而,存儲個人數(shù)據(jù)的很多方法和系統(tǒng)可提供其它挑戰(zhàn),例如是麻煩的和耗時的,提供不充足的冗余,且不允許在不同設備上的數(shù)據(jù)的容易可訪問性連同其它缺點。
在本文主張的主題不限于解決任何缺點的或只在環(huán)境例如上面所述的環(huán)境中操作的實施方式。更確切地,這個背景只被提供來說明一個示例技術領域,其中本文所述的一些實施方式可被實踐。
概述
示例實施方式包括可包括為與存儲網(wǎng)絡相關的網(wǎng)絡數(shù)據(jù)的存儲而分配的第一部分的存儲塊。存儲網(wǎng)絡可包括存儲塊和一個或多個其它存儲塊。存儲塊還可包括為本地數(shù)據(jù)的存儲而分配的第二部分。本地數(shù)據(jù)可與包括存儲塊的設備的一個或多個程序相關。此外,存儲塊可包括第三部分作為存儲塊的自由空間。第三部分可通過對存儲在第一部分上的網(wǎng)絡數(shù)據(jù)的量做出的調節(jié)而近似地被維持在目標大小處。
實施方式的目的和優(yōu)點將被認識到并至少由在權利要求中特別指出的元件、特征和組合實現(xiàn)。
應理解,前述一般描述和下面的詳細描述都是示例性的和解釋性的且并不限制本發(fā)明,如所主張的。
附圖的簡要說明
將通過附圖的使用以額外的具體性和細節(jié)描述和解釋示例實施方式,其中:
圖1示出示例存儲系統(tǒng)的方框圖;
圖2A-2C示出可在圖1的存儲系統(tǒng)中實現(xiàn)的示例所分配的存儲塊;
圖3是管理在存儲塊上的存儲分配的示例方法的流程圖;以及
圖4是都根據(jù)本文所述的至少一個實施方式的管理在存儲塊上的存儲的示例方法的流程圖。
一些示例實施方式的描述
本文所述的一些實施方式涉及在移動存儲系統(tǒng)上的數(shù)據(jù)的存儲的管理。示例實施方式包括包含一個或多個設備的存儲網(wǎng)絡,這些設備包括一個或多個存儲代理和一個或多個存儲塊。存儲網(wǎng)絡可包括在本公開中可被稱為存儲網(wǎng)絡管理器的管理服務。存儲代理可配置成管理在存儲塊之間的數(shù)據(jù)的合作存儲。存儲網(wǎng)絡管理器可配置成協(xié)調通過一個或多個存儲代理的行動以及在存儲塊當中的存儲網(wǎng)絡內的數(shù)據(jù)的存儲。與存儲網(wǎng)絡相關的數(shù)據(jù)可被稱為“網(wǎng)絡數(shù)據(jù)”,并可包括數(shù)據(jù)文件和數(shù)據(jù)對象以及與數(shù)據(jù)文件和數(shù)據(jù)對象相關的元數(shù)據(jù)。在一些實施方式中,網(wǎng)絡數(shù)據(jù)可包括存儲在存儲網(wǎng)絡中的數(shù)據(jù)的目錄,其在一些實例中可以是存儲在存儲網(wǎng)絡中的所有數(shù)據(jù)的目錄。
一個或多個存儲塊可包括為了網(wǎng)絡數(shù)據(jù)的存儲而分配的第一部分和為本地數(shù)據(jù)分配的第二部分。本地數(shù)據(jù)可以是可由存儲塊可被包括在其中的設備的一個或多個程序使用和/或管理的數(shù)據(jù)。此外,一個或多個存儲塊可包括被分配為自由空間的第三部分。第三部分可具有目標大小,使得期望量的自由空間可被維持在存儲塊上。如下所述,可調節(jié)存儲在第一部分上的存儲網(wǎng)絡數(shù)據(jù)的量,使得第三部分的實際大小等于或近似等于目標大小。
將參考附圖解釋本公開的實施方式。
圖1示出根據(jù)本公開的至少一個實施方式配置的示例存儲系統(tǒng)100的方框圖。存儲系統(tǒng)100可包括存儲網(wǎng)絡102,其包括存儲代理(SA)104a-104c。雖然存儲系統(tǒng)100被示為包括具有被包括在其中的三個不同的存儲代理104的單個存儲網(wǎng)絡102,系統(tǒng)100可包括任何數(shù)量的存儲網(wǎng)絡102,每個可包括任何數(shù)量的存儲代理104。
在一些實施方式中,存儲系統(tǒng)100可配置成存儲、組織和管理數(shù)據(jù)文件,例如照片、視頻、文檔等。在一些實施方式中,數(shù)據(jù)文件可被包括在數(shù)據(jù)對象中,數(shù)據(jù)對象還可包括可提供關于數(shù)據(jù)文件的信息的元數(shù)據(jù)。在本公開中的術語“數(shù)據(jù)”可以指可由存儲代理104存儲并可包括一個或多個數(shù)據(jù)對象、數(shù)據(jù)文件、元數(shù)據(jù)或其任何組合的任何適當信息。
此外,術語“網(wǎng)絡數(shù)據(jù)”可以指可由存儲網(wǎng)絡102的多于一個存儲代理104共享、存儲在存儲網(wǎng)絡102的多于一個存儲代理104上和/或在存儲網(wǎng)絡102的多于一個存儲代理104之間同步的任何數(shù)據(jù)。例如,網(wǎng)絡數(shù)據(jù)可包括數(shù)據(jù)文件、元數(shù)據(jù)、數(shù)據(jù)對象或其它數(shù)據(jù)如數(shù)據(jù)對象根和樹結構信息、存儲代理狀態(tài)信息(在下面更詳細地解釋)、數(shù)字版權管理(DRM)許可信息(在下面更詳細地解釋)、共享票證信息(在下面更詳細地解釋)、任何其它適當?shù)男畔⒒蚱淙魏谓M合。
存儲系統(tǒng)100可配置成以可減小用戶所需的輸入的量的自動化方式組織并管理存儲在與存儲代理104a-104c相關的存儲塊110中的數(shù)據(jù)。因此,存儲系統(tǒng)100可便于由存儲網(wǎng)絡102內的存儲塊110存儲的數(shù)據(jù)的組織和對該數(shù)據(jù)的訪問。
存儲代理104每個可與處理器150、存儲器152和存儲塊110相關。例如,在所示實施方式中,存儲代理104a可包括處理器150a、存儲器152a和存儲塊110a;存儲代理104b可包括處理器150b、存儲器152b和存儲塊110b;以及存儲代理104c可包括處理器150c、存儲器152c和存儲塊110c。
處理器150可包括例如微處理器、微控制器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或配置成解釋和/或執(zhí)行程序指令和/或處理數(shù)據(jù)的任何其它數(shù)字或模擬電路。在一些實施方式中,處理器150可解釋和/或執(zhí)行程序指令和/或處理存儲在它們相關的存儲器152和/或一個或多個存儲塊110中的數(shù)據(jù)。
存儲器152可包括配置成在一段時間期間保留程序指令和/或數(shù)據(jù)的任何適當?shù)挠嬎銠C可讀介質。作為例子而不是限制,這樣的計算機可讀介質可包括有形計算機可讀存儲介質,包括隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、光盤只讀存儲器(CD-ROM)或其它光盤存儲器、磁盤存儲器或其它磁性存儲設備、閃存設備(例如固態(tài)存儲器設備)、專用分子序列(例如DNA或RNA)或可用于攜帶或存儲以計算機可執(zhí)行指令或數(shù)據(jù)結構的形式的期望程序代碼并可由處理器150訪問的任何其它存儲介質。上述項的組合也可被包括在計算機可讀介質的范圍內。計算機可執(zhí)行指令可包括例如使通用計算機、專用計算機或專用處理設備(例如處理器150)執(zhí)行某些功能或功能組的指令和數(shù)據(jù)。
存儲塊110也可以是配置成存儲數(shù)據(jù)和/或數(shù)據(jù)對象的任何適當?shù)挠嬎銠C可讀介質。存儲塊110可在不同的存儲塊110當中存儲可以是實質上相同的網(wǎng)絡數(shù)據(jù),并且還可存儲可以只在特定的存儲塊110上找到的本地數(shù)據(jù)。雖然每個存儲代理104被描繪為包括單個存儲塊110,存儲代理104可包括任何數(shù)量的計算機可讀介質的任何數(shù)量的存儲塊110。例如,存儲代理104可包括是硬盤驅動器的第一存儲塊110和是閃存磁盤驅動器的第二存儲塊110。此外,存儲塊110可包括多于一種類型的計算機可讀介質。例如,存儲塊110可包括硬盤驅動器和閃存驅動器。
此外,多于一個存儲代理104可與同一存儲塊110相關,取決于不同的實現(xiàn)和配置。例如,存儲塊110可以是可在不同的時間連接到不同的存儲代理104的通用串行總線(USB)存儲設備或安全數(shù)字(SD)卡。此外,雖然存儲代理104可明確地被描繪為包括處理器150、存儲器152和存儲塊110,不同的實現(xiàn)可具有不同的配置。例如在一些實施方式中,存儲代理104可以是被包括在它們的相關設備的存儲器152中的帶有計算機可執(zhí)行指令的模塊,計算機可執(zhí)行指令配置成使它們的相關設備的處理器150執(zhí)行與可存儲在存儲塊110上的管理數(shù)據(jù)相關的操作。
與在存儲網(wǎng)絡102內的數(shù)據(jù)的組織和管理相關的一些功能可與在存儲塊110中的一個或多個部分的分配和管理相關。通過分配,存儲塊110的有效使用可被維持。關于圖2A-2C提供存儲塊110的示例分配和存儲塊110的示例管理過程。
在一些實施方式中,一個或多個存儲代理104與可包括存儲代理104的部件的任何適當?shù)脑O備包括在一起。例如,存儲代理104可被包括在云存儲服務器、移動電話、平板計算機、個人計算機、膝上型計算機、攝像機、個人數(shù)字助理(PDA)、智能電話、音樂播放器、視頻播放器、外部硬盤驅動器等中。
與存儲代理104相關的設備可包括可允許在存儲代理104之間傳遞數(shù)據(jù)的任何設備。相應地,設備可提供在存儲代理104之間的某種通信能力,例如互聯(lián)網(wǎng)連接、局域網(wǎng)(LAN)連接、廣域網(wǎng)(WAN)連接、藍牙連接、3G連接、4G連接、LTE連接、無線保真(WiFi)連接、機器對機器(M2M)連接、設備到設備(D2D)連接、任何其它適當?shù)耐ㄐ拍芰蚱淙魏芜m當?shù)慕M合。
如上面指示的,存儲代理104可經(jīng)由直接通信和/或經(jīng)由網(wǎng)絡通信來執(zhí)行上述通信。在所示實施方式中,存儲代理104被描繪為通信地直接以及通過通信網(wǎng)絡112耦合到彼此。在一些實施方式中,通信網(wǎng)絡112可單獨地或以任何適當?shù)慕M合包括互聯(lián)網(wǎng)、內聯(lián)網(wǎng)、局部WiFi網(wǎng)絡、無線LAN、移動網(wǎng)絡(例如3G、4G和/或LTE網(wǎng)絡)、LAN、WAN或任何其它適當?shù)耐ㄐ啪W(wǎng)絡。
在存儲代理104之間的數(shù)據(jù)的傳遞可相應地允許它們的相關設備訪問并使用可能不一定在本地存儲在它們的相應存儲塊110上的網(wǎng)絡數(shù)據(jù)。因此,存儲網(wǎng)絡102和存儲代理104可允許網(wǎng)絡數(shù)據(jù)的存儲,同時也允許對網(wǎng)絡數(shù)據(jù)的訪問,即使數(shù)據(jù)不在本地存儲在特定的存儲代理上。
在一些實施方式中,存儲代理104可與被包括在基于對象的文件系統(tǒng)中的客戶端或服務器類似地起作用。例如,存儲代理104可配置成實現(xiàn)與在存儲網(wǎng)絡102和存儲系統(tǒng)100內傳遞數(shù)據(jù)相關的協(xié)議。此外,由存儲代理104管理的一些存儲塊110可配置成只存儲被包括在各種數(shù)據(jù)對象中的元數(shù)據(jù),而其它存儲塊110可配置成存儲被包括在各種數(shù)據(jù)對象中的元數(shù)據(jù)和數(shù)據(jù)文件。
在一些實施方式中,為了管理并提供與在存儲網(wǎng)絡102中的數(shù)據(jù)的存儲有關的信息,數(shù)據(jù)的目錄可對存儲網(wǎng)絡102產生并被管理。例如,在一些實施方式中,目錄可包括信息,例如哪些存儲塊110可在本地存儲數(shù)據(jù)對象、單獨的數(shù)據(jù)文件和/或任何其它元數(shù)據(jù)。目錄還可包括可與數(shù)據(jù)文件相關的任何其它元數(shù)據(jù)。在一些實施方式中,目錄可包括存儲在存儲網(wǎng)絡102中的數(shù)據(jù)對象的所有元數(shù)據(jù)的集合。相應地,目錄可用于確定哪個存儲塊110具有存儲在其上的某些數(shù)據(jù)以及關于存儲在不同的存儲塊110上的數(shù)據(jù)的其它信息。因此,存儲代理104可知道從哪里訪問數(shù)據(jù),如果數(shù)據(jù)未在本地存儲在它們相應的存儲塊110上。
在一些實施方式中,存儲代理104可配置成連接到彼此并同步可存儲在存儲網(wǎng)絡102當中的網(wǎng)絡數(shù)據(jù)。例如,在一些實施方式中,存儲塊110可配置成存儲來自與存儲網(wǎng)絡102相關的目錄的所有元數(shù)據(jù),使得每個相關的存儲代理104可具有關于由該目錄編索引的不同數(shù)據(jù)文件的信息(例如數(shù)據(jù)文件更新、數(shù)據(jù)文件刪除、數(shù)據(jù)文件添加等)。在這些和其它實施方式中,存儲代理104可在存儲塊之間同步目錄,使得它們可具有關于存儲網(wǎng)絡102的最新信息。
通過同步網(wǎng)絡數(shù)據(jù)例如目錄,存儲代理104可以知道或關于其它存儲代理104的狀態(tài)以及存儲在存儲網(wǎng)絡102內的網(wǎng)絡數(shù)據(jù)被更新。例如,第一存儲代理104a可與第二存儲代理104b和/或第三存儲代理104c同步,使得第一存儲代理104a關于第二存儲代理104b和/或第三存儲代理104c的連接或操作狀態(tài)以及存儲在其上的網(wǎng)絡數(shù)據(jù)被更新。
除了在彼此之間通信以外,在一些實施方式中,存儲代理104還可與可管理在整個存儲網(wǎng)絡中的網(wǎng)絡數(shù)據(jù)的存儲并可共同地或單獨地被稱為存儲網(wǎng)絡管理器114的一個或多個存儲網(wǎng)絡控制器通信。存儲網(wǎng)絡管理器114可與在分布式存儲系統(tǒng)中的中央服務類似地起作用。存儲網(wǎng)絡管理器114可通過存儲代理104來執(zhí)行在存儲系統(tǒng)100中的多個功能,例如協(xié)調行動。例如,存儲網(wǎng)絡管理器114的功能可包括但不限于找出在存儲網(wǎng)絡102內的數(shù)據(jù)文件的位置,協(xié)調在存儲代理104之間的網(wǎng)絡數(shù)據(jù)的同步,以及在存儲塊110之間分配網(wǎng)絡數(shù)據(jù)。
在一些實施方式中,存儲網(wǎng)絡管理器114可被包括在與存儲代理104相同的設備中,且在其它實施方式中,存儲網(wǎng)絡管理器114可被包括在與存儲代理104分離的一個或多個設備中。此外,在一些實施方式中,存儲網(wǎng)絡管理器114可執(zhí)行操作,使得存儲網(wǎng)絡管理器114可充當且是存儲代理。例如,存儲網(wǎng)絡管理器114可存儲一些網(wǎng)絡數(shù)據(jù),例如目錄和/或與存儲網(wǎng)絡102相關的其它元數(shù)據(jù),并可使它的網(wǎng)絡數(shù)據(jù)與存儲代理104同步,使得存儲網(wǎng)絡管理器114可關于這樣的網(wǎng)絡數(shù)據(jù)充當存儲代理。
在一些實施方式中,存儲網(wǎng)絡管理器114可經(jīng)由通信網(wǎng)絡112(如圖1所示)與存儲代理104通信。存儲網(wǎng)絡管理器114還可配置成經(jīng)由到相應的存儲代理104的直接通信(未在圖1中明確示出)與一個或多個存儲代理104通信。
在一些實施方式中,存儲網(wǎng)絡管理器114可配置成使得存儲在存儲網(wǎng)絡102中的數(shù)據(jù)文件不存儲在存儲網(wǎng)絡管理器114上,但與存儲網(wǎng)絡102的數(shù)據(jù)文件有關的元數(shù)據(jù)(例如目錄)可存儲在存儲網(wǎng)絡管理器114上。在一些實施方式中,存儲網(wǎng)絡管理器114可將關于數(shù)據(jù)的存儲的指令傳遞到存儲代理104。存儲代理104可響應于從存儲網(wǎng)絡管理器114傳遞的指令而起作用。
存儲代理104可根據(jù)可存儲在存儲塊110上的元數(shù)據(jù)來找出在存儲網(wǎng)絡102內的數(shù)據(jù)文件的位置。例如,存儲代理104a可使用存儲在與存儲代理104a相關的存儲塊110a上的元數(shù)據(jù)(例如目錄)來找出存儲在存儲網(wǎng)絡110b上的數(shù)據(jù)文件的位置。找出數(shù)據(jù)文件的位置的一些或所有信息可在存儲代理104之間和/或存儲代理104和存儲網(wǎng)絡管理器114之間的同步期間被傳遞。此外或可選地,存儲代理104可與存儲網(wǎng)絡管理器114通信以找出存儲在存儲網(wǎng)絡102上的數(shù)據(jù)文件。
此外,存儲網(wǎng)絡管理器114可使用與其它存儲代理104的不可靠或間歇的連接與一個或多個存儲代理104通信。例如,存儲代理104c可使用不可靠的連接通信地耦合到存儲代理104b和/或存儲代理104a,或存儲代理104c可被包括在間歇地連接到存儲代理104b和/或存儲代理104a的外部設備中。存儲網(wǎng)絡管理器114可經(jīng)由通信網(wǎng)絡112相應地與存儲代理104c通信,然后將關于存儲代理104c和存儲塊110c的信息(例如網(wǎng)絡數(shù)據(jù))分程傳遞到存儲代理104b和/或存儲代理104a。
在一些實施方式中,一個或多個存儲代理104(或它們的相關設備)可包括本地適配器130。在圖1中,本地適配器130被描繪為包括在第二存儲代理104b中;然而,一個或多個其它存儲代理104a和/或104c或它們的相關設備可包括本地適配器130。通常,本地適配器130可創(chuàng)建在與存儲代理104b相關的設備和存儲網(wǎng)絡102之間的接口。此外,本地適配器130可配置成執(zhí)行多個功能,例如瀏覽和閱讀數(shù)據(jù)的目錄,創(chuàng)建新數(shù)據(jù)對象,以及注冊并取消注冊適配器管理的數(shù)據(jù)文件。例如,與存儲代理104b相關的設備可產生數(shù)據(jù)對象,且本地適配器130可配置成便于所產生的數(shù)據(jù)對象吸收到存儲網(wǎng)絡102內。
在這些和其它情況下,本地適配器130可充當數(shù)據(jù)對象的短期高速緩存存儲器,直到數(shù)據(jù)對象被吸收到存儲網(wǎng)絡102內為止。在可選的例子中,存儲網(wǎng)絡管理器114、一個或多個存儲代理104或另一系統(tǒng)可配置成檢測所產生的數(shù)據(jù)對象的數(shù)據(jù)文件是否是通過本地適配器130可訪問的。當數(shù)據(jù)文件是通過本地適配器130可訪問的時,數(shù)據(jù)對象的元數(shù)據(jù)可存儲在存儲塊110中,使得數(shù)據(jù)對象可被添加到目錄以向存儲網(wǎng)絡102的其它存儲代理104提供數(shù)據(jù)對象和相關數(shù)據(jù)文件的認識。此外,當數(shù)據(jù)文件是通過本地適配器130可訪問的時,存儲網(wǎng)絡管理器114、存儲代理104或另一系統(tǒng)可配置成防止在存儲塊110中創(chuàng)建數(shù)據(jù)文件的額外拷貝。數(shù)據(jù)文件可因此經(jīng)由本地適配器130由存儲網(wǎng)絡102可訪問,本質上創(chuàng)建到數(shù)據(jù)文件的模擬鏈接。
如下面更詳細描述的,可分配存儲塊110以有效地存儲網(wǎng)絡數(shù)據(jù)并確保在存儲網(wǎng)絡102內的冗余以及存儲塊110的期望配置。圖2A-2C示出根據(jù)本文所述的至少一個實施方式的可由存儲代理201管理的示例所分配的存儲塊200。所分配的存儲塊200可實質上類似于關于圖1討論的存儲塊110。存儲代理201可實質上類似于關于圖1討論的一個或多個存儲代理104。所分配的存儲塊200可被包括在存儲網(wǎng)絡例如圖1的存儲網(wǎng)絡102中。此外,存儲代理201和所分配的存儲塊200可與設備例如圖1的設備106之一相關。存儲代理201和所分配的存儲塊200相關于的存儲網(wǎng)絡可具有可對在存儲網(wǎng)絡內存儲的網(wǎng)絡數(shù)據(jù)編索引的數(shù)據(jù)的目錄。所分配的存儲塊200可配置成存儲數(shù)據(jù)的目錄的數(shù)據(jù)對象的元數(shù)據(jù)224和/或數(shù)據(jù)的目錄的數(shù)據(jù)對象的數(shù)據(jù)文件。
圖2A-2C包括根據(jù)本文所述的至少一個實施方式的所分配的存儲塊200的分配210a-210c。具體地,圖2A描繪初始分配210a,圖2B描繪中間分配210b,以及圖2C描繪所決定的分配210c。組合地參考圖2A-2C,所分配的存儲塊200可包括第一部分202、第二部分204和第三部分206。
可為了與存儲網(wǎng)絡有關的網(wǎng)絡數(shù)據(jù)的存儲而分配第一部分202,所分配的存儲塊200被包括在存儲網(wǎng)絡中。例如,存儲在第一部分202上的元數(shù)據(jù)224可包括網(wǎng)絡數(shù)據(jù)的每個數(shù)據(jù)對象的元數(shù)據(jù)。在一些實施方式中,元數(shù)據(jù)224可被布置為對所有網(wǎng)絡數(shù)據(jù)編索引的數(shù)據(jù)的目錄。此外,根據(jù)包括在第一部分202中的存儲空間的量的各種因素,網(wǎng)絡數(shù)據(jù)的全部或子集可存儲在第一部分202上。在一些實施方式中,第一部分202的大小(例如被分配到第一部分202的存儲空間的量)可以是存儲空間的最小數(shù)量或所分配的存儲塊200的存儲空間的某個百分比。在其它實施方式中,第一部分202的大小可以是在第二部分204的期望大小和第三部分206的目標大小被滿足之后在所分配的存儲塊200上留下的存儲空間的量,如在下面更詳細解釋的。
在這個和其它實施方式中,網(wǎng)絡數(shù)據(jù)的全部或子集是否存儲在第一部分202上可基于第一部分202的可用空間。當?shù)谝徊糠?02的可用空間大于網(wǎng)絡數(shù)據(jù)的大小時,則所有網(wǎng)絡數(shù)據(jù)可存儲在第一部分202上。可選地,當?shù)谝徊糠?02的可用空間小于網(wǎng)絡數(shù)據(jù)的大小時,網(wǎng)絡數(shù)據(jù)212的第一子集可存儲在第一部分202上。在一些實施方式中,存儲網(wǎng)絡管理器例如圖1的存儲網(wǎng)絡管理器114可配置成分配網(wǎng)絡數(shù)據(jù)的哪些數(shù)據(jù)文件可被包括在網(wǎng)絡數(shù)據(jù)212的第一子集中。
此外,在一些實施方式中,網(wǎng)絡數(shù)據(jù)212的第一子集的一個或多個數(shù)據(jù)文件可被設計為數(shù)據(jù)文件的次級拷貝或初級拷貝。初級拷貝可以是存儲網(wǎng)絡管理器可指定為存儲在第一部分202上作為相關數(shù)據(jù)文件的期望冗余的部分的拷貝??蛇x地,次級拷貝是在本地存儲在第一部分202中的所分配的存儲塊200上的相關數(shù)據(jù)文件以便于對在設備(所分配的存儲塊200和存儲代理201與該設備相關)上的相關數(shù)據(jù)文件的訪問但不是期望冗余的部分的拷貝。在一些實施方式中,次級拷貝可存儲在與所分配的存儲塊200相關的高速緩存存儲器中。在一些實施方式中,存儲代理201可被允許從第一部分202單方面地移除數(shù)據(jù)文件的次級拷貝而沒有來自存儲網(wǎng)絡管理器的允許,但在沒有來自存儲網(wǎng)絡管理器的允許時,不可移除數(shù)據(jù)文件的初級拷貝。
可為可由與存儲代理201和所分配的存儲塊200相關的設備的一個或多個程序使用和/或維持的本地數(shù)據(jù)分配所分配的存儲塊200的第二部分204。例如,第二部分204可使與和第一部分202相關的存儲網(wǎng)絡無關的程序能夠存儲本地數(shù)據(jù)以運行和/或處理信息。第二部分204的大小可基于任何數(shù)量的因素,例如設備類型、設備的歷史使用、裝到設備上的多個程序、裝在設備上的程序的類型等。例如,設備可包括可產生可存儲在第二部分204上的文檔的字處理器或電子制表軟件。相應地,第二部分204的大小可被分配以適應這種類型的數(shù)據(jù)的添加。
此外,第二部分204的大小可通常基于在設備上運行的多個程序和/或由程序執(zhí)行的過程的數(shù)量而改變或變化。例如,第二部分204可最初被分配為具有大約與存儲在所分配的存儲塊200上的本地數(shù)據(jù)大約相同的初始大小。當本地數(shù)據(jù)的量例如通過程序的添加而增加時,第二部分204的大小也可增加。
所分配的存儲塊204的第三部分206可被分配為自由空間。術語“自由空間”用于指可沒有數(shù)據(jù)文件、元數(shù)據(jù)、程序文件等的所分配的存儲塊200的區(qū)段。第三部分206可包括目標大小。目標大小可以是第三部分206的期望大小并可以提供使數(shù)據(jù)添加到所分配的存儲塊200的靈活性。在一些實施方式中,目標大小可以是存儲空間的固定量或所分配的存儲塊200的總大小的百分比。
例如,第三部分206的目標大小可包括所分配的存儲塊200的預先確定的百分比、存儲空間的某個數(shù)量、或實現(xiàn)本文所述的功能的某個其它目標大小。作為例子,第三部分206可以是存儲塊200的總存儲容量的25%。可選地,第三部分206可包括某個數(shù)量的位或字節(jié)。在一些實施方式中,目標大小可基于本地數(shù)據(jù)的數(shù)據(jù)文件的平均大小和/或網(wǎng)絡數(shù)據(jù)的數(shù)據(jù)文件的平均大小,使得所分配的存儲塊200可以有空間來添加可應用的數(shù)據(jù)文件,如果需要。
第三部分206的大小可改變或變化。例如,當新數(shù)據(jù)對象被添加到所分配的存儲塊200(例如被添加到第一部分202、第二部分204或第三部分206)時,在所分配的存儲塊200中的自由空間的量可減小。相應地,在一些實例中,所分配的存儲塊200的第三部分206可減小。例如,新數(shù)據(jù)對象可包括由設備拍攝的照片,所分配的存儲塊200被包括在該設備上。照片可由相關適配器自動添加到所分配的存儲塊200(例如到第一部分202),這可減小在所分配的存儲塊200上的自由存儲空間的量并因此可在一些實例中減小第三部分206的大小。作為另一例子,在一些實施方式中,第二部分204可在大小上增加(例如通過程序的添加等),使得第三部分206可在大小上減小。此外,在一些實施方式中,網(wǎng)絡數(shù)據(jù)可以如由存儲網(wǎng)絡管理器指示的被添加到第一部分202,使得第三部分206的大小可減小。相反,一個或多個數(shù)據(jù)文件或數(shù)據(jù)對象可從第一部分202和/或第二部分204移除,這可增加第三部分206的大小。
存儲代理201和/或存儲網(wǎng)絡管理器可配置成通過調節(jié)存儲在第一部分202上的網(wǎng)絡數(shù)據(jù)的量來將第三部分206維持在大約目標大小處。例如在一些實施方式中,可確定第三部分206的大小(例如在所分配的存儲代理上的自由空間的量)大于第三部分206的目標大小。相應地,在一些實例中,存儲代理201可將此通知給存儲網(wǎng)絡管理器,且存儲網(wǎng)絡管理器可分配來自網(wǎng)絡數(shù)據(jù)的額外數(shù)據(jù)文件以存儲在第一部分202上,這可減小第三部分206的大小??勺龀鼍W(wǎng)絡數(shù)據(jù)的額外數(shù)據(jù)文件到第一部分202的分配,使得第三部分206的大小可等于或近似等于目標大小。
此外,在一些實施方式中,可確定第三部分206的大小小于第三部分206的目標大小。例如,第三部分206的大小可由于數(shù)據(jù)到第一部分202和/或第二部分204的添加而減小。相應地,在一些實例中,存儲代理201可從第一部分202移除網(wǎng)絡數(shù)據(jù),使得第三部分206的大小可增加。網(wǎng)絡數(shù)據(jù)的移除可被執(zhí)行,直到第三部分206的大小近似等于或等于目標大小為止。
在一些實施方式中,存儲代理201可配置成首先移除被指定為次級拷貝的網(wǎng)絡數(shù)據(jù)的數(shù)據(jù)文件,因為次級拷貝可以不是它們的相關數(shù)據(jù)文件的期望冗余。相反,在未首先接收到來自存儲網(wǎng)絡管理器的允許時,存儲代理201可能不能夠移除被指定為初級拷貝的數(shù)據(jù)文件。相應地,在一些實施方式中,當沒有存儲在第一部分202上的數(shù)據(jù)文件的更多的次級拷貝且第三部分206的大小小于目標大小時,存儲代理201可將關于哪些數(shù)據(jù)文件可從第一部分202移除的請求傳遞到存儲網(wǎng)絡管理器。
圖2A-2C示出當?shù)诙糠?04在尺寸上增加使得第三部分206在尺寸上減小到低于目標大小時在所分配的存儲塊200中的行動的示例進展。圖2A示出初始分配210a。在初始分配中,第三部分206的目標大小可以是所分配的存儲塊的總存儲容量的10%,且第三部分206的大小可以近似等于目標大小。此外,可為與一個或多個程序相關的本地數(shù)據(jù)分配第二部分204,以及可為元數(shù)據(jù)224和網(wǎng)絡數(shù)據(jù)212的第一子集的存儲分配第一部分202。
圖2B示出中間分配210b,其中第二部分204增加以包括第三部分206的一部分208。例如,可最初使用第二部分204的程序可增加存儲使用以包括第三部分206的部分208。因此,第三部分206可例如從所分配的存儲塊200的存儲容量的大約10%減小到大約7%。中間分配210b可例如從在包括所分配的存儲塊200的設備上裝入和/或運行的一個或多個程序產生。
圖2C示出所決定的分配210c,其中第三部分206可增加。具體地,第三部分206可通過將第一部分202中的一些重新分配到第三部分206內來返回到目標百分比(例如大約10%)。因此,可通過將第一部分202中的一些重新分配到第三部分206內來維持第三部分206的目標大小(例如所分配的存儲塊200的總大小的10%)。
在一些實施方式中,為了重新分配第一部分202,可檢測在第一部分202上的一個或多個數(shù)據(jù)文件。例如參考圖2A和2C,在初始分配210a中,網(wǎng)絡數(shù)據(jù)212的第一子集可存儲在所分配的存儲塊200的第一部分202上。在圖2C的所決定的分配中,網(wǎng)絡數(shù)據(jù)216的第二子集可存儲在第一部分202上,其中數(shù)據(jù)文件216的第二子集可以比數(shù)據(jù)文件212的第一子集小。在數(shù)據(jù)文件可被刪除以維持預先配置的百分比的實施方式中,數(shù)據(jù)文件216的第二子集可包括數(shù)據(jù)文件212的第一子集中的一個或多個。
圖3是根據(jù)本文所述的至少一個實施方式的管理在存儲塊上的存儲分配的示例方法300的流程圖。方法300的一個或多個步驟可在一些實施方式中由在存儲系統(tǒng)中操作的存儲代理和/或存儲網(wǎng)絡管理器例如在圖1的示例存儲系統(tǒng)100中操作的示例存儲代理104和示例存儲網(wǎng)絡管理器114實現(xiàn)。例如,圖1的存儲代理104和/或存儲網(wǎng)絡管理器114之一可配置成執(zhí)行計算機指令以執(zhí)行管理如由方法300的一個或多個塊表示的在存儲代理上的存儲分配的操作。雖然被示為分立的塊,各種塊可分成額外的塊,組合成更少的塊,或被消除,取決于期望實現(xiàn)?,F(xiàn)在將參考圖3討論方法300。
方法300可在塊302開始,在塊302,存儲塊的第一部分被分配到用于網(wǎng)絡數(shù)據(jù)的存儲的第一部分內。網(wǎng)絡數(shù)據(jù)可與包括存儲塊和一個或多個其它存儲塊的存儲網(wǎng)絡相關。在塊304,可為與包括存儲塊的設備的一個或多個程序相關的本地數(shù)據(jù)分配存儲塊的第二部分。在塊306,存儲塊的第三部分可被分配為存儲塊的自由空間。第三部分可具有與在存儲塊上的自由空間的期望量相關的目標大小。
在塊308,可通過調節(jié)存儲在第一部分上的網(wǎng)絡數(shù)據(jù)的量來將第三部分的大小維持在大約目標大小處。在一些實施方式中,第三部分的大小可根據(jù)下面關于圖4所述的方法400來近似地被維持在目標大小處。
圖4是根據(jù)本文所述的至少一個實施方式的管理在存儲塊上的存儲的示例方法400的流程圖。方法400的一個或多個步驟可在一些實施方式中由在存儲系統(tǒng)中操作的存儲代理和/或存儲網(wǎng)絡管理器例如圖1和2A-2C的示例存儲代理104和201以及在圖1的示例存儲系統(tǒng)100中操作的示例存儲網(wǎng)絡管理器114實現(xiàn)。例如,上面所述的存儲代理104、201和/或存儲網(wǎng)絡管理器114之一可配置成執(zhí)行計算機指令以執(zhí)行管理如由方法400的一個或多個塊表示的在存儲代理上的存儲分配的操作。雖然被示為分立的塊,各種塊可分成額外的塊,組合成更少的塊,或被消除,取決于期望實現(xiàn)。
現(xiàn)在將參考圖4討論方法400。在一些實施方式中,方法400可關于存儲塊來實現(xiàn),存儲塊以如上面關于圖2A-2C和3所述的方式被分配到網(wǎng)絡數(shù)據(jù)的第一部分、本地數(shù)據(jù)的第二部分和自由空間的第三部分內。為了解釋的目的,下面關于存儲代理201、所分配的存儲塊200及其相關的第一部分202、第二部分204和第三部分206描述方法400。然而,方法400不限于這個特定的實現(xiàn)。
方法400可在塊402開始,在塊402,可為所分配的存儲塊200確定第三部分206的目標大小。在一些實施方式中,存儲代理201可確定自由存儲空間的目標大小。在這些或其它實施方式中,與存儲網(wǎng)絡(所分配的存儲塊200可被包括在存儲網(wǎng)絡中)相關的存儲網(wǎng)絡管理器也可確定第三部分206的目標大小并將目標大小傳遞到存儲代理201。
如上面所示的,可在一些實施方式中基于所分配的存儲塊200的自由存儲空間的期望量來確定目標大小,使得所分配的存儲塊200可添加數(shù)據(jù),如果需要或期望。在一些實施方式中,目標大小可基于網(wǎng)絡數(shù)據(jù)的平均文件大小、本地數(shù)據(jù)的平均文件大小和/或所分配的存儲塊200的總存儲容量。在這些和其它實施方式中,目標大小可以是所分配的存儲塊200的總存儲容量的百分比或存儲空間的固定量。
在塊404,可監(jiān)控第三部分206的大小。存儲代理201和/或相關的存儲網(wǎng)絡管理器可執(zhí)行監(jiān)控。在塊406,可確定第三部分206的大小近似等于或等于與自由存儲空間的期望量相關的目標大小。存儲代理201和/或相關的存儲網(wǎng)絡管理器可再一次做出這個確定。當?shù)谌糠?06的大小近似等于或等于目標大小時,方法400可返回到用于監(jiān)控第三部分206的大小的塊404。當?shù)谌糠?06的大小不近似等于或等于目標大小時,方法400可繼續(xù)進行到塊408。
在塊408,可確定第三部分206的大小是否大于目標大小。在一些實施方式中,當?shù)谌糠?06的大小大于目標大小時,方法400可繼續(xù)進行到塊410。當?shù)谌糠?06的大小大于目標大小時,所分配的存儲塊200可能能夠存儲更多的數(shù)據(jù),例如網(wǎng)絡數(shù)據(jù)。相應地,在一些實施方式中,在塊410,可確定網(wǎng)絡數(shù)據(jù)的哪些數(shù)據(jù)文件可被添加到第一部分202。
在一些實施方式中,在塊410,網(wǎng)絡數(shù)據(jù)的某些數(shù)據(jù)文件可能已經(jīng)由存儲網(wǎng)絡管理器分配到第一部分202,但分配到第一部分202的數(shù)據(jù)文件可能還未全部保存到第一部分202。因此,可確定這些數(shù)據(jù)文件中的一個或多個應在塊410被添加到第一部分202。在這些或其它實施方式中,所有所分配的數(shù)據(jù)文件可存儲在第一部分202上,或分配可能是過時的,使得存儲網(wǎng)絡管理器可根據(jù)任何適當?shù)姆峙浞桨府a生可被添加到第一部分202的網(wǎng)絡數(shù)據(jù)的數(shù)據(jù)文件的列表。相應地,在一些實施方式中,可在塊410確定由存儲網(wǎng)絡管理器產生的數(shù)據(jù)文件的列表的一個或多個數(shù)據(jù)文件應被添加到第一部分202。在一些實施方式中,存儲網(wǎng)絡管理器可配置成監(jiān)控第一部分202,并可單方面地產生列表,而在其它實施方式中,存儲代理201可從存儲網(wǎng)絡管理器請求列表。
在塊412,在塊210中被確定為添加到第一部分202的網(wǎng)絡數(shù)據(jù)的數(shù)據(jù)文件可被添加到第一部分202。在一些實施方式中,網(wǎng)絡數(shù)據(jù)的數(shù)據(jù)文件可從可被包括存儲網(wǎng)絡中的一個或多個其它存儲塊添加到第一部分202,存儲代理201被包括在存儲網(wǎng)絡中。在塊412之后,方法400可返回到塊404。在一些實施方式中,方法400可省略塊410和412,且當?shù)谌糠值拇笮〈笥谀繕舜笮r方法400可從塊408繼續(xù)回到塊404。
返回到塊408,其可確定第三部分206的大小是否大于目標大小。在一些實施方式中,當?shù)谌糠?06的大小小于目標大小時,方法400可繼續(xù)進行到塊414。在塊414,可產生存儲在第一部分202上作為次級拷貝的數(shù)據(jù)文件的列表。在塊416,可移除被指定為次級拷貝的一個或多個數(shù)據(jù)文件。存儲代理201和/或存儲網(wǎng)絡管理器可配置成產生和/或執(zhí)行與塊414和416相關的指令??稍谝恍嵗惺紫纫瞥龜?shù)據(jù)文件的次級拷貝,因為如上面提到的,它們關于其相關數(shù)據(jù)的期望冗余可以不是非常重要。此外,由于操作與數(shù)據(jù)文件的次級拷貝有關,存儲代理201可能能夠執(zhí)行與塊414和416相關的操作而沒有來自存儲網(wǎng)絡管理器的授權。
在塊418,可在刪除一個或多個次級拷貝之后確定第三部分206的大小是否仍然小于目標大小。在一些實施方式中,當?shù)谌糠?06的大小小于目標大小時,可刪除更多的次級拷貝,如果它們沒有全部已經(jīng)被刪除。在這些和其它實施方式中,在塊420,當?shù)谌糠?06的大小仍然小于目標大小時,對于可從第一部分202移除的一個或多個數(shù)據(jù)文件的列表,存儲代理210可聯(lián)系存儲網(wǎng)絡管理器。存儲網(wǎng)絡管理器可基于可由存儲網(wǎng)絡管理器使用以將網(wǎng)絡數(shù)據(jù)分配到存儲代理201的分配方案產生該列表。在塊422,存儲代理201可根據(jù)關于在塊420產生的請求由存儲網(wǎng)絡管理器產生的列表從第一部分202移除數(shù)據(jù)文件。按照塊422,方法400可返回到塊404。
相應地,方法300和/或400可用于管理在存儲塊上的數(shù)據(jù)的存儲。本領域中的技術人員將認識到,對于本文公開的這些和其它過程和方法,在過程和方法中執(zhí)行的功能可以按不同的順序實現(xiàn)。此外,所概述的步驟和操作僅作為例子被提供,且一些步驟和操作可以是可選的、組成為更少的步驟和操作或擴展成額外的步驟和操作而不減損所公開的實施方式。此外,雖然特定的元件被公開為執(zhí)行特定的步驟,在一些實施方式中,不同的元件可執(zhí)行相同的步驟。本文所述的實施方式可包括專用或通用計算機——包括各種計算機硬件和軟件模塊——的使用,如下面更詳細討論的。
可使用用于攜帶或具有計算機可執(zhí)行指令或存儲在其上的數(shù)據(jù)結構的計算機可讀介質來實現(xiàn)本文討論的實施方式。這樣的計算機可讀介質可以是可由通用或專用計算機訪問的任何可用介質。作為例子而不是限制,這樣的計算機可讀介質可包括非臨時計算機可讀存儲介質,包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲器、磁盤存儲器或其它磁性存儲設備或可用于攜帶或存儲以計算機可執(zhí)行指令或數(shù)據(jù)結構的形式的期望程序代碼模塊并可由通用或專用計算機訪問的任何其它非臨時存儲介質。上述項的組合也應被包括在計算機可讀介質的范圍內。
計算機可執(zhí)行指令包括例如使通用計算機、專用計算機或專用處理設備執(zhí)行某個功能或功能組的指令和數(shù)據(jù)。雖然以結構特征和/或方法行動特有的語言描述了主題,應理解,在所附權利要求中定義的主題并不一定限于上面所述的特定特征或行動。更確切地,上面所述的特定特征和行動被公開為實現(xiàn)權利要求的示例形式。
如在本文使用的,術語“模塊”或“部件”可以指配置成執(zhí)行模塊或部件的操作和/或可存儲在通用硬件(例如計算機可讀介質、處理設備等)上和/或由通用硬件執(zhí)行的軟件對象或軟件例程的特定硬件實現(xiàn)。在一些實施方式中,本文所述的不同的部件、模塊、引擎和服務可被實現(xiàn)為在計算系統(tǒng)(例如作為單獨的線程)上執(zhí)行的對象或過程。雖然本文所述的一些系統(tǒng)和方法通常被描述為在軟件(存儲在通用硬件上和/或由通用硬件執(zhí)行)中實現(xiàn),特定的軟件實現(xiàn)或軟件和特定的硬件實現(xiàn)的組合也是可能的并被設想。在這個描述中,“計算實體”可以是如前面在本文定義的任何計算系統(tǒng)或在計算系統(tǒng)上運行的任何模塊或模塊的組合。
在本文詳述的所有例子和條件語言為教育學目的而設計以幫助讀者理解本公開和由發(fā)明人為推進本領域而貢獻的概念,且應被解釋為沒有對這樣特別詳述的例子和條件的限制。雖然本公開的實施方式被詳細地描述,應理解,可對其作出各種變化、代替和變更而不偏離本公開的精神和范圍。