專利名稱:一種文件系統的流媒體增強文件布局方法
技術領域:
本發明涉及一種文件系統的流媒體增強文件布局方法,用于改善各種針對批量數據存儲系統的輸入輸出性能,包括各種多媒體系統,如視頻點播(VoD),網絡電視,視頻會議和視頻監控系統等。
背景技術:
快速批量處理數據的應用變得越來越重要,特別是多媒體數據,因其本質上具有連續性和實時性,存儲的讀寫性能尤為關鍵。對于這樣的數據存儲,本地文件系統必須能夠有效地處理長時間持續數據的及時讀寫操作,以支持多媒體數據流應用。然而,目前大多數操作系統的文件系統設計只是為了處理一般性數據的文件1/0,因此目標通常是優化磁盤空間的使用情況。這樣的文件系統不適合批量處理海量數據的存儲和管理。因此,需要有一個充分考慮這類數據特點的文件系統機制,從而有效地處理多媒體數據類型,方便各種多媒體應用。
發明內容
針對當前文件系統在快速批量處理海量數據方面的問題,本發明公開了一種文件系統的流媒體增強文件布局(streaming-enhanced layout of files,以下簡稱SELF)方法,在文件系統基本功能的基礎上,通過流媒體增強文件布局方法的多種策略,來提高存儲系統在批量處理海量數據時的輸入輸出性能。本發明的任務是這樣來完成的,一種文件系統的流媒體增強文件布局方法,其特征在于所述的文件系統的流媒體增強文件布局方法使用基于區段的磁盤文件存儲分配策略,以提高單個磁盤I/O操作的效率;對元數據和文件數據使用不同大小的磁盤數據塊進行存儲的策略,提高大文件的磁盤I/O效率;在寫入新文件時采用基于分配映射表的存儲分配策略來優化文件系統的操作過程,從而提高文件系統的整體性能;對單個文件和元數據的存儲使用動態分段策略,將數據動態分段存放到多個磁盤上,利用多個磁盤可以并行工作的特點提高數據的存取性能;支持基于數據塊的文件數據和元數據復制,以實現文件系統的容錯功能。在本發明的一個具體的實施例中,所述的基于區段的磁盤文件存儲分配策略,其將文件分成不同的條塊,每一條塊作為一個單位以連續數據塊序列的方式存儲在磁盤上, 并描述為每個磁盤上的邏輯偏移和長度,這一技術允許使用單個磁盤I/O將大量數據從磁盤中檢索出來,通過減少磁盤位置查找的時間和次數提高文件系統性能。在本發明的另一個具體的實施例中,所述的對元數據和文件數據使用不同大小的磁盤數據塊進行存儲的策略,其使用較大的磁盤數據塊來存儲文件數據,使用較小的磁盤數據塊來存儲元數據,對于非常小的文件,數據存儲在文件系統i節點本身塊的指針位置, 可以提高大文件的磁盤I/O效率。在本發明的又一個具體的實施例中,所述的在寫入新文件時采用的基于分配映射表的存儲分配策略,其通過將分配映射表劃分為多個可鎖定的區域,在分配磁盤空間時允許只鎖定單一的分配區域,從而最大限度的減少了分配磁盤空間時的互鎖沖突;通過分配映射表對磁盤上不同訪問性能的區域(如磁盤外側訪問較快而內側較慢)分配給不同的數據(如較常用的數據存放到訪問性能較高的區域),來提高磁盤系統的整體性能。在本發明的還有一個具體的實施例中,所述的對單個文件和元數據的存儲使用的動態分段策略,其對每個數據文件動態地分段并存儲到不同的磁盤;對元數據則分段或簡單復制并存儲到不同的磁盤,將數據動態分段存放到多個磁盤上的策略,可以利用多個磁盤能夠并行工作的特點提高數據的存取性能。本發明由于采用上述技術方案后,具有的效果所述的文件系統的流媒體增強文件布局方法針對多媒體應用優化了本地文件系統機制,大大提高了了本地文件系統上多媒體文件的讀寫性能,基于這種流媒體增強文件布局方法的文件系統可以用作高性能網絡存儲系統的多媒體數據存儲和管理的重要組成部分。
具體實施例方式下面給出一個流媒體增強文件布局方法具體實施方式
的詳細說明。這是一個使用流媒體增強文件布局方法的、與Unix兼容的優化網絡多媒體文件訪問的文件系統,是一個基于區段分配的文件系統。它使用i節點來描述文件。其元數據大致相當于傳統的Unix文件系統的元數據,但已大幅重新設計,能與網絡文件系統(NFS) 很好兼容和工作。每個文件系統存儲在一個被稱為條帶組的專用磁盤組。每個文件系統中的文件被分配(或分割)存放在所有磁盤中相應的條紋組。文件系統的數據結構類似于傳統的Unix文件系統,每個文件都有一個固定大小的i節點,其中包含了諸如文件大小和最后修改時間等信息。i節點指向間接區段,其本身也指向文件的數據塊區段。為了有效地使用磁盤空間,允許使用不固定的、大小可變的數據塊。較小的數據塊存儲元數據,而較大的數據塊存儲數據本身。不同于傳統的Unix文件系統,任何對象(i節點,間接塊,數據塊等)都可以被復制。用于映射磁盤編號到物理磁盤名稱的表格還包含相關信息以允許文件系統在磁盤各處分配副本以保證沒有共同故障點。此外,文件系統還使用寫時復制的工作模式,以確保磁盤數據永遠不會被覆蓋,而且所有磁盤上的更新是原子性的,這也使快照功能成為可能。文件系統的所有磁盤組成一個共同的存儲池,可以根據文件系統容量需求的變化在存儲池中添加或刪除磁盤。元數據在這里只是指存儲的多媒體文件的描述數據。提供多媒體流結構的多媒體元數據則在文件本身中定義,并且是該文件內容的一部分。文件系統根目錄的數據結構是數據條帶組描述符,類似于Unix的超級塊。它包含了整個文件系統的屬性,指向其他數據結構的指針(例如i節點和布局映射文件)和數據條帶組中每個磁盤的信息。數據條帶組描述符被復制到條帶組的每個磁盤,這樣,條帶組描述符的讀寫和更新等操作可以容忍像磁盤崩潰這樣的故障。每個條帶組的磁盤可以是數據磁盤(存儲文件數據),元數據磁盤(存儲元數據),或兩者兼而有之。這將可以允許使用不同物理特性的磁盤來存放數據和元數據。磁盤上的每個文件都有一個i節點。當一個文件被創建時,也同時配置一個相應的i節點,該i節點包含了文件屬性以及定位文件數據塊的必要信息。i節點結構的大小是固定的。每個結構包含了諸如文件名稱空間,文件大小,文件創建時間,訪問保護信息,用來存儲文件的數據塊大小,在文件中存儲的數據類型和一個兩級索引和映射信息,其中第一級索引將邏輯單位(例如,幀)映射到字節偏移量,而第二級索引將字節偏移量映射到磁盤數據塊的位置。所有數據和元數據的校驗使用一個用戶可選擇的算法,校驗值則存儲在i節點和間接數據塊,這樣,這些故障模式可以檢測出來并能恢復正常。所有校驗和數據恢復完成在文件系統層面,對于應用程序是透明的。文件系統使用一個類似于Unix的i節點結構來分配存儲文件。一個i節點是一個包含文件信息的結構,每個文件至少有一個i節點,但每個i節點只包含一個文件的信息。 當文件系統創建時,多個i節點結構也同時被配置,以保存關于這個文件系統的信息。一個配置的i節點包含但不限于以下信息眷文件所有者的標識·文件所有者的組標識 訪問權限(包括擴展的訪問權限) 多媒體流的描述 文件創建/上次訪問/最后修改的日期和時間 數據的副本數 元數據的副本數 數據本身(對非常小的文件) 數據塊大小(如果不固定) 視頻幀到字節偏移的映射·字節偏移到邏輯文件塊的映射 數據塊區段的指針(直接塊) 間接塊區段的指針 校驗值文件系統采用基于區段的分配方式。多媒體文件被分成不同的條塊,每一條塊作為一個單位以一個連續數據塊序列的方式存儲在磁盤上,并描述為在每個磁盤上的邏輯偏移和長度。基于區段的分配方式允許使用一個磁盤I/O操作將大量的數據從磁盤中檢索出來,以盡量減少磁盤位置查找所需的時間和次數,以提高訪問磁盤數據的性能。一個i節點可以引用一定數量的直接區段,每個區段都由起始數據塊地址和長度對來表示。i節點還可以指向一些間接地址區段,這些區段包含有其它區段的地址 第一個間接地址區段用于單個間接,每個區段條目包括間接數據區段的起始數據塊號。 如果有必要,第二個間接地址區段則用于雙個間接,每個區段條目包括單個間接地址區段的起始數據塊號。文件系統使用分配映射表記錄文件系統中所有磁盤數據塊的分配狀態(空閑或正在使用的)。由于文件是在塊區段中分配的,分配映射表也包含有尋找空閑磁盤塊區段的 fn息ο在磁盤的布局中,分配映射表的每個條目記錄包含有數據塊區段的類型,偏移量,磁盤,起始數據塊,和數據塊的數量。間接和數據區段使用這種格式來記錄每個區段的邏輯文件偏移和物理磁盤位置。數據塊區段分配字段的定義如下 類型唯一標識一個區段記錄,并確定該記錄的長度和格式。 偏移量表示一個給定記錄的邏輯文件在數據塊中的偏移量,用于優化查詢。 磁盤磁盤的數量和位置。 起始數據塊區段在起始文件系統中的起始塊。 數據塊數區段中連續數據塊的數量。文件系統使用兩種不同大小的數據塊來存儲不同類型的數據 文件系統使用較大的數據塊(例如,256KB)來存儲文件數據。為了有效地支持多媒體應用,文件系統需要最大限度地提高磁盤的吞吐量。傳統的文件系統為優化的磁盤空間利用率而使用較小的數據塊大小值。由于磁盤的吞吐量與磁盤塊的大小是密切相關, 這里使用一個遠遠超過它們的塊大小值056KB)。由于多媒體內容通常使用非常大的文件, 大的數據塊帶來的磁盤存儲利用率下降的影響通常可以忽略不計。 文件系統使用較小的塊(例如,8KB的)來存儲文件的元數據。每個i節點包含 15個塊指針,以指示哪些塊屬于該文件。一個i節點可以引用12個直接區段,每個區段由數據塊的起始地址和長度對來表示。i節點還指向3個間接地址區段,這些區段包含有其它區段的地址。對于超大的文件,i節點指向雙重間接塊。對于非常小的文件,數據存儲在i 節點本身塊的指針位置。創建一個新的文件時,文件系統根據分配映射表來分配數據塊寫入磁盤的空間。 該映射表被劃分成若干個可鎖定的區域。這種映射表布局允許文件系統通過在所有磁盤上產生條帶來分配磁盤空間,而且每次只需訪問單一的分配區域。這種方法最大限度地減少了互鎖沖突,因為不同的用戶可以從不同區域進行空間分配。另一方面,硬盤的I/O性能由媒體傳輸速率決定,這可能隨著磁盤上區域不同而各有不同,例如,在磁盤外側的區域可以提供比在磁盤內側的區域更快的數據傳輸速率。因此,跟據訪問的性能要求可以將數據存放到相應的磁盤區域內。數據放置策略是由兩個層次來決定的。第一是通過文件訪問模式決定,如最常用的文件存放在磁盤I/O速率較好的磁盤外側區域。他們的鏡像則可以存儲在磁盤I/O速率較低的區域。第二個層次的視頻文件在硬盤陣列的放置策略則是由數據塊大小和條塊化處理決定的。文件系統支持超大的數據塊和基于區段的數據分配,這使得磁盤尋找和旋轉時間代價降低,并使得文件服務器方便地采用負載平衡策略。要做到這一點,它會針對每個文件根據分配映射表評估可用的存儲和區段,并自動選擇最好的塊大小值。塊大小則是根據正常的順序寫入訪問模式來優化的。在多媒體應用中,很多或所有的文件系統活動往往指向一個單一的文件。而目前單個磁盤的吞吐量有限(小于100MB/秒),所以從一個文件中實現比這更高的吞吐量,需要逐漸將讀寫活動擴展到多個磁盤中。每個文件系統可以駐留在多個磁盤上,從而有效地擴展文件的讀寫速度。每個數據文件都是動態的分段存放在條帶組中的多個磁盤上。元數據可以用同樣的分段,或僅僅是被復制。同時,文件系統還支持循環分段策略。對于循環分段,所有文件將采用單一的分段順序。該文件的每一個數據塊的所有副本都寫入到隨機選擇的磁盤,并保證他們沒有共同的故障點。
當文件系統需要將一個序列的數據塊寫入磁盤時,它會自動分散地寫入到存儲池中的所有可用磁盤。當一個新設備被添加到這個池中,文件系統立即開始分散地將數據寫入到其中。同樣,當一個設備被拆除,文件系統把即將拆除的設備上的數據遷移出來,遷移的數據將自動在所有磁盤重新分配,并將它從動態條帶組中刪掉。添加和刪除磁盤可以被認為是條帶寬度的動態變化。動態分段還使文件系統能夠應付異構設備,因為它可以按硬盤性能的比例安放數據塊。添加一個慢速設備到存儲池將不會降低性能,因為文件系統只需在速度慢的設備比速度快的設備少寫些數據塊。文件系統支持數據在數據塊基礎上的文件數據和元數據復制。每個包括在文件系統元數據中的磁盤地址是一個數組,每一個副本為一個數組元素。數據條帶組描述符中的磁盤信息包括系統的拓撲結構信息,這樣文件系統能夠分配數據塊副本而沒有共同的故障點。復制的程度是可以在每個對象的基礎上控制的。一個條帶組可以有復制的元數據,但也可以有未復制的文件,或者也可以為不同的文件有不同層次的復制。例如,只有受歡迎的電影可能被復制,這可以允許在容錯性和系統成本之間進行權衡。
權利要求
1.一種文件系統的流媒體增強布局方法,其特征在于所述的文件系統的流媒體增強布局方法使用基于區段的磁盤文件存儲分配策略,以提高單個磁盤I/O操作的效率;對元數據和文件數據使用不同大小的磁盤數據塊進行存儲的策略,提高大文件的磁盤I/O效率;在寫入新文件時采用基于分配映射表的存儲分配策略來優化文件系統的操作過程,從而提高文件系統的整體性能;對單個文件和元數據的存儲使用動態分段策略,將數據動態分段存放到多個磁盤上,利用多個磁盤可以并行工作的特點提高數據的存取性能;支持基于數據塊的文件數據和元數據復制,以實現文件系統的容錯功能。
2.根據權利要求1所述的一種文件系統的流媒體增強布局方法,其特征在于所述的基于區段的磁盤文件存儲分配策略,其將文件分成不同的條塊,每一條塊作為一個單位以連續數據塊序列的方式存儲在磁盤上,并描述為每個磁盤上的邏輯偏移和長度,這一技術允許使用單個磁盤I/O將大量數據從磁盤中檢索出來,通過減少磁盤位置查找的時間和次數提高文件系統性能。
3.根據權利要求1所述的一種文件系統的流媒體增強布局方法,其特征在于所述的對元數據和文件數據使用不同大小的磁盤數據塊進行存儲的策略,其使用較大的塊來存儲文件數據,使用較小的塊來存儲元數據,對于非常小的文件,數據存儲在文件系統i節點本身塊的指針位置,可以提高大文件的磁盤I/O效率。
4.根據權利要求1所述的一種文件系統的流媒體增強布局方法,其特征在于所述的在寫入新文件時采用的基于分配映射表的存儲分配策略,其通過將分配映射表劃分為多個可鎖定的區域,在分配磁盤空間時允許只鎖定單一的分配區域,從而最大限度的減少了分配磁盤空間時的互鎖沖突;通過分配映射表對磁盤上不同訪問性能的區域(如磁盤外側訪問較快而內側較慢)分配給不同的數據(如較常用的數據存放到訪問性能較高的區域),來提高磁盤系統的整體性能。
5.根據權利要求1所述的一種文件系統的流媒體增強布局方法,其特征在于所述的對單個文件和元數據的存儲使用的動態分段策略,其對每個數據文件動態地分段并存儲到不同的磁盤;對元數據則分段或復制并存儲到不同的磁盤,將數據動態分段存放到多個磁盤上的策略利用多個磁盤可以并行工作的特點提高數據的存取性能。
全文摘要
一種文件系統的流媒體增強布局方法,用于改善各種針對批量數據存儲系統的輸入輸出性能。包括基于區段的磁盤文件存儲分配策略,以提高單個磁盤I/O操作的效率;對元數據和文件數據使用不同大小的磁盤數據塊進行存儲的策略,提高大文件的磁盤I/O效率;在寫入新文件時采用基于分配映射表的存儲分配策略來優化文件系統的操作過程,提高文件系統的整體性能;對單個文件和元數據的存儲使用動態分段策略,將數據動態分段存放到多個磁盤上,利用多個磁盤可以并行工作的特點提高數據的存取性能;支持基于數據塊的文件數據和元數據復制,以實現文件系統的容錯功能。優點:在文件系統基本功能的基礎上,通過流媒體增強布局方法的多種策略,提高存儲系統的輸入輸出性能。
文檔編號G06F17/30GK102201005SQ20111013107
公開日2011年9月28日 申請日期2011年5月20日 優先權日2011年5月20日
發明者魯為民 申請人:蘇州安源匯信軟件有限公司