遷移對象的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種遷移對象的方法和系統(tǒng),該方法包括以下步驟:統(tǒng)計多個對象存儲設(shè)備OSD的負(fù)載,元數(shù)據(jù)服務(wù)器MDS定期查詢多個OSD的負(fù)載信息;通過MDS分析多個OSD的負(fù)載并進(jìn)行排序,選出負(fù)載較大的第一多個OSD和負(fù)載較小的第二多個OSD;以及將第一多個OSD上的部分對象遷移至第二多個OSD上。本發(fā)明能夠?qū)崿F(xiàn)對象的動態(tài)遷移,從而使得服務(wù)器的負(fù)載均衡,提高了服務(wù)器系統(tǒng)的整體服務(wù)能力,即使在訪問集中的情況下,也能夠使系統(tǒng)的服務(wù)能力保持較好的狀態(tài),有效降低了客戶端的平均等待時間,提高了用戶體驗。
【專利說明】遷移對象的方法和系統(tǒng)【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)領(lǐng)域,并且特別地,涉及一種遷移對象的方法和系統(tǒng)。
【背景技術(shù)】
[0002]在大規(guī)模的存儲系統(tǒng)中,操作的文件往往具有局部性,當(dāng)訪問集中在某些對象存儲設(shè)備OSD上時,會造成系統(tǒng)的服務(wù)能力快速下降,因此,在分布式系統(tǒng)中,需要動態(tài)平衡各個OSD的負(fù)載,提高系統(tǒng)的整體服務(wù)能力。
[0003]針對相關(guān)技術(shù)中分布式系統(tǒng)中負(fù)載分布不均,當(dāng)訪問集中時,系統(tǒng)的服務(wù)能力大大降低的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0004]為解決負(fù)載分配不均的問題,本發(fā)明提供了一種遷移對象的方法,包括以下步驟:統(tǒng)計多個對象存儲設(shè)備OSD的負(fù)載,元數(shù)據(jù)服務(wù)器MDS定期查詢多個OSD的負(fù)載信息;通過MDS分析多個OSD的負(fù)載并進(jìn)行排序,選出負(fù)載較大的第一多個OSD和負(fù)載較小的第二多個OSD ;以及將第一多個OSD上的部分對象遷移至第二多個OSD上。
[0005]其中,對象為固定大小。
[0006]其中,對象的元數(shù)據(jù)存放在MDS上,對象存儲在多個OSD上。
[0007]其中,定期更新MDS上對象的操作時間。
[0008]其中,當(dāng)對象位于第一多個OSD內(nèi),且當(dāng)操作時間位于預(yù)定范圍內(nèi)時,將對象加入到遷移列表中。
[0009]其中,元數(shù)據(jù)包括對象的位置信息,客戶端通過在MDS中查詢對象的位置信息而對相應(yīng)OSD中的對象進(jìn)行操作,并定期更新MDS上對象的操作時間。
[0010]其中,多個OSD對各自的網(wǎng)絡(luò)負(fù)載、磁盤負(fù)載、和內(nèi)存負(fù)載進(jìn)行加權(quán)平均后計算出多個對象存儲設(shè)備OSD的負(fù)載,供MDS定期查詢。
[0011]此外,還提供了一種遷移對象的系統(tǒng),包括:統(tǒng)計模塊,用于統(tǒng)計多個對象存儲設(shè)備OSD的負(fù)載,以使元數(shù)據(jù)服務(wù)器MDS定期查詢多個OSD的負(fù)載信息;排序模塊,用于通過MDS分析多個OSD的負(fù)載并進(jìn)行排序,選出負(fù)載較大的第一多個OSD和負(fù)載較小的第二多個OSD ;以及遷移模塊,用于將第一多個OSD上的部分對象遷移至第二多個OSD上。
[0012]其中,對象為固定大小。
[0013]其中,對象的元數(shù)據(jù)存放在MDS上,對象存儲在多個OSD上。
[0014]本發(fā)明通過元數(shù)據(jù)服務(wù)器MDS分析多個OSD的負(fù)載并進(jìn)行排序,并將負(fù)載較大的多個OSD上的部分對象遷移至負(fù)載較小的多個OSD上,能夠使服務(wù)器負(fù)載均衡,提高系統(tǒng)的整體服務(wù)能力。
【專利附圖】
【附圖說明】
[0015]當(dāng)結(jié)合附圖進(jìn)行閱讀時,根據(jù)下面詳細(xì)的描述可以更好地理解本發(fā)明。應(yīng)該強(qiáng)調(diào)的是,根據(jù)工業(yè)中的標(biāo)準(zhǔn)實踐,各種部件沒有被按比例繪制。實際上,為了清楚的討論,各種部件的尺寸可以被任意增加或減少
[0016]圖1示出了根據(jù)本發(fā)明的示例性實施例的遷移對象的方法流程圖;以及
[0017]圖2示出了根據(jù)本發(fā)明的示例性實施例的遷移對象的系統(tǒng)框圖;
[0018]圖3示出了根據(jù)本發(fā)明的一個示例性實施例的遷移對象的方法流程圖;
[0019]圖4示出了根據(jù)本發(fā)明的一個示例性實施例的遷移對象的方法實現(xiàn)過程中對象的訪問過程流程圖;
[0020]圖5示出了根據(jù)本發(fā)明的一個示例性實施例的遷移對象的方法實現(xiàn)過程中獲取遷移對象的過程流程圖;
[0021]圖6示出了根據(jù)本發(fā)明的一個示例性實施例的遷移對象的方法實現(xiàn)過程中OSD上對象的遷移過程流程圖。
【具體實施方式】
[0022]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0023]根據(jù)本發(fā)明的實施例,提供了 一種遷移對象的方法。
[0024]如圖1所示,該方法包括以下步驟:
[0025]步驟SlOl,統(tǒng)計多個對象存儲設(shè)備OSD的負(fù)載,元數(shù)據(jù)服務(wù)器MDS定期查詢多個OSD的負(fù)載信息;
[0026]步驟S103,通過MDS分析多個OSD的負(fù)載并進(jìn)行排序,選出負(fù)載較大的第一多個OSD和負(fù)載較小的第二多個OSD ;以及
[0027]步驟S105,將第一多個OSD上的部分對象遷移至第二多個OSD上。
[0028]其中,對象為固定大小。
[0029]并且,對象的元數(shù)據(jù)存放在MDS上,對象存儲在多個OSD上。
[0030]此外,定期更新MDS上對象的操作時間。
[0031]并且,當(dāng)對象位于第一多個OSD內(nèi),且當(dāng)操作時間位于預(yù)定范圍內(nèi)時,將對象加入到遷移列表中。
[0032]其中,元數(shù)據(jù)包括對象的位置信息,客戶端通過在MDS中查詢對象的位置信息而對相應(yīng)OSD中的對象進(jìn)行操作,并定期更新MDS上對象的操作時間。
[0033]并且,多個OSD對各自的網(wǎng)絡(luò)負(fù)載、磁盤負(fù)載、和內(nèi)存負(fù)載進(jìn)行加權(quán)平均后計算出多個對象存儲設(shè)備OSD的負(fù)載,供MDS定期查詢。
[0034]根據(jù)本發(fā)明的實施例,還提供了 一種遷移對象的系統(tǒng)。
[0035]如圖2所示,該系統(tǒng)包括:
[0036]統(tǒng)計模塊21,用于統(tǒng)計多個對象存儲設(shè)備OSD的負(fù)載,以使元數(shù)據(jù)服務(wù)器MDS定期查詢多個OSD的負(fù)載信息;
[0037]排序模塊22,用于通過MDS分析多個OSD的負(fù)載并進(jìn)行排序,選出負(fù)載較大的第一多個OSD和負(fù)載較小的第二多個OSD ;以及[0038]遷移模塊23,用于將第一多個OSD上的部分對象遷移至第二多個OSD上。
[0039]其中,對象為固定大小。
[0040]并且,對象的元數(shù)據(jù)存放在MDS上,對象存儲在多個OSD上。
[0041]例如,如圖3所示,在一個實施例中,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0042]步驟S301,采用固定大小的對象存儲文件;
[0043]步驟S303,文件的原數(shù)據(jù)存放在MDS上,對象存儲在OSD上;
[0044]步驟S305,客戶端操作對象時,定期更新MDS上文件的操作時間optime ;
[0045]步驟S307,OSD統(tǒng)計自身的負(fù)載,MDS定期查詢各個OSD的負(fù)載信息;
[0046]步驟S309,MDS分析OSD的負(fù)載,在一定周期內(nèi),選出負(fù)載較大的N個0SD,和負(fù)載較小的M個0SD,通過指定的策略,將負(fù)載較大的OSD上的一部分對象遷移到負(fù)載較小的OSD 上。
[0047]整個方案的實現(xiàn)包括以下幾個過程:
[0048]外部數(shù)據(jù)交互過程:用戶通過客戶端與系統(tǒng)進(jìn)行數(shù)據(jù)讀寫,客戶端提供通用文件系統(tǒng)接口,用戶使用時與本地文件系統(tǒng)沒有區(qū)別。
[0049]內(nèi)部數(shù)據(jù)交互過程:
[0050]1.客戶端向MDS獲取對象的存儲信息,向OSD發(fā)起操作請求;
[0051]2.0SD響應(yīng)客戶端的請求,客戶端定期更新MDS上對象的操作時間optime。
[0052]OSD根據(jù)自身的網(wǎng)絡(luò)負(fù)載、磁盤負(fù)載和內(nèi)存負(fù)載,加權(quán)平均后計算出總體的負(fù)載,供MDS定期查詢。MDS定期查詢OSD上的負(fù)載,并進(jìn)行記錄,達(dá)到預(yù)設(shè)的周期時,根據(jù)記錄,得出周期內(nèi)各OSD的平均負(fù)載,并進(jìn)行排序,得出前N個負(fù)載較大的OSD和后M個負(fù)載較輕的0SD,觸發(fā)數(shù)據(jù)的遷移,使得各個OSD的負(fù)載均衡。
[0053]對象操作過程:
[0054]1.客戶端訪問文件時,向MDS獲取文件的對象信息,得到需要訪問的對象和對象所在的OSD ;
[0055]2.向OSD發(fā)起操作;
[0056]3.0SD處理客戶端的操作,并應(yīng)答客戶端;
[0057]4.客戶端檢查更新周期,如果超過閾值,則主動更新MDS上文件的optime。
[0058]MDS周期統(tǒng)計OSD負(fù)載和觸發(fā)對象遷移:
[0059]MDS周期向OSD查詢負(fù)載信息,并將負(fù)載值記錄到文件中,當(dāng)周期次數(shù)達(dá)到一定閾值時,進(jìn)行負(fù)載的匯總,選擇出負(fù)載較大的N個OSD和負(fù)載較輕的M個0SD,觸發(fā)數(shù)據(jù)遷移處理,待遷移處理完成后,進(jìn)行下一輪的統(tǒng)計。
[0060]對象的遷移過程:
[0061]從負(fù)載較重的OSD上,查詢每個對象的optime,選擇最近訪問的一批對象,在負(fù)載較輕的OSD上未對象選擇目標(biāo)磁盤,通知0SD,進(jìn)行數(shù)據(jù)遷移,OSD設(shè)置對象的遷移標(biāo)志,進(jìn)行數(shù)據(jù)的拷貝操作,在遷移的過程中,有對象修改操作時,暫停對象的拷貝,根據(jù)修改的位置進(jìn)行處理:僅修改未拷貝到的位置,則指修改本地,否則需要修改本地和遠(yuǎn)端。
[0062]如圖4所示,對象的訪問過程如下:
[0063]1.客戶端首先從MDS上獲取對象所在的OSD ;
[0064]2.向OSD發(fā)起對象的操作;[0065]3.客戶端定期更新MDS上對象的optime。
[0066]如圖5所示,獲取待遷移對象的過程如下:
[0067]1.MDS定期查詢OSD的負(fù)載信息,在指定的時機(jī)觸發(fā)遷移過程;
[0068]2.選擇負(fù)載較重的OSD ;
[0069]3.將OSD上的部分最近訪問的對象選出來;
[0070]4.通知0SD,將對象從負(fù)載較重的OSD遷移到負(fù)載較輕的OSD上。
[0071]如圖6所示,OSD上對象的遷移過程如下:
[0072]1.先將對象設(shè)置成遷移中標(biāo)志,并等待當(dāng)前的修改操作完成;
[0073]2.在目標(biāo)設(shè)備上創(chuàng)建新對象;
[0074]3.向新對象拷貝數(shù)據(jù),直到完成;
[0075]4.通知MDS,遷移完成;
[0076]5.在原對象上設(shè)置遷移完成標(biāo)志,并將長度截斷成O。
[0077]綜上所述,借助于本發(fā)明的上述技術(shù)方案,通過元數(shù)據(jù)服務(wù)器MDS分析多個OSD的負(fù)載并進(jìn)行排序,并將負(fù)載較大的多個OSD上的部分對象遷移至負(fù)載較小的多個OSD上,能夠?qū)崿F(xiàn)對象的動態(tài)遷移,從而使得服務(wù)器的負(fù)載均衡,提高了服務(wù)器系統(tǒng)的整體服務(wù)能力,即使在訪問集中的情況下,也能夠使系統(tǒng)的服務(wù)能力保持較好的狀態(tài),有效降低了客戶端的平均等待時間,提高了用戶體驗。
[0078]上面論述了若干實施例的部件,使得本領(lǐng)域普通技術(shù)人員可以更好地理解本發(fā)明的各個方面。本領(lǐng)域普通技術(shù)人員應(yīng)該理解,可以很容易地使用本發(fā)明作為基礎(chǔ)來設(shè)計或更改其他用于達(dá)到與這里所介紹實施例相同的目的和/或?qū)崿F(xiàn)相同優(yōu)點的處理和結(jié)構(gòu)。本領(lǐng)域普通技術(shù)人員也應(yīng)該意識到,這種等效構(gòu)造并不背離本發(fā)明的精神和范圍,并且在不背離本發(fā)明的精神和范圍的情況下,可以進(jìn)行多種變化、替換以及改變。
【權(quán)利要求】
1.一種遷移對象的方法,其特征在于,包括以下步驟: 統(tǒng)計多個對象存儲設(shè)備OSD的負(fù)載,元數(shù)據(jù)服務(wù)器MDS定期查詢所述多個OSD的負(fù)載信息; 通過所述MDS分析所述多個OSD的負(fù)載并進(jìn)行排序,選出負(fù)載較大的第一多個OSD和負(fù)載較小的第二多個OSD ;以及 將所述第一多個OSD上的部分對象遷移至所述第二多個OSD上。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對象為固定大小。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對象的元數(shù)據(jù)存放在所述MDS上,所述對象存儲在所述多個OSD上。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,定期更新所述MDS上所述對象的操作時間。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,當(dāng)所述對象位于所述第一多個OSD內(nèi),且當(dāng)所述操作時間位于預(yù)定范圍內(nèi)時,將所述對象加入到遷移列表中。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述元數(shù)據(jù)包括所述對象的位置信息,所述客戶端通過在所述MDS中查詢所述對象的位置信息而對相應(yīng)OSD中的所述對象進(jìn)行操作,并定期更新所述MDS上所述對象的操作時間。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多個OSD對各自的網(wǎng)絡(luò)負(fù)載、磁盤負(fù)載、和內(nèi)存負(fù)載進(jìn)行加權(quán)平均后計算出所述多個對象存儲設(shè)備OSD的負(fù)載,供所述MDS定期查詢。
8.一種遷移對象的系統(tǒng),其特征在于,包括: 統(tǒng)計模塊,用于統(tǒng)計多個對象存儲設(shè)備OSD的負(fù)載,以使元數(shù)據(jù)服務(wù)器MDS定期查詢所述多個OSD的負(fù)載信息; 排序模塊,用于通過所述MDS分析所述多個OSD的負(fù)載并進(jìn)行排序,選出負(fù)載較大的第一多個OSD和負(fù)載較小的第二多個OSD ;以及 遷移模塊,用于將所述第一多個OSD上的部分對象遷移至所述第二多個OSD上。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述對象為固定大小。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述對象的元數(shù)據(jù)存放在所述MDS上,所述對象存儲在所述多個OSD上。
【文檔編號】G06F3/06GK103823639SQ201410056841
【公開日】2014年5月28日 申請日期:2014年2月19日 優(yōu)先權(quán)日:2014年2月19日
【發(fā)明者】付根希, 姜國梁, 彭成, 楊浩, 苗艷超 申請人:曙光信息產(chǎn)業(yè)(北京)有限公司