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