文件管理方法和系統的制作方法
【技術領域】
[0001]本發明涉及數據存儲領域,特別涉及一種文件管理方法和系統。
【背景技術】
[0002]分布式文件系統將大文件分塊存儲在各存儲節點中,實現了文件多節點并行讀寫,如圖1所示。但在每次讀寫時,需先從元數據節點查詢存儲文件的節點。一旦頻繁讀寫小文件(小于最小分塊,HDFS(Hadoop Distributed File System,Hadoop分布式文件系統)定義為64M),查詢的時間甚至超過讀寫文件時間,嚴重影響了系統效率。
[0003]由于在元數據節點的內存中存在大量的文件索引條目,因此在主備節點數據備份過程中,需進行大量內存數據的頻繁拷貝,長時間占據系統計算與帶寬資源,影響核心業務質量。
[0004]Yahoo提出了采用HAR(Hadoop Archive)的方法,可以將眾多小文件打包成Chunk進行存儲,打包后的Chunk由索引和存儲兩大部分組成,如圖2所示。但是若對打包后小文件進行修改,需要對Chunk進行解包處理,導致浪費了大量時間與性能開銷。
【發明內容】
[0005]本發明實施例提供一種文件管理方法和系統。通過將頻繁讀寫的文件直接存放在元數據節點中,從而提升了文件讀寫速度。
[0006]根據本發明的一個方面,提供一種文件管理方法,包括:
[0007]文件管理裝置以預定的時間間隔,統計在指定時間范圍內針對存儲在元數據節點和存儲節點中的文件的讀寫次數;
[0008]文件管理裝置選擇出前N個讀寫次數最大的文件;
[0009]在前N個讀寫次數最大的文件中,文件管理裝置判斷是否存在第一遷移文件,其中第一遷移文件屬于前N個讀寫次數最大的文件,且存儲在存儲節點中;
[0010]若存在第一遷移文件,則文件管理裝置向元數據節點發送第一遷移請求;
[0011]元數據節點接收到第一遷移請求后,從相應的存儲節點獲取第一遷移文件以進行本地存儲。
[0012]在一個實施例中,元數據節點接收到第一遷移請求后,從相應的存儲節點獲取第一遷移文件以進行本地存儲的步驟包括:
[0013]元數據節點接收到第一遷移請求后,從相應的存儲節點獲取第一遷移文件;
[0014]元數據節點在本地索引中建立索引數據區映射,將第一遷移文件存儲在元數據節點中相應的數據區;
[0015]元數據節點更新第一索引,并指示相應的存儲節點更新第二索引,以便刪除與第一遷移文件相關聯的映射信息,其中第一索引和第二索引中包括存儲在存儲節點中文件的映射信息。
[0016]在一個實施例中,文件管理裝置以預定的時間間隔,統計在指定時間范圍內針對存儲在元數據節點和存儲節點中的文件的讀寫次數之后,還包括:
[0017]文件管理裝置選擇出前Μ個讀寫次數最小的文件;
[0018]在前Μ個讀寫次數最小的文件中,文件管理裝置判斷是否存在第二遷移文件,其中第二遷移文件屬于前Μ個讀寫次數最小的文件,且存儲在元數據節點中;
[0019]若存在第二遷移文件,則文件管理裝置向元數據節點發送第二遷移請求;
[0020]元數據節點接收到第二遷移請求后,將第二遷移文件從元數據節點遷移到相應的存儲節點以進行存儲。
[0021]在一個實施例中,元數據節點接收到第二遷移請求后,將第二遷移文件從元數據節點遷移到相應的存儲節點以進行存儲的步驟包括:
[0022]元數據節點接收到第二遷移請求后,在一級索引中建立與第二遷移文件相關聯的一級映射,指示相應的存儲節點在二級索引中建立與第二遷移文件相關聯的二級映射,將第二遷移文件分布式存儲到相應的存儲節點中;
[0023]元數據節點更新本地索引,以便刪除與第二遷移文件相關聯的映射信息。
[0024]在一個實施例中,元數據節點在存儲新文件時,識別新文件的大小;
[0025]元數據節點判斷新文件的大小是否小于預定閾值;
[0026]若新文件的大小小于預定閾值,則元數據節點在本地索引中建立索引數據區映射,將新文件存儲在元數據節點中相應的數據區。
[0027]在一個實施例中,若新文件的大小不小于預定閾值,則元數據節點在一級索引中建立一級映射,指示相應的存儲節點在二級索引中建立二級映射,將新文件分布式存儲到相應的存儲節點中。
[0028]根據本發明的另一方面,提供一種文件管理系統,包括文件管理裝置、元數據節點和存儲節點,其中:
[0029]文件管理裝置,用于以預定的時間間隔,統計在指定時間范圍內針對存儲在元數據節點和存儲節點中的文件的讀寫次數;選擇出前Ν個讀寫次數最大的文件,在前Ν個讀寫次數最大的文件中,判斷是否存在第一遷移文件,其中第一遷移文件屬于前Ν個讀寫次數最大的文件,且存儲在存儲節點中;若存在第一遷移文件,則向元數據節點發送第一遷移請求;
[0030]元數據節點,用于在接收到第一遷移請求后,從相應的存儲節點獲取第一遷移文件以進行本地存儲;
[0031]存儲節點,用于分布式存儲文件。
[0032]在一個實施例中,元數據節點具體在接收到第一遷移請求后,從相應的存儲節點獲取第一遷移文件;在本地索引中建立索引數據區映射,將第一遷移文件存儲在元數據節點中相應的數據區;更新第一索引,并指示相應的存儲節點更新第二索引,以便刪除與第一遷移文件相關聯的映射信息,其中第一索引和第二索引中包括存儲在存儲節點中文件的映射信息。
[0033]在一個實施例中,文件管理裝置還用于在以預定的時間間隔,統計在指定時間范圍內針對存儲在元數據節點和存儲節點中的文件的讀寫次數之后,選擇出前Μ個讀寫次數最小的文件;在前Μ個讀寫次數最小的文件中,判斷是否存在第二遷移文件,其中第二遷移文件屬于前Μ個讀寫次數最小的文件,且存儲在元數據節點中;若存在第二遷移文件,則向元數據節點發送第二遷移請求;
[0034]元數據節點還用于在接收到第二遷移請求后,將第二遷移文件從元數據節點遷移到相應的存儲節點以進行存儲。
[0035]在一個實施例中,元數據節點具體在接收到第二遷移請求后,在一級索引中建立與第二遷移文件相關聯的一級映射,指示相應的存儲節點在二級索引中建立與第二遷移文件相關聯的二級映射,將第二遷移文件分布式存儲到相應的存儲節點中;更新本地索引,以便刪除與第二遷移文件相關聯的映射信息。
[0036]在一個實施例中,元數據節點還用于在存儲新文件時,識別新文件的大小;判斷新文件的大小是否小于預定閾值,若新文件的大小小于預定閾值,則在本地索引中建立索引數據區映射,將新文件存儲在元數據節點中相應的數據區。
[0037]在一個實施例中,元數據節點還用于在新文件的大小不小于預定閾值時,在一級索引中建立一級映射,指示相應的存儲節點在二級索引中建立二級映射,將新文件分布式存儲到相應的存儲節點中。
[0038]在一個實施例中,系統還包括元數據服務器,其中:
[0039]元數據服務器,用于以預定的時間間隔備份元數據節點中的本地索引。
[0040]本發明通過統計文件的讀寫次數,將頻繁讀寫的文件從存儲節點遷移到元數據節點中,從而提升了文件讀寫速度。
【附圖說明】
[0041]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0042]圖1為現有技術中分布式文件系統一個實施例的示意圖。
[0043]圖2為現有技術中HAR方案一個實施例的示意圖。
[0044]圖3為本發明文件管理方法一個實施例的示意圖。
[0045]圖4為本發明文件管理方法另一實施例的示意圖。
[0046]圖5為本發明索引建立一個實施例的不意圖。
[0047]圖6為本發明索引數據結構一個實施例的示意圖。
[0048]圖7為本發明文件存儲一個實施例的示意圖。
[0049]圖8為本發明文件管理系統一個實施例的示意圖。
[0050]圖9為本發明文件管理系統另一實施例的示意圖。
[0051]圖10為本發明與現有分布式文件系統的文件讀取時序對比圖。
[0052]圖11為本發明與HAR方案的文件修改時序對比圖。
【具體實施方式】
[0053]下面將結合本發明實施例中的附圖,對本發明實施例中