欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

集群系統(tǒng)的文件定位、存儲(chǔ)方法和裝置與流程

文檔序號(hào):12484947閱讀:601來(lái)源:國(guó)知局
集群系統(tǒng)的文件定位、存儲(chǔ)方法和裝置與流程

本發(fā)明涉及集群系統(tǒng)文件定位領(lǐng)域,具體而言,涉及一種集群系統(tǒng)的文件定位、存儲(chǔ)方法和裝置。



背景技術(shù):

目前常見的集群文件索引定位方法是通過(guò)在集群中布置主數(shù)據(jù)服務(wù)器來(lái)實(shí)現(xiàn)的,以GFS(全局文件系統(tǒng)Global File System,簡(jiǎn)稱GFS)為例進(jìn)行說(shuō)明:GFS文件系統(tǒng)由客戶端、主服務(wù)器和多臺(tái)數(shù)據(jù)塊服務(wù)器組成,主服務(wù)器重放元數(shù)據(jù)服務(wù)器的角色,文件的索引定位信息保存在主服務(wù)器上??蛻舳嗽诙ㄎ晃募r(shí)首先向主服務(wù)器發(fā)送請(qǐng)求,獲取文件信息和文件所在的數(shù)據(jù)塊服務(wù)器位置后,再向數(shù)據(jù)塊服務(wù)器發(fā)出請(qǐng)求訪問(wèn)文件數(shù)據(jù)。這種方法的缺點(diǎn)是文件索引依賴于主服務(wù)器,當(dāng)主服務(wù)器故障時(shí),整個(gè)集群的文件檢索定位都無(wú)法執(zhí)行。其他集群文件系統(tǒng)例如lustre(一種平行分布式文件系統(tǒng)),雖然在集群中設(shè)置了2個(gè)主數(shù)據(jù)服務(wù)器來(lái)降低單個(gè)主數(shù)據(jù)服務(wù)器故障對(duì)整個(gè)集群的影響,但是仍然無(wú)法解決2個(gè)主服務(wù)器均故障時(shí)整個(gè)集群無(wú)法進(jìn)行定位工作的問(wèn)題。

針對(duì)上述現(xiàn)有技術(shù)中主服務(wù)器故障導(dǎo)致集群無(wú)法定位的問(wèn)題,目前尚未提出有效的解決方案。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供了一種集群系統(tǒng)的文件定位、存儲(chǔ)方法和裝置,以至少解決現(xiàn)有技術(shù)中主服務(wù)器故障導(dǎo)致集群無(wú)法定位的技術(shù)問(wèn)題。

根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種集群系統(tǒng)的文件定位方法,所述集群系統(tǒng)包括至少兩個(gè)對(duì)等分布的集群節(jié)點(diǎn),每個(gè)所述集群節(jié)點(diǎn)具有相應(yīng)的存儲(chǔ)地址映射取值區(qū)間,所述集群節(jié)點(diǎn)之間互相通信連接,所述方法包括:接收客戶終端發(fā)送的定位目標(biāo)文件指令,所述定位目標(biāo)文件指令中攜帶有待定位目標(biāo)文件的路徑信息;根據(jù)所述路徑信息,計(jì)算所述待定位目標(biāo)文件的特征值;根據(jù)所述特征值確定所述待定位目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間;根據(jù)所述存儲(chǔ)地址映射的取值區(qū)間確定所述待定位目標(biāo)文件所在的第一集群節(jié)點(diǎn);判斷所述第一集群節(jié)點(diǎn)是否正常通信;在判 斷出所述第一集群節(jié)點(diǎn)正常通信的情況下,確定所述待定位目標(biāo)文件存儲(chǔ)在所述第一集群節(jié)點(diǎn)上。

進(jìn)一步地,判斷出所述第一集群節(jié)點(diǎn)不能正常通信的情況下,所述方法還包括:更新所述集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間;對(duì)所述特征值進(jìn)行取整計(jì)算;獲取經(jīng)過(guò)取整計(jì)算后所述特征值所處的取值區(qū)間;確定所述待定位目標(biāo)文件存儲(chǔ)在第二集群節(jié)點(diǎn)上,其中,所述第二集群節(jié)點(diǎn)為取整計(jì)算后所述特征值所處的取值區(qū)間對(duì)應(yīng)的節(jié)點(diǎn)。

進(jìn)一步地,對(duì)所述特征值進(jìn)行取整計(jì)算包括:計(jì)算所述特征值和所述第一集群節(jié)點(diǎn)的取值區(qū)間起始值之差,得到差值;計(jì)算所述差值除以第一集群節(jié)點(diǎn)的區(qū)間長(zhǎng)度,得到中間結(jié)果,其中,第一集群節(jié)點(diǎn)的區(qū)間長(zhǎng)度為目標(biāo)最大值與目標(biāo)最小值之差,所述目標(biāo)最大值為所述第一集群節(jié)點(diǎn)的取值區(qū)間的最大值,所述目標(biāo)最小值為所述第一集群節(jié)點(diǎn)的取值區(qū)間的最小值;計(jì)算所述中間結(jié)果乘以所述集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的數(shù)量,得到目標(biāo)結(jié)果;向上取整所述目標(biāo)結(jié)果得到取整計(jì)算后的所述特征值。

進(jìn)一步地,更新所述集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間包括:根據(jù)所述集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的數(shù)量將所述第一集群節(jié)點(diǎn)的取值區(qū)間等分,得到多個(gè)取值子區(qū)間;將所述多個(gè)取值子區(qū)間一一對(duì)應(yīng)地分配給所述集群節(jié)點(diǎn)中正常通信的節(jié)點(diǎn)。

進(jìn)一步地,根據(jù)所述路徑信息,計(jì)算所述待定位目標(biāo)文件的特征值包括:將所述路徑信息轉(zhuǎn)換成固定長(zhǎng)度;對(duì)所述固定長(zhǎng)度取余計(jì)算,得到所述特征值。

根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種集群系統(tǒng)的文件定位裝置,包括:第一接收單元,用于接收客戶終端發(fā)送的定位目標(biāo)文件指令,所述定位目標(biāo)文件指令中攜帶有待定位目標(biāo)文件的路徑信息;第一計(jì)算單元,用于根據(jù)所述路徑信息,計(jì)算所述待定位目標(biāo)文件的特征值;第一確定單元,用于根據(jù)所述特征值確定所述待定位目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間;第二確定單元,用于根據(jù)所述存儲(chǔ)地址映射的取值區(qū)間確定所述待定位目標(biāo)文件所在的第一集群節(jié)點(diǎn);第一判斷單元,用于判斷所述第一集群節(jié)點(diǎn)是否正常通信;第三確定單元,用于在判斷出所述第一集群節(jié)點(diǎn)正常通信的情況下,確定所述待定位目標(biāo)文件存儲(chǔ)在所述第一集群節(jié)點(diǎn)上。

進(jìn)一步地,所述裝置包括:第一更新單元,用于更新所述集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間;第二計(jì)算單元,用于對(duì)所述特征值進(jìn)行取整計(jì)算;第一獲取單元,用于獲取經(jīng)過(guò)取整計(jì)算后所述特征值所處的取值區(qū)間;第四確定單元,用于確定所述待定位目標(biāo)文件存儲(chǔ)在第二集群節(jié)點(diǎn)上,其中,所述第二集群節(jié)點(diǎn)為取整計(jì)算后所述特征值所處的取值區(qū)間對(duì)應(yīng)的節(jié)點(diǎn)。

進(jìn)一步地,所述第二計(jì)算單元包括:第一計(jì)算模塊,用于計(jì)算所述特征值和所述第一集群節(jié)點(diǎn)的取值區(qū)間起始值之差,得到差值;第二計(jì)算模塊,用于計(jì)算所述差值除以第一集群節(jié)點(diǎn)的區(qū)間長(zhǎng)度,得到中間結(jié)果,其中,第一集群節(jié)點(diǎn)的區(qū)間長(zhǎng)度為目標(biāo)最大值與目標(biāo)最小值之差,所述目標(biāo)最大值為所述第一集群節(jié)點(diǎn)的取值區(qū)間的最大值,所述目標(biāo)最小值為所述第一集群節(jié)點(diǎn)的取值區(qū)間的最小值;第三計(jì)算模塊,用于計(jì)算所述中間結(jié)果乘以所述集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的數(shù)量,得到目標(biāo)結(jié)果;第四計(jì)算模塊,用于向上取整所述目標(biāo)結(jié)果得到取整計(jì)算后的所述特征值。

進(jìn)一步地,所述更新單元包括:第五計(jì)算模塊,用于根據(jù)所述集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的數(shù)量將所述第一集群節(jié)點(diǎn)的取值區(qū)間等分,得到多個(gè)取值子區(qū)間;分配模塊,用于將所述多個(gè)取值子區(qū)間一一對(duì)應(yīng)地分配給所述集群節(jié)點(diǎn)中正常通信的節(jié)點(diǎn)。

進(jìn)一步地,所述第一計(jì)算單元包括:轉(zhuǎn)換模塊,用于將所述路徑信息轉(zhuǎn)換成固定長(zhǎng)度;計(jì)算模塊,用于對(duì)所述固定長(zhǎng)度取余計(jì)算,得到所述特征值。

根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種集群系統(tǒng)的文件存儲(chǔ)方法,所述集群系統(tǒng)包括至少兩個(gè)對(duì)等分布的集群節(jié)點(diǎn),每個(gè)所述集群節(jié)點(diǎn)具有相應(yīng)的存儲(chǔ)地址映射的取值區(qū)間,所述集群節(jié)點(diǎn)之間互相通信連接,所述方法包括:接收客戶終端發(fā)送的存儲(chǔ)目標(biāo)文件指令,所述存儲(chǔ)目標(biāo)文件指令中攜帶有待存儲(chǔ)目標(biāo)文件的路徑信息;根據(jù)所述路徑信息,計(jì)算所述待存儲(chǔ)目標(biāo)文件的特征值;根據(jù)所述特征值確定所述待存儲(chǔ)目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間;根據(jù)所述存儲(chǔ)地址映射的取值區(qū)間確定所述待存儲(chǔ)目標(biāo)文件所存儲(chǔ)的第一集群節(jié)點(diǎn);判斷所述第一集群節(jié)點(diǎn)是否正常通信;在判斷出所述第一集群節(jié)點(diǎn)正常通信的情況下,存儲(chǔ)所述待存儲(chǔ)目標(biāo)文件于所述第一集群節(jié)點(diǎn)上。

進(jìn)一步地,在判斷出所述第一集群節(jié)點(diǎn)不能正常通信的情況下,所述方法還包括:更新所述集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間;對(duì)所述特征值進(jìn)行取整計(jì)算;獲取經(jīng)過(guò)取整計(jì)算后所述特征值所處的取值區(qū)間;將所述待存儲(chǔ)目標(biāo)文件存儲(chǔ)在第二集群節(jié)點(diǎn)上,其中,所述第二集群節(jié)點(diǎn)為取整計(jì)算后所述特征值所處的取值區(qū)間對(duì)應(yīng)的節(jié)點(diǎn)。

根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種集群系統(tǒng)的文件存儲(chǔ)裝置,包括:第二接收單元,用于接收客戶終端發(fā)送的存儲(chǔ)目標(biāo)文件指令,所述存儲(chǔ)目標(biāo)文件指令中攜帶有待存儲(chǔ)目標(biāo)文件的路徑信息;第三計(jì)算單元,用于根據(jù)所述路徑信息,計(jì)算所述待存儲(chǔ)目標(biāo)文件的特征值;第五確定單元,用于根據(jù)所述特征值確定所述待存儲(chǔ)目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間;第六確定單元,用于根據(jù)所述存儲(chǔ)地址映射的取值區(qū)間確定所述待存儲(chǔ)目標(biāo)文件所存儲(chǔ)的第一集群節(jié)點(diǎn);第二判斷單元,用于判斷所述第一集群節(jié)點(diǎn)是否正常通信;第一存儲(chǔ)單元,在判斷出所述第一集群節(jié)點(diǎn)正 常通信的情況下,存儲(chǔ)所述待存儲(chǔ)目標(biāo)文件于所述第一集群節(jié)點(diǎn)上。

進(jìn)一步地,所述裝置包括:第二更新單元,用于更新所述集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間;第四計(jì)算單元,用于對(duì)所述特征值進(jìn)行取整計(jì)算;第二獲取單元,用于獲取經(jīng)過(guò)取整計(jì)算后所述特征值所處的取值區(qū)間;第二存儲(chǔ)單元,用于將所述待存儲(chǔ)目標(biāo)文件存儲(chǔ)在第二集群節(jié)點(diǎn)上,其中,所述第二集群節(jié)點(diǎn)為取整計(jì)算后所述特征值所處的取值區(qū)間對(duì)應(yīng)的節(jié)點(diǎn)。

在本發(fā)明實(shí)施例中,采用接收客戶終端發(fā)送的定位目標(biāo)文件指令,定位目標(biāo)文件指令中攜帶有待定位目標(biāo)文件的路徑信息;根據(jù)路徑信息,計(jì)算待定位目標(biāo)文件的特征值;根據(jù)特征值確定待定位目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間;根據(jù)存儲(chǔ)地址映射的取值區(qū)間確定待定位目標(biāo)文件所在的第一集群節(jié)點(diǎn);判斷第一集群節(jié)點(diǎn)是否正常通信;在判斷出第一集群節(jié)點(diǎn)正常通信的情況下,確定待定位目標(biāo)文件存儲(chǔ)在第一集群節(jié)點(diǎn)上。通過(guò)接收來(lái)自客戶終端的定位目標(biāo)文件的指令,其中,在定位目標(biāo)文件的指令中帶有待定位目標(biāo)文件的路徑信息,根據(jù)路徑信息計(jì)算待定位目標(biāo)文件的特征值,然后將待定位目標(biāo)文件的特征值與集群系統(tǒng)中各集群節(jié)點(diǎn)的取值區(qū)間進(jìn)行比較,確定出待定位目標(biāo)文件的特征值所在的存儲(chǔ)地址映射的取值區(qū)間,然后根據(jù)該取值區(qū)間對(duì)應(yīng)的第一集群節(jié)點(diǎn)的通信狀態(tài)來(lái)確定待定位目標(biāo)文件的位置,當(dāng)判斷出第一集群節(jié)點(diǎn)能夠正常通信的情況下,就可以確定出待定位目標(biāo)文件存儲(chǔ)于第一集群節(jié)點(diǎn)上,此種根據(jù)待定位目標(biāo)文件特征值進(jìn)行文件定位的方式,不涉及集群系統(tǒng)中主從服務(wù)器的布置。這樣就解決了現(xiàn)有技術(shù)中主服務(wù)器故障導(dǎo)致集群無(wú)法定位的問(wèn)題,達(dá)到了提高集群系統(tǒng)可用性的目的,從而實(shí)現(xiàn)了準(zhǔn)確確定文件所處位置的技術(shù)效果。

附圖說(shuō)明

此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:

圖1是根據(jù)本發(fā)明實(shí)施例可選的一種集群系統(tǒng)的文件定位方法的流程圖;

圖2是根據(jù)本發(fā)明實(shí)施例可選的另一種集群系統(tǒng)的文件定位方法的流程圖;

圖3是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位方法中對(duì)特征值進(jìn)行取整計(jì)算的流程圖;

圖4是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位方法中更新集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間的流程圖;

圖5是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位方法中計(jì)算待定位目標(biāo)文件特征值的流程圖;

圖6是根據(jù)本發(fā)明實(shí)施例可選的另一種集群系統(tǒng)的文件定位方法的流程圖;

圖7是根據(jù)本發(fā)明實(shí)施例可選的一種集群系統(tǒng)的文件定位裝置的結(jié)構(gòu)框圖;

圖8是根據(jù)本發(fā)明實(shí)施例可選的另一種集群系統(tǒng)的文件定位裝置的結(jié)構(gòu)框圖;

圖9是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位裝置中第二計(jì)算單元的結(jié)構(gòu)框圖;

圖10是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位裝置中更新單元的結(jié)構(gòu)框圖;

圖11是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位裝置中第一計(jì)算單元的結(jié)構(gòu)框圖;

圖12是根據(jù)本發(fā)明實(shí)施例可選的一種集群系統(tǒng)的文件存儲(chǔ)方法的流程圖;以及

圖13是根據(jù)本發(fā)明實(shí)施例可選的一種集群系統(tǒng)的文件存儲(chǔ)裝置的結(jié)構(gòu)框圖。

具體實(shí)施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。

需要說(shuō)明的是,本發(fā)明的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。

根據(jù)本發(fā)明實(shí)施例,提供了一種集群系統(tǒng)的文件定位方法實(shí)施例,需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

圖1是根據(jù)本發(fā)明實(shí)施例可選的一種集群系統(tǒng)的文件定位方法的流程圖,如圖1 所示,該方法包括如下步驟S102至步驟S112:

步驟S102,接收客戶終端發(fā)送的定位目標(biāo)文件指令,定位目標(biāo)文件指令中攜帶有待定位目標(biāo)文件的路徑信息。

步驟S104,根據(jù)路徑信息,計(jì)算待定位目標(biāo)文件的特征值,具體地,可以將待定位目標(biāo)文件的路徑信息通過(guò)哈希算法轉(zhuǎn)換成固定長(zhǎng)度,在本發(fā)明實(shí)施例中,固定長(zhǎng)度為十六進(jìn)制數(shù)值,可以以0xffffffff為除數(shù),將固定長(zhǎng)度的十六進(jìn)制數(shù)值除以0xffffffff,得到余數(shù),該余數(shù)作為待定位目標(biāo)文件的特征值,其中,選用的哈希算法為JS算法。

步驟S106,根據(jù)特征值確定待定位目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間,具體地,集群系統(tǒng)中包含多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)代表集群系統(tǒng)中的每一臺(tái)服務(wù)器,將集群系統(tǒng)內(nèi)每個(gè)節(jié)點(diǎn)進(jìn)行編號(hào),并將系統(tǒng)使用的特征值取值范圍均分,為集群系統(tǒng)中每個(gè)節(jié)點(diǎn)依次分配取值區(qū)間,然后將待定位目標(biāo)文件的特征值映射到集群系統(tǒng)中每個(gè)集群節(jié)點(diǎn)的特征值取值范圍內(nèi),確定出待定位目標(biāo)文件所處的取值區(qū)間。

步驟S108,根據(jù)存儲(chǔ)地址映射的取值區(qū)間確定待定位目標(biāo)文件所在的第一集群節(jié)點(diǎn)。

步驟S110,判斷第一集群節(jié)點(diǎn)是否正常通信,具體地,在本發(fā)明實(shí)施例中,集群系統(tǒng)可以根據(jù)節(jié)點(diǎn)間的心跳握手情況得到各節(jié)點(diǎn)的接入狀態(tài),從而判斷集群系統(tǒng)中節(jié)點(diǎn)是否能夠正常通信,當(dāng)?shù)谝患汗?jié)點(diǎn)可以正常通信,可以確定第一集群節(jié)點(diǎn)健康,當(dāng)?shù)谝患汗?jié)點(diǎn)不能正常通信,可以確定第一集群節(jié)點(diǎn)發(fā)生了故障。

步驟S112,在判斷出第一集群節(jié)點(diǎn)正常通信的情況下,確定待定位目標(biāo)文件存儲(chǔ)在第一集群節(jié)點(diǎn)上。

本發(fā)明實(shí)施例所提供的集群系統(tǒng)的文件定位方法,通過(guò)接收來(lái)自客戶終端的定位目標(biāo)文件的指令,其中,在定位目標(biāo)文件的指令中帶有待定位目標(biāo)文件的路徑信息,根據(jù)路徑信息計(jì)算待定位目標(biāo)文件的特征值,然后將待定位目標(biāo)文件的特征值與集群系統(tǒng)中各集群節(jié)點(diǎn)的取值區(qū)間進(jìn)行比較,確定出待定位目標(biāo)文件的特征值所在的存儲(chǔ)地址映射的取值區(qū)間,然后根據(jù)該取值區(qū)間對(duì)應(yīng)的第一集群節(jié)點(diǎn)的通信狀態(tài)來(lái)確定待定位目標(biāo)文件的位置,當(dāng)判斷出第一集群節(jié)點(diǎn)能夠正常通信的情況下,就可以確定出待定位目標(biāo)文件存儲(chǔ)于第一集群節(jié)點(diǎn)上,此種根據(jù)待定位目標(biāo)文件特征值進(jìn)行文件定位的方式,不涉及集群系統(tǒng)中主從服務(wù)器的布置。這樣就解決了現(xiàn)有技術(shù)中主服務(wù)器故障導(dǎo)致集群無(wú)法定位的問(wèn)題,達(dá)到了提高集群系統(tǒng)可用性的目的,從而實(shí)現(xiàn)了準(zhǔn)確確定文件所處位置的技術(shù)效果。

圖2是根據(jù)本發(fā)明實(shí)施例可選的另一種集群系統(tǒng)的文件定位方法的流程圖,如圖 2所示,該方法包括如下步驟S202至步驟S216:

步驟S202:接收客戶終端發(fā)送的定位目標(biāo)文件指令,定位目標(biāo)文件指令中攜帶有待定位目標(biāo)文件的路徑信息。

步驟S204:根據(jù)路徑信息,計(jì)算待定位目標(biāo)文件的特征值,具體地,可以將待定位目標(biāo)文件的路徑信息通過(guò)哈希算法轉(zhuǎn)換成固定長(zhǎng)度,在本發(fā)明實(shí)施例中,固定長(zhǎng)度為十六進(jìn)制數(shù)值,可以以0xffffffff為除數(shù),將固定長(zhǎng)度的十六進(jìn)制數(shù)值除以0xffffffff,得到余數(shù),該余數(shù)作為待定位目標(biāo)文件的特征值,其中,選用的哈希算法為JS算法。

步驟S206:根據(jù)特征值確定待定位目標(biāo)文件所在的存儲(chǔ)地址映射取值區(qū)間,具體地,集群系統(tǒng)中包含多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)代表集群系統(tǒng)中的每一臺(tái)服務(wù)器,將集群系統(tǒng)內(nèi)每個(gè)節(jié)點(diǎn)進(jìn)行編號(hào),并將系統(tǒng)使用的特征值取值范圍均分,為集群系統(tǒng)中每個(gè)節(jié)點(diǎn)依次分配取值區(qū)間,然后將待定位目標(biāo)文件的特征值映射到集群系統(tǒng)中每個(gè)集群節(jié)點(diǎn)的特征值取值范圍內(nèi),確定出待定位目標(biāo)文件所處的取值區(qū)間。

步驟S208:根據(jù)存儲(chǔ)地址映射的取值區(qū)間確定待定位目標(biāo)文件所在的第一集群節(jié)點(diǎn)。

步驟S210:在判斷出第一集群節(jié)點(diǎn)不能正常通信的情況下,更新集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間。

步驟S212:對(duì)特征值進(jìn)行取整計(jì)算。

步驟S214:獲取經(jīng)過(guò)取整計(jì)算后特征值所處的取值區(qū)間。

步驟S216:確定待定位目標(biāo)文件存儲(chǔ)在第二集群節(jié)點(diǎn)上,其中,第二集群節(jié)點(diǎn)為取整計(jì)算后特征值所處的取值區(qū)間對(duì)應(yīng)的節(jié)點(diǎn)。

具體地,利用節(jié)點(diǎn)間心跳握手判斷出第一集群節(jié)點(diǎn)不能正常通信,即確定出第一集群節(jié)點(diǎn)出現(xiàn)故障,處于離線狀態(tài)。此種情況,需要重新獲取剩余正常通信的集群節(jié)點(diǎn)的數(shù)量,其中,正常通信的集群節(jié)點(diǎn)表示健康的集群節(jié)點(diǎn),此時(shí)健康的集群節(jié)點(diǎn)處于在線狀態(tài)。將第一集群節(jié)點(diǎn)的取值區(qū)間等分,得到多個(gè)取值子區(qū)間,多個(gè)取值子區(qū)間的個(gè)數(shù)等于剩余正常通信的集群節(jié)點(diǎn)的數(shù)量,為剩余正常通信的集群節(jié)點(diǎn)重新分配取值區(qū)間,將多個(gè)取值子區(qū)間一一對(duì)應(yīng)分配給剩余正常通信的集群節(jié)點(diǎn),然后計(jì)算處理待定位目標(biāo)文件的特征值,得到經(jīng)過(guò)計(jì)算處理之后的特征值所處的取值區(qū)間,與特征值所處的取值區(qū)間對(duì)應(yīng)的第二集群節(jié)點(diǎn)即為待定位目標(biāo)文件所在的集群節(jié)點(diǎn)。

圖3是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位方法中對(duì)特征值進(jìn)行取整計(jì)算的流程圖,如圖3所示,該方法包括如下步驟S302至步驟S308:

步驟S302:計(jì)算特征值和第一集群節(jié)點(diǎn)的取值區(qū)間起始值之差,得到差值。

步驟S304:計(jì)算差值除以第一集群節(jié)點(diǎn)的區(qū)間長(zhǎng)度,得到中間結(jié)果,其中,第一集群節(jié)點(diǎn)的區(qū)間長(zhǎng)度為目標(biāo)最大值與目標(biāo)最小值之差,目標(biāo)最大值為第一集群節(jié)點(diǎn)的取值區(qū)間的最大值,目標(biāo)最小值為第一集群節(jié)點(diǎn)的取值區(qū)間的最小值。

步驟S306:計(jì)算中間結(jié)果乘以集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的數(shù)量,得到目標(biāo)結(jié)果。

步驟S308:向上取整目標(biāo)結(jié)果得到取整計(jì)算后的特征值。

具體地,當(dāng)判斷第一集群節(jié)點(diǎn)不能正常通信,需要對(duì)待定位目標(biāo)文件的特征值進(jìn)行進(jìn)一步的取整計(jì)算處理,首先將待定位目標(biāo)文件的特征值減去第一集群節(jié)點(diǎn)的取值區(qū)間起始值,得到差值,將差值除以第一集群節(jié)點(diǎn)的區(qū)間長(zhǎng)度,得到中間結(jié)果,再將中間結(jié)果乘以集群節(jié)點(diǎn)中剩余的能夠正常通信的節(jié)點(diǎn)的數(shù)量,得到目標(biāo)結(jié)果,最后將目標(biāo)結(jié)果進(jìn)行向上取整處理,最后得到計(jì)算處理之后的特征值。經(jīng)過(guò)取整計(jì)算之后待定位目標(biāo)文件的特征值對(duì)應(yīng)集群節(jié)點(diǎn)中剩余能夠正常通信的節(jié)點(diǎn)的一個(gè)編號(hào),編號(hào)所在的節(jié)點(diǎn)即為第二集群節(jié)點(diǎn)。采用本發(fā)明實(shí)施例所提供的特征值的計(jì)算方式,完成對(duì)文件的索引定位的工作主要是通過(guò)計(jì)算而非查詢,由于定位待定位目標(biāo)文件是基于計(jì)算而非查詢,提高了目標(biāo)文件定位的處理速度。

圖4是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位方法中更新集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間的流程圖,如圖4所示,該方法包括如下步驟S402至步驟S404:

步驟S402:根據(jù)集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的數(shù)量將第一集群節(jié)點(diǎn)的取值區(qū)間等分,得到多個(gè)取值子區(qū)間。

步驟S404:將多個(gè)取值子區(qū)間一一對(duì)應(yīng)地分配給集群節(jié)點(diǎn)中正常通信的節(jié)點(diǎn)。

具體地,當(dāng)判斷出第一集群節(jié)點(diǎn)不能正常通信,需要更新集群節(jié)點(diǎn)中剩余正常通信節(jié)點(diǎn)的取值區(qū)間,將第一集群節(jié)點(diǎn)的取值區(qū)間按照集群節(jié)點(diǎn)中剩余正常通信節(jié)點(diǎn)的數(shù)量等分,得到多個(gè)子區(qū)間的個(gè)數(shù)等于集群節(jié)點(diǎn)中剩余正常通信節(jié)點(diǎn)的數(shù)量,將多個(gè)取值子區(qū)間一一對(duì)應(yīng)分配給集群節(jié)點(diǎn)中剩余正常通信的節(jié)點(diǎn),從而避免了單個(gè)或者幾個(gè)集群節(jié)點(diǎn)故障導(dǎo)致整個(gè)集群系統(tǒng)不可用的問(wèn)題。

圖5是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位方法中計(jì)算待定位目標(biāo)文件特征值的流程圖,如圖5所示,該方法包括如下步驟S502至步驟S504:

步驟S502:將路徑信息轉(zhuǎn)換成固定長(zhǎng)度。

步驟S504:對(duì)固定長(zhǎng)度取余計(jì)算,得到特征值。

具體地,為了確定待定位目標(biāo)文件的定位位置,需要計(jì)算待定位目標(biāo)文件特征值,特征值計(jì)算可以選用哈希算法,所選用的哈希算法可以為JS算法,通過(guò)JS算法將待定位目標(biāo)文件的路徑信息轉(zhuǎn)換成固定長(zhǎng)度,其中所述路徑信息以字符串形式表示,固定長(zhǎng)度表示為十六進(jìn)制數(shù),將固定長(zhǎng)度的十六進(jìn)制數(shù)值除以0xffffffff,求十六進(jìn)制數(shù)值的余數(shù)得到特征值。

圖6是根據(jù)本發(fā)明實(shí)施例可選的另一種集群系統(tǒng)的文件定位方法的流程圖,以下結(jié)合圖6進(jìn)一步舉例說(shuō)明本發(fā)明實(shí)施例所提供的集群系統(tǒng)的文件定位方法,包括如下步驟S602至步驟S618:

步驟S602:獲取集群系統(tǒng)內(nèi)集群節(jié)點(diǎn)數(shù)量信息。

步驟S604:將集群系統(tǒng)內(nèi)各集群節(jié)點(diǎn)編號(hào),對(duì)每個(gè)集群節(jié)點(diǎn)設(shè)置取值空間。

步驟S606:接收到待定位目標(biāo)文件的指令。

步驟S608:計(jì)算待定位目標(biāo)文件的特征值,判斷特征值所在區(qū)間歸屬的第一集群節(jié)點(diǎn)。

步驟S610:判斷第一集群節(jié)點(diǎn)是否可以正常通信,其中,在判斷出第一集群節(jié)點(diǎn)可以正常通信的情況下,執(zhí)行步驟S612;在判斷出第一集群節(jié)點(diǎn)不可以正常通信的情況下,執(zhí)行步驟S616。

步驟S612:確定出第一集群節(jié)點(diǎn)能夠正常通信,可知待定位目標(biāo)文件在第一集群節(jié)點(diǎn)上。

步驟S614:輸出該待定位目標(biāo)文件。

步驟S616:確定出第一集群節(jié)點(diǎn)不能正常通信,統(tǒng)計(jì)集群系統(tǒng)內(nèi)正常通信集群節(jié)點(diǎn)的數(shù)量,數(shù)量用m表示,將待定位目標(biāo)文件重新定向到第二集群節(jié)點(diǎn)上。

步驟S618:在重新定向后的第二集群節(jié)點(diǎn)上同步該待定位目標(biāo)文件。

具體地,假設(shè)集群系統(tǒng)內(nèi)有4個(gè)集群節(jié)點(diǎn):a集群節(jié)點(diǎn),b集群節(jié)點(diǎn),c集群節(jié)點(diǎn),d集群節(jié)點(diǎn),待定位目標(biāo)文件的文件名為“/1.txt”。

根據(jù)本發(fā)明上述實(shí)施例,首先集群系統(tǒng)初始化,獲取集群系統(tǒng)內(nèi)集群節(jié)點(diǎn)總數(shù)量為4,集群系統(tǒng)內(nèi)的各集群節(jié)點(diǎn)被依次編號(hào)為a,b,c,d,預(yù)先設(shè)定集群系統(tǒng)采用[0x00000000,0xffffffff]取值空間。將[0x00000000,0xffffffff]取值空間依次平均分配給上述4個(gè)集群節(jié)點(diǎn),那么4個(gè)集群節(jié)點(diǎn)的取值區(qū)間為a∈[0x00000000,0x3ffffffff],b∈[0x400000000,0x7fffffff],c∈[0x80000000,0xbfffffff],d∈[0xc0000000,0xffffffff], 通過(guò)每個(gè)集群節(jié)點(diǎn)間心跳握手獲取當(dāng)前集群節(jié)點(diǎn)的在線狀態(tài)。計(jì)算待定位目標(biāo)文件文件名為“/1.txt”的特征值為0x1bd5933f,通過(guò)匹配判斷出屬于a集群節(jié)點(diǎn)的取值范圍,即表示步驟S608中的第一集群節(jié)點(diǎn)。隨后判斷a集群節(jié)點(diǎn)的接入狀態(tài),若a集群節(jié)點(diǎn)可以正常通信,即a集群節(jié)點(diǎn)的接入狀態(tài)為健康狀態(tài),可知文件名為“/1.txt”的待定位目標(biāo)文件位于a集群節(jié)點(diǎn)上,從而完成了文件名為“/1.txt”的待定位目標(biāo)文件的索引定位工作;若a集群節(jié)點(diǎn)不可以正常通信,即a集群節(jié)點(diǎn)的接入狀態(tài)為故障狀態(tài),重新統(tǒng)計(jì)集群系統(tǒng)內(nèi)正常通信的集群節(jié)點(diǎn)的數(shù)量為3,依次是b集群節(jié)點(diǎn),c集群節(jié)點(diǎn)和d集群節(jié)點(diǎn),利用上述集群節(jié)點(diǎn)取值區(qū)間分配方法和集群節(jié)點(diǎn)的接入狀態(tài)判斷方法為集群系統(tǒng)中剩余健康的b集群節(jié)點(diǎn),c集群節(jié)點(diǎn)和d集群節(jié)點(diǎn)重新分配取值區(qū)間,經(jīng)過(guò)重新分配之后獲知各自的取值區(qū)間為b∈[0x400000000,0x7fffffff]∪[0x00000000,0x15555554],c∈[0x80000000,0xbfffffff]∪[0x15555555,0x2aaaaaa9],d∈[0xc0000000,0xffffffff]∪[0x2aaaaaaa,0x3fffffff]。已知故障集群節(jié)點(diǎn)a的取值區(qū)間為a∈[0x00000000,0x3ffffffff],計(jì)算故障集群節(jié)點(diǎn)a的區(qū)間長(zhǎng)度,可以用下列計(jì)算公式來(lái)表示:(0x3fffffff-0x0000000+1)=0x40000000,將文件名為“/1.txt”的待定位目標(biāo)文件的特征值0x1bd5933f減去0x00000000,得到差值,將差值除以0x40000000,得到中間結(jié)果,將中間結(jié)果乘以健康集群節(jié)點(diǎn)數(shù)量,得到目標(biāo)結(jié)果,對(duì)目標(biāo)結(jié)果并向上取整,最終結(jié)果等于2,得到的2即為取整計(jì)算后的特征值,其中,健康集群節(jié)點(diǎn)的數(shù)量為3。故應(yīng)該在b,c,d三個(gè)集群節(jié)點(diǎn)中選取第2個(gè)集群節(jié)點(diǎn),即為c集群節(jié)點(diǎn),也就是步驟S616中所描述的第二集群節(jié)點(diǎn),可以確定文件名為“/1.txt”的待定位目標(biāo)文件的元數(shù)據(jù)和文件數(shù)據(jù)位于集群節(jié)點(diǎn)c上。

本發(fā)明實(shí)施例還提供了一種集群系統(tǒng)的文件定位裝置。該裝置可以通過(guò)上述集群系統(tǒng)的文件定位方法實(shí)現(xiàn)其功能。需要說(shuō)明的是,本發(fā)明實(shí)施例的集群系統(tǒng)的文件定位裝置可以用于執(zhí)行本發(fā)明實(shí)施例所提供的集群系統(tǒng)的文件定位方法,本發(fā)明實(shí)施例集群系統(tǒng)的文件定位裝置也可以通過(guò)本發(fā)明實(shí)施例所提供的集群系統(tǒng)的文件定位裝置來(lái)執(zhí)行。

圖7是根據(jù)本發(fā)明實(shí)施例可選的一種集群系統(tǒng)的文件定位裝置的結(jié)構(gòu)框圖,如圖7所示,根據(jù)本發(fā)明實(shí)施例的集群系統(tǒng)的文件定位裝置包括:第一接收單元1、第一計(jì)算單元2、第一確定單元3、第二確定單元4、第一判斷單元5以及第三確定單元6,具體地:第一接收單元1用于接收客戶終端發(fā)送的定位目標(biāo)文件指令,定位目標(biāo)文件指令中攜帶有待定位目標(biāo)文件的路徑信息;第一計(jì)算單元2用于根據(jù)路徑信息,計(jì)算待定位目標(biāo)文件的特征值;第一確定單元3用于根據(jù)特征值確定待定位目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間;第二確定單元4用于根據(jù)存儲(chǔ)地址映射的取值區(qū)間確定待定位目標(biāo)文件所在的第一集群節(jié)點(diǎn);第一判斷單元5用于判斷第一集群節(jié)點(diǎn)是否正 常通信;第三確定單元6用于在判斷出第一集群節(jié)點(diǎn)正常通信的情況下,確定待定位目標(biāo)文件存儲(chǔ)在第一集群節(jié)點(diǎn)上。

具體地,第一接收單元1接收來(lái)自客戶終端的定位目標(biāo)文件的指令,其中,定位目標(biāo)文件指令中帶有待定位目標(biāo)文件的路徑信息。第一計(jì)算單元2根據(jù)第一接收單元1接收的指令中帶有的路徑信息將待定位目標(biāo)文件的路徑信息通過(guò)哈希算法轉(zhuǎn)換成固定長(zhǎng)度,其中,選用的哈希算法可以為JS算法,然后計(jì)算出固定長(zhǎng)度的余數(shù),得到待定位目標(biāo)文件的特征值。第一確定單元3將待定位目標(biāo)文件的特征值映射到集群節(jié)點(diǎn)的取值區(qū)間上,第二確定單元4根據(jù)存儲(chǔ)地址映射的取值區(qū)間確定待定位目標(biāo)文件位于第一集群節(jié)點(diǎn)。根據(jù)第一判斷單元5來(lái)判斷第一集群節(jié)點(diǎn)的通信是否正常,在第一判斷單元5判斷出第一集群節(jié)點(diǎn)通信正常的情況下,第三確定單元6可以確定出待定位目標(biāo)文件存儲(chǔ)于第一集群節(jié)點(diǎn)。

本發(fā)明實(shí)施例所提供的集群系統(tǒng)的文件定位方法,通過(guò)接收來(lái)自客戶終端的定位目標(biāo)文件的指令,其中,在定位目標(biāo)文件的指令中帶有待定位目標(biāo)文件的路徑信息,根據(jù)路徑信息計(jì)算待定位目標(biāo)文件的特征值,然后將待定位目標(biāo)文件的特征值與集群系統(tǒng)中各集群節(jié)點(diǎn)的取值區(qū)間進(jìn)行比較,確定出待定位目標(biāo)文件的特征值所在的存儲(chǔ)地址映射的取值區(qū)間,然后根據(jù)該取值區(qū)間對(duì)應(yīng)的第一集群節(jié)點(diǎn)的通信狀態(tài)來(lái)確定待定位目標(biāo)文件的位置,當(dāng)判斷出第一集群節(jié)點(diǎn)能夠正常通信的情況下,就可以確定出待定位目標(biāo)文件存儲(chǔ)于第一集群節(jié)點(diǎn)上,此種根據(jù)待定位目標(biāo)文件特征值進(jìn)行文件定位的方式,不涉及集群系統(tǒng)中主從服務(wù)器的布置。這樣就解決了現(xiàn)有技術(shù)中主服務(wù)器故障導(dǎo)致集群無(wú)法定位的問(wèn)題,達(dá)到了提高集群系統(tǒng)可用性的目的,從而實(shí)現(xiàn)了準(zhǔn)確確定文件所處位置的技術(shù)效果。

圖8是根據(jù)本發(fā)明實(shí)施例可選的另一種集群系統(tǒng)的文件定位裝置的結(jié)構(gòu)框圖,如圖8所示,根據(jù)本發(fā)明實(shí)施例的集群系統(tǒng)的文件定位裝置還包括:第一更新單元7、第二計(jì)算單元8、第一獲取單元9以及第四確定單元10,其中,更新單元7用于更新集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間;第二計(jì)算單元8用于對(duì)特征值進(jìn)行取整計(jì)算;獲取單元9用于獲取經(jīng)過(guò)取整計(jì)算后特征值所處的取值區(qū)間;第四確定單元10用于確定待定位目標(biāo)文件存儲(chǔ)在第二集群節(jié)點(diǎn)上,其中,第二集群節(jié)點(diǎn)為取整計(jì)算后特征值所處的取值區(qū)間對(duì)應(yīng)的節(jié)點(diǎn)。

具體地,當(dāng)?shù)谝慌袛鄦卧?根據(jù)各集群節(jié)點(diǎn)間心跳握手判斷出第一集群節(jié)點(diǎn)不能正常通信的情況下,此時(shí)代表第一集群節(jié)點(diǎn)發(fā)生了故障,此種情況下,第一更新單元7需要重新計(jì)算集群節(jié)點(diǎn)中剩余能夠正常通信節(jié)點(diǎn)的取值區(qū)間并對(duì)集群節(jié)點(diǎn)中剩余能夠正常通信節(jié)點(diǎn)的取值區(qū)間進(jìn)行重新分配,第二計(jì)算單元8將待定位目標(biāo)文件的特征 值進(jìn)行進(jìn)一步計(jì)算處理,利用第一獲取單元9獲取待定位目標(biāo)文件的特征值所處的取值區(qū)間,第四確定單元10根據(jù)第一獲取單元9獲取到的取值區(qū)間確定待定位目標(biāo)文件所在的第二集群節(jié)點(diǎn)。

圖9是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位裝置中第二計(jì)算單元的結(jié)構(gòu)框圖,如圖9所示,第二計(jì)算單元8包括:第一計(jì)算模塊81、第二計(jì)算模塊82、第三計(jì)算模塊83和第四計(jì)算模塊84,第一計(jì)算模塊81用于計(jì)算特征值和第一集群節(jié)點(diǎn)的取值區(qū)間起始值之差,得到差值;第二計(jì)算模塊82用于計(jì)算差值除以第一集群節(jié)點(diǎn)的區(qū)間長(zhǎng)度,得到中間結(jié)果,其中,第一集群節(jié)點(diǎn)的區(qū)間長(zhǎng)度為目標(biāo)最大值與目標(biāo)最小值之差,目標(biāo)最大值為第一集群節(jié)點(diǎn)的取值區(qū)間的最大值,目標(biāo)最小值為第一集群節(jié)點(diǎn)取值區(qū)間的最小值;第三計(jì)算模塊83用于計(jì)算將中間結(jié)果乘以集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的數(shù)量,得到目標(biāo)結(jié)果;第四計(jì)算模塊84用于向上取整目標(biāo)結(jié)果得到取整計(jì)算后的特征值。

具體地,根據(jù)第二計(jì)算單元8中的第一計(jì)算模塊81、第二計(jì)算模塊82、第三計(jì)算模塊83和第四計(jì)算模塊84計(jì)算出經(jīng)過(guò)取整計(jì)算后待定位目標(biāo)文件的特征值。首先第一計(jì)算模塊81計(jì)算待定位目標(biāo)文件的特征值和第一集群節(jié)點(diǎn)的起始值之差,得到差值,第二計(jì)算模塊82將差值除以第一集群節(jié)點(diǎn)的區(qū)間長(zhǎng)度,得到中間結(jié)果,然后第三計(jì)算模塊83將中間結(jié)果乘以集群節(jié)點(diǎn)中剩余可以正常通信節(jié)點(diǎn)的數(shù)量,得到目標(biāo)結(jié)果,最后第四計(jì)算模塊84將目標(biāo)結(jié)果向上取整得到經(jīng)過(guò)取整計(jì)算后待定位目標(biāo)文件的特征值。第四計(jì)算模塊84對(duì)目標(biāo)結(jié)果向上取整,即當(dāng)目標(biāo)結(jié)果不屬于正整數(shù)范圍時(shí),取目標(biāo)結(jié)果向上的整數(shù),得到取整計(jì)算后待定位目標(biāo)文件的特征值。

圖10是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位裝置中更新單元的結(jié)構(gòu)框圖,如圖10所示,第一更新單元7包括:第五計(jì)算模塊71和分配模塊72,第五計(jì)算模塊71用于根據(jù)集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的數(shù)量將第一集群節(jié)點(diǎn)的取值區(qū)間等分,得到多個(gè)取值子區(qū)間;分配模塊72用于將多個(gè)取值子區(qū)間一一對(duì)應(yīng)地分配給集群節(jié)點(diǎn)中正常通信的節(jié)點(diǎn)。

具體地,第一更新單元7需要重新計(jì)算并重新分配剩余可以正常通信集群節(jié)點(diǎn)的取值區(qū)間,重新獲取剩余可以正常通信集群節(jié)點(diǎn)的數(shù)量,第五計(jì)算模塊71將第一集群節(jié)點(diǎn)的取值區(qū)間平均分配,得到多個(gè)取值子區(qū)間,分配模塊72然后將多個(gè)分配子模塊對(duì)應(yīng)分配給剩余可以正常通信的集群節(jié)點(diǎn)。

圖11是根據(jù)本發(fā)明實(shí)施例集群系統(tǒng)的文件定位裝置中第一計(jì)算單元的結(jié)構(gòu)框圖,如圖11所示,第一計(jì)算單元2包括:轉(zhuǎn)換模塊21和計(jì)算模塊22,轉(zhuǎn)換模塊21用于將路徑信息轉(zhuǎn)換成固定長(zhǎng)度;計(jì)算模塊22用于對(duì)固定長(zhǎng)度取余計(jì)算,得到特征值。

具體地,第一計(jì)算單元2中包含轉(zhuǎn)換模塊21和計(jì)算模塊22。轉(zhuǎn)換模塊21利用哈希算法中的JS算法將待定位目標(biāo)文件的路徑信息轉(zhuǎn)換成固定的長(zhǎng)度,其中固定長(zhǎng)度表示為十六進(jìn)制,計(jì)算模塊22中,將固定長(zhǎng)度除以0xffffffff,計(jì)算得出固定長(zhǎng)度的余數(shù)。

根據(jù)本發(fā)明實(shí)施例,提供了一種集群系統(tǒng)的文件存儲(chǔ)方法的實(shí)施例,如圖12所示,圖12是根據(jù)本發(fā)明實(shí)施例可選的一種集群系統(tǒng)的文件存儲(chǔ)方法的流程圖,該方法包括如下步驟S1202至步驟S1212:

步驟S1202,接收客戶終端發(fā)送的存儲(chǔ)目標(biāo)文件指令,存儲(chǔ)目標(biāo)文件指令中攜帶有待存儲(chǔ)目標(biāo)文件的路徑信息。

步驟S1204,根據(jù)路徑信息,計(jì)算待存儲(chǔ)目標(biāo)文件的特征值,具體地,可以將待存儲(chǔ)目標(biāo)文件的路徑信息通過(guò)哈希算法轉(zhuǎn)換成固定長(zhǎng)度,在本發(fā)明實(shí)施例中,固定長(zhǎng)度為十六進(jìn)制數(shù)值,可以以0xffffffff為除數(shù),將固定長(zhǎng)度的十六進(jìn)制數(shù)值除以0xffffffff,得到余數(shù),該余數(shù)作為待存儲(chǔ)目標(biāo)文件的特征值,其中,選用的哈希算法為JS算法。

步驟S1206,根據(jù)特征值確定待存儲(chǔ)目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間,具體地,集群系統(tǒng)中包含多個(gè)集群節(jié)點(diǎn),每個(gè)集群節(jié)點(diǎn)代表集群系統(tǒng)中的每一臺(tái)服務(wù)器,將集群系統(tǒng)內(nèi)每個(gè)集群節(jié)點(diǎn)進(jìn)行編號(hào),并將系統(tǒng)使用的特征值取值范圍均分,為集群系統(tǒng)中每個(gè)集群節(jié)點(diǎn)依次分配取值區(qū)間,然后將待存儲(chǔ)目標(biāo)文件的特征值映射到集群系統(tǒng)中每個(gè)集群節(jié)點(diǎn)的特征值取值范圍內(nèi),確定出待存儲(chǔ)目標(biāo)文件所處的取值區(qū)間。

步驟S1208,根據(jù)存儲(chǔ)地址映射的取值區(qū)間確定待存儲(chǔ)目標(biāo)文件所存儲(chǔ)的第一集群節(jié)點(diǎn)。

步驟S1210,判斷第一集群節(jié)點(diǎn)是否正常通信,具體地,在本發(fā)明實(shí)施例中,集群系統(tǒng)可以根據(jù)集群節(jié)點(diǎn)間的心跳握手情況得到各集群節(jié)點(diǎn)的接入狀態(tài),從而判斷集群系統(tǒng)中集群節(jié)點(diǎn)是否能夠正常通信,當(dāng)?shù)谝患汗?jié)點(diǎn)可以正常通信,可以確定第一集群節(jié)點(diǎn)健康,當(dāng)?shù)谝患汗?jié)點(diǎn)不能正常通信,可以確定第一集群節(jié)點(diǎn)發(fā)生了故障。

步驟S1212,在判斷出第一集群節(jié)點(diǎn)正常通信的情況下,存儲(chǔ)待存儲(chǔ)目標(biāo)文件于第一集群節(jié)點(diǎn)上。

本發(fā)明實(shí)施例所提供的集群系統(tǒng)的文件存儲(chǔ)方法,通過(guò)接收來(lái)自客戶終端的定位目標(biāo)文件的指令,其中,在存儲(chǔ)目標(biāo)文件的指令中帶有待存儲(chǔ)目標(biāo)文件的路徑信息,根據(jù)路徑信息計(jì)算待存儲(chǔ)目標(biāo)文件的特征值,然后將待存儲(chǔ)目標(biāo)文件的特征值與集群系統(tǒng)中各集群節(jié)點(diǎn)的取值區(qū)間進(jìn)行比較,確定待存儲(chǔ)目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間,然后根據(jù)該取值區(qū)間對(duì)應(yīng)的第一集群節(jié)點(diǎn)的通信狀態(tài)來(lái)確定是否將待存儲(chǔ) 目標(biāo)文件存儲(chǔ)于第一集群節(jié)點(diǎn)上,當(dāng)判斷出第一集群節(jié)點(diǎn)能夠正常通信的情況下,就可以確定將待存儲(chǔ)目標(biāo)文件存儲(chǔ)于第一集群節(jié)點(diǎn)上,此種根據(jù)待存儲(chǔ)目標(biāo)文件特征值進(jìn)行文件存儲(chǔ)的方式,不涉及集群系統(tǒng)中主從服務(wù)器的布置。這樣就解決了現(xiàn)有技術(shù)中主服務(wù)器故障導(dǎo)致集群無(wú)法存儲(chǔ)的問(wèn)題,達(dá)到了提高集群系統(tǒng)可用性的目的,從而實(shí)現(xiàn)了準(zhǔn)確存儲(chǔ)文件的技術(shù)效果。

根據(jù)本發(fā)明上述實(shí)施例,在判斷出第一集群節(jié)點(diǎn)不能正常通信的情況下,集群系統(tǒng)的文件存儲(chǔ)方法還包括:更新集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間;對(duì)特征值進(jìn)行取整計(jì)算;獲取經(jīng)過(guò)取整計(jì)算后特征值所處的取值區(qū)間;將待存儲(chǔ)目標(biāo)文件存儲(chǔ)在第二集群節(jié)點(diǎn)上,其中,第二集群節(jié)點(diǎn)為取整計(jì)算后特征值所處的取值區(qū)間對(duì)應(yīng)的節(jié)點(diǎn)。

具體地,利用節(jié)點(diǎn)間心跳握手判斷出第一集群節(jié)點(diǎn)不能正常通信,即確定出第一集群節(jié)點(diǎn)出現(xiàn)故障,處于離線狀態(tài)。此種情況,需要重新獲取剩余正常通信的集群節(jié)點(diǎn)的數(shù)量,其中,正常通信的集群節(jié)點(diǎn)表示健康的集群節(jié)點(diǎn),此時(shí)健康的集群節(jié)點(diǎn)處于在線狀態(tài)。將第一集群節(jié)點(diǎn)的取值區(qū)間等分,得到多個(gè)取值子區(qū)間,多個(gè)取值子區(qū)間的個(gè)數(shù)等于剩余正常通信的集群節(jié)點(diǎn)的數(shù)量,為剩余正常通信的集群節(jié)點(diǎn)重新分配取值區(qū)間,將多個(gè)取值子區(qū)間一一對(duì)應(yīng)分配給剩余正常通信的集群節(jié)點(diǎn),然后計(jì)算處理待存儲(chǔ)目標(biāo)文件的特征值,得到經(jīng)過(guò)計(jì)算處理之后的特征值所處的取值區(qū)間,與特征值所處的取值區(qū)間對(duì)應(yīng)的第二集群節(jié)點(diǎn)即為待存儲(chǔ)目標(biāo)文件所要存儲(chǔ)的集群節(jié)點(diǎn)。

本發(fā)明實(shí)施例還提供了一種集群系統(tǒng)的文件存儲(chǔ)裝置。該裝置可以通過(guò)上述集群系統(tǒng)的文件存儲(chǔ)方法實(shí)現(xiàn)其功能。需要說(shuō)明的是,本發(fā)明實(shí)施例的集群系統(tǒng)的文件存儲(chǔ)裝置可以用于執(zhí)行本發(fā)明實(shí)施例所提供的集群系統(tǒng)的文件存儲(chǔ)方法,本發(fā)明實(shí)施例集群系統(tǒng)的文件存儲(chǔ)裝置也可以通過(guò)本發(fā)明實(shí)施例所提供的集群系統(tǒng)的文件存儲(chǔ)裝置來(lái)執(zhí)行。

圖13是根據(jù)本發(fā)明實(shí)施例可選的一種集群系統(tǒng)的文件存儲(chǔ)裝置的結(jié)構(gòu)框圖,如圖13所示,根據(jù)本發(fā)明實(shí)施例的集群系統(tǒng)的文件存儲(chǔ)裝置包括:第二接收單元11、第三計(jì)算單元12、第五確定單元13、第六確定單元14、第二判斷單元15和第一存儲(chǔ)單元16,其中,第二接收單元11,用于接收客戶終端發(fā)送的存儲(chǔ)目標(biāo)文件指令,存儲(chǔ)目標(biāo)文件指令中攜帶有待存儲(chǔ)目標(biāo)文件的路徑信息;第三計(jì)算單元12,用于根據(jù)路徑信息,計(jì)算待存儲(chǔ)目標(biāo)文件的特征值;第五確定單元13,用于根據(jù)特征值確定待存儲(chǔ)目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間;第六確定單元14,用于根據(jù)存儲(chǔ)地址映射的取值區(qū)間確定待存儲(chǔ)目標(biāo)文件所存儲(chǔ)的第一集群節(jié)點(diǎn);第二判斷單元15,用于判斷第一集群節(jié)點(diǎn)是否正常通信;第一存儲(chǔ)單元16,在判斷出第一集群節(jié)點(diǎn)正常通信的情況下,存儲(chǔ)待存儲(chǔ)目標(biāo)文件于第一集群節(jié)點(diǎn)上。

具體地,第二接收單元11接收來(lái)自客戶端發(fā)送的存儲(chǔ)文件的指令,其中,指令中帶有待存儲(chǔ)目標(biāo)文件的路徑信息,路徑信息是字符串形式的路徑信息,第三計(jì)算單元12根據(jù)字符串形式的路徑信息計(jì)算待存儲(chǔ)目標(biāo)文件的特征值,第五確定單元13根據(jù)第三計(jì)算單元12計(jì)算出的特征值確定待存儲(chǔ)目標(biāo)文件的所在的存儲(chǔ)地址映射的取值區(qū)間,第六確定單元14根據(jù)第五確定單元13確定出的取值區(qū)間確定待存儲(chǔ)目標(biāo)文件將存儲(chǔ)于第一集群節(jié)點(diǎn),第二判斷單元15判斷第一集群節(jié)點(diǎn)是否能夠正常通信,也就是判斷第一集群節(jié)點(diǎn)是否在線,在第二判斷單元15判斷出第一集群節(jié)點(diǎn)能夠正常通信的情況下,第一存儲(chǔ)單元16將待存儲(chǔ)的目標(biāo)文件存儲(chǔ)于第一集群節(jié)點(diǎn)上。

本發(fā)明實(shí)施例所提供的集群系統(tǒng)的文件存儲(chǔ)方法,通過(guò)接收來(lái)自客戶終端的定位目標(biāo)文件的指令,其中,在存儲(chǔ)目標(biāo)文件的指令中帶有待存儲(chǔ)目標(biāo)文件的路徑信息,根據(jù)路徑信息計(jì)算待存儲(chǔ)目標(biāo)文件的特征值,然后將待存儲(chǔ)目標(biāo)文件的特征值與集群系統(tǒng)中各集群節(jié)點(diǎn)的取值區(qū)間進(jìn)行比較,確定待存儲(chǔ)目標(biāo)文件所在的存儲(chǔ)地址映射的取值區(qū)間,然后根據(jù)該取值區(qū)間對(duì)應(yīng)的第一集群節(jié)點(diǎn)的通信狀態(tài)來(lái)確定是否將待存儲(chǔ)目標(biāo)文件存儲(chǔ)于第一集群節(jié)點(diǎn)上,當(dāng)判斷出第一集群節(jié)點(diǎn)能夠正常通信的情況下,就可以確定將待存儲(chǔ)目標(biāo)文件存儲(chǔ)于第一集群節(jié)點(diǎn)上,此種根據(jù)待存儲(chǔ)目標(biāo)文件特征值進(jìn)行文件存儲(chǔ)的方式,不涉及集群系統(tǒng)中主從服務(wù)器的布置。這樣就解決了現(xiàn)有技術(shù)中主服務(wù)器故障導(dǎo)致集群無(wú)法存儲(chǔ)的問(wèn)題,達(dá)到了提高集群系統(tǒng)可用性的目的,從而實(shí)現(xiàn)了準(zhǔn)確存儲(chǔ)文件的技術(shù)效果。

根據(jù)本發(fā)明上述實(shí)施例,在第二判斷單元15判斷出第一集群節(jié)點(diǎn)不能正常通信的情況下,集群系統(tǒng)的文件存儲(chǔ)裝置還包括:第二更新單元、第四計(jì)算單元、第二獲取單元和第二存儲(chǔ)單元,其中,第二更新單元用于更新集群節(jié)點(diǎn)中正常通信節(jié)點(diǎn)的取值區(qū)間;第四計(jì)算單元用于對(duì)特征值進(jìn)行取整計(jì)算;第二獲取單元用于獲取經(jīng)過(guò)取整計(jì)算后特征值所處的取值區(qū)間;第二存儲(chǔ)單元用于將待存儲(chǔ)目標(biāo)文件存儲(chǔ)在第二集群節(jié)點(diǎn)上,其中,第二集群節(jié)點(diǎn)為取整計(jì)算后特征值所處的取值區(qū)間對(duì)應(yīng)的節(jié)點(diǎn)。

具體地,若第二判斷單元15判斷出第一集群節(jié)點(diǎn)不能正常通信,需要重新選取要存儲(chǔ)的集群節(jié)點(diǎn),利用第二更新單元對(duì)集群系統(tǒng)中剩余的能夠正常通信的集群節(jié)點(diǎn)的取值區(qū)間進(jìn)行更新,具體過(guò)程是將第一集群節(jié)點(diǎn)的取值區(qū)間等分,得到多個(gè)取值子區(qū)間,多個(gè)取值子區(qū)間的個(gè)數(shù)等于剩余正常通信的集群節(jié)點(diǎn)的數(shù)量,為剩余正常通信的集群節(jié)點(diǎn)重新分配取值區(qū)間,將多個(gè)取值子區(qū)間一一對(duì)應(yīng)分配給剩余正常通信的集群節(jié)點(diǎn),之后,第四計(jì)算單元將第三計(jì)算單元12計(jì)算出的待存儲(chǔ)目標(biāo)文件的特征值進(jìn)行取整計(jì)算處理,經(jīng)過(guò)取整計(jì)算之后的結(jié)果為一個(gè)整數(shù),利用第二獲取單元獲取特征值經(jīng)過(guò)取整計(jì)算之后所對(duì)應(yīng)的集群節(jié)點(diǎn),此時(shí)的集群節(jié)點(diǎn)為第二集群節(jié)點(diǎn),第二集群節(jié)點(diǎn)為取整計(jì)算后特征值所處的取值區(qū)間對(duì)應(yīng)的節(jié)點(diǎn),第二存儲(chǔ)單元將待存儲(chǔ)的目標(biāo)文 件存儲(chǔ)于第二集群節(jié)點(diǎn)上。

上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。

在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過(guò)其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。

所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
安平县| 平果县| 无锡市| 吴旗县| 延吉市| 宁德市| 三穗县| 隆昌县| 高邑县| 咸丰县| 体育| 东乌珠穆沁旗| 甘洛县| 页游| 鹤山市| 莆田市| 宁都县| 阳高县| 兴业县| 彝良县| 磐安县| 正定县| 南昌县| 钟祥市| 施秉县| 辉南县| 公安县| 遂平县| 丹江口市| 虹口区| 辉南县| 永州市| 固阳县| 萨迦县| 兰考县| 古浪县| 泾阳县| 黎城县| 文山县| 海宁市| 化德县|