一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)方法及系統(tǒng)的制作方法【專利摘要】本發(fā)明涉及一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)方法及系統(tǒng),所述方法包括:建立四層樹型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),即一個(gè)Master節(jié)點(diǎn)、位于Master節(jié)點(diǎn)下的若干數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)、位于各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)下的若干磁盤和位于各磁盤下的若干數(shù)據(jù)分片;在每個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上設(shè)置一個(gè)多盤位管理器,用于維護(hù)當(dāng)前數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤信息,并在多盤位管理器的管理下,在磁盤中進(jìn)行數(shù)據(jù)分片的增加或刪除;通過(guò)多盤位管理器,對(duì)各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載進(jìn)行負(fù)載均衡分析,且同時(shí)對(duì)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載進(jìn)行負(fù)載均衡分析。本發(fā)明既能充分利用多盤的并行讀寫的特點(diǎn),又能夠最小化數(shù)據(jù)盤出現(xiàn)故障時(shí)對(duì)其他盤的數(shù)據(jù)的影響,同時(shí)還能夠不增加數(shù)據(jù)的冗余度,大大提高了系統(tǒng)效率?!緦@f(shuō)明】一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)方法及系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及海量數(shù)據(jù)存儲(chǔ)管理研究領(lǐng)域,特別是涉及一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)方法及系統(tǒng)?!?br>背景技術(shù):
】[0002]隨著Web2.0、移動(dòng)互聯(lián)網(wǎng)、微博等社交網(wǎng)絡(luò)應(yīng)用的高速發(fā)展,全世界每年產(chǎn)生的數(shù)據(jù)都呈指數(shù)形式增長(zhǎng)。為了維護(hù)、管理這些海量數(shù)據(jù),學(xué)術(shù)界、工業(yè)界設(shè)計(jì)開發(fā)了形形色色的海量數(shù)據(jù)管理系統(tǒng),影響力比較大的有:BigTable、HBase>Hypertable、Cassandra、MongoDB等。這些數(shù)據(jù)管理系統(tǒng)都沒有對(duì)存儲(chǔ)節(jié)點(diǎn)多磁盤的情況提供特定的處理策略和優(yōu)化方案:BigTable、HBase>Hypertable將數(shù)據(jù)存儲(chǔ)在分布式文件系統(tǒng)GFS、Hadoop上,而Cassandra、MongoDB沒有提供特定的多磁盤處理策略。若要充分利用多盤,則只能在操作系統(tǒng)級(jí)別配置相應(yīng)的多磁盤管理技術(shù)。常用的多磁盤管理技術(shù)有=RAID技術(shù)和LVM條帶化技術(shù)。[0003]RAID技術(shù)的全稱為“獨(dú)立冗余磁盤陣列”,也簡(jiǎn)稱:“磁盤陣列”,它利用多個(gè)硬盤的組合提供高效率及冗余的功能。常用的RAID級(jí)別有:RAID0、RAIDURAID3、RAID5、RAID10、RAID30、RAID50和JOBD等。RAIDO、RAID5連續(xù)地分割數(shù)據(jù)并并行地讀/寫于多個(gè)磁盤上,具有很高的數(shù)據(jù)傳輸率,但RAIDO在提高性能的同時(shí),并沒有提供數(shù)據(jù)可靠性,如果一個(gè)磁盤失效,將影響整個(gè)數(shù)據(jù)。以HBase為例:HBase的數(shù)據(jù)存儲(chǔ)最小粒度單位為Region,一般大小設(shè)置在64MB,所有的Region的數(shù)據(jù)都拆分成多個(gè)更小的存儲(chǔ)單元并行存儲(chǔ)在多個(gè)磁盤,若一個(gè)盤發(fā)生故障,相當(dāng)與整個(gè)節(jié)點(diǎn)的數(shù)據(jù)發(fā)生故障,故不可取;RAIDl是將一個(gè)兩塊硬盤所構(gòu)成RAID磁盤陣列,其容量?jī)H等于一塊硬盤的容量,因?yàn)榱硪粔K只是當(dāng)作數(shù)據(jù)“鏡像”,而現(xiàn)有的海量數(shù)據(jù)管理系統(tǒng)在邏輯層一般已經(jīng)配置了多個(gè)備份(例如:一般將備份參數(shù)設(shè)置為3),若采用RAIDl技術(shù),則實(shí)際上每份數(shù)據(jù)在集群中有6個(gè)備份,大大降低了硬盤的使用效率,也不可??;RAID3是把數(shù)據(jù)分成多個(gè)“塊”,按照一定的容錯(cuò)算法,存放在N+1個(gè)硬盤上,實(shí)際數(shù)據(jù)占用的有效空間為N個(gè)硬盤的空間總和,而第N+1個(gè)硬盤上存儲(chǔ)的數(shù)據(jù)是校驗(yàn)容錯(cuò)信息,RAID3,安全性是可以得到保障的,但是RAID3在讀寫速度方面相對(duì)較慢,尤其是當(dāng)某個(gè)盤發(fā)生故障時(shí),系統(tǒng)需要很長(zhǎng)時(shí)間地進(jìn)行數(shù)據(jù)恢復(fù),從而影響該節(jié)點(diǎn)的數(shù)據(jù)讀寫,這與海量數(shù)據(jù)存儲(chǔ)系統(tǒng)要求高吞吐率的設(shè)計(jì)理念不相符合。其他的RAID級(jí)別均與RAIDO、RAIDl、RAID3和RAID5技術(shù)類似。因此,RAID技術(shù)并不能夠在效率、磁盤空間利用率以及數(shù)據(jù)的冗余度方面達(dá)到一個(gè)很好地平衡。[0004]LVMstriping技術(shù)的原理如圖1所示:它也將一塊連續(xù)的數(shù)據(jù)分成很多小部分并把它們分別存儲(chǔ)到不同磁盤上去。這就能使多個(gè)進(jìn)程同時(shí)訪問數(shù)據(jù)的多個(gè)不同部分而不會(huì)造成磁盤沖突,而且在需要對(duì)這種數(shù)據(jù)進(jìn)行順序訪問的時(shí)候可以獲得最大程度上的I/o并行能力,從而獲得非常好的性能。但是它也存在與RAIDO相同的問題。[0005]因此,本發(fā)明提出了一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)方法及系統(tǒng),以解決上述問題?!?br/>發(fā)明內(nèi)容】[0006]本發(fā)明所要解決的技術(shù)問題是提出一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)方法及系統(tǒng),用于解決海量數(shù)據(jù)管理中對(duì)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)多磁盤處理策略存在不足的技術(shù)問題。[0007]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)方法,包括:[0008]步驟I,建立四層樹型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),從上到下依次是:一個(gè)Master節(jié)點(diǎn)、位于Master節(jié)點(diǎn)下的若干數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)、位于各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)下的若干磁盤和位于各磁盤下的若干數(shù)據(jù)分片;[0009]步驟2,在每個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上設(shè)置一個(gè)多盤位管理器,用于維護(hù)當(dāng)前數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤信息,并在多盤位管理器的管理下,在磁盤中進(jìn)行數(shù)據(jù)分片的增加或刪除;[0010]步驟3,通過(guò)多盤位管理器,對(duì)各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載進(jìn)行負(fù)載均衡分析,且同時(shí)對(duì)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載進(jìn)行負(fù)載均衡分析。[0011]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。[0012]進(jìn)一步,數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部的磁盤分為系統(tǒng)安裝盤和表數(shù)據(jù)盤,所述系統(tǒng)安裝盤用于存儲(chǔ)海量數(shù)據(jù)存儲(chǔ)中產(chǎn)生的系統(tǒng)文件、數(shù)據(jù)和日志信息,所述表數(shù)據(jù)盤用于存儲(chǔ)表數(shù)據(jù),且所述多盤位管理器管理所述表數(shù)據(jù)盤。[0013]進(jìn)一步,一個(gè)多盤位管理器維護(hù)多個(gè)磁盤管理器,且每個(gè)磁盤管理器管理一個(gè)表數(shù)據(jù)盤,用于間接實(shí)現(xiàn)多盤位管理器管理表數(shù)據(jù)盤,且磁盤管理器對(duì)表數(shù)據(jù)盤的管理包括:維護(hù)當(dāng)前表數(shù)據(jù)盤對(duì)應(yīng)的目錄信息、目錄前綴信息;收集當(dāng)前表數(shù)據(jù)盤已經(jīng)使用的百分比、總的表數(shù)據(jù)盤空間、已經(jīng)使用的表數(shù)據(jù)盤空間、非Root用戶仍然使用的表數(shù)據(jù)盤空間和當(dāng)前表數(shù)據(jù)盤所存儲(chǔ)的數(shù)據(jù)分片總數(shù)。[0014]進(jìn)一步,數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤信息包括:磁盤的狀態(tài)信息、磁盤的使用情況、磁盤的剩余空間情況和每個(gè)磁盤所存儲(chǔ)的數(shù)據(jù)分片信息。[0015]進(jìn)一步,所述在多盤位管理器的管理下,在磁盤中進(jìn)行數(shù)據(jù)分片的增加具體包括:[0016]步驟21,啟動(dòng)多盤位管理器,統(tǒng)計(jì)每個(gè)磁盤的使用情況,若有磁盤對(duì)應(yīng)的使用百分比超過(guò)預(yù)設(shè)的上限值,則將該磁盤對(duì)應(yīng)的磁盤狀態(tài)標(biāo)志位設(shè)置為false;[0017]步驟22,在所有的磁盤狀態(tài)標(biāo)志位為true的磁盤中,找到存儲(chǔ)的數(shù)據(jù)分片數(shù)量最小的磁盤所對(duì)應(yīng)的目錄,并返回該目錄,將該目錄作為新增加的數(shù)據(jù)分片的存儲(chǔ)目錄,按該存儲(chǔ)目錄存儲(chǔ)數(shù)據(jù)分片。[0018]進(jìn)一步,若給出了新增加的數(shù)據(jù)分片的大小,則在步驟22中,在滿足以下要求的磁盤中找到存儲(chǔ)的數(shù)據(jù)分片數(shù)量最小的磁盤:磁盤當(dāng)前使用量和新增加數(shù)據(jù)分片的大小之和小于預(yù)設(shè)值,且磁盤狀態(tài)標(biāo)志位為true。[0019]進(jìn)一步,所述在多盤位管理器的管理下,在磁盤中進(jìn)行數(shù)據(jù)分片的刪除具體包括:數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)首先刪除待刪除數(shù)據(jù)分片的元數(shù)據(jù)信息,然后通過(guò)多盤位管理器得到待刪除數(shù)據(jù)分片的數(shù)據(jù)文件的實(shí)際存儲(chǔ)目錄,刪除該存儲(chǔ)目錄。[0020]進(jìn)一步,通過(guò)多盤位管理器對(duì)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載進(jìn)行負(fù)載均衡分析,具體包括:保證每個(gè)磁盤剩余空間大于10GB,當(dāng)所有的磁盤的剩余可用空間均大于IOGB時(shí),通過(guò)比較每個(gè)磁盤的使用的百分比來(lái)進(jìn)行負(fù)載均衡的遷移方向判定,按確定的遷移方向在各磁盤間進(jìn)行負(fù)載遷移。[0021]進(jìn)一步,所述進(jìn)行負(fù)載均衡的遷移方向判定具體包括:[0022]步驟3A1,計(jì)算每個(gè)磁盤的剩余可用空間和使用百分比;[0023]步驟3A2,根據(jù)每個(gè)磁盤的剩余可用空間和使用百分比來(lái)計(jì)算遷移的優(yōu)先級(jí),使用百分比越高,遷移的優(yōu)先級(jí)越高;[0024]步驟3A3,將優(yōu)先級(jí)最高的磁盤上的數(shù)據(jù)分片信息向優(yōu)先級(jí)最低的磁盤遷移,將低于最高優(yōu)先級(jí)一個(gè)級(jí)別的磁盤上的數(shù)據(jù)分片信息向高于最低優(yōu)先級(jí)一個(gè)級(jí)別的有磁盤遷移,依次類推,并保證各磁盤的已使用空間低于設(shè)定的閥值。[0025]進(jìn)一步,對(duì)各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載進(jìn)行負(fù)載均衡分析,具體包括:確定遷移的目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)后,需要先向該數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)發(fā)送請(qǐng)求以及將要遷移的數(shù)據(jù)分片上的數(shù)據(jù)大小,目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)返回對(duì)應(yīng)目錄信息后,再將數(shù)據(jù)發(fā)送到目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),若目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)沒有返回目錄信息,說(shuō)明目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤空間不足,則不能往該目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移。[0026]對(duì)應(yīng)地,本發(fā)明的技術(shù)方案還包括一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)系統(tǒng),包括四層樹型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),從上到下依次是:一個(gè)Master節(jié)點(diǎn)、位于Master節(jié)點(diǎn)下的若干數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)、位于各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)下的若干磁盤和位于各磁盤下的若干數(shù)據(jù)分片;在每個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上設(shè)置有一個(gè)多盤位管理器,所述多盤位管理器用于維護(hù)當(dāng)前數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤信息和管理在磁盤中進(jìn)行數(shù)據(jù)分片增加或刪除,還用于對(duì)各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載進(jìn)行負(fù)載均衡分析,且同時(shí)對(duì)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載進(jìn)行負(fù)載均衡分析。[0027]進(jìn)一步,數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部的磁盤分為系統(tǒng)安裝盤和表數(shù)據(jù)盤,所述系統(tǒng)安裝盤用于存儲(chǔ)海量數(shù)據(jù)存儲(chǔ)中產(chǎn)生的系統(tǒng)文件、數(shù)據(jù)和日志信息,所述表數(shù)據(jù)盤用于存儲(chǔ)表數(shù)據(jù),且所述多盤位管理器用于管理所述表數(shù)據(jù)盤。[0028]進(jìn)一步,一個(gè)多盤位管理器上維護(hù)有多個(gè)磁盤管理器,且每個(gè)磁盤管理器管理一個(gè)表數(shù)據(jù)盤。[0029]本發(fā)明的有益效果是:本發(fā)明提出了一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)技術(shù),該技術(shù)既能充分利用多盤的并行讀寫的特點(diǎn),又能夠最小化數(shù)據(jù)盤出現(xiàn)故障時(shí)對(duì)其他盤的數(shù)據(jù)的影響,同時(shí)還能夠不增加數(shù)據(jù)的冗余度,本發(fā)明在Hypertable系統(tǒng)中進(jìn)行了實(shí)現(xiàn),實(shí)驗(yàn)證明能夠大大提高系統(tǒng)的效率,且具備良好的適應(yīng)性和可擴(kuò)展性?!緦@綀D】【附圖說(shuō)明】[0030]圖1為現(xiàn)有技術(shù)中采用LVMstriping的技術(shù)原理圖;[0031]圖2為本發(fā)明所述多盤位存儲(chǔ)方法的流程示意圖;[0032]圖3為本發(fā)明實(shí)施例中四層樹型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的示例圖;[0033]圖4為本發(fā)明實(shí)施例中數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的多盤位管理體系結(jié)構(gòu)的示意圖?!揪唧w實(shí)施方式】[0034]以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。[0035]如圖2所示,實(shí)施例一給出了一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)方法,包括:[0036]步驟I,建立四層樹型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),從上到下依次是:一個(gè)Master節(jié)點(diǎn)、位于Master節(jié)點(diǎn)下的若干數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)、位于各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)下的若干磁盤和位于各磁盤下的若干數(shù)據(jù)分片;[0037]步驟2,在每個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上設(shè)置一個(gè)多盤位管理器,用于維護(hù)當(dāng)前數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤信息,并在多盤位管理器的管理下,在磁盤中進(jìn)行數(shù)據(jù)分片的增加或刪除;[0038]步驟3,通過(guò)多盤位管理器,對(duì)各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載進(jìn)行負(fù)載均衡分析,且同時(shí)對(duì)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載進(jìn)行負(fù)載均衡分析。[0039]其中,所述步驟2中數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤信息包括:磁盤的狀態(tài)信息、磁盤的使用情況、磁盤的剩余空間情況和每個(gè)磁盤所存儲(chǔ)的數(shù)據(jù)分片信息。[0040]對(duì)應(yīng)的用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)系統(tǒng)即包括四層樹型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),從上到下依次是:一個(gè)Master節(jié)點(diǎn)、位于Master節(jié)點(diǎn)下的若干數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)、位于各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)下的若干磁盤和位于各磁盤下的若干數(shù)據(jù)分片;在每個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上設(shè)置有一個(gè)多盤位管理器,所述多盤位管理器用于維護(hù)當(dāng)前數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤信息和管理在磁盤中進(jìn)行數(shù)據(jù)分片增加或刪除,還用于對(duì)各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載進(jìn)行負(fù)載均衡分析,且同時(shí)對(duì)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載進(jìn)行負(fù)載均衡分析。[0041]如圖3所示,即示意了四層樹型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),包括一個(gè)Master節(jié)點(diǎn)、三個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)(數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)1、數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)2和數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)3)、每個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)下各有三個(gè)磁盤(磁盤1、磁盤2和磁盤3)、磁盤下對(duì)應(yīng)存儲(chǔ)四個(gè)數(shù)據(jù)分片(B1、B2、B3和B4)。采用這種4層樹型的數(shù)據(jù)存儲(chǔ)與分布策略,Master節(jié)點(diǎn)對(duì)全局的數(shù)據(jù)進(jìn)行調(diào)度,決定數(shù)據(jù)的副本存儲(chǔ)在哪些數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的多盤位管理器決定本數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)分片存儲(chǔ)在哪個(gè)磁盤。[0042]如圖4所示,給出了采用多盤位管理器的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的架構(gòu)圖。數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤被分成2類:第I類叫做系統(tǒng)安裝盤,用于存儲(chǔ)海量數(shù)據(jù)存儲(chǔ)的系統(tǒng)文件和數(shù)據(jù),同時(shí)用于存儲(chǔ)系統(tǒng)的日志信息;第2類叫做表數(shù)據(jù)盤,用于存儲(chǔ)表數(shù)據(jù)。每個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)維護(hù)一個(gè)多盤位管理器,該多盤位管理器維護(hù)管理了多個(gè)磁盤管理器,每個(gè)磁盤管理一個(gè)磁盤:主要負(fù)責(zé)維護(hù)當(dāng)前磁盤對(duì)應(yīng)的目錄信息和目錄前綴信息;同時(shí)負(fù)責(zé)收集當(dāng)前磁盤已經(jīng)使用的百分比、總的磁盤空間、已經(jīng)使用的磁盤空間、非Root用戶仍然使用的磁盤空間和當(dāng)前磁盤所存儲(chǔ)的數(shù)據(jù)分片總數(shù)。圖中所述其他數(shù)據(jù)為日志之類的信息,且其與數(shù)據(jù)分片、表數(shù)據(jù)盤和系統(tǒng)安裝盤均連接一個(gè)文件系統(tǒng),用于將相應(yīng)數(shù)據(jù)傳入文件系統(tǒng)中進(jìn)行保護(hù)。[0043]采用多盤位管理器,主要完成以下幾項(xiàng)功能:在磁盤中進(jìn)行數(shù)據(jù)分片的增加或刪除、刪除指定表、各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載均衡、以及數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載均衡。[0044]—、在磁盤中進(jìn)行數(shù)據(jù)分片的增加[0045]具體包括以下兩個(gè)步驟:步驟21,啟動(dòng)多盤位管理器,統(tǒng)計(jì)每個(gè)磁盤的使用情況,若有磁盤對(duì)應(yīng)的使用百分比超過(guò)預(yù)設(shè)的上限值,則將該磁盤對(duì)應(yīng)的磁盤狀態(tài)標(biāo)志位設(shè)置為false。[0046]步驟22,在所有的磁盤狀態(tài)標(biāo)志位為true的磁盤中,找到存儲(chǔ)的數(shù)據(jù)分片數(shù)量最小的磁盤所對(duì)應(yīng)的目錄,并返回該目錄,將該目錄作為新增加的數(shù)據(jù)分片的存儲(chǔ)目錄,按該存儲(chǔ)目錄存儲(chǔ)數(shù)據(jù)分片。需注意的是,若給出了新增加的數(shù)據(jù)分片的大小,則在在滿足以下要求的磁盤中找到存儲(chǔ)的數(shù)據(jù)分片數(shù)量最小的磁盤:磁盤當(dāng)前使用量和新增加數(shù)據(jù)分片的大小之和小于預(yù)設(shè)值,且磁盤狀態(tài)標(biāo)志位為true。[0047]二、在磁盤中進(jìn)行數(shù)據(jù)分片的刪除[0048]數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)首先刪除待刪除數(shù)據(jù)分片的元數(shù)據(jù)信息,然后通過(guò)多盤位管理器得到待刪除數(shù)據(jù)分片的數(shù)據(jù)文件的實(shí)際存儲(chǔ)目錄,刪除該存儲(chǔ)目錄。[0049]三、各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載均衡[0050]確定遷移的目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)后,需要先向該數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)發(fā)送請(qǐng)求以及將要遷移的數(shù)據(jù)分片上的數(shù)據(jù)大小,目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)返回對(duì)應(yīng)目錄信息后,再將數(shù)據(jù)發(fā)送到目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),若目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)沒有返回目錄信息,說(shuō)明目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤空間不足,則不能往該目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移。[0051]四、數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載均衡[0052]需保證每個(gè)磁盤剩余空間大于10GB,當(dāng)所有的磁盤的剩余可用空間均大于IOGB時(shí),通過(guò)比較每個(gè)磁盤的使用的百分比來(lái)進(jìn)行負(fù)載均衡的遷移方向判定,按確定的遷移方向在各磁盤間進(jìn)行負(fù)載遷移。[0053]所述進(jìn)行負(fù)載均衡的遷移方向判定具體包括:[0054]步驟3A1,計(jì)算每個(gè)磁盤的剩余可用空間和使用百分比;[0055]步驟3A2,根據(jù)每個(gè)磁盤的剩余可用空間和使用百分比來(lái)計(jì)算遷移的優(yōu)先級(jí),使用百分比越高,遷移的優(yōu)先級(jí)越高;[0056]步驟3A3,將優(yōu)先級(jí)最高的磁盤上的數(shù)據(jù)分片信息向優(yōu)先級(jí)最低的磁盤遷移,將低于最高優(yōu)先級(jí)一個(gè)級(jí)別的磁盤上的數(shù)據(jù)分片信息向高于最低優(yōu)先級(jí)一個(gè)級(jí)別的有磁盤遷移,依次類推,并保證各磁盤的已使用空間低于設(shè)定的閥值。[0057]對(duì)于步驟3A3,例如系統(tǒng)中有6個(gè)盤,磁盤利用率如下表所示:[0058]【權(quán)利要求】1.一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)方法,其特征在于,包括:步驟1,建立四層樹型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),從上到下依次是:一個(gè)Master節(jié)點(diǎn)、位于Master節(jié)點(diǎn)下的若干數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)、位于各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)下的若干磁盤和位于各磁盤下的若干數(shù)據(jù)分片;步驟2,在每個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上設(shè)置一個(gè)多盤位管理器,用于維護(hù)當(dāng)前數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤信息,并在多盤位管理器的管理下,在磁盤中進(jìn)行數(shù)據(jù)分片的增加或刪除;步驟3,通過(guò)多盤位管理器,對(duì)各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載進(jìn)行負(fù)載均衡分析,且同時(shí)對(duì)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載進(jìn)行負(fù)載均衡分析。2.根據(jù)權(quán)利要求1所述的多盤位存儲(chǔ)方法,其特征在于,數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部的磁盤分為系統(tǒng)安裝盤和表數(shù)據(jù)盤,所述系統(tǒng)安裝盤用于存儲(chǔ)海量數(shù)據(jù)存儲(chǔ)中產(chǎn)生的系統(tǒng)文件、數(shù)據(jù)和日志信息,所述表數(shù)據(jù)盤用于存儲(chǔ)表數(shù)據(jù),且所述多盤位管理器管理所述表數(shù)據(jù)盤。3.根據(jù)權(quán)利要求2所述的多盤位存儲(chǔ)方法,其特征在于,一個(gè)多盤位管理器維護(hù)多個(gè)磁盤管理器,且每個(gè)磁盤管理器管理一個(gè)表數(shù)據(jù)盤,用于間接實(shí)現(xiàn)多盤位管理器管理表數(shù)據(jù)盤,且磁盤管理器對(duì)表數(shù)據(jù)盤的管理包括:維護(hù)當(dāng)前表數(shù)據(jù)盤對(duì)應(yīng)的目錄信息、目錄前綴信息;收集當(dāng)前表數(shù)據(jù)盤已經(jīng)使用的百分比、總的表數(shù)據(jù)盤空間、已經(jīng)使用的表數(shù)據(jù)盤空間、非Root用戶仍然使用的表數(shù)據(jù)盤空間和當(dāng)前表數(shù)據(jù)盤所存儲(chǔ)的數(shù)據(jù)分片總數(shù)。4.根據(jù)權(quán)利要求1所述的多盤位存儲(chǔ)方法,其特征在于,所述在多盤位管理器的管理下,在磁盤中進(jìn)行數(shù)據(jù)分片的增加具體包括:步驟21,啟動(dòng)多盤位管理器,統(tǒng)計(jì)每個(gè)磁盤的使用情況,若有磁盤對(duì)應(yīng)的使用百分比超過(guò)預(yù)設(shè)的上限值,則將該磁盤對(duì)應(yīng)的磁盤狀態(tài)標(biāo)志位設(shè)置為false;步驟22,在所有的磁盤狀態(tài)標(biāo)志位為true的磁盤中,找到存儲(chǔ)的數(shù)據(jù)分片數(shù)量最小的磁盤所對(duì)應(yīng)的目錄,并返回該目錄,將該目錄作為新增加的數(shù)據(jù)分片的存儲(chǔ)目錄,按該存儲(chǔ)目錄存儲(chǔ)數(shù)據(jù)分片。5.根據(jù)權(quán)利要求1所述的多盤位存儲(chǔ)方法,其特征在于,所述在多盤位管理器的管理下,在磁盤中進(jìn)行數(shù)據(jù)分片的刪除具體包括:數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)首先刪除待刪除數(shù)據(jù)分片的元數(shù)據(jù)信息,然后通過(guò)多盤位管理器得到待刪除數(shù)據(jù)分片的數(shù)據(jù)文件的實(shí)際存儲(chǔ)目錄,刪除該存儲(chǔ)目錄。6.根據(jù)權(quán)利要求1所述的多盤位存儲(chǔ)方法,其特征在于,通過(guò)多盤位管理器對(duì)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載進(jìn)行負(fù)載均衡分析,具體包括:保證每個(gè)磁盤剩余空間大于IOGB,當(dāng)所有的磁盤的剩余可用空間均大于IOGB時(shí),通過(guò)比較每個(gè)磁盤的使用的百分比來(lái)進(jìn)行負(fù)載均衡的遷移方向判定,按確定的遷移方向在各磁盤間進(jìn)行負(fù)載遷移。7.根據(jù)權(quán)利要求6所述的多盤位管理方法,其特征在于,所述進(jìn)行負(fù)載均衡的遷移方向判定具體包括:步驟3A1,計(jì)算每個(gè)磁盤的剩余可用空間和使用百分比;步驟3A2,根據(jù)每個(gè)磁盤的剩余可用空間和使用百分比來(lái)計(jì)算遷移的優(yōu)先級(jí),使用百分比越高,遷移的優(yōu)先級(jí)越高;步驟3A3,將優(yōu)先級(jí)最高的磁盤上的數(shù)據(jù)分片信息向優(yōu)先級(jí)最低的磁盤遷移,將低于最高優(yōu)先級(jí)一個(gè)級(jí)別的磁盤上的數(shù)據(jù)分片信息向高于最低優(yōu)先級(jí)一個(gè)級(jí)別的有磁盤遷移,依次類推,并保證各磁盤的已使用空間低于設(shè)定的閥值。8.根據(jù)權(quán)利要求1所述的多盤位存儲(chǔ)方法,其特征在于,對(duì)各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載進(jìn)行負(fù)載均衡分析,具體包括:確定遷移的目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)后,需要先向該數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)發(fā)送請(qǐng)求以及將要遷移的數(shù)據(jù)分片上的數(shù)據(jù)大小,目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)返回對(duì)應(yīng)目錄信息后,再將數(shù)據(jù)發(fā)送到目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),若目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)沒有返回目錄信息,說(shuō)明目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤空間不足,則不能往該目標(biāo)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移。9.一種用于海量數(shù)據(jù)管理的多盤位存儲(chǔ)系統(tǒng),其特征在于,包括四層樹型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),從上到下依次是:一個(gè)Master節(jié)點(diǎn)、位于Master節(jié)點(diǎn)下的若干數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)、位于各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)下的若干磁盤和位于各磁盤下的若干數(shù)據(jù)分片;在每個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上設(shè)置有一個(gè)多盤位管理器,所述多盤位管理器用于維護(hù)當(dāng)前數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤信息和管理在磁盤中進(jìn)行數(shù)據(jù)分片增加或刪除,還用于對(duì)各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載進(jìn)行負(fù)載均衡分析,且同時(shí)對(duì)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部各磁盤間的負(fù)載進(jìn)行負(fù)載均衡分析。10.根據(jù)權(quán)利要求9所述的多盤位存儲(chǔ)系統(tǒng),其特征在于,數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)內(nèi)部的磁盤分為系統(tǒng)安裝盤和表數(shù)據(jù)盤,所述系統(tǒng)安裝盤用于存儲(chǔ)海量數(shù)據(jù)存儲(chǔ)中產(chǎn)生的系統(tǒng)文件、數(shù)據(jù)和日志信息,所述表數(shù)據(jù)盤用于存儲(chǔ)表數(shù)據(jù),一個(gè)多盤位管理器上維護(hù)有多個(gè)磁盤管理器,且每個(gè)磁盤管理器管理一個(gè)表數(shù)據(jù)盤?!疚臋n編號(hào)】G06F9/50GK103761059SQ201410035889【公開日】2014年4月30日申請(qǐng)日期:2014年1月24日優(yōu)先權(quán)日:2014年1月24日【發(fā)明者】王海平,王樹鵬,張永錚,吳廣君,周曉陽(yáng)申請(qǐng)人:中國(guó)科學(xué)院信息工程研究所