在異構數據卷中配置多個層的制作方法
【專利說明】
【背景技術】
[0001]計算系統通過執行軟件程序獲得高度的功能性。計算系統使用存儲分層以便存儲這樣的軟件程序和其他文件。本地存儲分層的最低級別可以是諸如機械盤、光盤等的盤。存儲分層中的更高層可以是諸如固態盤或非易失性存儲器等的設備。
[0002]當最需要的數據塊被位于存儲分層中的高處時,計算系統最高效地操作,其中,較不需要的數據塊可以位于存儲分層中的較低處。對于在存儲分層內的何處放置數據塊的決策常規上在文件系統之下發生。
[0003]文件系統自身通常不可見該存儲分層,但代替地,以卷的形式看待存儲。卷是對文件系統可見的單個邏輯命名空間。卷可以被配置為特定大小,并且通常對應于底層存儲設備的邊界。例如,盤可以是單個卷,或者可能被分區為多個卷。此外,一個卷可以由多個盤組成。文件系統然后可以在卷內構成目錄,并且將文件保存到命名空間中(或是在命名空間的根目錄處,或是在命名空間的目錄中的一個目錄內)。
[0004]單個卷可以具有特定特性。例如,卷可以被設置為成鏡像的,并且由此具有特定級別的內置冗余。卷還可以被設置為加密或壓縮的。常規上,這些特性在每卷的基礎上被設置。由此,文件系統自身將該卷內的任何存儲塊看作具有與該卷內的任何其他存儲塊相同的特性,并且移交任何從文件系統的角度概括的、關于塊如何被放置到存儲系統中的決策。
【發明內容】
[0005]本文中描述的至少一些實施例涉及配置具有對應于不同特性集合的多個層的卷。將被配置的卷隨將位于該卷中的多個層一起被標識。對于將配置在所述卷內的每層而言,對應的特性集合被標識為將應用于每層。在厚配置(thick provis1ning)的情況下,該對應的特性集合基于在配置時可用的底層存儲系統。在精簡配置的情況下,該對應的特性集合是基于預期其至少一些在所述配置之后的某一時刻變得可用的底層存儲系統。在任一種情況下,作為所述配置過程的一部分,使得向所述卷配置具有對應特性集合的對應層。
[0006]本文中描述的至少一些實施例涉及配置文件,其中,已確定所述文件具有一個或多個存儲特性。基于這些存儲特性,然后使得所述文件被指派給由具有合適特性存儲的底層存儲系統支持的合適層。所述配置還可以包括預期未來的失敗狀況,以及檢測當前的失敗狀況,并且允許在不必影響所述卷的剩余部分的情況下基于每層做出合適的響應。
[0007]本摘要不旨在標識所要求保護的主題的關鍵特征或本質特征,其也不旨在被用作在確定所要求保護的主題的范圍時的輔助。
【附圖說明】
[0008]為了描述可以獲得上面記載的和其他的優點和特征的方式,將參考附圖展現對各種實施例的更特定描述。應當理解,這些圖僅描繪了樣本實施例,并且因此將不被認為限制本發明的范圍,通過使用附圖,將使用附加的特殊性和細節來描述和闡釋實施例,其中:
圖1抽象地圖示出了本文中描述的某些實施例可以在其中被采用的計算系統; 圖2圖示出了一個系統,該系統包括生成并向文件系統暴露具有多層的異構卷的卷系統,以及包括配置和監測系統;
圖3圖示出了一個計算環境,在其中,卷系統使用卷暴露系統來將卷向上暴露給文件系統,所述卷具有多個具有不同特性的存儲層;
圖4圖示出了一個計算環境,除了在圖3中被精簡配置的卷長字節(slab)現在進行了厚配置以及該計算系統對卷進行了擴展之外,該計算環境與圖3的計算環境類似;
圖5A圖示出了用于使得文件系統操作以將文件系統命名空間放置到卷中的方法的流程圖;
圖5B圖示出了用于使得文件系統操作以在卷內移動文件系統命名空間(或其片段)的方法的流程圖;
圖6圖示出了用于使得層引擎基于文件系統命名空間或其片段的動態改變的特性來移動該文件系統命名空間(或其片段)的方法的流程圖;
圖7圖示出了用于配置具有對應于不同特性集合的多層的卷的方法的流程圖,所述方法可以由圖2的卷配置部件執行;
圖8圖示出了可以由圖2的文件系統命名空間配置部件執行的、用于對配置文件系統命名空間的請求做出響應的方法的流程圖;
圖9圖示出了可以由圖2的監測部件執行的、用于在配置之后對卷的使用進行監測的方法的流程圖;
圖10圖示出了可以例如由圖2的擴展部件執行的、用于配置對異構卷的特定層的擴展的方法的流程圖;
圖11圖示出了用于在其中不存在用于支持擴展的底層存儲系統的情況下對異構卷的特定層的擴展進行厚配置的方法的流程圖;以及
圖12圖示出了用于向現有卷添加層的方法的流程圖。
【具體實施方式】
[0009]根據本文中描述的實施例,描述了配置具有對應于不同特性集合的多層的卷。將被配置的卷隨將位于該卷中的多層一起被標識。對于將在卷內被配置的每層而言,對應的特性集合被標識為將被應用于每層。該對應特性集合可以是基于在配置時可用或預期可用的底層存儲系統的。然后,采用具有對應特性集合的對應層對卷進行配置。還描述了配置文件,該文件已被確定為具有一個或多個存儲特性。基于這些存儲特性,然后使得該文件被指派給合適的層。所述提供還可以有助于對卷的使用進行監測,以及當潛在失敗狀況已發生或可能會發生時提出特定響應。
[0010]將關于圖1描述對一個計算系統的某種介紹性討論。然后,將關于圖2描述可以在其中被配置、向上供應和使用多層卷的系統的概要視圖。然后將關于圖3和4描述一種用于創建和向上暴露多層卷的機制。然后將關于圖5和6描述這樣的多層卷的文件系統的使用。最后,將關于圖7直到12描述根據在本文中描述的原理的示例配置和監測操作。
[0011]計算系統現在正日益采用多種多樣的形式。計算系統例如可以是手持式設備、器具、膝上計算機、臺式計算機、大型機、分布式計算系統或甚至是常規上還未被看作計算系統的設備。在本說明書和權利要求中,術語“計算系統”被寬泛地定義為包括任何如下這樣的設備或系統(或其組合),即:其包括至少一個物理和有形處理器,以及一個能夠在其上具有可被該處理器執行的計算機可執行指令的物理和有形存儲器。所述存儲器可以采用任何形式,并且可以取決于計算系統的性質和形式。計算系統可以分布在網絡環境上,并且可以包括多組成計算系統。
[0012]如圖1中所圖示的,在其最基礎的配置中,計算系統100通常包括至少一個處理單元102和存儲器104。存儲器104可以是物理系統存儲器,其可以是易失性的、非易失性的或這兩者的某種組合。術語“存儲器”在本文中還可以用于指諸如物理存儲介質之類的非易失性大容量存儲。如果計算系統是分布式的,則處理、存儲器和/或存儲能力也可以是分布式的。如本文中使用的,術語“可執行模塊”或“可執行部件”可以指軟件對象、例程或可以在計算系統上執行的方法。本文中描述的不同部件、模塊、引擎和服務可以被實現為在計算系統上執行的對象或過程(例如作為單獨的線程)。
[0013]在隨后的描述中,參考由一個或多個計算系統執行的動作來描述實施例。如果這樣的動作是以軟件實現的,則執行該動作的關聯計算系統的一個或多個處理器響應于已執行了計算機可執行指令而指導該計算系統的操作。例如,這樣的計算機可執行指令可以被體現在形成計算機程序產品的一個或多個計算機可讀介質中。這樣的操作示例涉及操縱數據。計算機可執行指令(以及所操縱的數據)可以被存儲在計算系統100的存儲器104中。計算系統100還可以包含通信信道108,該通信信道108允許計算系統100例如通過網絡110與其他消息處理器進行通信。
[0014]如將在下面更詳細討論的,在本文中描述的實施例可以包括或利用專用或通用計算機,所述專用或通用計算機包括諸如例如一個或多個處理器和系統存儲器之類的計算機硬件。在本文中描述的實施例還包括用于運載或存儲計算機可執行指令和/或數據結構的物理的和其他的計算機可讀介質。這樣的計算機可讀介質可以是任何可被通用或專用計算機系統訪問的可用介質。存儲計算機可執行指令的計算機可讀介質是物理存儲介質。運載計算機可執行指令的計算機可讀介質是傳輸介質。由此,作為示例并且不作為限制,本發明的實施例可以包括至少兩個明顯不同種類的計算機可讀介質:計算機存儲介質和傳輸介質。
[0015]計算機存儲介質包括:RAM、ROM、EEPROM、CD-ROM或其他光盤存儲裝置,磁盤存儲裝置或其他磁存儲設備,或者可用于存儲采用計算機可執行指令或數據結構的形式的所期望的程序代碼裝置并可被通用或專用計算機訪問的任何其他有形介質。
[0016]“網絡”被定義為使得能進行計算機系統和/或模塊和/或其他電子設備之間的電子數據傳輸的一個或多個數據鏈路。當信息通過網絡或另一通信連接(硬連線的、無線的或者是硬連線或無線的組合的)被傳遞或提供給計算機時,該計算機恰當地將該連接看作傳輸介質。傳輸介質可以包括可用于運載采用計算機可執行指令或數據結構的形式的所期望的程序代碼裝置并可被通用或專用計算機訪問的網絡和/或數據鏈路。以上的組合也應當被包括在計算機可讀介質的范圍內。
[0017]進一步地,當到達各種計算機系統部件時,采用計算機可執行指令或數據結構形式的程序代碼裝置可以自動從傳輸介質傳遞到計算機存儲介質(或者反之亦然)。例如,通過網絡或數據鏈路接收的計算機可執行指令或數據結構可以被緩存在網絡接口模塊(例如“NIC”)內的RAM中,并且然后最終被傳遞給計算機系統RAM和/或計算機系統處的較不易失的計算機存儲介質。由此,應當理解,計算機存儲介質可以被包括在也(或甚至主要地)利用傳輸介質的計算機系統部件中。
[0018]計算機可執行指令例如包括指令和數據,當所述指令和數據在處理器處執行時,其使得通用計算機、專用計算機或專用處理設備執行特定功能或功能組。計算機可執行指令例如可以是二進制的中間格式指令(諸如匯編語言)或甚至是源代碼。盡管以特定于結構特征和/或方法動作的語言描述了主題,但應當理解,在所附權利要求中限定的主題不一定限于所描述特征或上面描述的動作。而是,所描述的特征和動作作為實現權利要求的示例形式被公開。
[0019]本領域的技術人員應當領會到,本發明可以在具有許多類型的計算機系統配置的網絡計算環境中被實踐,所述許多類型的計算機系統配置包括個人計算機、臺式計算機、膝上型計算機、消息處理器、手持式設備、多處理器系統、基于微處理器的或可編程的消費電子產品、網絡PC、微型計算機、大型計算機、移動電話、PDA、尋