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