云計(jì)算數(shù)據(jù)優(yōu)化存儲(chǔ)系統(tǒng)設(shè)計(jì)
云計(jì)算伴隨著信息化技術(shù)及互聯(lián)網(wǎng)應(yīng)用的不斷發(fā)展而衍生出來(lái)的計(jì)算策略,其延伸到互聯(lián)網(wǎng)應(yīng)用的各個(gè)領(lǐng)域,能夠?qū)νㄓ嵲O(shè)備進(jìn)行實(shí)時(shí)數(shù)據(jù)通信和交互式計(jì)算的全新數(shù)據(jù)應(yīng)用形式。云計(jì)算模型可以分為傳輸層、計(jì)算層以及展示層三個(gè)基本層次,其整個(gè)計(jì)算過(guò)程承載了海量數(shù)據(jù)的處理和存儲(chǔ),因此,存儲(chǔ)模型的良好性能是其良好運(yùn)行的保障。
分布式存儲(chǔ)系統(tǒng)作為目前應(yīng)用較為廣泛的存儲(chǔ)系統(tǒng),其在云計(jì)算方面具有良好的適用性,分布式存儲(chǔ)系統(tǒng)的核心是將服務(wù)器資源通過(guò)互聯(lián)網(wǎng)進(jìn)行連接通信,在外界看來(lái),其作為一個(gè)計(jì)算存儲(chǔ)整體提供數(shù)據(jù)服務(wù)。通過(guò)研究發(fā)現(xiàn),分布式存儲(chǔ)系統(tǒng)具有以下若干特征:
1)可擴(kuò)展性。分布式存儲(chǔ)系統(tǒng)的服務(wù)器數(shù)量可以是幾百臺(tái),甚至上千臺(tái),隨著服務(wù)器數(shù)量的增加,分布式存儲(chǔ)器的性能也呈線(xiàn)性增加。
2)成本低。分布式存儲(chǔ)系統(tǒng)甚至可以通過(guò)普通PC機(jī)互聯(lián)互通實(shí)現(xiàn),經(jīng)濟(jì)成本較低,同時(shí),其具備自動(dòng)容錯(cuò)和負(fù)載均衡等特點(diǎn),隨著服務(wù)的提升,線(xiàn)性擴(kuò)展設(shè)備也較為方便,能夠是需要一定程度的自動(dòng)運(yùn)維,維護(hù)成本也較低[5]。
3)性能優(yōu)越。分布式存儲(chǔ)系統(tǒng)的計(jì)算機(jī)集群和服務(wù)器集群能夠提供的計(jì)算能力極強(qiáng),具備較強(qiáng)的存儲(chǔ)和技術(shù)性能。
4)易用性。對(duì)于分布式存儲(chǔ)系統(tǒng)而言,其能夠針對(duì)不同的數(shù)據(jù)應(yīng)用,向外界提供數(shù)據(jù)接口,同時(shí),分布式存儲(chǔ)系統(tǒng)必須具備完善的監(jiān)控服務(wù)和運(yùn)維工具,十分便于其與外界系統(tǒng)和應(yīng)用的集成。
本文提出的云計(jì)算數(shù)據(jù)優(yōu)化存儲(chǔ)模型即在分布式系統(tǒng)的基礎(chǔ)上完成的。
1云計(jì)算數(shù)據(jù)優(yōu)化存儲(chǔ)系統(tǒng)設(shè)計(jì)
1.1哈希數(shù)據(jù)分布設(shè)計(jì)
云計(jì)算系統(tǒng)時(shí)刻產(chǎn)生海量傳感器采集的用戶(hù)信息,而且各種數(shù)據(jù)分布不集中,當(dāng)數(shù)據(jù)量較大時(shí),通過(guò)采用兩種方式對(duì)數(shù)據(jù)進(jìn)行拆分,一是手動(dòng)拆分的方式,即通過(guò)管理員在線(xiàn)下對(duì)數(shù)據(jù)量大的用戶(hù)進(jìn)行標(biāo)記確認(rèn),根據(jù)數(shù)據(jù)量的規(guī)模將數(shù)據(jù)拆分到不同的數(shù)據(jù)庫(kù)集群中。另一種是自動(dòng)拆分方式,即通過(guò)數(shù)據(jù)分布算法實(shí)現(xiàn)大用戶(hù)數(shù)據(jù)流的自動(dòng)拆分,將拆分后的數(shù)據(jù)平均分解到若干服務(wù)器中[8]。本文設(shè)計(jì)的數(shù)據(jù)優(yōu)化存儲(chǔ)系統(tǒng)采用自動(dòng)拆分的方式,數(shù)據(jù)分布算法采用哈希數(shù)據(jù)分布策略。
本文采用的哈希數(shù)據(jù)分布策略是在一致性哈希算法(Dis?tributedHashTable,DHT)的基礎(chǔ)上實(shí)現(xiàn)的。一致性哈希算法的核心思想描述為:隨機(jī)為系統(tǒng)的每個(gè)節(jié)點(diǎn)分配一個(gè)token,隨機(jī)分配token形成哈希環(huán)。當(dāng)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)時(shí),首先計(jì)算主鍵Key的哈希值,然后按照順時(shí)針?lè)较驅(qū)?shù)據(jù)存放到***個(gè)等于或者大于該哈希值的token屬于的節(jié)點(diǎn)中。一致性哈希算法的優(yōu)勢(shì)在于當(dāng)對(duì)哈希環(huán)的節(jié)點(diǎn)執(zhí)行添加或者刪除操作時(shí),不會(huì)對(duì)該節(jié)點(diǎn)的鄰節(jié)點(diǎn)產(chǎn)生影響。
將哈??臻g設(shè)置為0~2n,則一致性哈希算法的執(zhí)行流程可以描述為如下步驟:
Step1:為每個(gè)服務(wù)器節(jié)點(diǎn)計(jì)算屬于其自身的hash值,然后將哈希值分布到0~2n范圍內(nèi)的哈希環(huán)區(qū)間內(nèi);
Step2:采用相同的方式計(jì)算出待存儲(chǔ)數(shù)據(jù)對(duì)象的主鍵節(jié)點(diǎn)的哈希值,也將其分布到哈希圓環(huán)內(nèi);
Step3:按照順時(shí)針?lè)较驈臄?shù)據(jù)映射的位置開(kāi)始搜索,將數(shù)據(jù)放置在***個(gè)找到的哈希節(jié)點(diǎn)中。
為了方便服務(wù)器位置的查詢(xún),需要維護(hù)服務(wù)器在哈希環(huán)中的位置信息,本文采用的位置獲取方法的計(jì)算復(fù)雜度為O(logN)。
將哈??臻g設(shè)置為0~2n(即N=2n),以Chord系統(tǒng)為參考對(duì)象,為了提升查詢(xún)的效率,本系統(tǒng)在每臺(tái)服務(wù)器中產(chǎn)生一個(gè)長(zhǎng)度為n的路由表,描述如下。
其中,p表示服務(wù)器位于哈希環(huán)中的唯一ID,路由表中的第i個(gè)數(shù)據(jù)描述了ID為p+2i-1的后繼節(jié)點(diǎn)。
1.2分布式協(xié)議設(shè)計(jì)
Paxos協(xié)議用于解決多個(gè)節(jié)點(diǎn)之間的一致性問(wèn)題。多個(gè)節(jié)點(diǎn)之間通過(guò)操作日志同步數(shù)據(jù),如果只有一個(gè)節(jié)點(diǎn)為主節(jié)點(diǎn),那么,很容易確保多個(gè)節(jié)點(diǎn)之間操作日志的一致性。考慮到主節(jié)點(diǎn)可能出現(xiàn)故障,系統(tǒng)需要選舉出新的主節(jié)點(diǎn)。Paxos協(xié)議正是用來(lái)實(shí)現(xiàn)這個(gè)需求。只要保證了多個(gè)節(jié)點(diǎn)之間操作日志的一致性,就能夠在這些節(jié)點(diǎn)上構(gòu)建高可用的全局服務(wù),例如分布式鎖服務(wù),全局命名和配置服務(wù)等。
大多數(shù)情況下,系統(tǒng)只有一個(gè)proposer,他的提議也總是會(huì)很快地被大多數(shù)節(jié)點(diǎn)接受。Paxos協(xié)議執(zhí)行步驟如下:
Step1:批準(zhǔn)(accept)過(guò)程,Proposer向所有節(jié)點(diǎn)發(fā)送accept消息,其他所有節(jié)點(diǎn)作為接受者(acceptor),接受者可以選擇接受或者選擇拒絕。
Step2:確認(rèn)(acknowledge)過(guò)程,當(dāng)接受的acceptor數(shù)量超過(guò)1/2時(shí),則表示提議值可以生效,Proposer向所有的接受者發(fā)送acknowledge消息,提醒該提議已經(jīng)生效。
當(dāng)網(wǎng)絡(luò)發(fā)生異常時(shí),存儲(chǔ)系統(tǒng)中可能會(huì)同時(shí)出現(xiàn)多個(gè)不同的Proposer,因此會(huì)產(chǎn)生多個(gè)不同的提議。提議的內(nèi)容可以是修改請(qǐng)求,也可以是將自身提升為主節(jié)點(diǎn)的請(qǐng)求。一旦Propos?er***次發(fā)起的accept請(qǐng)求沒(méi)有被多數(shù)的接受者所批準(zhǔn),或者與其他請(qǐng)求產(chǎn)生沖突,則必須完整地執(zhí)行完成Paxos協(xié)議的整個(gè)流程。
Paxos協(xié)議需要考慮兩個(gè)問(wèn)題:正確性,即只有一個(gè)提議值會(huì)生效;可終止性,即***總會(huì)有一個(gè)提議值生效。Paxos協(xié)議中要求每個(gè)生效的提議被acceptor中的多數(shù)派接受,并且每個(gè)acceptor不會(huì)接受多個(gè)不同的提議,故而能夠確保其準(zhǔn)確性。
2仿真實(shí)現(xiàn)及分析
為了驗(yàn)證本文設(shè)計(jì)的云計(jì)算數(shù)據(jù)優(yōu)化存儲(chǔ)系統(tǒng)模型應(yīng)用效果,作者在OPNETModeler仿真軟件中進(jìn)行仿真驗(yàn)證,OPNETModeler提供了完整的通信協(xié)議、存儲(chǔ)器模型以及連接線(xiàn)路。
在OPNETModeler中構(gòu)建的測(cè)試場(chǎng)景中,配置兩臺(tái)服務(wù)器節(jié)點(diǎn),每臺(tái)服務(wù)器分別于5個(gè)數(shù)據(jù)庫(kù)存儲(chǔ)單元相連接,所有的數(shù)據(jù)通訊均通過(guò)有限連接完成,對(duì)數(shù)據(jù)庫(kù)的操作主要包含數(shù)據(jù)讀出和數(shù)據(jù)寫(xiě)入兩種類(lèi)型。讀操作即按照規(guī)定的時(shí)間將數(shù)據(jù)從數(shù)據(jù)庫(kù)中讀出,寫(xiě)入操作即數(shù)據(jù)存儲(chǔ)過(guò)程,數(shù)據(jù)讀出和數(shù)據(jù)存儲(chǔ)的速率設(shè)定為10M/ms,且按照一致性哈希分布算法檢索出目標(biāo)數(shù)據(jù)庫(kù),仿真時(shí)長(zhǎng)設(shè)定為20分鐘,然后對(duì)每臺(tái)數(shù)據(jù)庫(kù)的容量進(jìn)行分析對(duì)比,查看其分布是否均勻。
測(cè)試結(jié)果表明,在本實(shí)驗(yàn)中的10臺(tái)數(shù)據(jù)庫(kù)存儲(chǔ)單元的存儲(chǔ)容量基本維持平衡,且分布較為均勻,基本維持在135255M左右。因此,可以說(shuō)明本文設(shè)計(jì)的云計(jì)算數(shù)據(jù)優(yōu)化存儲(chǔ)模型具有良好的公平性和一致性,能夠?qū)?shù)據(jù)壓力均勻地分布到多個(gè)數(shù)據(jù)集群中去。
作者同時(shí)對(duì)吞吐量和響應(yīng)延時(shí)做了統(tǒng)計(jì),統(tǒng)計(jì)結(jié)果表明,數(shù)據(jù)讀寫(xiě)的平均吞吐量及響應(yīng)延時(shí)與傳統(tǒng)的順序存儲(chǔ)系統(tǒng)相比,性能有了較大的提升,仿真結(jié)果如圖1所示。本文設(shè)計(jì)的云計(jì)算數(shù)據(jù)優(yōu)化存儲(chǔ)模型由于引入了哈希分布的概念,使得數(shù)據(jù)存儲(chǔ)的吞吐量增加了13.1%,平均響應(yīng)延時(shí)減少了10.8%。性能分析可能會(huì)很復(fù)雜,因?yàn)椴煌闆r下系統(tǒng)的瓶頸點(diǎn)不同,有的時(shí)候是網(wǎng)絡(luò),有的時(shí)候是磁盤(pán),有的時(shí)候甚至是機(jī)房的交換機(jī)或者CPU,另外,負(fù)載均衡以及其他因素的干擾也會(huì)使得性能更加難以量化。
3結(jié)論
通過(guò)分析云計(jì)算的數(shù)據(jù)處理特點(diǎn),作者提出了基于哈希分布的云計(jì)算數(shù)據(jù)優(yōu)化存儲(chǔ)系統(tǒng)模型。此模型根據(jù)云計(jì)算的海量數(shù)據(jù)的分布特性,以一致性哈希分布算法原理為基礎(chǔ),在充分考慮負(fù)載均衡的前提下,完成了基于Paxos協(xié)議的系統(tǒng)分布式協(xié)議設(shè)計(jì)。通過(guò)在OPNETModeler仿真軟件中構(gòu)建測(cè)試場(chǎng)景,對(duì)云計(jì)算數(shù)據(jù)優(yōu)化存儲(chǔ)系統(tǒng)模型進(jìn)行測(cè)試驗(yàn)證及分析。測(cè)試結(jié)果表明,本文設(shè)計(jì)的云計(jì)算數(shù)據(jù)優(yōu)化存儲(chǔ)模型相對(duì)于順序存儲(chǔ)系統(tǒng)模型在數(shù)據(jù)吞吐量方面增加了13.1%,響應(yīng)延時(shí)方面減少了10.8%??傮w而言,本文設(shè)計(jì)的云計(jì)算數(shù)據(jù)優(yōu)化存儲(chǔ)系統(tǒng)具備可行性。