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