的目的設(shè)備、源設(shè)備;然后將所選擇的目的設(shè)備、源設(shè)備通知給文件迀移模塊103,由文件迀移模塊103執(zhí)行復(fù)制的操作。當(dāng)然,所述文件迀移模塊103也可以直接和所述文件訪問統(tǒng)計模塊102交互,根據(jù)篩選結(jié)果進(jìn)行復(fù)制。
[0118]通過本實施例的裝置可完成多種存儲介質(zhì)并存時的熱點負(fù)荷分擔(dān),如果包含兩種性能差距較大的存儲介質(zhì),當(dāng)文件較熱時,可優(yōu)先在更高性能的存儲介質(zhì)上進(jìn)行服務(wù)。
[0119]可選地,所述存儲管理模塊104用于當(dāng)有文件需要寫入時,選擇用于寫入所述文件的存儲介質(zhì);當(dāng)所述第一存儲介質(zhì)、第二存儲介質(zhì)的所述預(yù)定的性能參數(shù)的差值絕對值大于預(yù)設(shè)閾值時,優(yōu)先選擇所述預(yù)定的性能參數(shù)低的存儲介質(zhì);
[0120]所述文件訪問模塊101用于根據(jù)所選擇的存儲介質(zhì)的根路徑記錄所述文件的存儲路徑,將所記錄的存儲路徑作為寫入所述文件的路徑;當(dāng)需要讀取文件時,查詢所述文件的存儲路徑;指示所述存儲管理模塊從查詢到的存儲路徑中選擇一個存儲路徑作為讀取所述文件的路徑。
[0121]可選地,所述文件訪問統(tǒng)計模塊102還用于根據(jù)所述系統(tǒng)中存儲的各文件的訪問統(tǒng)計信息,篩選出滿足冷化觸發(fā)條件的文件;
[0122]所述存儲管理模塊104還用于對于各滿足冷化觸發(fā)條件的文件,分別在該文件的各存儲路徑中,選擇至少一個存儲路徑作為刪除文件的路徑;當(dāng)所述第一存儲介質(zhì)、第二存儲介質(zhì)的所述預(yù)定的性能參數(shù)的差值絕對值大于預(yù)設(shè)閾值時,優(yōu)先選擇所述預(yù)定的性能參數(shù)高的存儲介質(zhì)對應(yīng)的存儲路徑;當(dāng)所述預(yù)定的性能參數(shù)高的存儲介質(zhì)有多個時,優(yōu)先選擇存儲空間使用多的存儲介質(zhì)對應(yīng)的存儲路徑;
[0123]所述文件迀移模塊103還用于周期性根據(jù)所選擇的刪除文件的路徑刪除滿足冷化觸發(fā)條件的文件。
[0124]可選地,所述文件訪問模塊101還用于當(dāng)需要刪除文件時,查詢所述文件的全部存儲路徑;
[0125]所述文件迀移模塊103還用于刪除所查詢出的各存儲路徑上的文件。
[0126]可選地,所述文件訪問模塊101還用于當(dāng)需要重新寫入文件時,查詢所述文件的存儲路徑,指示所述存儲管理模塊104從查詢到的存儲路徑中選擇一個;將所選擇的存儲路徑作為修改所述文件的路徑;指示所述文件迀移模塊103刪除所查詢到的其它存儲路徑上的文件。
[0127]可選地,如果需要采用文件分片存儲,在目前介紹系統(tǒng)上,只要應(yīng)用完成片段的應(yīng)用層劃分,就可以進(jìn)行片段的調(diào)度和服務(wù)。
[0128]如果需要在系統(tǒng)層面完成分片文件的劃分,則所述裝置還包括:
[0129]文件服務(wù)模塊,用于將原始文件切割為多個片段,一個所述片段作為一個所述文件;保存各片段和所述原始文件之間的映射關(guān)系,以及片段的大??;讀取文件前根據(jù)需要讀取的數(shù)據(jù)與所述原始文件開頭之間的偏移量、以及片段的大小,確定所述需要讀取的數(shù)據(jù)所對應(yīng)的片段,將所確定的片段作為需要讀取的文件。
[0130]其它實現(xiàn)細(xì)節(jié)可參見實施例一。
[0131]本實施例的一個具體例子中,所述裝置包括:文件訪問模塊、文件訪問統(tǒng)計模塊、文件迀移模塊及存儲管理模塊。
[0132]所述文件訪問模塊用于當(dāng)寫入文件時,將所述存儲管理模塊選擇的存儲介質(zhì)的路徑記錄為所述文件的存儲路徑;讀取文件時查詢所述文件的存儲路徑;反饋查詢到的存儲路徑給應(yīng)用程序。
[0133]所述文件訪問模塊用于維護(hù)文件與存儲路徑的映射關(guān)系,文件寫入和讀取時確認(rèn)文件具體的存儲路徑。
[0134]所述文件訪問模塊還用于當(dāng)文件的訪問信息滿足熱化/冷化觸發(fā)條件,生成文件迀移或刪除指令發(fā)送給文件迀移模塊。所述文件迀移模塊根據(jù)所述文件迀移或刪除指令進(jìn)行相應(yīng)的操作。
[0135]所述存儲管理模塊用于維護(hù)各個路徑和存儲介質(zhì)的對應(yīng)關(guān)系。維護(hù)各存儲設(shè)備的空間信息(可以包括其中各存儲介質(zhì)的空間信息),磁盤1信息(可以包括其中各存儲介質(zhì)的1信息),狀態(tài)信息(可以包括其中各存儲介質(zhì)的狀態(tài)信息)。維護(hù)應(yīng)用程序和可使用存儲設(shè)備/介質(zhì)的對應(yīng)關(guān)系。維護(hù)存儲設(shè)備/介質(zhì)間的負(fù)載均衡。
[0136]當(dāng)文件寫入時,由存儲管理模塊優(yōu)先選擇一種存儲介質(zhì)進(jìn)行文件的寫入。當(dāng)寫入文件時存儲管理模塊還可以根據(jù)負(fù)載均衡策略在所選擇的種類的多個存儲介質(zhì)中選擇一個。
[0137]當(dāng)有內(nèi)容需要寫入時,應(yīng)用程序訪問文件訪問模塊,由文件訪問模塊和存儲管理模塊交互,確認(rèn)本應(yīng)用程序可使用的最優(yōu)的存儲路徑反饋給應(yīng)用程序,應(yīng)用程序根據(jù)返回的存儲路徑進(jìn)行文件的寫入。
[0138]當(dāng)有內(nèi)容需要讀取時,應(yīng)用程序訪問文件訪問模塊,由文件訪問模塊和存儲管理模塊交互,選擇一個最優(yōu)的可訪問的路徑返回給應(yīng)用程序。
[0139]所述文件訪問統(tǒng)計模塊用于根據(jù)文件訪問信息進(jìn)行文件訪問熱度統(tǒng)計,根據(jù)熱化、冷化算法,將達(dá)到熱化/冷化觸發(fā)條件的文件通知給文件訪問模塊,文件訪問模塊通過和存儲管理模塊進(jìn)行交互,獲取待復(fù)制或待刪除的文件路徑,然后生成迀移/刪除指令通知文件迀移模塊進(jìn)行文件的調(diào)度或刪除。
[0140]所述文件迀移模塊收到請求,通過指定的方式(比如周期性執(zhí)行或立刻執(zhí)行),發(fā)起復(fù)制或刪除操作,操作完成后,通知文件訪問模塊更新相應(yīng)的文件信息,這樣,下次再發(fā)起內(nèi)容讀取時,文件訪問模塊會重新選擇相應(yīng)文件對應(yīng)的路徑。
[0141]文件服務(wù)模塊,用來管理原始文件到片段的劃分和映射,和劃分為片段后,片段的讀取和寫入。
[0142]文件服務(wù)模塊在原始文件寫入時,按原始文件大小或其他業(yè)務(wù)屬性進(jìn)行原始文件的切割,內(nèi)部進(jìn)行片段的命名,記錄原始文件到片段的映射關(guān)系。當(dāng)片段寫入時,通過和文件訪問模塊交互,完成片段的寫入。當(dāng)文件讀取時,由文件服務(wù)模塊完成偏移量到片段的映射和讀取,讀取的策略還是通過文件訪問模塊來進(jìn)行。該情況下,存儲、訪問的文件是原始文件劃分成的各片段,因此進(jìn)行訪問信息統(tǒng)計、復(fù)制、寫入、讀取、冷化處理、刪除等操作的對象都是所述片段,這樣可以完成分片級的熱度統(tǒng)計和分片的訪問的負(fù)載均衡。
[0143]下面結(jié)合圖5(a)?(C)對技術(shù)方案的實施來做進(jìn)一步的詳細(xì)描述。簡單起見,下面的描述中,假定各存儲介質(zhì)組分別為不同存儲介質(zhì),由更底層的分布式文件系統(tǒng)或本地文件系統(tǒng)進(jìn)行管理,具體使用一個根路徑對應(yīng)一個存儲介質(zhì),不同的存儲介質(zhì)和訪問該存儲介質(zhì)的客戶端在同一個存儲總線上(不同存儲介質(zhì)使用同一個存儲控制器進(jìn)行管理),在使用分布式文件系統(tǒng)時,可能文件系統(tǒng)能訪問不在本機(jī)存儲控制器管理的磁盤,所述不在本機(jī)存儲控制器管理的磁盤能體現(xiàn)為一個存儲路徑。
[0144]圖5(a)所示為實施例二應(yīng)用于多種存儲介質(zhì)的系統(tǒng)中的概要示意圖,三個存儲設(shè)備各包括存儲介質(zhì)I?n,一個存儲設(shè)備中的存儲介質(zhì)I?η為同一種或不同種類的存儲介質(zhì)。應(yīng)用程序由業(yè)務(wù)層的應(yīng)用程序和承載層的應(yīng)用程序代理組成,而承載層的管理程序代理模塊(也屬于實施例二提供的進(jìn)行文件操作的裝置)主要負(fù)責(zé)存儲設(shè)備的信息的采集,和文件熱化/冷化的執(zhí)行。進(jìn)行文件操作的裝置完成具體的負(fù)載均衡和訪問統(tǒng)計功能。需要執(zhí)行業(yè)務(wù)操作時,應(yīng)用程序先訪問管理程序選擇合適的存儲介質(zhì),如剩余空間最大的存儲介質(zhì),或磁盤1量較小的存儲介質(zhì),然后應(yīng)用程序與所選擇的存儲介質(zhì)所在的存儲設(shè)備對應(yīng)的應(yīng)用程序代理通訊,由應(yīng)用程序代理完成后續(xù)工作。
[0145]圖5(b)所示為一個采用了實施例二所述的裝置進(jìn)行文件操作的示意圖之一。實施例二所述的裝置包括:文件訪問模塊101,文件訪問統(tǒng)計模塊102,文件迀移模塊103,存儲管理模塊104,管理程序代理模塊105。單臺設(shè)備部署時,應(yīng)用程序和應(yīng)用程序代理可以作為一個模塊。
[0146]圖5(c)所示為一個采用了實施例二所述的裝置進(jìn)行文件操作的示意圖之二。實施例二所述的裝置包括:文件訪問模塊101,文件訪問統(tǒng)計模塊102,文件迀移模塊103,存儲管理模塊104,管理程序代理模塊105,文件服務(wù)模塊106。
[0147]其中,文件服務(wù)模塊106主要是隔離應(yīng)用程序直接訪問文件系統(tǒng),并且控制完成文件的分片功能,每個文件在寫入時由文件服務(wù)模塊根據(jù)應(yīng)用程序指定片段的大小,當(dāng)原始文件寫入超過片段的大小后,自動重新生成片段名,將每個片段各作為一個文件,并通過文件訪問模塊101進(jìn)行片段的寫入。文件服務(wù)模塊維護(hù)原始文件和片段的映射關(guān)系。當(dāng)文件中的數(shù)據(jù)需要讀取時,由文件服務(wù)模塊106判斷需要讀取的數(shù)據(jù)是否跨片段,如果跨片段則由文件服務(wù)模塊106根據(jù)新的片段發(fā)起文件讀獲取實際路徑后,由文件服務(wù)模塊106讀取片段,并返回給應(yīng)用程序,以完成讀取。
[0148]文件服務(wù)模塊106實際上包括兩部分功能:文件分片管理,文件讀寫代理。實際上就是管理大的原始文件到小的片段的映射關(guān)系,根據(jù)偏移量和片段的大小進(jìn)行新片段的生成和老片段的結(jié)束。而文件讀寫代理,一部分功能就是上面流程中的應(yīng)用程序完成的功能,另一部分功能為讀取數(shù)據(jù)傳遞給應(yīng)用程序。
[0149]通過以上文件服務(wù)模塊106的部署可完成文件細(xì)粒度的調(diào)度和服務(wù)的控制,如果文件較大可以分片存儲,將每個片段各作為一個文件,片段訪問熱度較高時進(jìn)行復(fù)制,如果原始文件較小或原始文件不需要考慮細(xì)粒度控制時不指定片段的大小即可,將原始文件整個作為一個文件。同時由于片段在文件服務(wù)模塊內(nèi)部處理,對應(yīng)用來說實際上不感知片段的存在。同時由于不直接訪問存儲空間,當(dāng)每個應(yīng)用程序部署使用一個文件服務(wù)模塊,這里可以實現(xiàn)應(yīng)用程序使用的存儲空間的隔離,防止跨應(yīng)用程序的存儲數(shù)據(jù)的異常訪問。
[0150]存儲管理模塊104負(fù)責(zé)周期采集管理各存儲設(shè)備的存儲信息,包括各存儲設(shè)備中各存儲介質(zhì)的存儲空間和磁盤讀寫10,是否可用。這里采集的信息主要是供其他模塊如文件訪問模塊101或文件訪問統(tǒng)計模塊102選取一個負(fù)載低或空間剩余大的可用存儲介質(zhì)時使用。這里的存儲路徑的使用上,以單個磁盤為最小粒度,這樣可以獲取一個路徑的訪問統(tǒng)計信息。
[0151]在后面的描述過程中,省略了應(yīng)用程序與存儲設(shè)備對應(yīng)的應(yīng)用程序代理通訊過程,將應(yīng)用程序和應(yīng)用程序代理整體描述為應(yīng)用程序。
[0152]當(dāng)應(yīng)用程序請求文件訪問模塊101時,文件訪問模塊101要根據(jù)其存儲的文件到存儲介質(zhì)的映射路徑,請求存儲管理模塊104選擇一個負(fù)載低或空間剩余大的可用存儲介質(zhì),確定文件使用的具體的存儲路徑后由應(yīng)用程序直接根據(jù)具體的存儲路徑進(jìn)行文件的寫入或讀取。當(dāng)訪問為讀取時,文件訪問模塊101還要通知文件訪問統(tǒng)計模塊102進(jìn)行文件訪問信息統(tǒng)計。
[0153]文件訪問統(tǒng)計模塊102收到文件訪問模塊101通知后,對維護(hù)的該文件的訪問統(tǒng)計信息進(jìn)行更新。同時定時檢查所有文件的統(tǒng)計信息是否有滿足熱化觸發(fā)條件和/或冷化觸發(fā)條件的文件需要處理,如果是滿足熱化觸發(fā)條件,通知文件訪問模塊101進(jìn)行復(fù)制,文件訪問模塊101,查詢該文件已發(fā)布的存儲介質(zhì),請求存儲管理模塊104選擇一個已發(fā)布的負(fù)載低的可用存儲介質(zhì)作為該文件具體的源存儲路徑,和一個未發(fā)布過的可用的負(fù)載低或存儲空間剩余大的存儲介質(zhì)作為該文件的目的路徑。文件訪問模塊101將選擇結(jié)果處理后發(fā)給文件迀移模塊103。如果是滿足冷化觸發(fā)條件,通知文件訪問模塊101進(jìn)行文件冷化刪除,文件訪問模塊101查詢該文件已發(fā)布的存儲介質(zhì),請求存儲管理模塊104選擇一個存儲空間使用多的可用存儲介質(zhì)。文件訪問模塊101將選擇結(jié)果處理后發(fā)給文件迀移模塊103。
[0154]文件迀移模塊103根據(jù)收到