亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化方法和系統(tǒng)的制作方法

文檔序號:6382497閱讀:168來源:國知局
專利名稱:一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于海量數(shù)據(jù)存儲和管理領(lǐng)域,更具體地,涉及一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化方法和系統(tǒng)。
背景技術(shù)
隨著云計算進行的如火如荼,虛擬化技術(shù)得到了更加廣泛的應(yīng)用,在虛擬機中做海量數(shù)據(jù)存儲和管理也受到了越來越多人的重視和關(guān)注。Cassandra系統(tǒng)是一個高效的存儲管理系統(tǒng),采用了谷歌公司BigTable的數(shù)據(jù)模型和亞馬遜公司Dynamo的分布式模型,是一個P2P的去中心化的鍵值存儲系統(tǒng)。主要特點是可擴展性非常好,支持線性擴展;面向列存儲,并且支持超級列;高可用,易于容災(zāi)。虛擬化作為云計算的基礎(chǔ)設(shè)施,讓Cassandra系統(tǒng)能夠更好的運行在虛擬化環(huán)境下,為用戶提供更好的服務(wù),具有重大的意義。然而,現(xiàn)有的Cassandra系統(tǒng)運行在虛擬化環(huán)境下,存在以下問題(I)副本放置失效Cassandra系統(tǒng)的副本放置策略是針對物理機的,虛擬化環(huán)境會導致備份的數(shù)據(jù)無效。例如副本的放置策略是簡單策略,Cassandra系統(tǒng)會選擇節(jié)點形成的環(huán)中相鄰的幾個節(jié)點寫入數(shù)據(jù),如果相鄰的虛擬機節(jié)點在同一臺物理機上,同一份數(shù)據(jù)的多個副本就被寫到同一臺物理機的多個虛擬機中,物理機掛掉后,物理機上所有的虛擬機都掛掉了,數(shù)據(jù)就不可訪問了,Cassandra系統(tǒng)的可靠性和可用性就得不到保證;(2)通信效率不高。同一物理機上虛擬機之間的通信效率要遠遠高于不同物理機上虛擬機之間的通信效率。同一物理機上的兩個虛擬機通信,可以通過事件通道直接傳輸數(shù)據(jù)。但是不同物理機上虛擬機之間的通信,一次網(wǎng)絡(luò)IO請求要先將數(shù)據(jù)交給前端驅(qū)動,前端驅(qū)動將請求發(fā)送給事件通道,然后事件通道再將請求轉(zhuǎn)發(fā)給后端驅(qū)動,后端驅(qū)動完成IO請求后,將請求的結(jié)果按照發(fā)送的路徑原路返回。這樣其通信效率相對于同一物理機上虛擬機之間的通信效率大大降低。如何使Cassandra系統(tǒng)充分利用同一物理機上虛擬機之間的通信,避免不同物理機上虛擬機的通信,提高系統(tǒng)的性能,成為一個亟待解決的問題
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化方法,其能夠解決現(xiàn)有方法中存在副本放置失效和通信效率不高的問題。為實現(xiàn)上述目的,本發(fā)明提供了一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化方法,包括以下步驟(I)利用P2P協(xié)議獲取虛擬機和物理機的對應(yīng)關(guān)系,以確定每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機;(2)根據(jù)每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機對虛擬機進行組織和劃分;(3)根據(jù)組織和劃分的結(jié)果以及來自用戶的鍵值請求,采用二分法選擇相應(yīng)的虛擬機作為當前虛擬機,主備份節(jié)點和附加備份節(jié)點作為副本放置,同時確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到來自用戶鍵請求的虛擬機最近的虛擬機進行通信。P2P協(xié)議采用Gossip協(xié)議。步驟(I)包括以下子步驟(1-1)當前物理機獲取其對應(yīng)虛擬機的信息;(1-2)當前物理機根據(jù)獲取的虛擬機信息向另一臺物理機發(fā)送摘要信息;(1-3)另一臺物理機將接收到的摘要信息與其自身保存的數(shù)據(jù)進行對比,以判斷該數(shù)據(jù)是否比摘要信息新,如果是則轉(zhuǎn)入步驟(1-4),否則進入步驟(1-6);(1-4)另一臺物理機向當前物理機發(fā)送其數(shù)據(jù)中比摘要信息新的數(shù)據(jù);(1-5)當前物理機保存來自另一臺物理機的新的數(shù)據(jù);(1-6)另一臺物理機向當前物理機請求更新數(shù)據(jù);(1-7)當前物理機將其數(shù)據(jù)中比另一臺物理機中數(shù)據(jù)新的數(shù)據(jù)發(fā)送到另一臺物理機;( 1-8)另一臺物理機保存來自當前物理機的新的數(shù)據(jù)。虛擬機的信息包括該物理機上啟動的所有虛擬機、虛擬機的IP、物理機的主機信息、主機IP、物理機所在的機架信息,當前物理機使用MD5算法對獲取的虛擬機信息進行摘要處理,以獲取摘要信息。 步驟(3)包括以下子步驟(3-1)獲取Cassandra系統(tǒng)中所有虛擬機的令牌,并且對令牌進行排序;(3-2)虛擬機接收來自用戶的鍵值請求;(3-3)獲取鍵值請求的令牌值Tk;(3-4)在所有虛擬機的令牌中進行二分查找,以獲取第一個大于令牌值Tk的令牌所對應(yīng)的虛擬機作為當前虛擬機;(3-5)在當前虛擬機后的虛擬機中查找第一個與當前虛擬機不在同一物理機上的虛擬機作為主備份節(jié)點;(3-6)判斷鍵值請求中的備份數(shù)η是否大于2,若大于,則轉(zhuǎn)入步驟(3-8),否則轉(zhuǎn)入步驟(3-7);(3-7)將鍵值請求發(fā)送到當前虛擬機和主備份節(jié)點,過程結(jié)束;(3-8)在主備份節(jié)點后的虛擬機中查找與主備份節(jié)點不在同一機架上的η-2個虛擬機作為附加備份節(jié)點;(3-9)將鍵值請求發(fā)送到當前虛擬機、主備份節(jié)點和附加備份節(jié)點;(3-10)接收來自用戶的鍵請求,并確定接收到該鍵請求的虛擬機;(3-11)確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到鍵請求的虛擬機最近的一臺虛擬機;具體而言,首先判斷三者中有沒有和接收到鍵請求的虛擬機在同一物理機上的虛擬機,如果沒有,則進一步判斷三者中有沒有和接收到鍵請求的虛擬機位于同一機架上的虛擬機;(3-12)將鍵請求發(fā)送到確定的距離接收到鍵請求最近的該臺虛擬機。通過本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的有益效果1、對用戶透明因為采用了步驟(I)和步驟(2),Cassandra系統(tǒng)自動獲取物理機虛擬機的對應(yīng)關(guān)系,并且這些位置關(guān)系用戶是無法感知的,因此是對用戶透明的。2、可擴展性強因為采用了步驟(1-1)至步驟(1_8),P2P的協(xié)議沒有單點故障,節(jié)點加入即可使用,因此可擴展性強。3、高可用因為采用了步驟(3-1)至步驟(3-9), Cassandra系統(tǒng)能夠選擇正確的節(jié)點備份,任意一臺物理機器關(guān)掉后,數(shù)據(jù)任然可以訪問,因此高可用。4、高性能因為采用了步驟(3-10)至步驟(3-12),讀取數(shù)據(jù)時選擇距離最近的節(jié)點通信,可以提高吞吐率和相應(yīng)時間,因此是高性能的。本發(fā)明的另一個目的在于提供一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化系統(tǒng),其能夠解決現(xiàn)有系統(tǒng)中存在的副本放置失效和通信效率不高的問題。為實現(xiàn)上述目的,本發(fā)明提供了一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化系統(tǒng),包括獲取模塊、劃分模塊、副本和通信優(yōu)化模塊,獲取模塊用于利用P2P協(xié)議獲取虛擬機和物理機的對應(yīng)關(guān)系,以確定每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機,劃分模塊用于根據(jù)每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機對虛擬機進行組織和劃分,副本和通信模塊用于根據(jù)組織和劃分的結(jié)果以及來自用戶的鍵值請求,采用二分法選擇相應(yīng)的虛擬機作為當前虛擬機,主備份節(jié)點和附加備份節(jié)點作為副本放置,同時確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到來自用戶鍵請求的虛擬機最近的虛擬機進行通信。獲取模塊包括獲取子模塊、摘要信息發(fā)送子模塊、摘要信息比較子模塊、發(fā)送新數(shù)據(jù)子模塊、保存新數(shù)據(jù)子模塊、請求更新數(shù)據(jù)子模塊、發(fā)送更新數(shù)據(jù)子模塊、保存更新數(shù)據(jù)子模塊,獲取子模塊用于為當前物理機獲取其對應(yīng)虛擬機的信息,摘要信息發(fā)送子模塊用于為當前物理機根據(jù)獲取的虛擬機信息向另一臺物理機發(fā)送摘要信息,摘要信息比較子模塊用于另一臺物理機將接收到的摘要信息與其自身保存的數(shù)據(jù)進行對比,以判斷該數(shù)據(jù)是否比摘要信息新,如果是則轉(zhuǎn) 入發(fā)送新數(shù)據(jù)子模塊,否則進入請求更新數(shù)據(jù)子模塊,發(fā)送新數(shù)據(jù)子模塊用于另一臺物理機向當前物理機發(fā)送其數(shù)據(jù)中比摘要信息新的數(shù)據(jù),保存新數(shù)據(jù)子模塊用于當前物理機保存來自另一臺物理機的新的數(shù)據(jù),請求更新數(shù)據(jù)子模塊用于另一臺物理機向當前物理機請求更新數(shù)據(jù),發(fā)送更新數(shù)據(jù)子模塊用于當前物理機將其數(shù)據(jù)中比另一臺物理機中數(shù)據(jù)新的數(shù)據(jù)發(fā)送到另一臺物理機,保存更新數(shù)據(jù)子模塊用于另一臺物理機保存來自當前物理機的新的數(shù)據(jù)。副本和通信優(yōu)化模塊包括令牌子模塊、接收用戶鍵值請求子模塊、獲取鍵值令牌值子模塊、查找當前虛擬機子模塊、查找主備份節(jié)點子模塊、判斷備份數(shù)子模塊、第一發(fā)送請求子模塊、查找附加備份節(jié)點子模塊、第二發(fā)送請求子模塊、接收鍵請求子模塊、節(jié)點確定子模塊、第三發(fā)送請求子模塊,令牌子模塊用于獲取Cassandra系統(tǒng)中所有虛擬機的令牌,并且對令牌進行排序,接收用戶鍵值請求子模塊用于虛擬機接收來自用戶的鍵值請求,獲取鍵值令牌值子模塊用于獲取鍵值請求的令牌值Tk,查找當前虛擬機子模塊用于在所有虛擬機的令牌中進行二分查找,以獲取第一個大于令牌值Tk的令牌所對應(yīng)的虛擬機作為當前虛擬機,查找主備份節(jié)點子模塊用于在當前虛擬機后的虛擬機中查找第一個與當前虛擬機不在同一物理機上的虛擬機作為主備份節(jié)點,判斷備份數(shù)子模塊用于判斷鍵值請求中的備份數(shù)η是否大于,若大于,則轉(zhuǎn)入查找附加備份節(jié)點子模塊,否則轉(zhuǎn)入第一發(fā)送請求子模塊,第一發(fā)送請求子模塊用于將鍵值請求發(fā)送到當前虛擬機和主備份節(jié)點,查找附加備份節(jié)點子模塊用于在主備份節(jié)點后的虛擬機中查找與主備份節(jié)點不在同一機架上的η-個虛擬機作為附加備份節(jié)點,第二發(fā)送請求子模塊用于將鍵值請求發(fā)送到當前虛擬機、主備份節(jié)點和附加備份節(jié)點,接收鍵請求子模塊用于接收來自用戶的鍵請求,并確定接收到該鍵請求的虛擬機,節(jié)點確定子模塊用于確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到鍵請求的虛擬機最近的一臺虛擬機,第三發(fā)送請求子模塊用于將鍵請求發(fā)送到確定的距離接收到鍵請求最近的該臺虛擬機。通過本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明的系統(tǒng)具有以下的有益效果1、對用戶透明因為采用了獲取模塊和劃分模塊,Cassandra系統(tǒng)自動獲取物理機虛擬機的對應(yīng)關(guān)系,并且這些位置關(guān)系用戶是無法感知的,因此是對用戶透明的。2、可擴展性強因為采用了獲取模塊,P2P的協(xié)議沒有單點故障,節(jié)點加入即可使用,因此可擴展性強。
·
3、高可用因為采用了令牌子模塊、接收用戶鍵值請求子模塊、獲取鍵值令牌值子模塊、查找當前虛擬機子模塊、查找主備份節(jié)點子模塊、判斷備份數(shù)子模塊、第一發(fā)送請求子模塊、查找附加備份節(jié)點子模塊、第二發(fā)送請求子模塊,Cassandra系統(tǒng)能夠選擇正確的節(jié)點備份,任意一臺物理機器關(guān)掉后,數(shù)據(jù)任然可以訪問,因此高可用。4、高性能因為采用了接收鍵請求子模塊、節(jié)點確定子模塊和第三發(fā)送請求子模塊,讀取數(shù)據(jù)時選擇距離最近的節(jié)點通信,可以提高吞吐率和相應(yīng)時間,因此是高性能的。


圖1是本發(fā)明的應(yīng)用環(huán)境圖。圖2是本發(fā)明虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化方法的流程圖。圖3是本發(fā)明方法中步驟(I)的細化流程圖。圖4是本發(fā)明方法中步驟(3)的細化流程圖。圖5是本發(fā)明虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化系統(tǒng)的模塊框圖。圖6是本發(fā)明系統(tǒng)中獲取模塊的細化框圖。圖7是本發(fā)明系統(tǒng)中副本和通信模塊的細化框圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖1所示,本發(fā)明的Cassandra系統(tǒng)是工作在虛擬機環(huán)境下。圖中物理機共有物理機I一物理機n,每個物理機上啟動虛擬機I一虛擬機n,在各個物理機上安裝P2P監(jiān)控模塊,監(jiān)控各個物理機上啟動的虛擬機,并且保存物理機虛擬機之間的位置對應(yīng)關(guān)系。Cassandra系統(tǒng)運行在虛擬機中,并且通過分布式哈希形(DHT)成一個簡單的環(huán),每個虛擬機節(jié)點保存部分數(shù)據(jù)。虛擬機中的Cassandra系統(tǒng)獲取P2P監(jiān)控保存的數(shù)據(jù),對虛擬機物理機的位置關(guān)系進行組織劃分。當用戶向虛擬機中的Cassandra系統(tǒng)發(fā)送讀寫請求時,利用劃分的結(jié)果,選擇相應(yīng)的節(jié)點作為備份節(jié)點,并且優(yōu)先選擇最近的節(jié)點讀取數(shù)據(jù)。
如圖2所示,本發(fā)明虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化方法包括以下步驟(I)利用P2P協(xié)議獲取虛擬機和物理機的對應(yīng)關(guān)系,以確定每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機;在本實施方式中,P2P協(xié)議采用Gossip協(xié)議;(2)根據(jù)每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機對虛擬機進行組織和劃分;具體而言,首先通過網(wǎng)絡(luò)請求步驟(I)中已經(jīng)獲取的信息,然后將這些信息保存在內(nèi)存中,保存的信息包括機架、物理機、虛擬機信息,機架到物理機的映射關(guān)系,物理機到虛擬機的映射關(guān)系,最后,按照映射關(guān)系,將同一物理機上的虛擬機保存在一起,然后按照機架到物理機的映射,將同一機架上的虛擬機放在一起。(3)根據(jù)組織和劃分的結(jié)果以及來自用戶的鍵值請求,采用二分法選擇相應(yīng)的虛擬機作為當前虛擬機,主備份節(jié)點和附加備份節(jié)點作為副本放置,同時確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到來自用戶鍵請求的虛擬機最近的虛擬機進行通信。如圖3所示,本發(fā)明方法中步驟(I)包括以下子步驟(1-1)當前物理機獲取其對應(yīng)虛擬機的信息,該信息包括該物理機上啟動的所有虛擬機、虛擬機的IP、物理機的主機信息、主機IP、物理機所在的機架信息等;(1-2)當前物理機根據(jù)獲取的虛擬機信息向另一臺物理機發(fā)送摘要信息,具體而言,當前物理機使用信息摘要5 (Message digest-5,簡稱MD5)算法對獲取的虛擬機信息進行摘要處理,以獲取摘要信息;(1-3)另一臺物理機將接收到的摘要信息與其自身保存的數(shù)據(jù)進行對比,以判斷該數(shù)據(jù)是否比摘要信息新,如果是則轉(zhuǎn)入步驟(1-4),否則進入步驟(1-6);(1-4)另一臺物理機向當前物理機發(fā)送其數(shù)據(jù)中比摘要信息新的數(shù)據(jù);(1-5)當前物理機保存來自另一臺物理機的新的數(shù)據(jù);( 1-6)另一臺物理機向當前物理機請求更新數(shù)據(jù);(1-7)當前物理機將其數(shù)據(jù)中比另一臺物理機中數(shù)據(jù)新的數(shù)據(jù)發(fā)送到另一臺物理機;( 1-8)另一臺物理機保存來自當前物理機的新的數(shù)據(jù)。從上述過程可以看出,Gossip是一個快速的輕量級通信協(xié)議,利用Gossip協(xié)議通信的數(shù)據(jù)大部分是摘要數(shù)據(jù),通信量比較小,所有節(jié)點的同步開銷為IogN (N為物理機的總數(shù)),同步速度快。此外,因為Gossip協(xié)議是P2P的,沒有主節(jié)點,不會有單點故障的問題,可擴展性非常好,節(jié)點啟動加入即可。如圖4所示,本發(fā)明方法中步驟(3)包括以下子步驟(3-1)獲取Cassandra系統(tǒng)中所有虛擬機的令牌,并且對令牌進行排序;(3-2)虛擬機接收來自用戶的鍵值(Key-value)請求;(3-3)獲取鍵值請求的令牌值Tk ;具體而言,是采用MD5算法來獲取令牌值;(3-4)在所有虛擬機的令牌中進行二分查找,以獲取第一個大于令牌值Tk的令牌所對應(yīng)的虛擬機作為當前虛擬機;(3-5)在當前虛擬機后的虛擬機中查找第一個與當前虛擬機不在同一物理機上的虛擬機作為主備份節(jié)點;(3-6)判斷鍵值請求中的備份數(shù)η是否大于2 ,若大于,則轉(zhuǎn)入步驟(3-8),否則轉(zhuǎn)入步驟(3-7);
(3-7)將鍵值請求發(fā)送到當前虛擬機和主備份節(jié)點,過程結(jié)束;(3-8)在主備份節(jié)點后的虛擬機中查找與主備份節(jié)點不在同一機架上的η-2個虛擬機作為附加備份節(jié)點;(3-9)將鍵值請求發(fā)送到當前虛擬機、主備份節(jié)點和附加備份節(jié)點;(3-10)接收來自用戶的鍵請求,并確定接收到該鍵請求的虛擬機;(3-11)確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到鍵請求的虛擬機最近的一臺虛擬機;具體而言,首先判斷三者中有沒有和接收到鍵請求的虛擬機在同一物理機上的虛擬機,如果沒有,則進一步判斷三者中有沒有和接收到鍵請求的虛擬機位于同一機架上的虛擬機;(3-12)將鍵請求發(fā)送到確定的距離接收到鍵請求最近的該臺虛擬機。如圖5所示,本發(fā)明虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化系統(tǒng)包括獲取模塊1、劃分模塊2、副本和通信優(yōu)化模塊3。獲取模塊I用于利用P2P協(xié)議獲取虛擬機和物理機的對應(yīng)關(guān)系,以確定每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機。在本實施方式中,P2P協(xié)議采用Gossip 協(xié)議。劃分模塊2用于根據(jù)每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機對虛擬機進行組織和劃分。副本和通信模塊3用于根據(jù)組織和劃分的結(jié)果以及來自用戶的鍵值請求,采用二分法選擇相應(yīng)的虛擬機作為當前虛擬機,主備份節(jié)點和附加備份節(jié)點作為副本放置,同時確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到來自用戶鍵請求的虛擬機最近的虛擬機進行通信。 如圖6所示,本發(fā)明系統(tǒng)中獲取模塊I包括獲取子模塊11、摘要信息發(fā)送子模塊12、摘要信息比較子模塊13、發(fā)送新數(shù)據(jù)子模塊14、保存新數(shù)據(jù)子模塊15、請求更新數(shù)據(jù)子模塊16、發(fā)送更新數(shù)據(jù)子模塊17、保存更新數(shù)據(jù)子模塊18。獲取子模塊11用于為當前物理機獲取其對應(yīng)虛擬機的信息,該信息包括該物理機上啟動的所有虛擬機、虛擬機的IP、物理機的主機信息、主機IP、物理機所在的機架信息
坐寸O摘要信息發(fā)送子模塊12用于為當前物理機根據(jù)獲取的虛擬機信息向另一臺物理機發(fā)送摘要信息,具體而言,當前物理機使用信息摘要5 (Message digest-5,簡稱MD5)算法對獲取的虛擬機信息進行摘要處理,以獲取摘要信息。摘要信息比較子模塊13用于另一臺物理機將接收到的摘要信息與其自身保存的數(shù)據(jù)進行對比,以判斷該數(shù)據(jù)是否比摘要信息新,如果是則轉(zhuǎn)入子模塊14,否則進入子模塊16。發(fā)送新數(shù)據(jù)子模塊14用于另一臺物理機向當前物理機發(fā)送其數(shù)據(jù)中比摘要信息新的數(shù)據(jù)。保存新數(shù)據(jù)子模塊15用于當前物理機保存來自另一臺物理機的新的數(shù)據(jù)。請求更新數(shù)據(jù)子模塊16用于另一臺物理機向當前物理機請求更新數(shù)據(jù)。發(fā)送更新數(shù)據(jù)子模塊17用于當前物理機將其數(shù)據(jù)中比另一臺物理機中數(shù)據(jù)新的數(shù)據(jù)發(fā)送到另一臺物理機。
保存更新數(shù)據(jù)子模塊18用于另一臺物理機保存來自當前物理機的新的數(shù)據(jù)。如圖7所示,本發(fā)明系統(tǒng)中副本和通信優(yōu)化模塊3包括令牌子模塊31、接收用戶鍵值請求子模塊32、獲取鍵值令牌值子模塊33、查找當前虛擬機子模塊34、查找主備份節(jié)點子模塊35、判斷備份數(shù)子模塊36、第一發(fā)送請求子模塊37、查找附加備份節(jié)點子模塊38、第二發(fā)送請求子模塊39、接收鍵請求子模塊310、節(jié)點確定子模塊311、第三發(fā)送請求子模塊312。令牌子模塊31用于獲取Cassandra系統(tǒng)中所有虛擬機的令牌,并且對令牌進行排序。接收用戶鍵值請求子模塊32用于虛擬機接收來自用戶的鍵值(Key-value)請求。獲取鍵值令牌值子模塊33用于獲取鍵值請求的令牌值Tk ;具體而言,是采用MD5算法來獲取令牌值。查找當前虛擬機子模塊34用于在所有虛擬機的令牌中進行二分查找,以獲取第一個大于令牌值Tk的令牌所對應(yīng)的虛擬機作為當前虛擬機。查找主備份節(jié)點子模塊35用于在當前虛擬機后的虛擬機中查找第一個與當前虛擬機不在同一物理機上的虛擬機作為主備份節(jié)點。判斷備份數(shù)子模塊36用于判斷鍵值請求中的備份數(shù)η是否大于2,若大于,則轉(zhuǎn)入查找附加備份節(jié)點子模塊38,否則轉(zhuǎn)入第一發(fā)送請求子模塊37。第一發(fā)送請求子模塊37用于將鍵值請求發(fā)送到當前虛擬機和主備份節(jié)點。
查找附加備份節(jié)點子模塊38用于在主備份節(jié)點后的虛擬機中查找與主備份節(jié)點不在同一機架上的η-2個虛擬機作為附加備份節(jié)點。第二發(fā)送請求子模塊39用于將鍵值請求發(fā)送到當前虛擬機、主備份節(jié)點和附加備份節(jié)點。接收鍵請求子模塊310用于接收來自用戶的鍵請求,并確定接收到該鍵請求的虛擬機。節(jié)點確定子模塊311用于確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到鍵請求的虛擬機最近的一臺虛擬機;具體而言,首先判斷三者中有沒有和接收到鍵請求的虛擬機在同一物理機上的虛擬機,如果沒有,則進一步判斷三者中有沒有和接收到鍵請求的虛擬機位于同一機架上的虛擬機。第三發(fā)送請求子模塊312用于將鍵請求發(fā)送到確定的距離接收到鍵請求最近的該臺虛擬機。實例為了驗證本發(fā)明方法的可行性和有效性,在真實環(huán)境下配置系統(tǒng),對虛擬化環(huán)境下的Cassandra系統(tǒng)的優(yōu)化進行實驗。本發(fā)明的服務(wù)器基本硬件和軟件配置如下表所示
權(quán)利要求
1.一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化方法,其特征在于,包括以下步驟(1)利用P2P協(xié)議獲取虛擬機和物理機的對應(yīng)關(guān)系,以確定每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機;(2)根據(jù)每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機對虛擬機進行組織和劃分;(3)根據(jù)組織和劃分的結(jié)果以及來自用戶的鍵值請求,采用二分法選擇相應(yīng)的虛擬機作為當前虛擬機,主備份節(jié)點和附加備份節(jié)點作為副本放置,同時確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到來自用戶鍵請求的虛擬機最近的虛擬機進行通信。
2.根據(jù)權(quán)利要求所述的優(yōu)化方法,其特征在于,P2P協(xié)議采用Gossip協(xié)議。
3.根據(jù)權(quán)利要求所述的優(yōu)化方法,其特征在于,步驟(I)包括以下子步驟(1-1)當前物理機獲取其對應(yīng)虛擬機的信息;(1-2)當前物理機根據(jù)獲取的虛擬機信息向另一臺物理機發(fā)送摘要信息;(1-3)另一臺物理機將接收到的摘要信息與其自身保存的數(shù)據(jù)進行對比,以判斷該數(shù)據(jù)是否比摘要信息新,如果是則轉(zhuǎn)入步驟(1-4),否則進入步驟(1-6);(1-4)另一臺物理機向當前物理機發(fā)送其數(shù)據(jù)中比摘要信息新的數(shù)據(jù);(1-5)當前物理機保存來自另一臺物理機的新的數(shù)據(jù);(1-6)另一臺物理機向當前物理機請求更新數(shù)據(jù);(1-7)當前物理機將其數(shù)據(jù)中比另一臺物理機中數(shù)據(jù)新的數(shù)據(jù)發(fā)送到另一臺物理機;(1-8)另一臺物理機保存來自當前物理機的新的數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的優(yōu)化方法,其特征在于,虛擬機的信息包括該物理機上啟動的所有虛擬機、虛擬機的IP、物理機的主機信息、主機IP、物理機所在的機架信息;當前物理機使用MD5算法對獲取的虛擬機信息進行摘要處理,以獲取摘要信息。
5.根據(jù)權(quán)利要求所述的優(yōu)化方法,其特征在于,步驟(3)包括以下子步驟(3-1)獲取Cassandra系統(tǒng)中所有虛擬機的令牌,并且對令牌進行排序;(3-2)虛擬機接收來自用戶的鍵值請求;(3-3)獲取鍵值請求的令牌值Tk ;(3-4)在所有虛擬機的令牌中進行二分查找,以獲取第一個大于令牌值Tk的令牌所對應(yīng)的虛擬機作為當前虛擬機;(3-5 )在當前虛擬機后的虛擬機中查找第一個與當前虛擬機不在同一物理機上的虛擬機作為主備份節(jié)點;(3-6)判斷鍵值請求中的備份數(shù)η是否大于2,若大于,則轉(zhuǎn)入步驟(3-8),否則轉(zhuǎn)入步驟(3-7);(3-7)將鍵值請求發(fā)送到當前虛擬機和主備份節(jié)點,過程結(jié)束;(3-8)在主備份節(jié)點后的虛擬機中查找與主備份節(jié)點不在同一機架上的η-2個虛擬機作為附加備份節(jié)點;(3-9)將鍵值請求發(fā)送到當前虛擬機、主備份節(jié)點和附加備份節(jié)點;(3-10)接收來自用戶的鍵請求,并確定接收到該鍵請求的虛擬機;(3-11)確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到鍵請求的虛擬機最近的一臺虛擬機;具體而言,首先判斷三者中有沒有和接收到鍵請求的虛擬機在同一物理機上的虛擬機,如果沒有,則進一步判斷三者中有沒有和接收到鍵請求的虛擬機位于同一機架上的虛擬機;(3-12)將鍵請求發(fā)送到確定的距離接收到鍵請求最近的該臺虛擬機。
6.一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化系統(tǒng),其特征在于,包括獲取模塊、劃分模塊、副本和通信優(yōu)化模塊;獲取模塊用于利用P2P協(xié)議獲取虛擬機和物理機的對應(yīng)關(guān)系,以確定每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機;劃分模塊用于根據(jù)每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機對虛擬機進行組織和劃分;副本和通信模塊用于根據(jù)組織和劃分的結(jié)果以及來自用戶的鍵值請求,采用二分法選擇相應(yīng)的虛擬機作為當前虛擬機,主備份節(jié)點和附加備份節(jié)點作為副本放置,同時確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到來自用戶鍵請求的虛擬機最近的虛擬機進行通信。
7.根據(jù)權(quán)利要求6所述的優(yōu)化系統(tǒng),其特征在于,獲取模塊包括獲取子模塊、摘要信息發(fā)送子模塊、摘要信息比較子模塊、發(fā)送新數(shù)據(jù)子模塊、保存新數(shù)據(jù)子模塊、請求更新數(shù)據(jù)子模塊、發(fā)送更新數(shù)據(jù)子模塊、保存更新數(shù)據(jù)子模塊;獲取子模塊用于為當前物理機獲取其對應(yīng)虛擬機的信息;摘要信息發(fā)送子模塊用于為當前物理機根據(jù)獲取的虛擬機信息向另一臺物理機發(fā)送摘要彳目息;摘要信息比較子模塊用于另一臺物理機將接收到的摘要信息與其自身保存的數(shù)據(jù)進行對比,以判斷該數(shù)據(jù)是否比摘要信息新,如果是則轉(zhuǎn)入發(fā)送新數(shù)據(jù)子模塊,否則進入請求更新數(shù)據(jù)子模塊;發(fā)送新數(shù)據(jù)子模塊用于另一臺物理機向當前物理機發(fā)送其數(shù)據(jù)中比摘要信息新的數(shù)據(jù);保存新數(shù)據(jù)子模塊用于當前物理機保存來自另一臺物理機的新的數(shù)據(jù);請求更新數(shù)據(jù)子模塊用于另一臺物理機向當前物理機請求更新數(shù)據(jù);發(fā)送更新數(shù)據(jù)子模塊用于當前物理機將其數(shù)據(jù)中比另一臺物理機中數(shù)據(jù)新的數(shù)據(jù)發(fā)送到另一臺物理機;保存更新數(shù)據(jù)子模塊用于另一臺物理機保存來自當前物理機的新的數(shù)據(jù)。
8.根據(jù)權(quán)利要求6所述的優(yōu)化系統(tǒng),其特征在于,副本和通信優(yōu)化模塊包括令牌子模塊、接收用戶鍵值請求子模塊、獲取鍵值令牌值子模塊、查找當前虛擬機子模塊、查找主備份節(jié)點子模塊、判斷備份數(shù)子模塊、第一發(fā)送請求子模塊、查找附加備份節(jié)點子模塊、第二發(fā)送請求子模塊、接收鍵請求子模塊、節(jié)點確定子模塊、第三發(fā)送請求子模塊;令牌子模塊用于獲取Cassandra系統(tǒng)中所有虛擬機的令牌,并且對令牌進行排序;接收用戶鍵值請求子模塊用于虛擬機接收來自用戶的鍵值請求;獲取鍵值令牌值子模塊用于獲取鍵值請求的令牌值Tk ;查找當前虛擬機子模塊用于在所有虛擬機的令牌中進行二分查找,以獲取第一個大于令牌值Tk的令牌所對應(yīng)的虛擬機作為當前虛擬機;查找主備份節(jié)點子模塊用于在當前虛擬機后的虛擬機中查找第一個與當前虛擬機不在同一物理機上的虛擬機作為主備份節(jié)點;判斷備份數(shù)子模塊用于判斷鍵值請求中的備份數(shù)η是否大于,若大于,則轉(zhuǎn)入查找附加備份節(jié)點子模塊,否則轉(zhuǎn)入第一發(fā)送請求子模塊;第一發(fā)送請求子模塊用于將鍵值請求發(fā)送到當前虛擬機和主備份節(jié)點;查找附加備份節(jié)點子模塊用于在主備份節(jié)點后的虛擬機中查找與主備份節(jié)點不在同一機架上的η-個虛擬機作為附加備份節(jié)點;第二發(fā)送請求子模塊用于將鍵值請求發(fā)送到當前虛擬機、主備份節(jié)點和附加備份節(jié)占 .接收鍵請求子模塊用于接收來自用戶的鍵請求,并確定接收到該鍵請求的虛擬機;節(jié)點確定子模塊用于確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到鍵請求的虛擬機最近的一臺虛擬機;第三發(fā)送請求子模塊用于將鍵請求發(fā)送到確定的距離接收到鍵請求最近的該臺虛擬機。
全文摘要
本發(fā)明公開了一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化方法,包括以下步驟利用P2P協(xié)議獲取虛擬機和物理機的對應(yīng)關(guān)系,以確定每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機,根據(jù)每一臺機架上啟動的物理機,以及每一臺物理機上啟動的虛擬機對虛擬機進行組織和劃分,根據(jù)組織和劃分的結(jié)果以及來自用戶的鍵值請求,采用二分法選擇相應(yīng)的虛擬機作為當前虛擬機,主備份節(jié)點和附加備份節(jié)點作為副本放置,同時確定當前虛擬機、主備份節(jié)點和附加備份節(jié)點中距離接收到來自用戶鍵請求的虛擬機最近的虛擬機進行通信。本發(fā)明還公開了一種虛擬化環(huán)境下Cassandra系統(tǒng)的優(yōu)化系統(tǒng)。本發(fā)明的優(yōu)化方法和系統(tǒng)能夠解決現(xiàn)有方法中存在副本放置失效和通信效率不高的問題。
文檔編號G06F9/455GK103036949SQ20121049454
公開日2013年4月10日 申請日期2012年11月27日 優(yōu)先權(quán)日2012年11月27日
發(fā)明者石宣化, 金海 , 吳松, 袁大星 申請人:華中科技大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1