這篇文章主要介紹“GlusterFS復(fù)制卷修復(fù)原理是什么”,在日常操作中,相信很多人在GlusterFS復(fù)制卷修復(fù)原理是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”GlusterFS復(fù)制卷修復(fù)原理是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為大名企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè),大名網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
裂腦
所謂腦裂,就是指兩個(gè)或多個(gè)節(jié)點(diǎn)都“認(rèn)為”自身是正常節(jié)點(diǎn)而互相“指責(zé)”對(duì)方,導(dǎo)致不能選取正確的節(jié)點(diǎn)進(jìn)行接管或修復(fù),導(dǎo)致腦裂狀態(tài)。這種現(xiàn)象出現(xiàn)在數(shù)據(jù)修復(fù)、集群管理等等高可用場(chǎng)景。
Glusterfs的冗余鏡像(下文簡(jiǎn)稱AFR)提供了數(shù)據(jù)副本功能,能夠在即使只有一個(gè)冗余節(jié)點(diǎn)的情況下仍能正常工作,不中斷上層應(yīng)用。當(dāng)節(jié)點(diǎn)恢復(fù)后,能夠?qū)?shù)據(jù)修復(fù)到一致?tīng)顟B(tài),保證數(shù)據(jù)的安全。
AFR工作原理
AFR數(shù)據(jù)修復(fù)主要涉及三個(gè)方面:ENTRY,META,DATA,我們以冗余度為2即含有兩個(gè)副本A和B的DATA修復(fù)為例進(jìn)行講解。記錄描述副本狀態(tài)的稱之為ChangeLog,記錄在每個(gè)副本文件擴(kuò)展屬性里,讀入內(nèi)存后以矩陣形式判斷是否需要修復(fù)以及要以哪個(gè)副本為Source進(jìn)行修復(fù)。初始值以及正常值為0.(注:ENTRY和META,DATA分布對(duì)應(yīng)著一個(gè)數(shù)值)。
Write的步驟可分解為:
1)下發(fā)Write操作。
2)加鎖Lock。
3)向A,B副本的ChangeLog分別加1,記錄到各個(gè)副本的擴(kuò)展屬性中。
4)對(duì)A,B副本進(jìn)行寫(xiě)操作。
5)若該副本寫(xiě)成功則ChangeLog減1,若該副本寫(xiě)失敗則ChangLog值不變,記錄到各個(gè)副本的擴(kuò)展屬性中。
6)解鎖UnLock。
7)向上層返回,只要有一個(gè)副本寫(xiě)成功就返回成功。
上述在AFR中是完整的一個(gè)transaction動(dòng)作。根據(jù)兩個(gè)副本記錄的ChangeLog的數(shù)值確定了副本的幾種狀態(tài):
1)WISE,智慧的,即該副本的ChangeLog中對(duì)方對(duì)應(yīng)的數(shù)值大于0而且自身對(duì)應(yīng)的數(shù)值等于0.
2)INNOCENT,無(wú)辜的,即該副本上的ChangeLog即不指責(zé)對(duì)方也指責(zé)自己,ChangeLog全為0.
3)FOOL,愚蠢的,即該副本上的ChangeLog是指責(zé)自己的。
4)IGNORANT,忽略的,即該副本的ChangeLog丟失。
所以一般情況下,會(huì)選取WISE的副本作為Sourse進(jìn)行修復(fù)。但是當(dāng)兩個(gè)節(jié)點(diǎn)都是WISE狀態(tài)時(shí),這就出現(xiàn)了聲名狼藉的腦裂狀態(tài)。
AFR腦裂
兩個(gè)副本均為WISE時(shí)發(fā)生腦裂,那么在哪種場(chǎng)景下會(huì)產(chǎn)生腦裂呢?我們還是以冗余度為2的情況舉一個(gè)簡(jiǎn)單的例子:
某文件X的兩個(gè)副本位于物理機(jī)A和物理機(jī)B上,在A和B上分別運(yùn)行著進(jìn)程a和進(jìn)程b,a和b持續(xù)通過(guò)各自所在的物理機(jī)上的客戶端對(duì)文件X進(jìn)行不同的寫(xiě)操作。然后物理機(jī)A和B之間網(wǎng)絡(luò)中斷,因?yàn)锳FR在一個(gè)副本的情況下仍能不中斷上層應(yīng)用,所以進(jìn)程a和進(jìn)程b仍會(huì)持續(xù)運(yùn)行,但因?yàn)榫W(wǎng)絡(luò)中斷,文件X在A和B上的副本數(shù)據(jù)不再一致且都認(rèn)為對(duì)方是異常的,當(dāng)網(wǎng)絡(luò)恢復(fù)時(shí),兩個(gè)副本互相“指責(zé)”,即出現(xiàn)了腦裂。
當(dāng)然這是腦裂發(fā)生的場(chǎng)景之一,有時(shí)候是有可能發(fā)生腦裂,而有時(shí)候是必然發(fā)生腦裂。腦裂,也是很多人關(guān)心的一個(gè)問(wèn)題,不能一概而論。
關(guān)于腦裂,不同的場(chǎng)景處理方法也是不同的,甚至某些場(chǎng)景的腦裂是無(wú)法避免的,只能盡量避免腦裂的發(fā)生。
如何預(yù)防裂腦
預(yù)防裂腦,可以配置服務(wù)器端和客戶端的仲裁機(jī)制。
客戶端和服務(wù)器端仲裁對(duì)比可見(jiàn):GlusterFS 客戶端與服務(wù)器端仲裁機(jī)制對(duì)比。
到此,關(guān)于“GlusterFS復(fù)制卷修復(fù)原理是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
網(wǎng)頁(yè)標(biāo)題:GlusterFS復(fù)制卷修復(fù)原理是什么
分享URL:http://chinadenli.net/article34/gisdse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、Google、靜態(tài)網(wǎng)站、建站公司、外貿(mào)網(wǎng)站建設(shè)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)