一種管理存儲系統的元數據的方法以及元數據服務器的制造方法
【技術領域】
[0001]本發明涉及數據存儲技術領域,特別是涉及一種管理存儲系統的元數據的方法以及元數據服務器。
【背景技術】
[0002]存儲系統是指計算機中由存放程序和數據的各種存儲設備、控制部件及管理信息調度的設備和處理算法所組成的系統。隨著存儲數據越來越多,存儲系統的存儲空間也越來越大。
[0003]為了方便對存儲數據的管理,現有技術中的存儲系統將存儲數據的元數據集中在一個節點上進行管理,該節點采用的是主系統和備系統兩兩套系統,平常主要由主系統工作,備系統定期進行備份,在主系統出現異常時,備系統接替主系統進行工作。
[0004]所有客戶端對存儲系統的訪問都要先經過主系統,隨著存儲系統的容量不斷增大,連接的客戶端數量越來越多,主系統的性能會成整個存儲系統的瓶頸,容易出現擁堵,影響整個存儲系統的讀寫速度。
【發明內容】
[0005]本發明主要解決的技術問題是提供一種管理存儲系統的元數據的方法以及元數據服務器,能夠實現元數據服務器的負載均衡,提高元數據的處理速度。
[0006]本發明的有益效果是:區別于現有技術的情況,本發明在接收模塊接收到元數據寫入請求或者元數據讀取請求時,判斷模塊先判斷元數據服務器的自身的負載是否大于閾值,若大于,則向與其相連接的元數據服務器轉發元數據讀取請求和元數據寫入請求,由與相連接的元數據服務器進行處理,若小于,則直接由元數據服務器進行處理,有利于實現元數據服務器的負載均衡,減少元數據服務器出現負載過載的機率,提高元數據的處理速度。
【附圖說明】
[0007]圖1是本發明存儲系統實施方式的示意圖;
[0008]圖2是本發明元數據服務器第一實施方式的示意圖;
[0009]圖3是本發明元數據服務器第二實施方式的示意圖;
[0010]圖4是本發明管理存儲系統的元數據的方法第一實施方式的流程圖;
[0011]圖5是本發明管理存儲系統的元數據的方法第二實施方式的流程圖;
[0012]圖6是本發明管理存儲系統的元數據的方法第一實施方式中更新元數據服務器上所存儲的沖突元數據的流程圖。
【具體實施方式】
[0013]下面結合附圖和實施方式對本發明進行詳細說明。
[0014]為了方便讀取更好地理解本發明,以下先對存儲系統的結構進行簡要說明,請參閱圖1,存儲系統10包括若干個元數據服務器11和若干個存儲服務器12,若干個元數據服務器11互連,并且每一元數據服力器均分別與若干個存儲服務器12連接,存儲服務器12用于存儲元數據,元數據服務器11設置有本地的存儲單元,元數據服務器11可將存儲服務器12上存儲的元數據存儲到本地的存儲單元。
[0015]在客戶端需要讀取數據時,客戶端向元數據服務器11發送元數據讀取請求,元數據讀取請求攜帶待讀元數據的標識。元數據服務器11先在本地的存儲單元查找是否存在待讀元數據的標識對應的元數據,即為:客戶端所需要的元數據,若存在,則直接向客戶端返回,若沒有,則到存儲服務器12中查找待讀元數據的標識對應的元數據,若找到,則向客戶端返回。當然,元數據服務器11也可以將在存儲服務器12上找到待讀元數據的標識對應的元數據存儲至本地服務器,使客戶端再次請求相同的元數據,元數據服務器11可直接向客戶端返回,提高效率。
[0016]在客戶端需要寫入元數據時,客戶端向元數據服務器11發送元數據寫入請求,元數據寫入請求攜帶有待寫元數據以及待寫元數據的標識,元數據服務器11在存儲服務器12查找是否存在沖突元數據,沖突元數據是指標識與待寫元數據的標識相同的元數據。若存在,將待寫元數據替代沖突元數據,若不存在,則直接將待寫元數據和待寫元數據的標識寫入存儲服務器12。在將待寫元數據和待寫元數據的標識寫入存儲服務器12后,在存儲服務器12存儲待寫元數據的標識與待寫元數據的對應關系。為了保證元數據服務器11與存儲服務器12的元數據的一致性,元數據服務器11還在本地的存儲單元查找是否存在沖突元數據,若存在,則將待寫元數據替代本地的存儲單元所存儲的沖突元數據。元數據服務器11還向與其相連接的元數據服務器11廣播同步通知,其中,同步通知攜帶待寫元數據和待寫元數據的標識,以使與其相連接的元數據服務器11將本地的存儲單元中所存儲的沖突元數據替換為待寫入元數據。
[0017]值得說明的是:由于每一個客戶端均連接若干個元數據服務器11,客戶端可隨機向其中一個元數據服務器11發送元數據讀取請求和元數據寫入請求,當然,客戶端也可以獲取每一個元數據服務器11的負載值,根據負載均衡的原則選擇元數據服務器11,向所選擇的元數據服務器11發送元數據讀取請求和元數據寫入請求。
[0018]為了避免出現單個元數據服務器11的負載過高,影響元數據的讀寫,元數據服務器11在讀寫元數據時,均檢測自身的負載值,在自身的負載值超過閾值時,將元數據讀取請求或元數據寫入請求轉發給其它的元數據服務器11進行處理,實現元數據服務器11的負載均衡。當然,元數據服務器11可定期廣播負載請求消息,其它元數據服務器11接收到負載請求消息時返回其自身的負載值,元數據服務器11根據返回的負載值,維護負載列表,元數據服務器11在轉發元數據寫入請求或元數據讀取請求時,可以根據負載列表選擇負載值較低的元數據服務器11進行轉發。另外,每一元數據服務器11均可以維護一個與其相連的元數據服務器11的在線列表,元數據服務器11之間通過心跳檢查對方是否在線,若對方不在線,則需要將該元數據服務器11從在線列表中刪除。當然,當有新元數據服務器11接入時,新元數據服務器11向所有的元數據服務器11廣播服務器接入消息,其它元數據服務器11接收到服務器接入消息時,與新元數據服務器11連接心跳連接,并將新元數據服務器11加入在線列表。
[0019]以下對元數據服務器進行說明。請參閱圖2,元數據服務器20包括接收模塊201、獲取模塊202、判斷模塊203、第一查找模塊204、第一返回模塊205、第二查找模塊206和第二返回模塊207。
[0020]接收模塊201,用于接收元數據讀取請求,其中,元數據讀取請求是由客戶端發出的或者由與其相連的元數據服務器20所轉發的,元數據讀取請求攜帶待讀元數據的標識。獲取模塊202,用于獲取自身的負載值。負載值可以根據元數據服務器20的各資源的使用率,例如:CPU、內存和帶寬等,結合預設計算模型計算得到的。判斷模塊203,用于判斷所述負載值是否超過閾值。第一查找模塊204,用于在判斷模塊203判斷到負載值沿有超過閾值時,在本地的存儲單元中查找是否存在待讀取元數據的標識對應的元數據。第一返回模塊205,用于在第一查找模塊204找到待讀元數據的標識對應的元數據時,向客戶端返回所找到的元數據。第二查找模塊206,用于第一查找模塊204沒有找到待讀元數據的標識對應的元數據時,在存儲服務器中查找是否存在待讀元數據的標識對應的元數據。第二返回模塊207,用于在第二查找模塊206找到待讀元數據的標識對應的元數據時,向客戶端返回所找到的元數據。
[0021 ]元數據服務器20還包括轉發模塊208、第三返回模塊209和存儲模塊211。
[0022]轉發模塊208,用于在判斷模塊203判斷到負載值超過閾值時,向與其連接的元數據服務器20轉發元數據讀取請求。在元數據服務器20的負載過高時,將元數據讀取請求轉發給其它元數據服務器20進行處理,有利于實現元數據服務器20的負載均衡,避免單點元數據服務器20的負載過載,影響元數據的讀寫效率。
[0023]第三返回模塊209,用于在第二查找模塊206在所述存儲服務器中沒找到待讀元數據的標識對應的元數據時,向客戶端發送讀取失敗的消息。讀取失敗的消息用于通知客戶端存儲系統不存客戶端所請求的元數據。