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