分布式文件系統的讀方法、客戶端設備及分布式文件系統的制作方法
【技術領域】
[0001]本發明涉及分布式文件系統技術領域,特別是涉及分布式文件系統的讀方法、客戶端設備及分布式文件系統。
【背景技術】
[0002]分布式文件系統(Distributed File System)是一種基于客戶機/服務器模式的文件管理系統,其中,分布式文件系統中的客戶機即為客戶端設備,分布式文件系統中的服務器包括存儲服務器及元數據服務器。分布式文件系統中的數據可以存儲在存儲服務器中,客戶端設備通過網絡與存儲服務器、元數據服務器連接,在獲得元數據服務器中存儲的元數據信息后,就可以確定所要讀取的數據所對應的地址并從存儲服務器獲取所要讀取的數據。
[0003]現有的分布式文件系統的讀方法在每次對文件進行讀操作時,都需要先向元數據服務器請求查詢對應的元數據信息,然后通過獲得的元數據信息再到存儲服務器中獲取文件數據。由于每一次進行讀操作都需要從元數據服務器中請求元數據信息,因此現有的分布式文件系統的讀方法花費的時間較多,相應的,現有的分布式文件系統讀操作的速度也較慢。
【發明內容】
[0004]本發明實施例的目的在于提供分布式文件系統的讀方法、客戶端設備及分布式文件系統,以減少分布式文件系統進行數據讀取花費的時間,并提高分布式文件系統讀操作的速度。
[0005]為達到上述目的,本發明實施例公開了一種分布式文件系統的讀方法,所述分布式文件系統至少包括:客戶端設備、存儲服務器和元數據服務器,所述客戶端設備分別與元數據服務器、存儲服務器通信連接,所述讀方法應用于客戶端設備,所述方法包括:
[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]所述備份單元,用于獲得所述元數據服務器發送的多個元數據信息,以對所述元數據服務器中的元數據信息進行備份。
[0041]可選的,還包括:更新請求單元和更新單元,
[0042]所述更新請求單元,用于在所述備份單元對所述元數據服務器中的元數據信息進行備份后,按照預設的更新時間周期,向所述元數據服務器發送元數據信息更新請求;
[0043]所述更新單元,用于獲得所述元數據服務器發送的更新數據并更新所述客戶端設備本地存儲的元數據信息。
[0044]可選的,所述分布式文件系統中包括有至少一個客戶端設備組,每個所述客戶端設備組中包括至少兩個客戶端設備,任一客戶端設備中均備份有該客戶端設備所在的客戶端設備組中其他客戶端設備存儲的元數據信息。
[0045]可選的,所述文件讀取單元,包括:數量確定子單元、參數信息獲得子單元、讀取服務器選擇子單元和文件讀取子單元,
[0046]所述數量確定子單元,用于確定根據所述元數據信息所確定的多個存儲地址所在的存儲服務器的數量;
[0047]所述參數信息獲得子單元,用于在所述數量不小于兩個時,獲得所述多個存儲地址所在的存儲服務器的硬件參數信息和/或運行參數信息;
[0048]所述讀取服務器選擇子單元,用于根據所獲得的存儲服務器的參數信息從所述多個存儲地址所在的存儲服務器中選擇一個作為讀取服務器;
[0049]所述文件讀取子單元,用于從所述讀取服務器對應的存儲地址中獲取所述所要讀取的文件。
[0050]可選的,所述運行參數信息至少包括運行負載信息,所述硬件參數信息至少包括:存儲服務器的可用空間信息。
[0051]可選的,所述文件的標識包括:文件編號和文件塊號。
[0052]一種分布式文件系統,包括:存儲服務器及上述的任一種客戶端設備,所述存儲服務器與所述客戶端設備通信連接。
[0053]可選的,還包括:元數據服務器,所述元數據服務器與所述客戶端設備通信連接。
[0054]本發明實施例提供的一種分布式文件系統的讀方法、客戶端設備及分布式文件系統,可以在進行讀操作時,首先在客戶端設備本地尋找所需的元數據信息。在客戶端設備本地存儲有所需的元數據信息時,本發明可以直接根據客戶端設備本地存儲的元數據信息確定所要讀取的文件在存儲服務器中的存儲地址,不再需要從元數據服務器中獲取元數據信息,更加方便快捷,節省了時間。相應的,本發明執行讀操作的速度也較