專利名稱:一種文件條帶化寫入方法、裝置及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及文件系統(tǒng)領域,特別是ー種文件的條帶化寫入方法、裝置及系統(tǒng)。
背景技術:
由于互聯(lián)網(wǎng)應用的不斷發(fā)展,特別是虛擬化云計算的興起,已經(jīng)開創(chuàng)了ー個新的計算模式。為了響應這種發(fā)展,被共享的數(shù)據(jù)的大小也大大增長。用戶不光要處理標準的 HTML (Hypertext Markup Language)文檔,還會訪問其它各種數(shù)據(jù),例如音頻數(shù)據(jù)、視頻數(shù)據(jù)、游戲數(shù)據(jù)等等。這樣就需要有能夠容納大數(shù)據(jù)的數(shù)據(jù)存儲,并且同時還能對數(shù)據(jù)進行高速、可靠的訪問。本地文件系統(tǒng)由于單個節(jié)點本身的局限性,已經(jīng)很難滿足海量數(shù)據(jù)存取的需要了,因而不得不借助分布式文件系統(tǒng)(分布式文件系統(tǒng)是指文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點上,而是通過計算機網(wǎng)絡與節(jié)點相連。分布式文件系統(tǒng)的設計基于物理機/服務器模式),把系統(tǒng)負載轉移到多個節(jié)點上。通常情況下,在分布式文件系統(tǒng)中,讀寫ー個文件只會經(jīng)過ー個存儲服務器,而當該文件比較大時,其讀寫速度與呑吐量,會受限于這單臺存儲服務器的計算能力。為了解決上述問題,引入了條帶化技術。條帶化技術重新組織數(shù)據(jù),它讓數(shù)據(jù)分片在多臺存儲服務器上,以便并行存取。這樣,對于大文件的讀寫,會同時利用多臺存儲服務器的能力,提高文件的讀寫速度與呑吐量。然而,條帶化無法對小文件(小于ー個條帶化片大小,一般為U8k)進行分片存取,所以針對大量小文件的場景,其改進效果甚微,一般不采用條帶化技木。云計算提供了諸如低能耗、高利用率、安全、方便、共享等優(yōu)點,它必須具備兩大基礎技術——虛擬化和數(shù)據(jù)中心自動化,即虛擬化集群技術。虛擬化集群中,同時存在大量大文件,例如鏡像文件(大小在IOG以上)和大量小文件,例如配置文件(幾K 幾十K)等。 為了提高鏡像文件的讀寫速度,分布式文件系統(tǒng)需要開啟條帶化,按序從某個(例如第一個)存儲服務器開始分條帶片存取。但此時,小于一個條帶化片的小文件,卻都只會放在某個(例如第一個)存儲服務器中。在虛擬化集群的桌面辦公場景下,一般會在固定的時間點,同時啟動或者關閉大量虛擬機(Virtual Machine,VM)。如果啟用條帶化技木,虛擬機的配置文件都會放在某個(例如第一個)存儲服務器上,如果同時啟動或關閉大量虛擬機, 某個存儲服務器的IO操作會異常頻繁,進而成為系統(tǒng)瓶頸。目前有兩種主流的分布式存儲方案,第一種以Glusterfs和CLVM(Clustered Logical Volume Manager)為代表的存儲方案,它們均采用條帶化分片存儲,文件被劃分為固定長度的數(shù)據(jù)分片,以輪轉(Round-Robin)方式存儲在所有的存儲服務器上,但是該存儲方案主要針對大文件存儲場景設計,存在如下缺點在虛擬化集群場景下,同時存在大量大文件和大量小文件,小文件會堆積在第一個存儲服務器上,例如同時啟動和關閉虛擬機吋,第一個存儲服務器會成為IO瓶頸,甚至影響整個集群系統(tǒng)。第二種是以DCFS3 (Dawning cluster File system v3)和 PVFS(Parallel Virtual File System)為代表的存儲方案,它們也采用條帶化分片存儲,文件被劃分為固定長度的數(shù)據(jù)分片,以輪轉(Round-Robin) 方式存儲在一組存儲服務器上,但是和第一種方案一祥,無法解決IO操作頻繁的小文件造成的存儲服務器瓶頸問題。
發(fā)明內容
本發(fā)明實施例提供ー種分布式文件系統(tǒng)的寫入方法、裝置以及ー種分布式文件系統(tǒng),有效解決虛擬化集群等環(huán)境下存儲服務器因IO壓カ過大而造成的系統(tǒng)性能瓶頸問題。為此,本發(fā)明實施例提供如下技術方案本發(fā)明實施例提供一種文件條帶化寫入方法,所述方法應用于包括多個存儲服務器的分布式文件系統(tǒng)中,所述方法包括獲取所述文件的寫入數(shù)據(jù)大?。划斔鑫募禽斎胼敵鯥O操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前IO壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取一個存儲服務器;以當前IO壓カ最小的存儲服務器,或者隨機選取的ー個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器。本發(fā)明實施例還提供ー種終端,其特征在干,所述裝置應用于包括多個存儲服務器的分布式文件系統(tǒng)中,所述裝置包括文件寫入數(shù)據(jù)獲取単元,用于獲取所述文件的寫入數(shù)據(jù)大?。怀跏嘉恢么_定單元,用于當所述文件是輸入輸出IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前IO 壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取ー個存儲服務器;文件條帶化寫入?yún)g元,用于以當前IO壓カ最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器。本發(fā)明實施例還提供ー種分布式文件系統(tǒng),該系統(tǒng)包括終端和多個存儲服務器, 其中所述終端用于獲取所述文件的寫入數(shù)據(jù)大??;當所述文件是輸入輸出IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前IO壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取 ー個存儲服務器;以當前IO壓カ最小的存儲服務器,或者隨機選取的ー個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器。所述存儲服務器用于接收所述終端寫入的文件的條帶化片,并將所述文件的條帶化片存儲在自身??梢姡景l(fā)明實施例提供一種文件條帶化寫入的方法、裝置和系統(tǒng),通過獲取文件的寫入數(shù)據(jù)大?。辉谠撐募荌O操作頻繁的文件,且該文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前IO壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取ー個存儲服務器;以當前IO壓カ最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器,從而實現(xiàn)IO壓カ分散到不同的存儲服務器中,有效緩解某個存儲服務器的IO壓力過大的情況,提高了分布式文件系統(tǒng)的存儲性能。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的一種文件條帶化寫入方法的流程示意圖;圖2為本發(fā)明實施例提供的另ー種文件條帶化寫入方法的具體流程示意圖;圖3為本發(fā)明實施例提供的ー種終端的邏輯結構示意圖;圖4為本發(fā)明實施例提供的ー種分布式文件系統(tǒng)的邏輯結構示意圖;圖5本發(fā)明實施例提供的ー種分布式文件系統(tǒng)的物理部署示意圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。請參閱圖1,為本發(fā)明實施例提供的一種文件條帶化寫入方法的流程示意圖,詳見圖1,該方法應用于包括多個存儲服務器的分布式文件系統(tǒng)中,包括步驟S101、獲取所述文件的寫入數(shù)據(jù)大小;文件的寫入數(shù)據(jù)大小可以包括文件元數(shù)據(jù)和文件數(shù)據(jù)等內容,實際代表文件需要寫入存儲服務器的數(shù)據(jù);該文件的元數(shù)據(jù)可以包括文件的inode結構和文件的擴展屬性。步驟S102、當所述文件是輸入輸出IOanput/Output)操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前 IO壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取ー個存儲服務器;具體的,根據(jù)所述文件的元數(shù)據(jù)中的第一字段確定所述文件是IO操作頻繁的文件,其中,所述第一字段用于表示所述文件是否為IO操作頻繁的文件。在一種實現(xiàn)方式下, 所述第一字段為文件inode結構中的io-bound字段,當io-bound等于1時,確定所述文件為10操作頻繁的文件,當io-bound不等于1時,確定所述文件不為10操作頻繁的文件, inode數(shù)據(jù)結構是用來標識ー個文件或者目錄的數(shù)據(jù)結構,與文件或者目錄是一一對應的, 在文件系統(tǒng)范圍內都是通用的。在創(chuàng)建文件吋,通過指定添加的字段值來表明此文件是否是10操作頻繁的,例如在inode中添加字段io-bound(字段名稱可以是自定義的任意名稱,io-bound是舉例說明,并無限制的意思),如果該文件是10操作頻繁的,則io-bound的值為1,否則,io-bound的值為0。文件是否是10操作頻繁的可以通過虛擬化集群中的管理服務得知,例如虛擬化集群中大量的虛擬機配置文件、鏈接克隆的父鏡像文件就屬于10 操作頻繁的文件;在另ー種實現(xiàn)方式下,還可以在文件的擴展屬性中増加一個字段作為第一字段,表示該文件是否為10操作頻繁的文件。以上兩種方式都可以在文件創(chuàng)建的時候實現(xiàn),本領域技術人員容易通過上述方法得出具體實施方式
,在此不再贅迷。。
現(xiàn)有技術的文件系統(tǒng)條帶化參數(shù)在文件系統(tǒng)初始化時就已經(jīng)確定,條帶化參數(shù)包括存儲服務器的個數(shù)、條帶化片大小、條帶化初始放置位置等。其中存儲服務器的個數(shù)由實際需求確定,條帶化片大小一般默認為U8K,條帶化初始放置位置通常將缺省的某個存儲服務器作為所有文件的條帶化初始位置。本發(fā)明實施例提供的文件條帶化寫入方法在判斷出文件是IO操作頻繁的文件, 且文件的寫入數(shù)據(jù)大小小于文件條帶化片大小,即該文件只能放在一個存儲服務器上吋, 從多個存儲服務器中選取當前IO壓カ最小的存儲服務器,或者從多個存儲服務器中隨機選取ー個存儲服務器,作為文件條帶化的初始放置位置,而不是以缺省的某服務器作為初始放置位置,以避免這個服務器成為IO操作瓶頸。其中,在一種優(yōu)選的實現(xiàn)方式下,文件寫入終端(可以實現(xiàn)為分布式文件系統(tǒng)的客戶端)接收并統(tǒng)計每個存儲服務器反饋的當前IO壓力,這些IO壓カ狀況可以保存在一個結構體中,也可以不保存,在需要的時候即時獲取;在另一種實現(xiàn)方式下,存儲服務器的 IO壓カ狀況可以事先存儲在文件寫入終端(可以是ー個客戶端)中,由人為修改或更新。步驟S103、以當前IO壓カ最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器。值得ー提的是,對于文件寫入數(shù)據(jù)小于文件條帶化片的情況,在條帶化寫入執(zhí)行完成后,該文件實際上被全部寫入了上述步驟S102確定的初始放置位置服務器中。進ー步的,該方法還可以包括當所述文件不是IO操作頻繁的文件吋,選擇文件條帶化的缺省初始服務器;以所述文件條帶化的缺省初始服務器作為文件條帶化寫入的初始位置,將文件條帶化寫入所述存儲服務器。再進ー步的,該方法還可以包括當所述文件是IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小大于文件條帶化片的大小吋,選擇文件條帶化的缺省初始服務器;以所述文件條帶化的缺省初始服務器作為文件條帶化寫入的初始位置,將文件條帶化寫入所述存儲服務器。請參閱圖2,為本發(fā)明實施例提供的另ー種文件條帶化寫入方法的具體流程示意圖,如圖2所示,該方法包括步驟S201、獲取文件inode的數(shù)據(jù)結構,從中得到添加的標識字段io-bound的值;步驟S202、判斷io-bound字段的值是否為1,若不為1,執(zhí)行步驟S203,若為1執(zhí)行步驟S204。步驟S203、如果文件io-bound字段的值不等于1 (假設等于0),此時該文件不是 10操作頻繁的文件,選擇缺省即默認的存儲服務器作為文件條帶化的初始放置位置,然后執(zhí)行文件條帶化寫入;步驟S204、判斷文件的寫入數(shù)據(jù)大小是否小于或等于文件的條帶化片大小(默認為128K),若是,執(zhí)行步驟205 ;若否,執(zhí)行步驟206。步驟S205、根據(jù)動態(tài)策略選擇條帶化初始位置;優(yōu)選地,所述動態(tài)策略可以采用如下兩種存儲服務器動態(tài)選擇方法方法一最小負載法,根據(jù)存儲服務器的10壓カ情況選取當前10壓カ最小的存儲服務器作為文件條帶化的初始放置位置。在虛擬化集群的存儲客戶端ー側,每個存儲服務器的相關信息都有一個結構體來保存,從該結構體中可以獲取存儲服務器的IO壓カ情況。方法ニ 隨機方法,毎次隨機選取一個存儲服務器作為文件條帶化地初始放置位置。需要說明的是,文件條帶化地初始放置位置還可以通過其它動態(tài)策略來選擇,上述兩種動態(tài)選擇方法只是舉例說明的優(yōu)選方案,并無限制的意思。步驟S206、選擇缺省的存儲服務器作為文件條帶化的初始放置位置;這種情況即該文件是IO操作頻繁的文件,但是該文件的寫入數(shù)據(jù)大小比條帶化片大小大,所以該文件執(zhí)行條帶化寫入之后會至少被存儲在兩個存儲服務器中,因此對IO 性能瓶頸的影響不是很大。值得ー提的是,還可以根據(jù)實際需要設定ー個閾值,該閾值可以設置為大于條帶化片大小,步驟S204的文件寫入數(shù)據(jù)大小與這個閾值作比較,若大于此閾值,就選擇缺省存儲服務器作為條帶化的默認初始位置;若小于此閾值,再采用本發(fā)明實施例提供的動態(tài)策略動態(tài)選擇ー個或多個存儲服務器作為條帶化的第一輪條帶存入位置。步驟S204如果文件io-bound字段的值等于1,此時該文件是IO操作頻繁的文件, 執(zhí)行步驟S205 ;步驟S205如果文件io-bound字段的值等于1且文件寫入數(shù)據(jù)大小大于條帶化片大小,選擇首個存儲服務器作為文件條帶化的初始放置位置。此時該文件屬于IO操作頻繁的文件,但是其條帶化寫入至少兩個存儲服務器,所以動態(tài)選擇條帶化初始位置的效果并不明顯;步驟S206如果文件io-bound字段的值等于1且文件寫入數(shù)據(jù)大小不大于(小于等干)條帶化片大小,根據(jù)最小負載法或者隨機方法動態(tài)選擇條帶化初始位置。此時該文件屬于10操作頻繁的文件,且大小小于條帶化片大小,條帶化初始放置位置即文件的全部內容的放置位置;步驟S207條帶化初始位置確定之后執(zhí)行文件的條帶化寫入。本發(fā)明實施例還提供ー種文件條帶化初始放置位置的確定方法,該方法針對的是標識字段被添加到文件的擴展屬性中的情況,方法步驟與上述實施例步驟基本相同,不同之處在于標識10操作是否頻繁的標識字段從文件的擴展屬性中獲取。本領域普通技術人員通過上述實施例的方法步驟很容易得出該方法的步驟,在此不再贅述。綜上所述,本發(fā)明實施例提供一種文件條帶化寫入的方法,通過獲取文件的寫入數(shù)據(jù)大?。辉谠撐募?0操作頻繁的文件,且該文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前10壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取一個存儲服務器;以當前10壓カ最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器,從而實現(xiàn)10壓カ分散到不同的存儲服務器中,有效緩解某個存儲服務器的10壓カ過大的情況,保證10操作更加均衡的分布在所有的存儲服務器上,提高了分布式文件系統(tǒng)的存儲性能。請參閱圖3,為本發(fā)明實施例提供的ー種終端,該終端裝置應用于包括多個存儲服務器的分布式文件系統(tǒng)中,如圖3所示,該終端包括
文件寫入數(shù)據(jù)獲取単元11,用于獲取所述文件的寫入數(shù)據(jù)大??;初始位置確定單元12,用于當所述文件是輸入輸出IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前 IO壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取ー個存儲服務器;具體的,根據(jù)所述文件的元數(shù)據(jù)中的第一字段確定所述文件是IO操作頻繁的文件,其中,所述第一字段用于表示所述文件是否為IO操作頻繁的文件。在一種實現(xiàn)方式下, 所述第一字段為文件inode結構中的io-bound字段,當io-bound等于1時,確定所述文件為10操作頻繁的文件,當io-bound不等于1時,確定所述文件不為10操作頻繁的文件, inode數(shù)據(jù)結構是用來標識ー個文件或者目錄的數(shù)據(jù)結構,與文件或者目錄是一一對應的, 在文件系統(tǒng)范圍內都是通用的。在創(chuàng)建文件吋,通過指定添加的字段值來表明此文件是否是10操作頻繁的,例如在inode中添加字段io-bound(字段名稱可以是自定義的任意名稱,io-bound是舉例說明,并無限制的意思),如果該文件是10操作頻繁的,則io-bound的值為1,否則,io-bound的值為0。文件是否是10操作頻繁的可以通過虛擬化集群中的管理服務得知,例如虛擬化集群中大量的虛擬機配置文件、鏈接克隆的父鏡像文件就屬于10 操作頻繁的文件;在另ー種實現(xiàn)方式下,還可以在文件的擴展屬性中増加一個字段作為第一字段,表示該文件是否為10操作頻繁的文件。以上兩種方式都可以在文件創(chuàng)建的時候實現(xiàn),本領域技術人員容易通過上述方法得出具體實施方式
,在此不再贅迷。。文件條帶化寫入?yún)g元13,用于以當前10壓カ最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器。進ー步的,所述初始位置確定單元12還用于用于當所述文件不是10操作頻繁的文件吋,或者,當所述文件是10操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小大于文件條帶化片的大小吋,選擇文件條帶化的缺省初始服務器;所述文件條帶化寫入?yún)g元13還用于以所述文件條帶化的缺省初始服務器作為文件條帶化寫入的初始位置,將文件條帶化寫入所述存儲服務器。進ー步的,所述初始位置確定單元12還用于接收并統(tǒng)計所述每個存儲服務器反饋的當前10壓力。需要說明的是,以上模塊劃分僅供本領域普通技術人員參考,并無限定的意思。綜上所述,本發(fā)明實施例提供ー種終端,通過獲取文件的寫入數(shù)據(jù)大?。辉谠撐募?0操作頻繁的文件,且該文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前10壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取ー個存儲服務器;以當前10壓カ最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器,從而實現(xiàn)10壓力分散到不同的存儲服務器中,有效緩解某個存儲服務器的10壓カ過大的情況,保證10操作更加均衡的分布在所有的存儲服務器上,提高了分布式文件系統(tǒng)的存儲性能。請參閱圖4,為本發(fā)明實施例提供的ー種分布式文件系統(tǒng)的邏輯結構示意圖,如圖 4所示,該系統(tǒng)包括三個物理機作為服務存儲器(圖中以存儲服務器20、30、40示意,但不限于此)和 ー個物理機作為終端10(圖中以ー個物理機示意,但是終端也可以為多個,本發(fā)明實施例并沒有限定的意思),所述物理機10上存在兩個虛擬機(圖中以VMl和VM2示意,但不限于此),存儲服務器20、存儲服務器30、存儲服務器40與物理機10通過計算機網(wǎng)絡相連,形成一個以終端10為中心的分布式文件系統(tǒng)。其中,終端10用于獲取所述文件的寫入數(shù)據(jù)大??;當所述文件是輸入輸出IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前IO壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取ー個存儲服務器;以當前IO壓カ最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器。存儲服務器20等用于接收終端10寫入的文件的條帶化片,并將所述文件的條帶化片存儲在自身。進ー步的,終端10還用于當所述文件不是IO操作頻繁的文件吋,或者,當所述文件是IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小大于文件條帶化片的大小吋,選擇文件條帶化的缺省初始服務器;以所述文件條帶化的缺省初始服務器作為文件條帶化寫入的初始位置,將文件條帶化寫入所述存儲服務器。進ー步的,終端10還用于接收并統(tǒng)計所述每個存儲服務器反饋的當前IO壓力。進ー步的,該系統(tǒng)還可以包括ー個或多個網(wǎng)絡存儲設備;相應的,所述存儲服務器還用于接收所述終端寫入的文件的條帶化片,并將所述文件的條帶化片存儲到所述網(wǎng)絡存儲設備中;所述網(wǎng)絡存儲設備用于存儲所述文件的條帶化片。圖5本發(fā)明實施例提供的ー種分布式文件系統(tǒng)的物理部署示意圖,該系統(tǒng)具有兩個虛擬機VMl和VM2的物理機10裝載所述分布式文件系統(tǒng)的客戶端程序,從而成為該分布式系統(tǒng)的存儲客戶端;三臺物理主機分別都裝載所述分布式文件系統(tǒng)的服務端程序,從而成為三個存儲服務器20、30、40 ;另外,存儲服務器20、30、40都與存儲域網(wǎng)絡(Storage Area Network, SAN)相連,SAN可以為分布式文件系統(tǒng)提供容量更大的存儲服務。本發(fā)明實施例中的存儲服務器20、30、40可以將文件存儲在自身;也可以管理文件的存儲,即將文件根據(jù)實際需要存儲與之具有通信連接的在SAN中。綜上所述,本發(fā)明實施例提供ー種分布式文件系統(tǒng),通過獲取文件的寫入數(shù)據(jù)大??;在該文件是IO操作頻繁的文件,且該文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前IO壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取ー個存儲服務器;以當前IO壓カ最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器,從而實現(xiàn)IO壓カ分散到不同的存儲服務器中,有效緩解某個存儲服務器的IO壓カ過大的情況,保證IO操作更加均衡的分布在所有的存儲服務器上,提高了分布式文件系統(tǒng)的存儲性能。進ー步的,該系統(tǒng)還可以將文件存儲在容量更大、速度更快的網(wǎng)絡存儲設備中,大大提高分布式文件的存儲性能。本領域普通技術人員可以理解實現(xiàn)前述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件(如處理器)來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行吋,可包括如前述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體 (Random Access Memory, RAM)等。
以上所述僅是本發(fā)明的具體實施方式
,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
權利要求
1.一種文件條帶化寫入方法,其特征在干,所述方法應用于包括多個存儲服務器的分布式文件系統(tǒng)中,所述方法包括獲取所述文件的寫入數(shù)據(jù)大小;當所述文件是輸入輸出IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前IO壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取一個存儲服務器;以當前IO壓カ最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器。
2.根據(jù)權利要求1所述的方法,其特征在干,所述文件是IO操作頻繁的文件是通過如下方法來確定的根據(jù)所述文件的元數(shù)據(jù)中的第一字段確定所述文件是IO操作頻繁的文件,其中,所述第一字段用于表示所述文件是否為IO操作頻繁的文件。
3.根據(jù)權利要求1或2所述的方法,其特征在干,所述方法還包括當所述文件不是IO操作頻繁的文件吋,選擇文件條帶化的缺省初始服務器;以所述文件條帶化的缺省初始服務器作為文件條帶化寫入的初始位置,將文件條帶化寫入所述存儲服務器。
4.根據(jù)權利要求1至3任一所述的方法,其特征在干,所述方法還包括當所述文件是IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小大于文件條帶化片的大小吋,選擇文件條帶化的缺省初始服務器;以所述文件條帶化的缺省初始服務器作為文件條帶化寫入的初始位置,將文件條帶化寫入所述存儲服務器。
5.根據(jù)權利要求1至4任一所述的方法,其特征在干,在所述從所述多個存儲服務器中選取當前IO壓カ最小的存儲服務器的步驟之前,所述方法還包括接收并統(tǒng)計所述每個存儲服務器反饋的當前IO壓力。
6.根據(jù)權利要求2所述的方法,其特征在干,所述文件元數(shù)據(jù)包括文件的inode結構,或者,文件的擴展屬性。
7.根據(jù)權利要求1至6任一所述的方法,其特征在干,所述文件的寫入數(shù)據(jù)包括文件的元數(shù)據(jù)和文件的數(shù)據(jù)。
8.—種終端,其特征在干,所述裝置應用于包括多個存儲服務器的分布式文件系統(tǒng)中, 所述裝置包括文件寫入數(shù)據(jù)獲取単元,用于獲取所述文件的寫入數(shù)據(jù)大小;初始位置確定單元,用于當所述文件是輸入輸出IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前IO壓力最小的存儲服務器,或者從所述多個存儲服務器中隨機選取一個存儲服務器;文件條帶化寫入?yún)g元,用于以當前IO壓カ最小的存儲服務器,或者隨機選取的ー個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器。
9.根據(jù)權利要求8所述的裝置,其特征在干,所述初始位置確定單元具體用于根據(jù)所述文件的元數(shù)據(jù)中的第一字段確定所述文件是IO操作頻繁的文件,其中,所述第一字段用于表示所述文件是否為IO操作頻繁的文件。
10.根據(jù)權利要求8或9所述的裝置,其特征在干,所述初始位置確定單元還用于用于當所述文件不是IO操作頻繁的文件吋,或者,當所述文件是IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小大于文件條帶化片的大小吋, 選擇文件條帶化的缺省初始服務器;所述文件條帶化寫入單元還用干以所述文件條帶化的缺省初始服務器作為文件條帶化寫入的初始位置,將文件條帶化寫入所述存儲服務器。
11.根據(jù)權利要求8至10任一所述的裝置,其特征在干,所述初始位置確定單元還用于接收并統(tǒng)計所述每個存儲服務器反饋的當前IO壓力。
12.—種分布式文件系統(tǒng),其特征在干,所述系統(tǒng)包括終端和多個存儲服務器,其中 所述終端用于獲取所述文件的寫入數(shù)據(jù)大??;當所述文件是輸入輸出IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小吋,從所述多個存儲服務器中選取當前IO壓カ最小的存儲服務器,或者從所述多個存儲服務器中隨機選取ー個存儲服務器;以當前IO壓カ最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器。所述存儲服務器用于接收所述終端寫入的文件的條帶化片,并將所述文件的條帶化片存儲在自身。
13.根據(jù)權利要求12所述的系統(tǒng),其特征在干,所述終端還用于;當所述文件不是IO操作頻繁的文件吋,或者,當所述文件是IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小大于文件條帶化片的大小吋,選擇文件條帶化的缺省初始服務器; 以所述文件條帶化的缺省初始服務器作為文件條帶化寫入的初始位置,將文件條帶化寫入所述存儲服務器。
14.根據(jù)權利要求12或13所述的系統(tǒng),其特征在干,所述終端還用于接收并統(tǒng)計所述每個存儲服務器反饋的當前IO壓力。
15.根據(jù)權利要求12至14任一所述的系統(tǒng),其特征在干,所述系統(tǒng)還包括網(wǎng)絡存儲設- ;所述存儲服務器還用于接收所述終端寫入的文件的條帶化片,并將所述文件的條帶化片存儲到所述網(wǎng)絡存儲設備中;所述網(wǎng)絡存儲設備用于存儲所述文件的條帶化片。
全文摘要
本發(fā)明實施例公開一種文件條帶化寫入的方法、裝置和系統(tǒng),其中該方法包括獲取所述文件的寫入數(shù)據(jù)大??;當所述文件是輸入輸出IO操作頻繁的文件,且所述文件的寫入數(shù)據(jù)大小小于或者等于文件條帶化片大小時,從所述多個存儲服務器中選取當前IO壓力最小的存儲服務器,或者從所述多個存儲服務器中隨機選取一個存儲服務器;以當前IO壓力最小的存儲服務器,或者隨機選取的一個存儲服務器作為文件條帶化的初始位置,將所述文件條帶化寫入所述存儲服務器,從而實現(xiàn)IO壓力分散到不同的存儲服務器中,有效緩解某個存儲服務器的IO壓力過大的情況,保證IO操作更加均衡的分布在所有的存儲服務器上。
文檔編號G06F17/30GK102566942SQ20111044637
公開日2012年7月11日 申請日期2011年12月28日 優(yōu)先權日2011年12月28日
發(fā)明者于璠 申請人:華為技術有限公司