一種對文件系統和對象存儲系統進行操作的方法及裝置的制造方法
【技術領域】
[0001]本發明涉及計算機領域,特別涉及一種對文件系統和對象存儲系統進行操作的方法及裝置。
【背景技術】
[0002]文件系統是一種存儲和組織計算機數據的方法,它使得對其存取和查找變得容易。文件系統使用文件和樹形目錄的抽象邏輯概念代替了硬盤和光盤等物理設備使用數據塊的概念,用戶使用文件系統來保存數據只需要記住這個文件的所屬目錄和文件名。
[0003]對象存儲系統是綜合了網絡附屬存儲NAS和存儲區域網絡SAN的優點,同時具有SAN的高速直接訪問和NAS的數據共享等優勢,提供了高可靠性、跨平臺性以及安全的數據共享的存儲體系結構。
[0004]文件系統與對象存儲系統具有不同的接口和使用形式。多數文件系統支持本地化訪問。而對象存儲系統本質上是網絡存儲系統,只能通過應用程序編程接口 API的形式進行訪問。問題在于對于普通用戶很難通過寫代碼調用API的形式訪問對象存儲系統,而用戶習慣于像訪問本地文件系統一樣訪問存儲系統。
[0005]目前已經存在了一些解決此問題的方法,如針對不同的對象存儲系統研發客戶端的形式連接對象存儲系統進行對象操作,也有一些開源軟件的實現如S3FS,但是這些軟件并沒有充分考慮到對象存儲系統與本地文件系統的差異存在一些問題。
[0006]文件系統支持流式處理,而對象存儲系統不支持流式處理只支持對象級別的操作,例如對象存儲系統不能直接作為視頻實時播放服務器的使用等。且文件系統與對象存儲系統對接時容易出現大量數據重復寫入的問題。
【發明內容】
[0007]本發明要解決的技術問題是提供一種對文件系統和對象存儲系統進行操作的方法及裝置,解決文件系統與對象存儲系統對接過程中的兼容性問題,避免大量數據重復寫入和重復讀取,提高操作效率。
[0008]為解決上述技術問題,本發明的實施例提供一種對文件系統和對象存儲系統進行操作的方法,包括:
[0009]將文件系統中的文件分割成多個子文件;
[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]圖1為本發明對文件系統和對象存儲系統進行操作的方法流程圖;
[0041]圖2為本發明對文件系統和對象存儲系統進行操作的方法一具體實施例的第一示意圖;
[0042]圖3為本發明對文件系統和對象存儲系統進行操作的方法一具體實施例的第二示意圖;
[0043]圖4為本發明對文件系統和對象存儲系統進行操作的裝置的結構示意圖。
【具體實施方式】
[0044]為使本發明要解決的技術問題、技術方案和優點更加清楚,下面將結合附圖及具體實施例進行詳細描述。
[0045]本發明實施例的對文件系統和對象存儲系統進行操作的方法,解決了文件系統與對象存儲系統對接過程中的兼容性問題,避免了大量數據的重復寫入和重復讀取,提高了操作效率。
[0046]如圖1-3所示,本發明實施例的對文件系統和對象存儲系統進行操作的方法,包括:
[0047]步驟11,將文件系統中的文件分割成多個子文件;
[0048]步驟12,建立所述多個子文件與對象存儲系統的多個對象之間的對應關系,其中一個所述子文件對應所述對象存儲系統中的一個對象;
[0049]步驟13,根據所述對應關系以及對所述子文件的操作,對所述子文件對應的對象進行相應的操作。
[0050]本發明實施例的對文件系統和對象存儲系統進行操作的方法,先將文件系統中的文件分割成多個子文件;然后建立多個子文件與對象存儲系統的多個對象之間的對應關系,其中一個子文件對應對象存儲系統中的一個對象;最后根據該對應關系以及對子文件的操作,對子文件對應的對象進行相應的操作。解決了文件系統與對象存儲系統對接過程中的兼容性問題,避免了在文件修改和更新時大數據量的重復寫入,以及讀取修改過部分內容的文件時大數據量的重復讀取,提高了操作效率。
[0051]其中,所述對應關系為:所述子文件在所述文件系統中的存儲地址與所述對象在所述對象存儲系統中的對象標識之間的對應關系。當然,若對象用其它的方式表達,如名稱或者其它,那么該對應關系還可以為:子文件在所述文件系統中的存儲地址與對象的名稱之間的對應關系;
[0052]此時,通過子文件與對象之間的對應關系,能快速找到子文件對應的對象,從而根據對子文件的操作,對子文件對應的對象進行相應的操作,優化了處理方式,提高了操作效率。
[0053]優選的,所述子文件的大小可設置。
[0054]此時,可以根據需要對子文件的大小進行設定,如64M —個,從而使文件的存儲更加合理的進行。
[0055]在本發明的一具體實施例中,包括上述步驟11 - 13的基礎上,其中步驟13可以包括:
[0056]步驟131,根據所述對應關系,將每個所述子文件分別寫入所述子文件對應的對象中。
[0057]此時,通過將文件系統中的文件進行分割,得到多個子文件,而該多個子文件在對象存儲系統中存儲時,每個子文件分別對應一個對象,并將該子文件寫入該子文件對應的對象中存放,從而在之后的回寫、讀取或者更新操作中,可以基于每個子文件對應的對象進行操作,從而不需要再像傳統的對象存儲系統那樣,對整個對象進行讀取或者更新,解決了文件系統與對象存儲系統對接過程中的兼容性問題,避免了在文件修改和更新時大數據量的重復寫入,以及讀取修改過部分內容的文件時大數據量的重復讀取,提高了操作效率。
[0058]進一步的,在文件寫入時通常會有文件更新的操作,如當文件寫完時使用函數回查到該文件的某個位置,進行回寫修改。而現有技術中,對象存儲系統不支持數據更新的操作,也不支持在對象寫入時回寫修改的功能。
[0059]現有技術中,對對象存儲系統中的對象進行回寫操作如:在文件系統里用戶更新一個文件時,客戶端工具首先監測到文件的更新,然后刪除對象存儲系統里相應的原始文件,最后把文件系統里更新過的文件重新上傳到對象存儲系統,這樣存在的問題是如果文件很大效率就很低,無論這個文件多大每個文件的更新操作都需要重新上傳整個文件。而本發明的上述實施例通過將一個文件分割成多個子文件,并以每個子文件對應的對象為單位進行存儲或者寫入,為后續的回寫、更新或者讀取的效率提高作準備。
[0060]本發明實施例的對文件系統與對象