“老王,你們醫(yī)院的雙活數(shù)據(jù)中心方案定了嗎?”
“還沒呢,已經(jīng)聽好幾個(gè)廠家介紹方案了,有點(diǎn)暈,不知選哪個(gè)好,你有什么建議?”
“也談不上什么建議,就是提醒你下,上雙活方案,一定要防范好‘腦裂’的風(fēng)險(xiǎn)!”
“‘腦裂’?那不是治‘癲癇’病的后遺癥嗎?‘雙活’也會(huì)有后遺癥?”
“可不是,前一段某金融部門還專門發(fā)文提醒上‘雙活’后的‘腦裂’問(wèn)題呢!”
“是嗎?那我們得好好評(píng)估一下,最終方案一定要考慮這方面的風(fēng)險(xiǎn)!”
是啊,是要搞搞清清楚下面這幾個(gè)問(wèn)題,再做抉擇:
第一個(gè)問(wèn)題是:為什么要上“雙活”?
隨著信息技術(shù)越來(lái)越成為驅(qū)動(dòng)業(yè)務(wù)拓展的動(dòng)力,對(duì)IT應(yīng)用系統(tǒng)的連續(xù)性提出更高的要求,君不見SLA(服務(wù)水平協(xié)議)都在比小數(shù)點(diǎn)后有幾個(gè)9嗎?恨不得直接寫100%呢??勺鰹榛A(chǔ)架構(gòu)的IT系統(tǒng),終歸是機(jī)器設(shè)備,總會(huì)在生命周期中出現(xiàn)各類故障,對(duì)于網(wǎng)絡(luò)設(shè)備可以通過(guò)雙機(jī)冗余模式解決,對(duì)于應(yīng)用服務(wù)器可以通過(guò)負(fù)載均衡方案解決,但對(duì)于數(shù)據(jù)庫(kù)服務(wù)器及其存儲(chǔ)設(shè)備,則一直采用傳統(tǒng)的冷備模式,既當(dāng)主設(shè)備出故障時(shí),冷啟動(dòng)備機(jī)應(yīng)急,顯然這種解決方案,其故障恢復(fù)時(shí)間無(wú)法降到秒級(jí),最好的也在分鐘級(jí),當(dāng)需要保證7×24不間斷提供服務(wù)時(shí),這里就成為了瓶頸。
正是在這種局面下,諸多存儲(chǔ)設(shè)備廠商,借鑒數(shù)據(jù)庫(kù)廠商的HA(高可用性)解決方案,提出并開發(fā)了“雙活”模式,理想的“雙活”解決方案,由于雙機(jī)互為主、備,并實(shí)時(shí)同步數(shù)據(jù),因此只需毫秒級(jí)的延遲,即可在一方出故障時(shí),接管對(duì)數(shù)據(jù)的存取,保證業(yè)務(wù)的連續(xù)性。
第二個(gè)問(wèn)題是:“雙活”有什么利弊?
正所謂成也蕭何,敗也蕭何。由于IT系統(tǒng)的復(fù)雜性,環(huán)境、線路、設(shè)備、系統(tǒng),甚至是線纜都可能是故障源,采取“雙活”后,如何破解數(shù)據(jù)的“CAP”難題就成為該模式能否有效的關(guān)鍵!也就是說(shuō)數(shù)據(jù)的一致性(Consistency)、可用性(Availability)、分區(qū)容忍性(Partition Tolerance)三者只能同時(shí)選擇實(shí)現(xiàn)二個(gè),其中,一致性追求RPO為零,可用性追求RTO為零,分區(qū)容忍性追求多存儲(chǔ)復(fù)本且在不同存儲(chǔ)載體上,截止目前,由于相關(guān)理論尚且沒有被證偽,要找到三者兼顧的解決方案還不現(xiàn)實(shí)。
“雙活”的目的,本來(lái)是解決可用性(注:隨時(shí)可用)的問(wèn)題的,順便實(shí)現(xiàn)分區(qū)容忍性,這就帶來(lái)了數(shù)據(jù)的一致性無(wú)法保證的問(wèn)題,既所謂的“腦裂”問(wèn)題,如果發(fā)生的話,將造成數(shù)據(jù)的不可用,進(jìn)而影響業(yè)務(wù)的連續(xù)性,雖然其發(fā)生概率較小,但一旦發(fā)生則是致命的。
這也是為什么大家上“雙活”模式時(shí),非常慎重的原因!
第三個(gè)問(wèn)題是:如何應(yīng)對(duì)“腦裂”風(fēng)險(xiǎn)?
“腦裂”有風(fēng)險(xiǎn),“雙活”又要上,既然沒有完美的技術(shù),那就選擇能根據(jù)場(chǎng)景變換組合的解決方案。比如上述三者的分類組合,如CP、CA、AP等組合都能實(shí)現(xiàn)的方案。
這就需要進(jìn)行場(chǎng)景變換實(shí)測(cè),看該解決方案是否支持“同步復(fù)制”和“異步復(fù)制”,是否支持同步成功以“同步命令發(fā)出”或“同步結(jié)果完成”為信號(hào)的雙模式。
還有,是否有“仲裁服務(wù)器”和“多路徑軟件”用來(lái)對(duì)“腦裂”現(xiàn)象強(qiáng)行干預(yù)。
最為重要是,是否有手工模式,以便在“仲裁”失效或“各方”失聯(lián)的情況下,通過(guò)傳統(tǒng)的手工模式(注:類似冷備模式)恢復(fù)服務(wù)。
——IT語(yǔ)錄:魚與熊掌不可兼得,舍魚而取熊掌者也!
“老婆,問(wèn)一個(gè)嚴(yán)肅的個(gè)人問(wèn)題?”
“什么嚴(yán)肅問(wèn)題?不會(huì)是你犯嚴(yán)重錯(cuò)誤了吧?”
“別瞎猜!是這樣,假如你得了‘癲癇’,如果做手術(shù),可以治好,但卻有后遺癥!你是做呢?還是不做?”
“那要看是什么后遺癥了!”
“比如‘腦裂’?就是腦子中總有兩小人打駕,一個(gè)往左,一個(gè)往右,不知聽哪個(gè)的好?!?/p>
“那不成精神分裂了嗎?”
“到?jīng)]那么嚴(yán)重,慢慢適應(yīng),最終選一個(gè)小人的指令就行了?”
“這還行,如果用‘精神分裂’換‘癲癇’,那還不如不換呢!”
……
想想也是,任何方案都不是十全十美的,要有利的一面,一定會(huì)帶來(lái)不利的一面,關(guān)鍵是最在乎什么?以及如何取舍?只要控制住風(fēng)險(xiǎn),并將不利影響減少到最小,就是可以接受的,要不怎么會(huì)有那么多的人愿意做治‘癲癇’的手術(shù)呢?
明天就要上會(huì)討論確定是否上“雙活”方案了,經(jīng)與老婆調(diào)侃幾句,王主任心靜了許多,似乎有些小小釋然。
下期預(yù)告:他們?yōu)槭裁匆澳パ蠊ぁ保?/p>