當(dāng)數(shù)據(jù)中心的網(wǎng)絡(luò)規(guī)模變得很大時(shí),不得不要增加網(wǎng)絡(luò)設(shè)備,實(shí)現(xiàn)多層級(jí)聯(lián)。現(xiàn)在的數(shù)據(jù)中心往往都是樹(shù)形結(jié)構(gòu),核心放置幾臺(tái)轉(zhuǎn)發(fā)容量超大的設(shè)備,然后下掛多層設(shè)備(因?yàn)槎丝跀?shù)量不夠,可能需要多層),數(shù)十臺(tái)甚至幾百臺(tái)的網(wǎng)絡(luò)設(shè)備級(jí)聯(lián)到一起,一旦出了故障,如何能快速找到故障設(shè)備,經(jīng)常困擾著很多網(wǎng)絡(luò)運(yùn)維人員。
數(shù)據(jù)中心的網(wǎng)絡(luò)設(shè)備都是有冗余的,只要網(wǎng)絡(luò)故障時(shí)找到故障設(shè)備,將其隔離即可恢復(fù)業(yè)務(wù),然后再去慢慢排查故障原因,但從數(shù)百臺(tái)的設(shè)備中找到具體哪臺(tái)故障絕非易事。網(wǎng)絡(luò)故障往往先從應(yīng)用側(cè)得到故障反饋,然后開(kāi)始排障,這時(shí)應(yīng)用人員往往描述的只是一個(gè)應(yīng)用訪問(wèn)故障現(xiàn)象,他不會(huì)告訴你具體哪些地址到哪些地址不通,有時(shí)甚至是錯(cuò)誤的信息,這極大延誤了問(wèn)題定位時(shí)長(zhǎng)。問(wèn)題定位大部分時(shí)間都是花在故障現(xiàn)象的整理過(guò)程中,怎么辦?數(shù)據(jù)中心網(wǎng)絡(luò)該如何快速排障?本文將給出答案。
網(wǎng)絡(luò)故障如果要從應(yīng)用側(cè)反饋的故障現(xiàn)象去分析,這時(shí)已經(jīng)晚了,而且容易被應(yīng)用人員帶入誤區(qū),有些應(yīng)用人員反饋的現(xiàn)象只是他自己看到的,現(xiàn)象很可能只是一個(gè)局部現(xiàn)象,并不能反映出整個(gè)網(wǎng)絡(luò)的故障情況。所以要靠自己,做好網(wǎng)絡(luò)監(jiān)控,通過(guò)監(jiān)控去發(fā)現(xiàn)問(wèn)題,從而迅速找到故障設(shè)備,做設(shè)備隔離或者解除故障。
早期的網(wǎng)絡(luò)監(jiān)控主要是對(duì)設(shè)備的一些日志和端口流量做監(jiān)控,更多的時(shí)候這些信息并不夠,并不能及時(shí)發(fā)現(xiàn)問(wèn)題。很多網(wǎng)絡(luò)設(shè)備廠商說(shuō)自己的設(shè)備日志非常完整,但實(shí)際使用時(shí)仍有一些極端情況或者軟件BUG導(dǎo)致故障時(shí)無(wú)日志輸出,這時(shí)就要針對(duì)流量進(jìn)行定位。到了這個(gè)時(shí)候,就需要網(wǎng)絡(luò)人員去找應(yīng)用人員了解故障現(xiàn)象,通過(guò)現(xiàn)場(chǎng)找出一些丟包或者不通的IP地址來(lái),然后進(jìn)行網(wǎng)絡(luò)流通,對(duì)這個(gè)故障流量經(jīng)過(guò)的設(shè)備都做流通,找到故障設(shè)備。既然是樹(shù)形網(wǎng)絡(luò),每一層都有很多設(shè)備,這個(gè)流通量是相當(dāng)大的,而且并不是所有的設(shè)備都能支持對(duì)所有特征的流量做統(tǒng)計(jì),有不支持的設(shè)備就會(huì)使得統(tǒng)計(jì)不準(zhǔn),加大了尋找故障設(shè)備的難度,做網(wǎng)絡(luò)運(yùn)維的這些年都是這樣堅(jiān)持過(guò)來(lái)的。
顯然,之前的網(wǎng)絡(luò)排障方式有效但效率太低,定位故障時(shí)間長(zhǎng),對(duì)業(yè)務(wù)影響大。現(xiàn)在的網(wǎng)絡(luò)監(jiān)控都是針對(duì)數(shù)據(jù)流的,對(duì)網(wǎng)絡(luò)中的具體數(shù)據(jù)流進(jìn)行監(jiān)控,這樣一旦數(shù)據(jù)流量有中斷,立即可以查明故障位置。在這里,要提到幾種新興的網(wǎng)絡(luò)監(jiān)控方法,也叫網(wǎng)絡(luò)可視化技術(shù),是快速排障的最有效方法。
首先是INT(In-band Network Telemetry,帶內(nèi)網(wǎng)絡(luò)遙測(cè)技術(shù))技術(shù),INT通過(guò)在數(shù)據(jù)層面收集和報(bào)告網(wǎng)絡(luò)的狀態(tài)來(lái)實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)狀態(tài)的監(jiān)控。當(dāng)數(shù)據(jù)報(bào)文進(jìn)入第一個(gè)網(wǎng)絡(luò)設(shè)備時(shí),設(shè)備上設(shè)置采樣方式采樣并鏡像出該業(yè)務(wù)流報(bào)文,INT在報(bào)文基礎(chǔ)上封裝一個(gè)INT頭,并將需要收集的交換機(jī)信息填入到INT數(shù)據(jù)段中,報(bào)文經(jīng)過(guò)的所有網(wǎng)絡(luò)設(shè)備均這樣處理,直到最后一個(gè)服務(wù)器連接的網(wǎng)絡(luò)設(shè)備將INT頭剝離。
報(bào)文經(jīng)過(guò)的每臺(tái)設(shè)備都將采集到的INT報(bào)文通過(guò)gRPC報(bào)文發(fā)送到遠(yuǎn)端的監(jiān)控服務(wù)器進(jìn)行解析和呈現(xiàn),INT報(bào)文中攜帶了報(bào)文轉(zhuǎn)發(fā)的延遲、設(shè)備擁塞等情況,都能呈現(xiàn)到監(jiān)控服務(wù)器上,一旦數(shù)據(jù)報(bào)文出現(xiàn)丟包或者不通情況,監(jiān)控服務(wù)器立即感知到,并幾秒就能確定問(wèn)題范圍和故障設(shè)備。
其次是ERSPAN(Encapsulated Remote Switch Port Analyzer,跨三層IP傳輸?shù)倪h(yuǎn)程網(wǎng)絡(luò)流量監(jiān)控技術(shù)),ERSPAN的報(bào)文基于GRE封裝,并通過(guò)以太網(wǎng)轉(zhuǎn)發(fā)到任何IP路由可達(dá)的地方。ERSPAN是將源端口報(bào)文復(fù)制一份通過(guò)GRE(Generic Routing Encapsulation)發(fā)送到目的服務(wù)器進(jìn)行解析,采集服務(wù)器的物理位置不受限制,這樣我們可以將整個(gè)網(wǎng)絡(luò)的關(guān)鍵流量轉(zhuǎn)發(fā)都通過(guò)ERSPAN發(fā)送到監(jiān)控服務(wù)器上,流量在哪部分網(wǎng)絡(luò)出現(xiàn)了丟棄,一目了然。第三是sFlow和Netstream,這兩種都是數(shù)據(jù)采樣技術(shù),Netstream采集的比較完整,但需要有專(zhuān)用的硬件來(lái)完成,在網(wǎng)絡(luò)中部署sFlow和Netstream后,可以通過(guò)gRPC將監(jiān)控?cái)?shù)據(jù)發(fā)給服務(wù)器,由監(jiān)控服務(wù)器計(jì)算和整理,并將結(jié)果圖形化顯示出現(xiàn),一旦哪部分網(wǎng)絡(luò)有問(wèn)題,立即可以在監(jiān)控服務(wù)器上顯現(xiàn)。
sFlow和Netstream采集的都是報(bào)文頭的主要特征,而不是報(bào)文整個(gè)內(nèi)容,這個(gè)和INT、ERSPAN有較大區(qū)別,應(yīng)對(duì)絕大部分網(wǎng)絡(luò)故障排查都沒(méi)有問(wèn)題,除非應(yīng)用報(bào)文特征比較特殊,Netstream捕捉不到,這時(shí)只能求助INT和ERSPAN。在一個(gè)網(wǎng)絡(luò)中,并不介意三種監(jiān)控方案都部署,這樣在故障時(shí),可以從多個(gè)角度采集的數(shù)據(jù)去分析問(wèn)題。
還有一點(diǎn)很重要,盡量要將這些數(shù)據(jù)采集通過(guò)管理網(wǎng)發(fā)向監(jiān)控服務(wù)器,否則一旦數(shù)據(jù)網(wǎng)出問(wèn)題,可能監(jiān)控的數(shù)據(jù)也無(wú)法正常達(dá)到監(jiān)控服務(wù)器。大部分情況下,數(shù)據(jù)網(wǎng)絡(luò)故障很少波及到管理網(wǎng),所有設(shè)備依然可以正常訪問(wèn),如果故障時(shí),很多設(shè)備都無(wú)法通過(guò)管理網(wǎng)進(jìn)行訪問(wèn),基本可以判定這臺(tái)設(shè)備就是故障點(diǎn)。
有了以上這些網(wǎng)絡(luò)監(jiān)控方法,出現(xiàn)故障時(shí)第一時(shí)間發(fā)現(xiàn)就不難了,而且完全可以實(shí)現(xiàn)自動(dòng)化,當(dāng)發(fā)現(xiàn)故障時(shí),由監(jiān)控服務(wù)器自動(dòng)下發(fā)隔離命令,將故障設(shè)備隔離,自動(dòng)恢復(fù)。這樣在應(yīng)用報(bào)障過(guò)來(lái)之前,就可以找到網(wǎng)絡(luò)故障位置,及時(shí)隔離故障設(shè)備,恢復(fù)業(yè)務(wù),這樣可以極大縮短故障分析時(shí)間,對(duì)業(yè)務(wù)影響很小,甚至業(yè)務(wù)部分根本感知不到故障。像INT和ERSPAN這些網(wǎng)絡(luò)監(jiān)控的技術(shù)實(shí)際應(yīng)用的效果還未知,都是最近總被提及的技術(shù),還有待實(shí)踐的考驗(yàn)。SFLOW和Netstream技術(shù)比較成熟,但真正在網(wǎng)絡(luò)排障時(shí)用到的還不多,需要加大這方面的推廣。
依靠這些監(jiān)控技術(shù),可以快速排除網(wǎng)絡(luò)故障,這對(duì)于數(shù)據(jù)中心運(yùn)維來(lái)說(shuō),意義重大,極大地提升了運(yùn)維效率。