一種存儲文件的方法及裝置的制造方法
【技術領域】
[0001]本發明涉及數據存儲處理技術領域,特別是涉及一種存儲文件的方法及裝置。
【背景技術】
[0002]分布式存儲系統是指由多臺獨立存儲設備所組成的系統,文件可以分散存儲在多臺獨立存儲設備上。分布式存儲系統其一般采用可擴展的系統結構,主要利用多臺存儲設備分擔存儲負荷,利用位置服務器定位存儲設備信息,其不但提高了系統的可靠性、可用性和存取效率,還易于擴展。
[0003]現有技術中的分布式存儲系統要么采用副本存儲,要么采用糾刪碼存儲,糾刪碼存儲是指根據預設糾刪碼算法存儲文件,副本存儲是指根據預設副本存儲算法存儲文件。而副本存儲具有讀寫速度快的優點,但其同時具有占用存儲空間大的缺點,雙副本會占用2倍的空間,3副本會占用3倍的空間。糾刪碼存儲具有節省大量存儲空間的優點,但是其寫入和讀取時需要大量計算,速度較慢。
[0004]單一的存儲方式已經越來越不能滿足分布式存儲系統的發展要求。
【發明內容】
[0005]本發明主要解決的技術問題是提供一種存儲文件的方法及裝置,能夠充分發揮副本存儲和糾刪碼存儲的優點,以達到高效存儲。
[0006]為解決上述技術問題,本發明采用的一個技術方案是:提供一種存儲文件的方法,存儲空間劃分有副本存儲池和糾刪碼存儲池,方法包括:接收待存儲文件;判斷所述待存儲文件的大小是否小于預定閾值;若小于閾值,則根據預設副本存儲算法,將所述待存儲文件存儲至副本存儲池;若大于或等于閾值,獲取所述待存儲文件的文件類型;判斷所述待存儲文件的文件類型是否為預配置副本存儲規則中所指定的類型;若是,則根據所述預設副本存儲算法,將所述待存儲文件存儲至副本存儲池。
[0007]其中,所述方法還包括:若所述待存儲文件的文件類型不是預配置副本存儲規則中所指定的類型,在文件管理系統中,獲取所述待存儲文件所在的文件目錄;提取所述文件目錄的創建時間和當前時間;判斷所述當前時間與創建時間之間的時間間隔是否小于第一預定期限;若是,則根據所述預設副本存儲算法,將所述待存儲文件存儲至副本存儲池;否貝1J,則根據預設糾刪碼存儲算法,將所述待存儲文件存儲至糾刪碼存儲池。
[0008]其中,在根據所述預設副本存儲算法,將所述待存儲文件存儲至副本存儲池之前,所述方法還包括:獲取所述副本存儲池的剩余空間;判斷所述剩余空間是否大于所述待存儲文件的大小;若是,則根據所述預設副本存儲算法,將所述待存儲文件存儲至副本存儲池之前;若否,則根據預設調度算法,從所述副本存儲池提取文件,并將根據預設糾刪碼存儲算法,將所提取到的文件轉移至糾刪碼存儲池。
[0009]其中,所述方法還包括:在訪問所述副本存儲池的文件時,記錄被訪問的文件的訪問時間以及訪問次數;所述根據預設調度算法,從所述副本存儲池提取文件的步驟具體包括:獲取當前時間;結合所述訪問時間,從所述副本存儲池提取距離所述當前時間的第二預定期限內訪問次數大于預定值的文件。
[0010]其中,所述預定閾值為100兆。
[0011]為解決上述技術問題,本發明采用的另一個技術方案是:提供一種存儲文件的裝置,所述裝置包括存儲空間,所述存儲空間劃分有副本存儲池和糾刪碼存儲池,所述裝置還包括:接收模塊,用于接收待存儲文件;第一判斷模塊,用于判斷所述待存儲文件的大小是否小于預定閾值;第一存儲模塊,用于在所述第一判斷模塊判斷到待存儲文件的大小小于閾值時,根據預設副本存儲算法,將所述待存儲文件存儲至副本存儲池;第一獲取模塊,用于在所述第一判斷模塊判斷到待存儲文件的大小大于或等于閾值時,獲取所述待存儲文件的文件類型;第二判斷模塊,用于判斷所述待存儲文件的文件類型是否為預配置副本存儲規則中所指定的類型;第二存儲模塊,用于在所述第二判斷模塊判斷到待存儲文件的文件類型為預配置副本存儲規則中所指定的類型時,根據預設副本存儲算法,將所述待存儲文件存儲至副本存儲池。
[0012]其中,所述裝置還包括:第二獲取模塊,用于在所述第二判斷模塊判斷到待存儲文件的文件類型不為預配置副本存儲規則中所指定的類型時,在文件管理系統中,獲取所述待存儲文件所在的文件目錄;第三判斷模塊,用于判斷所述文件目錄是否為預配置副本存儲規則中所指定的文件目錄;第三存儲模塊,用于在所述第三判斷模塊判斷到所述文件目錄為預配置副本存儲規則中所指定的文件目錄時,根據所述預設副本存儲算法,將所述待存儲文件存儲至副本存儲池;提取模塊,用于用于在所述第三判斷模塊判斷到所述文件目錄不為預配置副本存儲規則中所指定的文件目錄時,提取所述文件目錄的創建時間和當前時間;第四判斷模塊,用于判斷所述當前時間與創建時間之間的時間間隔是否小于第一預定期限;第四存儲模塊,用于在所述第三判斷模塊判斷到所述時間間隔小于第一預定期限時,根據所述預設副本存儲算法,將所述待存儲文件存儲至副本存儲池;第五存儲模塊,用于在所述第三判斷模塊判斷到所述時間間隔大于或者等于第一預定期限時,根據預設糾刪碼存儲算法,將所述待存儲文件存儲至糾刪碼存儲池。
[0013]其中,所述裝置還包括:第四獲取模塊,用于在根據所述預設副本存儲算法,將所述待存儲文件存儲至副本存儲池之前,獲取所述副本存儲池的剩余空間;第五判斷模塊,用于判斷所述剩余空間是否大于所述待存儲文件的大小,若是,則直接根據所述預設副本存儲算法,將所述待存儲文件存儲至副本存儲池;調度模塊,用于在所述第四判斷模塊判斷到剩余空間小于所述待存儲文件的大小,則根據預設調度算法,從所述副本存儲池提取文件,并將根據預設糾刪碼存儲算法,將所提取到的文件轉移至糾刪碼存儲池。
[0014]其中,所述裝置還包括:記錄模塊,用于在訪問所述副本存儲池的文件時,記錄被訪問的文件的訪問時間以及訪問次數;所述調度模塊具體用于獲取當前時間,結合所述訪問時間,從所述副本存儲池提取距離所述當前時間的第二預定期限內訪問次數大于預定值的文件,并將根據預設糾刪碼存儲算法,將所提取到的文件轉移至糾刪碼存儲池。
[0015]其中,所述預定閾值為100兆。
[0016]本發明的有益效果是:區別于現有技術的情況,本發明對于小于預定閾值的待存儲文件,根據預設副本存儲算法,將待存儲文件存儲至副本存儲池,對于大于或等于預定閾值的待存儲文件,根據預設糾刪碼存儲算法,將待存儲文件存儲至糾刪碼存儲池,實現小文件進行副本存儲,大文件進行糾刪碼存儲,充分發揮副本存儲和糾刪碼存儲的優點,提高處理效率;還可對于特定類型的大文件配置為副本存儲,以使所存儲的文件可適應不同場景,以達到高效存儲文件的目的。
【附圖說明】
[0017]圖1是本發明存儲文件的方法實施方式的流程圖;
[0018]圖2是本發明存儲文件的裝置實施方式的示意圖。
【具體實施方式】
[0019]下面結合附圖和實施方式對本發明進行詳細。
[0020]本發明存儲文件的存儲空間劃分有副本存儲池和糾刪碼存儲池,副本存儲池對應用于存儲根據預設副本存儲算法所存儲的文件,糾刪碼存儲池對應用于存儲根據預設糾刪碼存儲算法所存儲的文件,請參閱圖1,存儲文件的方法包括:
[0021 ]步驟S201:接收待存儲文件;
[0022]步驟S202:判斷待存儲文件的大小是否小于預定閾值,若小于閾值,則進入步驟S203,否則進入步驟S204;
[0023]步驟S203:根據預設副本存儲算法,將待存儲文件存