分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)方案_第1頁
分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)方案_第2頁
分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)方案_第3頁
分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)方案_第4頁
分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)方案_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)方案——備份容災(zāi)及如何保證多個(gè)數(shù)據(jù)副本的全都性,在系統(tǒng)消失機(jī)器或網(wǎng)絡(luò)故障時(shí),如何保持機(jī)制也會(huì)比較簡單。相比較而言,異構(gòu)系統(tǒng)能供應(yīng)更好的寫性能,但實(shí)現(xiàn)比較有寫少讀多的特性,我們選擇了更易于實(shí)現(xiàn)的同構(gòu)系統(tǒng)的設(shè)計(jì)。統(tǒng)容量不足時(shí),就需要擴(kuò)容主節(jié)點(diǎn)數(shù)量。在系統(tǒng)的處理力量上,假如是寫力量點(diǎn)來提升。每個(gè)主節(jié)點(diǎn)擁有的備節(jié)點(diǎn)數(shù)量能夠不一樣,這在各個(gè)節(jié)點(diǎn)的數(shù)據(jù)熱資源來提升系統(tǒng)的處理力量。CAP理論中,可用性和全都性是一對(duì)沖突體,在這里主節(jié)點(diǎn)執(zhí)行寫操作后會(huì)馬上點(diǎn),這種情況下備節(jié)點(diǎn)只用于容災(zāi),不供應(yīng)服務(wù)。系統(tǒng)中數(shù)據(jù)分片的單位是全都性哈希環(huán)中的VNode(虛擬節(jié)點(diǎn)),每個(gè)VNode有一個(gè)自增的同步序列號(hào)SyncSeq,VNode中所包含的數(shù)據(jù)的每一個(gè)寫操作都會(huì)觸發(fā)它的SyncSeq進(jìn)行自增,這樣在每個(gè)VNode內(nèi)SyncSeq就標(biāo)識(shí)了每一次寫操作,并且SyncSeq的大小也反映了寫操作的執(zhí)行挨次。數(shù)據(jù)的每次寫操作除了修改數(shù)據(jù),還會(huì)保存寫操作對(duì)應(yīng)的SyncSeq,后面能夠看到,SyncSeq是同步機(jī)制牢靠性的基礎(chǔ)。主節(jié)點(diǎn)的寫進(jìn)程收到寫懇求后,先修改數(shù)據(jù),把當(dāng)前VNode的SyncSeq加1并更新到數(shù)據(jù)中。接下來會(huì)紀(jì)錄Binlog,Binlog是一個(gè)三元組主備節(jié)點(diǎn)的數(shù)據(jù)同步由主節(jié)點(diǎn)上的同步進(jìn)程異步進(jìn)行,通過掃描上圖的同步進(jìn)度表中主備節(jié)點(diǎn)的SyncSeq差異就可知備節(jié)點(diǎn)需要同步哪些數(shù)據(jù)。同步進(jìn)程通過同步進(jìn)度表確定需要同步的二元組接下來介紹一下同步合同如何保證同步的高效和牢靠。為了讓同步包嚴(yán)格根據(jù)主節(jié)點(diǎn)的發(fā)送挨次到達(dá)備節(jié)點(diǎn),采納TCP合同進(jìn)行同步,在主節(jié)點(diǎn)的每個(gè)VNode上到每一個(gè)備節(jié)點(diǎn)建立一個(gè)TCP連接,記為一個(gè)同步連接。在每一個(gè)同步連接上,主節(jié)點(diǎn)會(huì)一次性批量發(fā)送多個(gè)同步包,備節(jié)點(diǎn)也會(huì)紀(jì)錄已同步的SyncSeq,對(duì)每一個(gè)同步包會(huì)檢查攜帶的SyncSeq是否符合預(yù)期,假如符合預(yù)期,則執(zhí)行同步寫操作,執(zhí)行勝利是更新已同步的SyncSeq,在這種狀況寫備節(jié)點(diǎn)也不需要回應(yīng)在正常同步后第一次收到錯(cuò)誤的SyncSeq,回應(yīng)主節(jié)點(diǎn)自己所期望的SyneSeq,驗(yàn)同步包中的SyncSeq和數(shù)據(jù)中的SyncSeq,假執(zhí)行了這次寫操作,直接跳過不執(zhí)行,也不需要回應(yīng)主節(jié)點(diǎn),這就是為什么需那么系統(tǒng)中全部數(shù)據(jù)至少需要有兩個(gè)以上的副本,并且系統(tǒng)的處理力量要有肯還需要考慮物理部署,通過把數(shù)據(jù)的不同副本分布在不同機(jī)架、不同機(jī)房、甚心會(huì)查詢并對(duì)比全部備節(jié)點(diǎn)的同步進(jìn)度,選擇數(shù)據(jù)最新的備節(jié)點(diǎn),將其切換為主節(jié)點(diǎn)。因?yàn)槿總涔?jié)點(diǎn)也會(huì)紀(jì)錄Binlog,所以在切換為主節(jié)點(diǎn)之后接向其它備節(jié)點(diǎn)進(jìn)行同步。這里的主備切換可能會(huì)導(dǎo)致少量的數(shù)據(jù)丟失,假如清空;接著主節(jié)點(diǎn)會(huì)把當(dāng)前全部VNode的SyncSeq復(fù)制到待恢復(fù)節(jié)點(diǎn),并且全量復(fù)制全部數(shù)據(jù);在全量復(fù)制完成之后,開頭進(jìn)行數(shù)據(jù)同步,由前面的同步機(jī)制可知,同步的SyncSeq會(huì)從之前復(fù)制到待恢復(fù)節(jié)點(diǎn)的狀態(tài)開頭追逐;在主節(jié)點(diǎn)和待恢復(fù)節(jié)點(diǎn)之間的SyneSeq差異縮小到正常范圍時(shí),待恢復(fù)節(jié)點(diǎn)的角色就變?yōu)閭涔?jié)點(diǎn),開頭供應(yīng)服務(wù)。配置運(yùn)維中心會(huì)監(jiān)控主備節(jié)點(diǎn)之間的SyncSeq差異,假如某個(gè)備節(jié)點(diǎn)差異達(dá)到肯定的閾值,則禁止該備節(jié)點(diǎn)供應(yīng)服務(wù),假如差異在比較長的時(shí)間之后仍舊無法恢復(fù),則會(huì)觸發(fā)死機(jī)恢復(fù)流程。數(shù)據(jù)回檔最終再簡潔介紹下數(shù)據(jù)冷備和回檔,主要是由備份系統(tǒng)負(fù)責(zé)。備份任務(wù)一般是手動(dòng)或定時(shí)發(fā)起,屬于業(yè)務(wù)級(jí)別的,備份系統(tǒng)收到一個(gè)業(yè)務(wù)的備份任務(wù)后,會(huì)遠(yuǎn)程備份業(yè)務(wù)的全部數(shù)據(jù),過程比較簡潔,就是遍歷全部的存儲(chǔ)節(jié)點(diǎn),把屬于該業(yè)務(wù)的全部數(shù)據(jù)寫入到遠(yuǎn)程文件系統(tǒng)中,每次備份都需要紀(jì)錄開頭時(shí)間和結(jié)束時(shí)間,作為數(shù)據(jù)回檔的基準(zhǔn)。系統(tǒng)中全部的寫操作都會(huì)紀(jì)錄一份遠(yuǎn)程的流水,每條流水都紀(jì)錄了寫操作的時(shí)間戳,由流水中心統(tǒng)一存儲(chǔ)。結(jié)合數(shù)據(jù)冷備和流水,能夠恢復(fù)到冷備完成后任意時(shí)刻的數(shù)據(jù)。備份系統(tǒng)收到一個(gè)業(yè)務(wù)回檔任務(wù)后,首先停止該業(yè)務(wù)的服務(wù),然后清空業(yè)務(wù)的全部數(shù)據(jù),接著從冷備做一次全量的恢復(fù),然后再重放流水到指定時(shí)間點(diǎn),即可完成數(shù)據(jù)回檔。需要留意的是這里的冷備并不是快照,在進(jìn)行冷備的時(shí)候,寫操作也正常執(zhí)行,所以從冷備開頭時(shí)間重放流水會(huì)導(dǎo)致很多的寫操作重復(fù)執(zhí)行,這里通過數(shù)據(jù)版本校驗(yàn)來避開這個(gè)問題,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論