企業(yè)網(wǎng)D1Net 7月25日 數(shù)據(jù)中心是一個(gè)由諸多電子設(shè)備構(gòu)成的復(fù)雜信息系統(tǒng),對(duì)外作為一個(gè)整體提供各種信息處理,完成各類數(shù)據(jù)的計(jì)算、存儲(chǔ)、下載等服務(wù)。對(duì)數(shù)據(jù)中心的任何調(diào)整,都會(huì)牽涉到所有設(shè)備的處理變化,正可謂如多米諾效應(yīng),動(dòng)一發(fā)而觸全身。所謂的多米諾效應(yīng),是一個(gè)叫多米諾的意大利傳教士將宋朝時(shí)得到骨牌游戲帶回了米蘭,這種游戲迅速傳遍整個(gè)歐洲,成為了歐洲人一項(xiàng)高雅運(yùn)動(dòng)。多米諾效應(yīng)喻指在一個(gè)相互聯(lián)系的系統(tǒng)中,一個(gè)很小的初始能量就可能產(chǎn)生一系列的連鎖反應(yīng),最終形成由量變達(dá)到質(zhì)變的過(guò)程。
顯然我們不希望在數(shù)據(jù)中心總會(huì)發(fā)生這樣的事情,但是數(shù)據(jù)中心的很多業(yè)務(wù)正如多米諾骨牌,動(dòng)一發(fā)而觸全身。先來(lái)看看網(wǎng)絡(luò)部分,傳統(tǒng)網(wǎng)絡(luò)都是由二三層網(wǎng)絡(luò)構(gòu)成,STP/OSPF構(gòu)成了全網(wǎng)最廣泛應(yīng)用的基礎(chǔ)技術(shù)。而STP和OSPF都是全網(wǎng)設(shè)備參與計(jì)算的協(xié)議,對(duì)于二層設(shè)備,任何一個(gè)末端節(jié)點(diǎn)的設(shè)備就算出現(xiàn)了端口的UP/DOWN,都會(huì)影響到全網(wǎng)設(shè)備的計(jì)算。當(dāng)然STP協(xié)議通過(guò)復(fù)雜的計(jì)算管理著這個(gè)巨型的二層王國(guó),各種事件和消息都可能會(huì)全網(wǎng)傳播,有時(shí)就會(huì)引起全網(wǎng)震蕩,這樣的多米諾現(xiàn)象在數(shù)據(jù)中心里并不少見(jiàn)。OSPF協(xié)議是路由學(xué)習(xí)協(xié)議,全網(wǎng)設(shè)備要實(shí)現(xiàn)全互通,需要OSPF協(xié)議維護(hù)全網(wǎng)所有網(wǎng)絡(luò)設(shè)備的路由表,當(dāng)一臺(tái)設(shè)備的路由表發(fā)生變化時(shí),它需要通知全網(wǎng)的設(shè)備進(jìn)行路由更新。可見(jiàn),數(shù)據(jù)中心網(wǎng)絡(luò)作為一個(gè)整體,需要對(duì)變化的細(xì)節(jié)做出響應(yīng),這樣必然帶來(lái)多米諾效應(yīng)。為了消除這樣的影響,往往通過(guò)一些技術(shù)手段去削弱這種變化。比如:STP支持實(shí)例的劃分,將整個(gè)數(shù)據(jù)中心網(wǎng)絡(luò)劃分為多個(gè)實(shí)例,實(shí)例之間是隔離的,當(dāng)網(wǎng)絡(luò)拓?fù)浒l(fā)生變化時(shí),僅僅影響實(shí)例內(nèi)的設(shè)備,實(shí)例之外的設(shè)備不受影響。OSPF也可以將設(shè)備劃分到不同的區(qū)域中,路由分為區(qū)域內(nèi)路由和域間路由,當(dāng)一個(gè)區(qū)域內(nèi)的路由變化時(shí),統(tǒng)一通過(guò)邊緣路由器發(fā)給別的區(qū)域,即域間路由。這樣就能有效減少全網(wǎng)的協(xié)議震蕩,保持全網(wǎng)路由穩(wěn)定。確保數(shù)據(jù)中心網(wǎng)絡(luò)不再發(fā)生多米諾效應(yīng)的方法還有不少,這些技術(shù)的宗旨就是將危險(xiǎn)消除于搖籃之中。
除了網(wǎng)絡(luò),對(duì)于服務(wù)器設(shè)備也是同樣。在數(shù)據(jù)中心里,服務(wù)器的數(shù)量最大,服務(wù)器主要是計(jì)算的功能,一般的數(shù)據(jù)中心都會(huì)擁有數(shù)百甚至數(shù)千臺(tái)的服務(wù)器。這些服務(wù)器承載著各種各樣的業(yè)務(wù)。很多業(yè)務(wù)是要很多臺(tái)服務(wù)器共同完成的,所以當(dāng)一臺(tái)服務(wù)器異常時(shí),可能導(dǎo)致整個(gè)業(yè)務(wù)無(wú)法正常運(yùn)行。比如在計(jì)費(fèi)系統(tǒng)中,如果計(jì)算的服務(wù)器出現(xiàn)了故障,導(dǎo)致消息記錄堆積,可能導(dǎo)致無(wú)法進(jìn)行正常的計(jì)費(fèi)或者記錄的信息都是錯(cuò)誤的。實(shí)際上在一個(gè)計(jì)費(fèi)系統(tǒng)中,還有客戶前端,后期統(tǒng)計(jì),數(shù)據(jù)存儲(chǔ)等部分,都因?yàn)橛?jì)費(fèi)服務(wù)器的故障而導(dǎo)致整個(gè)系統(tǒng)無(wú)法正常運(yùn)行,產(chǎn)生了多米諾效應(yīng)。解決這類問(wèn)題出現(xiàn)的方式是采用集群的技術(shù),即多臺(tái)服務(wù)器虛擬化為一臺(tái)設(shè)備,處理相同的應(yīng)用,當(dāng)其中一臺(tái)服務(wù)器故障時(shí),立即由集群中的其它設(shè)備接管,應(yīng)用層根本感知不到這種變化。這種集群技術(shù)是現(xiàn)代數(shù)據(jù)中心所必須的,尤其是一些大型數(shù)據(jù)中心,大型數(shù)據(jù)中心一般擁有成千上萬(wàn)臺(tái)的服務(wù)器,幾乎天天都有設(shè)備故障,只有通過(guò)集群技術(shù)才能確保業(yè)務(wù)不受影響。
防火墻是數(shù)據(jù)中心安全的保護(hù)神,通過(guò)防火墻可以有效攔截針對(duì)數(shù)據(jù)中心的各種攻擊。一般有硬件防火墻和軟件防火墻之分,硬件防火墻一般用于部署在數(shù)據(jù)中心流量出入口的地方,對(duì)數(shù)據(jù)中心整體流量進(jìn)行監(jiān)測(cè)。顯然一旦防火墻故障,帶來(lái)的影響是嚴(yán)重的,整個(gè)數(shù)據(jù)中心的業(yè)務(wù)全部會(huì)掛掉,防火墻的過(guò)濾規(guī)則設(shè)計(jì)也非常重要,由于針對(duì)的是整網(wǎng)的流量,要考慮周全,不合理的過(guò)濾規(guī)則仍然可能導(dǎo)致業(yè)務(wù)無(wú)法進(jìn)行。為了防止防火墻出現(xiàn)故障,一般我們通過(guò)部署主備防火墻甚至虛擬防火墻技術(shù),當(dāng)主用防火墻出現(xiàn)故障時(shí),及時(shí)將流量切到備用上來(lái),確保流量不受影響。軟件防火墻一般統(tǒng)一安裝在所有服務(wù)器上,當(dāng)軟件防火墻有BUG,所有的服務(wù)器都會(huì)受到影響,影響面巨大。軟件防火墻可以對(duì)具體應(yīng)用進(jìn)行全面防護(hù),正是介入到應(yīng)用層過(guò)深,所以防火墻對(duì)業(yè)務(wù)的影響也是很難發(fā)現(xiàn)的,這讓一些隱患早期很難被人所發(fā)現(xiàn),等到問(wèn)題暴露出來(lái)已經(jīng)晚了,已經(jīng)無(wú)法再對(duì)業(yè)務(wù)進(jìn)行修復(fù),就算卸掉防火墻也無(wú)濟(jì)于事。這時(shí)重裝系統(tǒng),重新部署各種應(yīng)用是唯一的方法,這給數(shù)據(jù)中心和維護(hù)人員都增加了不少工作量。
當(dāng)然除了這些重要承載業(yè)務(wù)的關(guān)鍵設(shè)備,還有很多小的隱患,若不及時(shí)消除可能帶來(lái)巨大損失。比如:有的設(shè)備內(nèi)存占用率比較高,雖然不影響業(yè)務(wù),但隨著占用率的逐步提升,設(shè)備的軟件應(yīng)用在申請(qǐng)內(nèi)存時(shí)頻繁出現(xiàn)失敗,就會(huì)不斷有業(yè)務(wù)中斷。當(dāng)發(fā)現(xiàn)設(shè)備的內(nèi)存利用率超過(guò)50%時(shí),應(yīng)該引起重視,及時(shí)消除。除了內(nèi)存占用率,設(shè)備CPU占用率,設(shè)備運(yùn)行環(huán)境溫度,各種日志告警,電源風(fēng)扇異常等小毛病都需要引起足夠的重視,當(dāng)業(yè)務(wù)正常時(shí),往往忽視這些告警的存在,但長(zhǎng)期以往,小問(wèn)題就會(huì)引發(fā)大事故。重視細(xì)節(jié),才能徹底消除導(dǎo)致故障的多米諾效應(yīng)。
“細(xì)節(jié)決定成敗”這句話是對(duì)多米諾效應(yīng)解決方法的最好詮釋,只有重視細(xì)節(jié),不放過(guò)任何一個(gè)小小的隱患,才能避免多米諾效應(yīng)的事故發(fā)生。我們應(yīng)該避免在數(shù)據(jù)中心內(nèi)部部署易于產(chǎn)生多米諾效應(yīng)的設(shè)備與技術(shù),讓數(shù)據(jù)中心各個(gè)模塊之間相互隔離,但又彼此保持著各種聯(lián)系。模塊之間通過(guò)各種接口完成業(yè)務(wù)交互,各模塊獨(dú)立運(yùn)行,避免對(duì)業(yè)務(wù)產(chǎn)生共振,觸發(fā)多米諾效應(yīng)。