腦殘大家都知道,“腦裂”是個(gè)什么鬼?肯定不是那本驚悚故事集啦。“腦裂”是高可用方案(HA)中出現(xiàn)的一種服務(wù)器故障,在“雙機(jī)熱備”高可用(HA)系統(tǒng)中,當(dāng)聯(lián)系2個(gè)節(jié)點(diǎn)的“心跳線”斷開時(shí),本來為一整體、動(dòng)作協(xié)調(diào)的HA系統(tǒng),就分裂成為2個(gè)獨(dú)立的個(gè)體。由于相互失去了聯(lián)系,都以為是對(duì)方出了故障,2個(gè)節(jié)點(diǎn)上的HA軟件像“裂腦人”一樣,“本能”地爭(zhēng)搶“共享資源”、爭(zhēng)起“應(yīng)用服務(wù)”,就會(huì)發(fā)生嚴(yán)重后果:或者共享資源被瓜分、2邊“服務(wù)”都起不來了;或者2邊“服務(wù)”都起來了,但同時(shí)讀寫“共享存儲(chǔ)”,導(dǎo)致數(shù)據(jù)損壞(常見如數(shù)據(jù)庫(kù)輪詢著的聯(lián)機(jī)日志出錯(cuò))。
服務(wù)器“腦裂”的危害服務(wù)器“腦裂”容易引起服務(wù)器集群邏輯關(guān)系混亂,導(dǎo)致主、備服務(wù)器誤認(rèn)為對(duì)方宕機(jī)而同時(shí)接管對(duì)方的業(yè)務(wù),同時(shí)占用共享的文件系統(tǒng),造成數(shù)據(jù)庫(kù)爭(zhēng)搶資源,引起數(shù)據(jù)庫(kù)表文件的損壞,從而導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)的中斷,對(duì)外業(yè)務(wù)暫停。
據(jù)悉,2015年10月,某商業(yè)銀行核心系統(tǒng)曾因服務(wù)器集群的心跳通信異常,引發(fā)“腦裂”故障,導(dǎo)致數(shù)據(jù)庫(kù)文件損壞,數(shù)據(jù)庫(kù)發(fā)生邏輯錯(cuò)誤而停止對(duì)外服務(wù),造成該行柜面和渠道業(yè)務(wù)較長(zhǎng)時(shí)間中斷。為了防止此類事件再次發(fā)生,銀監(jiān)會(huì)特意下發(fā)(2015)175號(hào)辦公廳文件提醒各銀監(jiān)局和銀行注意風(fēng)險(xiǎn)防范。
出現(xiàn)“腦裂”怎么辦?腦裂可以防范,經(jīng)驗(yàn)豐富的運(yùn)維工程師會(huì)建議采用下面的措施來防范“腦裂”的發(fā)生:1. 添加冗余的心跳線,例如雙線條線。這樣能夠盡量減少“裂腦”發(fā)生的機(jī)會(huì)。2. 啟用磁盤鎖。3. 設(shè)置仲裁機(jī)制。
但是腦裂無法根除,發(fā)生腦裂時(shí)即使是所有的節(jié)點(diǎn)都可以工作,業(yè)務(wù)也會(huì)被迫中斷。既然無法根除,那么我們就要面對(duì)。這就需要在腦裂之后可以有一種預(yù)案以最快的速度恢復(fù)業(yè)務(wù)!
有人會(huì)疑問:“都腦裂了,還咋最快的恢復(fù)業(yè)務(wù)?”,答案就四個(gè)字“任意回退”!HA系統(tǒng)正常時(shí)是同一個(gè)大腦在指揮,腦裂后的各自瞎指揮最終造成了數(shù)據(jù)的不可用。而業(yè)務(wù)的長(zhǎng)時(shí)間中斷就是因?yàn)檫@種數(shù)據(jù)的不可用所造成的。
找到問題的原因,就基本上有了解決問題的辦法。既然腦裂所造成的業(yè)務(wù)停頓是因?yàn)閿?shù)據(jù)的不可用,那么要想恢復(fù)業(yè)務(wù)讓數(shù)據(jù)重新可用就行了。如何讓數(shù)據(jù)重新可用?讓時(shí)光回到腦裂前的那一刻,一切都會(huì)美好起來。那時(shí)候數(shù)據(jù)庫(kù)還起的起來,最后一筆業(yè)務(wù)數(shù)據(jù)還在。
但是任何人都無法預(yù)知腦裂的發(fā)生,而腦裂前的那一刻是哪一刻也沒有軟件預(yù)先知道后在那里設(shè)置一個(gè)回退點(diǎn)。這就需要有一種保護(hù)機(jī)制將數(shù)據(jù)變化的所有點(diǎn)全部記錄下來,這些所有點(diǎn)必然包含了“腦裂前的那一刻”這個(gè)點(diǎn)。這種保護(hù)技術(shù)就是CDP,通過持續(xù)的數(shù)據(jù)保護(hù),可以做到任意時(shí)間點(diǎn)回退。
和力記易十年磨一劍,采用基于主機(jī)嵌入式分析的方式對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行CDP保護(hù),在記錄所有回退點(diǎn)的同時(shí)還分析了數(shù)據(jù)庫(kù)的內(nèi)部邏輯結(jié)構(gòu),保證了每個(gè)回退點(diǎn)都是數(shù)據(jù)庫(kù)的可用點(diǎn)。可謂居家旅行,專治腦裂,必備良品!