一種基于網(wǎng)絡(luò)的高效存儲(chǔ)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)存儲(chǔ),特別涉及一種基于網(wǎng)絡(luò)的高效存儲(chǔ)方法。
【背景技術(shù)】
[0002]云計(jì)算是將計(jì)算、存儲(chǔ)、軟件等服務(wù)從傳統(tǒng)的桌面電腦和服務(wù)器通過(guò)互聯(lián)網(wǎng)搬到數(shù)據(jù)中心的計(jì)算模式。這些數(shù)據(jù)中心包含大量的IT基礎(chǔ)設(shè)施,其所有者往往是大型的IT企業(yè),如谷歌、亞馬遜、微軟、雅虎等。中小企業(yè)可以通過(guò)網(wǎng)絡(luò)租用這些服務(wù),而不必搭建自己的服務(wù)器系統(tǒng)。數(shù)據(jù)存儲(chǔ)和管理對(duì)企業(yè)來(lái)說(shuō)非常重要,然而構(gòu)建安全可靠的企業(yè)數(shù)據(jù)庫(kù)系統(tǒng)將耗費(fèi)大量的資金。對(duì)企業(yè)來(lái)說(shuō),如果不采用這種按需付費(fèi)的云計(jì)算模式,則不僅需要大量的購(gòu)買相應(yīng)的軟件和硬件的資金,還必須擔(dān)心軟/硬件的維護(hù)問(wèn)題。然而現(xiàn)有的云存儲(chǔ)系統(tǒng)存在較低的容錯(cuò)性和安全性、擴(kuò)展性和效率,在處理大數(shù)據(jù)的環(huán)境下急需改善。
【發(fā)明內(nèi)容】
[0003]為解決上述現(xiàn)有技術(shù)所存在的問(wèn)題,本發(fā)明提出了一種基于網(wǎng)絡(luò)的高效存儲(chǔ)方法,包括:
[0004]云存儲(chǔ)系統(tǒng)主控節(jié)點(diǎn)對(duì)所有數(shù)據(jù)節(jié)點(diǎn)進(jìn)行監(jiān)控和管理,數(shù)據(jù)節(jié)點(diǎn)用于為客戶端節(jié)點(diǎn)提供數(shù)據(jù)存儲(chǔ)和查詢以及事務(wù)處理,并且根據(jù)系統(tǒng)的需求為客戶端節(jié)點(diǎn)提供計(jì)算能力;主控節(jié)點(diǎn)維護(hù)整個(gè)系統(tǒng)的節(jié)點(diǎn)狀態(tài)、提供局部數(shù)據(jù)節(jié)點(diǎn)的查詢、保持文件塊的地址信息,將同一地理位置內(nèi)的鄰居數(shù)據(jù)節(jié)點(diǎn)作為同一組,將不同地理位置內(nèi)的遠(yuǎn)程數(shù)據(jù)節(jié)點(diǎn)作為不同組;將每個(gè)文件塊都設(shè)置一個(gè)主鏡像,每個(gè)事務(wù)處理本文件塊的所有鏡像的更新都由主鏡像控制,主控節(jié)點(diǎn)包含根據(jù)所述云存儲(chǔ)系統(tǒng)的客戶端信息生成的客戶端編號(hào)的快照表,并且由此快照構(gòu)成系統(tǒng)文件塊保存的地址信息的索引,在進(jìn)行全局查詢時(shí),主控節(jié)點(diǎn)根據(jù)該快照表的信息進(jìn)行客戶端信息定位,然后根據(jù)預(yù)定義策略將相應(yīng)的文件塊的地址返回到應(yīng)用服務(wù)器,由應(yīng)用服務(wù)器直接訪問(wèn)相應(yīng)的節(jié)點(diǎn),所述主控節(jié)點(diǎn)還保存文件塊鏡像表,所述文件塊鏡像表包括文件塊編號(hào)表項(xiàng)和節(jié)點(diǎn)信息表項(xiàng);如果同一個(gè)事務(wù)中需要更新的信息不在一個(gè)文件塊中,并且不在一個(gè)數(shù)據(jù)節(jié)點(diǎn)中,則從所述云存儲(chǔ)協(xié)調(diào)中選擇協(xié)調(diào)節(jié)點(diǎn),由該協(xié)調(diào)節(jié)點(diǎn)負(fù)責(zé)整個(gè)事務(wù)的更新流程,決定事務(wù)最后是成功提交還是失敗回滾。
[0005]優(yōu)選地,每個(gè)所述文件塊包含以下控制信息塊:
[0006]主鏡像所在節(jié)點(diǎn)編號(hào),即每個(gè)節(jié)點(diǎn)在加入云存儲(chǔ)系統(tǒng)時(shí)從主控節(jié)點(diǎn)那里得到的自己的唯一編號(hào),并且和自己的地址組成一個(gè)節(jié)點(diǎn)編號(hào);
[0007]鏡像個(gè)數(shù),其包括主鏡像和從屬鏡像總個(gè)數(shù),如果為1說(shuō)明沒(méi)有從屬鏡像,如果為0說(shuō)明此文件塊不存在;
[0008]鏡像所在節(jié)點(diǎn)編號(hào)列表:該列表保存所有節(jié)點(diǎn)編號(hào),根據(jù)其中的節(jié)點(diǎn)編號(hào)查找到保存了鏡像的節(jié)點(diǎn)地址和系統(tǒng)編號(hào)以進(jìn)行訪問(wèn)。
[0009]優(yōu)選地,該方法還包括:
[0010]通過(guò)代理提供文件塊更新的鎖控制,該代理采用完全冗余策略,通過(guò)預(yù)定義協(xié)議從代理中選出主控節(jié)點(diǎn),并定期更新,在數(shù)據(jù)更新時(shí),所有代理在主控節(jié)點(diǎn)的控制下同步更新,客戶端和代理之間采用事件機(jī)制進(jìn)行通信,客戶端在本地保存一個(gè)和自身相關(guān)的代理文件的緩存,當(dāng)文件在代理端發(fā)生更新時(shí),代理通知客戶端文件無(wú)效,然后客戶端直接更新文件;
[0011]將來(lái)自客戶端的訪問(wèn)進(jìn)行按地理位置進(jìn)行分類,并且根據(jù)客戶端的IP信息通過(guò)域名服務(wù)進(jìn)行分流,在同一地理位置將負(fù)載進(jìn)行輪轉(zhuǎn)法將當(dāng)前地理位置的各個(gè)訪問(wèn)分流到與當(dāng)前地理位置的不同的數(shù)據(jù)節(jié)點(diǎn)上,保持主控節(jié)點(diǎn)和域名服務(wù)之間的通信,主控節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)自身反映的信息對(duì)域名服務(wù)中的各個(gè)節(jié)點(diǎn)的權(quán)值進(jìn)行調(diào)整,從而調(diào)整整個(gè)系統(tǒng)的負(fù)載平衡。
[0012]本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
[0013]本發(fā)明對(duì)大數(shù)據(jù)進(jìn)行高效處理,具有低成本、高容錯(cuò)性和安全性、高擴(kuò)展性和高效率等特點(diǎn),解決了數(shù)據(jù)擴(kuò)充出現(xiàn)的瓶頸問(wèn)題,擁有更高性能的計(jì)算能力。
【附圖說(shuō)明】
[0014]圖1是根據(jù)本發(fā)明實(shí)施例的基于網(wǎng)絡(luò)的高效存儲(chǔ)方法的流程圖。
【具體實(shí)施方式】
[0015]下文與圖示本發(fā)明原理的附圖一起提供對(duì)本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書(shū)限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對(duì)本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無(wú)這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書(shū)實(shí)現(xiàn)本發(fā)明。
[0016]本發(fā)明的一方面提供了一種基于網(wǎng)絡(luò)的高效存儲(chǔ)方法。圖1是根據(jù)本發(fā)明實(shí)施例的基于網(wǎng)絡(luò)的高效存儲(chǔ)方法流程圖。
[0017]本發(fā)明首先在云存儲(chǔ)系統(tǒng)中將將節(jié)點(diǎn)分為兩種部分,一種是數(shù)據(jù)節(jié)點(diǎn),另外一種是非數(shù)據(jù)節(jié)點(diǎn),其中集群存儲(chǔ)主要依賴數(shù)據(jù)節(jié)點(diǎn),非數(shù)據(jù)節(jié)點(diǎn)主要指管理節(jié)點(diǎn)和監(jiān)控節(jié)點(diǎn),在這里統(tǒng)一由主控節(jié)點(diǎn)表示。
[0018]客戶端節(jié)點(diǎn):這個(gè)節(jié)點(diǎn)主要是指訪問(wèn)的客戶端,可以是云存儲(chǔ)的虛擬行業(yè)的Web應(yīng)用服務(wù)器,也可以是其他公司通過(guò)云存儲(chǔ)系統(tǒng)訪問(wèn)接口進(jìn)行訪問(wèn)的服務(wù)器。
[0019]數(shù)據(jù)節(jié)點(diǎn):作為系統(tǒng)的主要構(gòu)成部分,數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)了系統(tǒng)正常運(yùn)行的大部分任務(wù),其中包括:數(shù)據(jù)存儲(chǔ)、提供查詢、事務(wù)處理,并且在必要時(shí)根據(jù)系統(tǒng)的需求提供計(jì)算能力。其中所有數(shù)據(jù)節(jié)點(diǎn)之間的關(guān)系也不完全是相同的,本發(fā)明根據(jù)地理位置劃分,使得同一地理位置內(nèi)的節(jié)點(diǎn)都是臨近點(diǎn),因?yàn)橄到y(tǒng)可能會(huì)發(fā)展到很大,如果只有一層關(guān)系管理節(jié)點(diǎn),將會(huì)變得很困難,并且在實(shí)際使用中,同一地理位置的節(jié)點(diǎn)之間的通信單價(jià)和質(zhì)量都是比較好的,所以將系統(tǒng)的管理分為3層,一個(gè)主控節(jié)點(diǎn)以每個(gè)組的關(guān)系看待節(jié)點(diǎn),而節(jié)點(diǎn)自己有能夠區(qū)分是鄰居節(jié)點(diǎn)(同一組)還是遠(yuǎn)程節(jié)點(diǎn)(不同組)。
[0020]主控節(jié)點(diǎn):主控節(jié)點(diǎn)主要負(fù)責(zé)系統(tǒng)的整體狀態(tài)的監(jiān)控。其中包括:整個(gè)系統(tǒng)的節(jié)點(diǎn)狀態(tài)、提供局部數(shù)據(jù)節(jié)點(diǎn)的查詢、保持文件塊的地址信息等等。這里需要注意的是,根據(jù)系統(tǒng)負(fù)載能力的需求本發(fā)明的主控節(jié)點(diǎn)本身不一定是單個(gè)PC機(jī)器,也可能有幾臺(tái)機(jī)器組成一個(gè)集群共同提供服務(wù)。這樣才能保證系統(tǒng)不會(huì)因?yàn)楣芾砉?jié)點(diǎn)的瓶頸而受到限制。
[0021]在文件塊存儲(chǔ)時(shí),規(guī)定將每個(gè)文件塊都設(shè)置一個(gè)主鏡像,即每次每個(gè)事務(wù)處理本文件塊的所有鏡像的更新都由主鏡像控制?;谶@種設(shè)計(jì)本發(fā)明設(shè)計(jì)每個(gè)文件塊除了本身包含的信息之外必須有以下控制信息塊:
[0022]主鏡像所在節(jié)點(diǎn)編號(hào):每個(gè)節(jié)點(diǎn)在加入系統(tǒng)時(shí)都從主控節(jié)點(diǎn)那里得到自己的唯一編號(hào)并且和自己的地址組成一個(gè)節(jié)點(diǎn)編號(hào)。
[0023]鏡像個(gè)數(shù):鏡像個(gè)數(shù)包括主鏡像和從屬鏡像,如果為1說(shuō)明沒(méi)有從屬鏡像,如果為0說(shuō)明此文件塊不存在。
[0024]鏡像所在節(jié)點(diǎn)編號(hào)列表:保存所有節(jié)點(diǎn)編號(hào),在必要時(shí)可以根據(jù)這里的節(jié)點(diǎn)編號(hào)找到保存了鏡像的節(jié)點(diǎn)的地址和系統(tǒng)編號(hào)以進(jìn)行訪問(wèn)。
[0025]在主控節(jié)點(diǎn)里面有一個(gè)根據(jù)系統(tǒng)的客戶端信息生成的一個(gè)客戶端編號(hào)的快照表,并且有此快照構(gòu)成系統(tǒng)文件塊保存的地址信息的索引,在進(jìn)行全局查詢時(shí),主控節(jié)點(diǎn)就是根據(jù)這個(gè)快照表的信息進(jìn)行客戶端信息定位的。然后根據(jù)預(yù)定義策略將相應(yīng)的文件塊的地址返回到應(yīng)用服務(wù)器,由應(yīng)用服務(wù)器直接去訪問(wèn)相應(yīng)的節(jié)