“三活”數(shù)據(jù)中心這個(gè)概念出自阿里巴巴,這是首個(gè)實(shí)現(xiàn)多活(2個(gè)以上)的大型數(shù)據(jù)中心,意義非凡。雖然我們?cè)诟鞣N技術(shù)文章中經(jīng)常看到討論多活技術(shù),但是實(shí)際上都是理論研究,從未經(jīng)過(guò)實(shí)踐。所謂多活,一是多中心之間地位均等,正常模式下協(xié)同工作,并行的為業(yè)務(wù)訪(fǎng)問(wèn)提供服務(wù),實(shí)現(xiàn)了對(duì)資源的充分利用,避免一個(gè)或兩個(gè)備份中心處于閑置狀態(tài),造成資源與投資浪費(fèi),通過(guò)資源整合,多活數(shù)據(jù)中心的服務(wù)能力往往雙倍甚至數(shù)倍于主備數(shù)據(jù)中心模式。二是在一個(gè)數(shù)據(jù)中心發(fā)生故障或?yàn)?zāi)難的情況下,其他數(shù)據(jù)中心可以正常運(yùn)行并對(duì)關(guān)鍵業(yè)務(wù)或全部業(yè)務(wù)實(shí)現(xiàn)接管,達(dá)到互為備份的效果,實(shí)現(xiàn)用戶(hù)的“故障無(wú)感知”。值得注意的是,在目前的建設(shè)與運(yùn)維中,用戶(hù)關(guān)注更多的是“雙活”的數(shù)據(jù)中心。“雙活”可以看作多活數(shù)據(jù)中心的一個(gè)特殊簡(jiǎn)化子集,也是最常見(jiàn)的模型。“雙活”聚焦兩個(gè)數(shù)據(jù)中心的工作模式與機(jī)制,建設(shè)思路與技術(shù)選擇是基于多活的裁剪和優(yōu)化,一些適合“雙活”的方案在擴(kuò)展性等方面未必適合于多活的應(yīng)用場(chǎng)景,“雙活”數(shù)據(jù)中心是多活數(shù)據(jù)中心的必經(jīng)階段。和多活相比,“雙活”更容易實(shí)現(xiàn),技術(shù)復(fù)雜度低些。“三活”就是三個(gè)數(shù)據(jù)中心同時(shí)工作,業(yè)務(wù)可以在三個(gè)數(shù)據(jù)中心之間無(wú)感知切換。
“三活”數(shù)據(jù)中心帶來(lái)的優(yōu)勢(shì)是顯而易見(jiàn)的,和“雙活”相比,“三活”的可靠性更高,三個(gè)數(shù)據(jù)中心中兩個(gè)數(shù)據(jù)中心同時(shí)壞的可能性是非常小的,民航飛機(jī)可靠性很高也只有兩個(gè)引擎,可見(jiàn)“三活”數(shù)據(jù)中心的可靠性有多高;“三活”數(shù)據(jù)中心可以在其中一個(gè)數(shù)據(jù)中心故障時(shí),由另外兩個(gè)數(shù)據(jù)中心承擔(dān)業(yè)務(wù),這樣兩個(gè)數(shù)據(jù)中心運(yùn)行不至于被業(yè)務(wù)壓垮。“三活”數(shù)據(jù)中心使得每個(gè)數(shù)據(jù)中心承載的業(yè)務(wù)量都不會(huì)太重,便于應(yīng)對(duì)像雙11這樣的流量洪峰,而且“雙活”具有的優(yōu)點(diǎn),“三活”都具備,不管是“三活”還是“雙活”都是未來(lái)數(shù)據(jù)中心技術(shù)發(fā)展的主流方向,這種方式要比異地災(zāi)備、主備數(shù)據(jù)中心、兩地三中心等架構(gòu)還先進(jìn)得多,在近兩年得到了數(shù)據(jù)中心用戶(hù)的廣泛認(rèn)可。
不過(guò)“三活”比“雙活”還是復(fù)雜多了,“雙活”數(shù)據(jù)中心運(yùn)行只可能有三種情況,要么A運(yùn)行,要么B運(yùn)行,要么AB運(yùn)行;但“三活”數(shù)據(jù)中心運(yùn)行就有六種情況,數(shù)據(jù)中心之間切換情況要復(fù)雜得多。這不僅涉及到服務(wù)器/虛擬機(jī)之間的集群協(xié)同,還包括數(shù)據(jù)的復(fù)制與同步,更重要的是涉及到跨數(shù)據(jù)中心的網(wǎng)絡(luò)互聯(lián)互通及分支/Internet用戶(hù)對(duì)數(shù)據(jù)中心的訪(fǎng)問(wèn)。首先就是距離帶來(lái)的延時(shí)問(wèn)題,三個(gè)數(shù)據(jù)中心相互之間距離上千公里是非常常見(jiàn),即使按照光速傳遞,經(jīng)過(guò)幾跳路由,延時(shí)問(wèn)題還是會(huì)暴露出來(lái),如果延遲達(dá)到數(shù)秒這對(duì)業(yè)務(wù)切換是有影響的。比如通過(guò)調(diào)整路由COST數(shù)值,將訪(fǎng)問(wèn)數(shù)據(jù)中心A的流量引向數(shù)據(jù)中心B,受到延遲的影響,業(yè)務(wù)短時(shí)可能無(wú)法得到及時(shí)相應(yīng),這樣會(huì)積累大量的訪(fǎng)問(wèn)消息,一旦時(shí)間過(guò)長(zhǎng)就會(huì)讓系統(tǒng)崩潰。其次是數(shù)據(jù)一致性的問(wèn)題,多活是要實(shí)現(xiàn)多個(gè)數(shù)據(jù)中心同時(shí)都可以寫(xiě),如果兩個(gè)點(diǎn)同時(shí)寫(xiě)了一個(gè)用戶(hù)的同一行數(shù)據(jù),那這個(gè)時(shí)候就無(wú)法判斷合過(guò)來(lái)的時(shí)候,到底哪邊的數(shù)據(jù)是對(duì)的,這個(gè)是很?chē)?yán)重的。試想想誰(shuí)也不想自己的銀行賬戶(hù)今天多了幾千塊,明天又少了幾千塊吧,一定要保持三個(gè)中心的數(shù)據(jù)一致性,尤其是在數(shù)據(jù)中心之間切流量的過(guò)程更要注意,避免數(shù)據(jù)錯(cuò)亂,這個(gè)是非常具有技術(shù)難度的,意味著從底層物理鏈路直到軟件平臺(tái)的應(yīng)用層層都要感應(yīng)到這次切換,如果沒(méi)感應(yīng)到就可能出問(wèn)題,感應(yīng)慢了也可能會(huì)出問(wèn)題,在這個(gè)中間過(guò)程中數(shù)據(jù)保護(hù)做得不好,就有可能數(shù)據(jù)錯(cuò)亂甚至丟失,對(duì)于承載重要業(yè)務(wù)的數(shù)據(jù)中心,這樣的結(jié)果是非常嚴(yán)重的。再次就是安全性,“三活”數(shù)據(jù)中心相當(dāng)于對(duì)外的接口多了,這樣受到攻擊的可能性要大得多,更多地將數(shù)據(jù)中心暴露出來(lái),一旦一個(gè)數(shù)據(jù)中心被攻破,整個(gè)“三活”系統(tǒng)都要受到威脅。為了增加安全性,又必須要在每個(gè)數(shù)據(jù)中心都要部署安全防火墻,這樣數(shù)據(jù)中心的成本大為增加,而且既要對(duì)外過(guò)濾,又要放開(kāi)數(shù)據(jù)中心之間正常的流量訪(fǎng)問(wèn),防火墻的過(guò)濾規(guī)則設(shè)計(jì)也會(huì)比較復(fù)雜,尤其是對(duì)于業(yè)務(wù)量大的數(shù)據(jù)中心。不僅要做到安全控制,還要在進(jìn)行數(shù)據(jù)中心之間業(yè)務(wù)切換時(shí),防火墻及時(shí)更新自己的過(guò)濾規(guī)則,以免出現(xiàn)流量不通的問(wèn)題。最后就是成本問(wèn)題,運(yùn)維三個(gè)數(shù)據(jù)中心自然要比“雙活”兩個(gè)數(shù)據(jù)中心,災(zāi)備中心要復(fù)雜得多,需要更多的人力物力來(lái)確保三個(gè)數(shù)據(jù)中心都正常運(yùn)行。“三活”數(shù)據(jù)中心的運(yùn)營(yíng)成本過(guò)高也使得很多數(shù)據(jù)中心望而卻步,另外“三活”數(shù)據(jù)中心技術(shù)理論先行,還鮮有實(shí)際應(yīng)用,技術(shù)風(fēng)險(xiǎn)很高,這也是“三活”數(shù)據(jù)中心面臨的問(wèn)題。
縱然“三活”數(shù)據(jù)中心有這樣那樣的問(wèn)題或者困難,但卻是確保數(shù)據(jù)中心業(yè)務(wù)安全最好的一種備份方式。目前來(lái)看“三活”數(shù)據(jù)中心技術(shù)實(shí)現(xiàn)過(guò)于復(fù)雜,這使得很多數(shù)據(jù)中心不愿意嘗試,阿里愿意做第一個(gè)吃螃蟹的人。多活數(shù)據(jù)中心理論提了好幾年了,真正用起來(lái)雙活的數(shù)據(jù)中心鳳毛麟角,用起“三活”的阿里是頭一份,也只有像阿里這樣技術(shù)雄厚的巨頭互聯(lián)網(wǎng)企業(yè)才能玩得起“三活”數(shù)據(jù)中心,相信經(jīng)過(guò)實(shí)踐的檢驗(yàn),“三活”甚至更多活數(shù)據(jù)中心技術(shù)會(huì)越來(lái)越完善,多活數(shù)據(jù)中心未來(lái)必將遍地開(kāi)花。