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