麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

基于gfs的分布式文件系統的元數據分級存儲方法和系統的制作方法

文檔序號:7871230閱讀:291來源:國知局
專利名稱:基于gfs的分布式文件系統的元數據分級存儲方法和系統的制作方法
技術領域
本發明涉及分布式存儲相關的技術,尤其涉及內容分發網絡中基于GFS的分布式文件系統中和元數據相關的分級存儲方法和系統。
背景技術
隨著互聯網應用的種類越來越多,面對不斷增長的互聯網用戶,也帶來了不同的不斷增長的海量數據。如何提高存儲和處理這些海量數據的能力,對于互聯網企業是一個巨大的技術挑戰。為了解決海量數據存儲問題,分布式文件系統應運而生。基于分布式文件系統架構提供存儲服務能夠充分利用現有的低端硬件設備的處理能力,并提高了用戶訪問存儲的效率和存儲服務的可靠性。市面上各種分布式文件系統種類繁多,層出不窮,其中包括了 Google的核心存儲平臺 GFS (Google 文件系統),Apache 開源社區的 Hadoop,以及 glusterFS、lustre、GPFS(General Parallel File System)等。分布式文件系統的元數據處理方式包括三大類,如GFS、lustre使用的是中央控制元數據服務器,GPFS使用的是分布式元數據服務器模型,glusterFS使用的是無元數據模型。其中以GFS為典型代表的分布式文件系統采用的是服務器/客戶端結構,如圖1所示,主要組成部分包括元數據服務器master (主服務器)、數據服務器chunk server和客戶端c I i ent,三者之間通過各自的網絡協議進行指令和數據通信。客戶端client可以看作是分布式文件系統的接口,負責應用程序與文件系統的溝通。文件劃分成固定大小的chunk,每個chunk由一個64bit的chunk handle唯一標識,由主服務器master創建時分配。所有的客戶端client讀取文件的時候,都需要首先從主服務器master上獲取元數據信息(如圖1所示master與client之間的元數據傳輸),獲取到元數據信息之后解析得到數據所在的數據服務器chunk server的ip和chunk的id,根據這些信息進一步與數據服務器chunk server進行交互(如圖1所示client與chunkserver之間的數據傳輸),讀取得到所需要的數據。數據服務器chunk server負責存儲文件的chunk,根據client提供的chunk信息,讀寫chunk數據,周期性地向master報告本地存儲的chunk狀態信息。數據服務器chunk server用于存儲的磁盤信息是可配置的,可以將數據服務器chunk server進程所在的服務器的多個disk配置到數據服務器chunk server的管控范圍內,用于提供存儲。并且數據服務器chunk server之間可以相互復制chunk的副本,這一點有利于提高系統的可靠性。元數據存儲在主服務器master上,包括命名空間、訪問控制信息、文件到chunk的映射、當前chunks的位置信息等,主服務器master與每個數據服務器chunk server間使用如圖1所示的指令交互(管理信息/狀態信息)周期地通信,發送管理信息指令到數據服務器chunk server并接收數據服務器chunk server的狀態信息。中央控制元數據服務器模式的分布式文件系統結構圖如圖1所示,其中粗實線表示數據/元數據交互,細實線表示指令交互(管理信息、狀態信息)。圖2示出了傳統的中央控制元數據服務器模式下主服務器master處理客戶端請求元數據信息的流程。首先,主服務器接收到客戶端發送過來的請求包,解析請求包,如果該請求的操作為讀取文件的位置信息的請求,則檢查內存中是否存在該文件的元數據信息;如果在內存中找到該文件的元數據信息,則直接將該文件的元數據(位置)信息打包返回給客戶端;如果不存在該文件的元數據信息,則打包“no file”或“no chunk ”等相關的錯誤信息返回給客戶端;客戶端接收到主服務器的數據包進行解析之后,判斷是否去讀取實際的數據。在這種分布式文件系統中,主服務器master把所有的元數據信息都保存在內存中,對于有大量小文件的存儲需求,單個master的模式往往力不從心,因此對于主服務器master的內存要求很高,并且大量的元數據信息也導致系統的存儲訪問性能降低。另外,在可靠性方面也存在單一失效點問題,如果主服務器master失效,整個系統將無法正常工作。因此,系統存儲訪問性能與可靠性上的瓶頸是中央控制元數據服務器模式固有的缺點。

發明內容
本發明的目的在于解決上述問題,提供了一種基于GFS的分布式文件系統的元數據分級存儲方法和系統,減少主服務器master的內存壓力和瓶頸,從而提高分布式文件系統的存儲訪問性能和可靠性。并且將元數據信息分級存儲,既能最大限度地滿足用戶需求,又可使存儲成本最小化。本發明的技術方案為:本發明揭示了一種基于GFS的分布式文件系統的元數據分級存儲方法,包括:客戶端連接存儲元數據信息的主服務器,發送詢問讀取文件位置信息的請求包;主服務器解析接收到的請求包;若請求的操作為讀取文件位置信息的請求,主服務器檢查內存中是否存在文件的元數據信息,若有則直接將文件的元數據信息返回給客戶端;若內存中不存在文件的元數據信息,則主服務器加載固盤中的元數據信息到內存中,并判斷固盤中是否存在文件的元數據信息,若存在則將文件的元數據信息返回給客戶端,若不存在則返回錯誤信息給客戶端;客戶端根據主服務器返回的元數據信息,連接對應的數據服務器,向數據服務器發送讀取數據的請求;數據服務器接收到請求后,向客戶端提供真實的數據。根據本發明的基于GFS的分布式文件系統的元數據分級存儲方法的一實施例,近期使用的文件的元數據信息存儲在主服務器的內存中,暫時不會被使用到的文件的元數據信息存儲在固盤中,長期不會被訪問的文件的元數據信息存儲在磁盤中。本發明還揭示了一種基于GFS的分布式文件系統的元數據分級存儲系統,包括主服務器、客戶端、多個數據服務器,其中:客戶端包括主服務器交互模塊、數據服務器交互模塊,其中:主服務器交互模塊連接主服務器,向存儲元數據信息的主服務器發送詢問讀取文件位置信息的請求包,接收主服務器返回的元數據信息;
數據服務器交互模塊連接數據服務器,向數據服務器發送讀取數據的請求,接收數據服務器提供的數據;主服務器包括請求包接收解析模塊、內存數據查詢模塊、固盤數據查詢模塊、元數據信息發送模塊,其中:請求包接收解析模塊解析接收到的請求包并判斷請求的操作是否為讀取文件位置信息的請求;內存數據查詢模塊檢查內存中是否存在文件的元數據信息,若有則啟動元數據信息發送模塊;固盤數據查詢模塊加載固盤中的元數據信息到內存中,并判斷固盤中是否存在文件的元數據信息,若存在則啟動元數據信息發送模塊;元數據信息發送模塊將文件的元數據信息返回給客戶端,若不存在文件的元數據信息則返回錯誤信息給客戶端。根據本發明的基于GFS的分布式文件系統的元數據分級存儲系統的一實施例,近期使用的文件的元數據信息存儲在主服務器的內存中,暫時不會被使用到的文件的元數據信息存儲在固盤中,長期不會被訪問的文件的元數據信息存儲在磁盤中。根據本發明的基于GFS的分布式文件系統的元數據分級存儲系統的一實施例,主服務器的數量為多個且彼此之間的任務不發生重疊,每一元數據獨立對應部分文件的讀寫,客戶端還包括一哈希處理模塊,對文件名進行哈希處理并根據處理結果的結構選擇對應的主服務器。本發明對比現有技術有如下的有益效果:本發明的方案是結合CDN多級緩存技術的特性,設計并實現了基于GFS的分布式文件系統的元數據分級存儲方法。采用分布式文件系統提供源站服務,通過分級存儲主服務器master的元數據信息,也就是在主服務器master啟動時將最近一段時間(I個月或者I周)的文件的元數據信息這部分保存在內存中,一些暫時不會被使用到的元數據信息保存在固盤中,還有一些長期都不會被訪問的數據還可以直接存儲在磁盤中,通過這種元數據存儲的分級來減少了 master大量元數據信息造成的內存壓力和瓶頸。相較于現有技術,本發明取得了良好的技術效果:(I)減少總體存儲成本:不經常訪問的數據保存在較低成本的存儲器中,需要經常訪問的數據才存放在內存中。能使重要數據和常用數據在最短的時間內訪問到,使極少使用的數據備份在廉價的海量存儲器中。(2)性能優化:分級存儲可使不同性價比的存儲設備發揮最大的綜合效益,分級存儲把很少被訪問的數據遷移到訪問速度較低的存儲器中,從而減少了主服務器master的內存壓力,并且檢索的元數據總量降低,也能夠達到提供性能的優點。(3)數據遷移對應用透明:進行分級存儲后,數據移動(速度低的存儲設備和速度高的存儲設備之間的數據轉移)時,應用程序不需要改變,即數據遷移對應用透明。


圖1示出了傳統的中央控制元數據服務器模式的分布式文件系統的結構圖。圖2示出了傳統的中央控制元數據服務器模式下主服務器master處理客戶端請求元數據信息的流程圖。
圖3示出了本發明的基于GFS的分布式文件系統的元數據分級存儲系統的較佳實施例的系統結構圖。圖4A、4B分別示出了圖3所示的系統實施例中的客戶端和主服務器的細化原理圖。圖5示出了本發明的基于GFS的分布式文件系統的元數據分級存儲方法的較佳實施例的流程圖。
具體實施例方式下面結合附圖和實施例對本發明作進一步的描述。圖3示出了本發明的基于GFS的分布式文件系統的元數據分級存儲系統的較佳實施例的系統結構。請參見圖3,本發明的系統由主服務器masterl、客戶端(client)2、多個數據服務器(chunk server) 3組成。其中主服務器I和客戶端2之間,主服務器I和多個數據服務器3之間,都有指令交互過程,數據服務器3和客戶端2之間有數據交過過程。圖5示出了本發明的基于GFS的分布式文件系統的元數據分級存儲方法的較佳實施例的流程。本實施例的元數據分級存儲方法是在圖3所示的系統結構之上實現的,請同時參見圖3和圖5,下面是對方法的實施步驟的詳細描述。步驟SlOO:客戶端連接存儲元數據信息的主服務器,發送詢問讀取文件位置信息的請求包。步驟SlOl:主服務器接收來自客戶端的請求包。步驟S102:主服務器解析接收到的請求包。步驟S103:檢查請求的操作是否為讀取文件位置信息的請求,若是則轉入下一
止/J/ O步驟S104:主服務器檢查內存中是否存在文件的元數據信息,若存在則轉入步驟S108,若不存在則轉入步驟S105。步驟S105:主服務器加載固盤中的元數據信息到內存中。在文件進行分級存儲的實現中,通常將近期使用的文件的元數據信息存儲在主服務器的內存中,將暫時不會被使用到的文件的元數據信息存儲在固盤中,將長期不會被訪問的文件的元數據信息存儲在磁盤中。步驟S106:主服務器判斷固盤中是否存在文件的元數據信息,若存在則轉入步驟S108,若不存在則轉入步驟S107。步驟S107:返回錯誤信息給客戶端。步驟S108:主服務器將文件的元數據信息返回給客戶端,轉入步驟S109。步驟S109:客戶端根據主服務器返回的元數據信息,連接對應的數據服務器,向數據服務器發送讀取數據的請求。步驟SllO:數據服務器接收到請求后,向客戶端提供真實的數據。圖4A和4B分別示出了圖3所示的系統實施例中的客戶端和元數據服務器的細化原理。請同時參考圖3、圖4A和4B,客戶端2包括主服務器交互模塊20和數據服務器交互模塊22。主服務器I包括請求包接收解析模塊10、內存數據查詢模塊12、固盤數據查詢模塊14、元數據信息發送模塊16。主服務器I采用分級存儲的技術,這借用了網絡緩存技術,網絡緩存技術是通過減少網絡中冗余數據的重復傳輸,將廣域傳輸轉為本地或就近訪問。在網絡傳輸上利用緩存技術使得Web服務數據流能就近訪問,是優化網絡數據傳輸非常有效的技術。緩存技術就是將大部分網頁對象(Web page object),如html, htm, php等頁面文件,gif, tif,png,bmp等圖片文件,以及其他格式的文件,在有效期(TTL)內緩存在緩存服務器上,對于重復的訪問,不必每次都從源站重新傳送文件實體。內容緩存技術不僅有效降低了回源量,而且能夠解決總存儲量大、請求數多、回源相對較大等問題。在內容分發網絡(CDN)中,內容緩存采用的是多級緩存技術,多級緩存通過在不同的物理位置部署多臺的緩存服務器,邏輯上采用分層模式,上層緩存作為下一層緩存的內容存儲器,保證及時向下一級緩存提供所需的內容,直接向用戶提供服務的緩存服務器只需要向上一層的緩存服務器請求內容,而不用直接從源站獲取內容。如下圖所示,如果客戶端本地緩存未命中,則繼續向第二級的緩存請求數據,如果緩存命中,則第二級緩存直接把文件提供給客戶,只有緩存未命中的情況下才需要向上一級別的緩存請求所需要的內容,例如第二級緩存向第一級緩存請求服務,如果第一級緩存命則提供文件給二級緩存,若仍然未命中才會向源站請求服務,然而會導致這種連續未命中的情況一般只有最近增加的文件請求才會的,因此,一般情況下,源站上只有最近的數據才會被訪問。而在本發明中,類似于上述的網絡緩存技術,本實施例將近期使用的文件的元數據信息存儲在主服務器I的內存中,將暫時不會被使用到的文件的元數據信息存儲在固盤中,將長期不會被訪問的文件的元數據信息存儲在磁盤中。主服務器交互模塊20連接主服務器1,向存儲元數據信息的主服務器I發送詢問讀取文件位置信息的請求包,接收主服務器I返回的元數據信息。 主服務器I中的請求包接收解析模塊10解析接收到的請求包并判斷請求的操作是否為讀取文件位置信息的請求。內存數據查詢模塊12檢查內存中是否存在文件的元數據信息,若有則啟動元數據信息發送模塊16。固盤數據查詢模塊14加載固盤中的元數據信息到內存中,并判斷固盤中是否存在文件的元數據信息,若存在則啟動元數據信息發送模塊16。元數據信息發送模塊16將文件的元數據信息返回給客戶端2,若不存在文件的元數據信息則返回錯誤信息給客戶端2。數據服務器交互模塊22連接數據服務器3,向數據服務器3發送讀取數據的請求,接收數據服務器3提供的數據。不同于上述的實現方式,還可以有以下的實現:主服務器的數量為多個且彼此之間的任務不發生重疊,每一元數據獨立對應部分文件的讀寫,客戶端還包括一哈希處理模塊,對文件名進行哈希處理并根據處理結果的結構選擇對應的主服務器。上述實施例是提供給本領域普通技術人員來實現和使用本發明的,本領域普通技術人員可在不脫離本發明的發明思想的情況下,對上述實施例做出種種修改或變化,因而本發明的保護范圍并不被上述實施例所限,而應該是符合權利要求書所提到的創新性特征的最大范圍。
權利要求
1.一種基于GFS的分布式文件系統的元數據分級存儲方法,包括: 客戶端連接存儲元數據信息的主服務器,發送詢問讀取文件位置信息的請求包; 主服務器解析接收到的請求包; 若請求的操作為讀取文件位置信息的請求,主服務器檢查內存中是否存在文件的元數據信息,若有則直接將文件的元數據信息返回給客戶端; 若內存中不存在文件的元數據信息,則主服務器加載固盤中的元數據信息到內存中,并判斷固盤中是否存在文件的元數據信息,若存在則將文件的元數據信息返回給客戶端,若不存在則返回錯誤信息給客戶端; 客戶端根據主服務器返回的元數據信息,連接對應的數據服務器,向數據服務器發送讀取數據的請求; 數據服務器接收到請求后,向客戶端提供真實的數據。
2.根據權利要求1所述的基于GFS的分布式文件系統的元數據分級存儲方法,其特征在于,近期使用的文件的元數據信息存儲在主服務器的內存中,暫時不會被使用到的文件的元數據信息存儲在固盤中,長期不會被訪問的文件的元數據信息存儲在磁盤中。
3.一種基于GFS的分布式文件系統的元數據分級存儲系統,包括主服務器、客戶端、多個數據服務器,其中: 客戶端包括主服務器交互模塊、數據服務器交互模塊,其中: 主服務器交互模塊連接主服務器,向存儲元數據信息的主服務器發送詢問讀取文件位置信息的請求包,接收主服務器返回的元數據信息; 數據服務器交互模塊連接數據服務器,向數據服務器發送讀取數據的請求,接收數據服務器提供的數據; 主服務器包括請求包接收解析模塊、內存數據查詢模塊、固盤數據查詢模塊、元數據信息發送模塊,其中: 請求包接收解析模塊解析接收到的請求包并判斷請求的操作是否為讀取文件位置信息的請求; 內存數據查詢模塊檢查內存中是否存在文件的元數據信息,若有則啟動元數據信息發送模塊; 固盤數據查詢模塊加載固盤中的元數據信息到內存中,并判斷固盤中是否存在文件的元數據信息,若存在則啟動元數據信息發送模塊; 元數據信息發送模塊將文件的元數據信息返回給客戶端,若不存在文件的元數據信息則返回錯誤信息給客戶端。
4.根據權利要求3所述的基于GFS的分布式文件系統的元數據分級存儲系統,其特征在于,近期使用的文件的元數據信息存儲在主服務器的內存中,暫時不會被使用到的文件的元數據信息存儲在固盤中,長期不會被訪問的文件的元數據信息存儲在磁盤中。
5.根據權利要求3所述的基于GFS的分布式文件系統的元數據分級存儲系統,其特征在于,主服務器的數量為多個且彼此之間的任務不發生重疊,每一元數據獨立對應部分文件的讀寫,客戶端還包括一哈希處理模塊,對文件名進行哈希處理并根據處理結果的結構選擇對應的主服務器。
全文摘要
本發明公開了基于GFS的分布式文件系統的元數據分級存儲方法和系統,減少主服務器master的內存壓力和瓶頸,從而提高分布式文件系統的存儲訪問性能和可靠性。并且將元數據信息分級存儲,既能最大限度地滿足用戶需求,又可使存儲成本最小化。其技術方案為采用分布式文件系統提供源站服務,通過分級存儲主服務器master的元數據信息,也就是在主服務器master啟動時將最近一段時間的文件的元數據信息這部分保存在內存中,一些暫時不會被使用到的元數據信息保存在固盤中,還有一些長期都不會被訪問的數據還可以直接存儲在磁盤中,通過這種元數據存儲的分級來減少了master大量元數據信息造成的內存壓力和瓶頸。
文檔編號H04L29/08GK103078936SQ20121059200
公開日2013年5月1日 申請日期2012年12月31日 優先權日2012年12月31日
發明者洪珂, 陳進賢, 周國美 申請人:網宿科技股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 山西省| 东港市| 唐海县| 营口市| 房山区| 杨浦区| 浮山县| 民权县| 班戈县| 秦皇岛市| 连山| 陆川县| 华坪县| 大兴区| 民丰县| 通城县| 阳春市| 五华县| 自贡市| 河池市| 和政县| 威信县| 玛曲县| 荥经县| 桂林市| 新兴县| 长岛县| 沂水县| 淮南市| 铜山县| 建昌县| 石林| 彰化县| 山丹县| 安乡县| 新建县| 札达县| 忻城县| 阿拉善盟| 藁城市| 武山县|