運維是一門藝術(shù),也是一門苦差事,每個人對此均有不同的理解,正所謂一千個人眼中有一千個哈姆雷特。干一行就要愛一行,既然選擇了這個行業(yè),最好是能把它做到最好,發(fā)揮自己最大的價值。本文來聊聊在日常運維當中涉及網(wǎng)絡(luò)的方方面面。
分為以下四個方面:
一、系統(tǒng)運維網(wǎng)絡(luò)方面的規(guī)劃和思考
二、系統(tǒng)運維中網(wǎng)絡(luò)方面操作梳理
三、系統(tǒng)運維過程中需要掌握的利器
四、故障的診斷與分析
同時也將分享一些具有參考意義的經(jīng)驗和方法。
一、系統(tǒng)運維中網(wǎng)絡(luò)方面的規(guī)劃與思考
在很多公司,崗位職責都是很明確的,專職轉(zhuǎn)崗,每人或者每組負責一塊業(yè)務(wù)。系統(tǒng)運維崗基本上在IT架構(gòu)上相對偏后一些,該崗位和網(wǎng)絡(luò)管理崗基本上是平行的。因為今天咱們說的是系統(tǒng)運維方面網(wǎng)絡(luò)方面的事情,或多或少都會和網(wǎng)絡(luò)崗打交道,那么談一點網(wǎng)絡(luò)崗的內(nèi)容就顯得很有必要。
系統(tǒng)運維建立在網(wǎng)絡(luò)的基礎(chǔ)之上,如果沒有一個相對合理的網(wǎng)絡(luò)架構(gòu),恐怕系統(tǒng)運維做起來也不是那么的順手。一個公司基本上都會把網(wǎng)絡(luò)和服務(wù)器獨立開來,劃分不同的區(qū)域擺放設(shè)備,很多時候都是物理隔離。服務(wù)器接入交換機大多是經(jīng)過配線架連接起來和有的服務(wù)器機柜頭柜安裝網(wǎng)絡(luò)交換機,是相對比較常見的兩種方式。
走線從側(cè)面可以反映一個企業(yè)對IT的重視程度和投入,很多企業(yè)是做不到如圖這么漂亮的效果的。這一切一切還要立足于預(yù)算,現(xiàn)在基本上沒有預(yù)算啥事也干不了。
大多數(shù)IT機房當初建立的時候,從設(shè)備混亂擺放到區(qū)域明確劃分存放,又從區(qū)域功能明確到后來的后來的功能區(qū)域模糊,都反映了一個問題:計劃趕不上變化。十年前還相當前衛(wèi)的規(guī)劃,到現(xiàn)在已經(jīng)跟不上時代,這并不是誰的錯,還是要求我們?nèi)ミm應(yīng)去改變,業(yè)務(wù)引領(lǐng)變革,基礎(chǔ)架構(gòu)也需要做相應(yīng)調(diào)整,所謂唯一不變的就是變。
我心中企業(yè)目前現(xiàn)階段相對比較理想的架構(gòu)這樣的,如圖所示:
這樣一個傳統(tǒng)企業(yè)典型的網(wǎng)絡(luò)結(jié)構(gòu),保證每個核心節(jié)點都是雙鏈路,鏈路異常自動切換,各種切換在這種典型的網(wǎng)絡(luò)結(jié)構(gòu)上都或多或少的簡單或復雜,不盡相同。網(wǎng)絡(luò)方面關(guān)注幾個點:穩(wěn)定,安全,自動化。業(yè)務(wù)系統(tǒng)組件也盡量避免單點問題。
這樣后端業(yè)務(wù)系統(tǒng)在連接網(wǎng)絡(luò)層面穩(wěn)定性就有了保障,在主機系統(tǒng)層面,盡量避免單獨問題,消除性能瓶頸,異常能夠自動告警自動修復得相對比較完美,當然這一切還要立足于預(yù)算。
二、系統(tǒng)運維中網(wǎng)絡(luò)方面操作梳理
在系統(tǒng)運維中,經(jīng)常涉及的網(wǎng)絡(luò)方面的操作,一般由以下幾個方面組成。
1.設(shè)備上線,物理連線設(shè)置
很多運維人員要從事從剛開始立項到項目上線再到后期運維的一條龍服務(wù),每個環(huán)節(jié)都要自己親自動手,這是好事也是壞事,好的是自己的環(huán)境一般會非常的熟悉,不好的是事必躬親,不出活,業(yè)績不明顯。插個線都要自己來,你恐怕也沒太多精力干其他的,這就是個矛盾體,自己把握就好。
2.網(wǎng)絡(luò)邏輯配置調(diào)整
這一塊內(nèi)容就涉及到了具體的操作,你可以手工一步一步操作,也可以借助高大上的工具批量完成,這個要看企業(yè)的IT建設(shè)的能力。一個掩碼一個點錯誤都會導致網(wǎng)絡(luò)連接異常。如果自己有開發(fā)能力也可以使用腳本或語言寫成成型的東西,平時多多積累,使用的時候就會方便很多。
具體內(nèi)容涉及:
1)配置ip,別名,設(shè)置個端口監(jiān)聽,綁定個網(wǎng)卡,設(shè)置個路由
2)劃分個vlan,配置個trunk
3)測試個端口,配置個監(jiān)控
具體的操作過程在此不做過多的介紹,比如做個網(wǎng)卡綁定啊,測試個端口啊,這些操作網(wǎng)上有大批的文檔可以查閱,本節(jié)內(nèi)容就是描述在日常的Linux系統(tǒng)運維方面所涉及網(wǎng)絡(luò)方面的操作,有一個整體的印象。
3.性能分析與優(yōu)化
該部分內(nèi)容相對不太容易操作,不是隨隨便都可以依葫蘆畫瓢就能完成,性能穩(wěn)定分析和定位相對困難一些,很多場景都需要結(jié)合多個方面進行統(tǒng)一分析。這個需要一些工作經(jīng)驗的結(jié)論和沉淀,選擇合適的工具,多方面配合往往會有比較好的效果。
工欲善其事,必先利其器:
熟練掌握該圖上面的各種工具,基本上可以解決性能分析99%的工作,那剩下的1%的不是bug就是天災(zāi)。這里其實在說笑了,但這也說明一個好的工具有多么的重要。剩余就是要仔細認真,再好的工具,不會用也不行,態(tài)度是第一位的。
三、系統(tǒng)運維過程中需要掌握的利器
在上文中分享了一個圖,該圖涵蓋的面比較廣,本節(jié)內(nèi)容主要針對網(wǎng)絡(luò)方面進行一些梳理,分享一下在工作當中經(jīng)常使用的利器。
首先我們來分享一張目前Linux系統(tǒng)性能查看調(diào)優(yōu)工具圖:
這張圖片基本上涵蓋了Linux系統(tǒng)各個方面的性能工具,可以說相當?shù)娜?,下面我們看一下有關(guān)網(wǎng)絡(luò)方面我們常用的命令或工具有哪些,這樣有助于大家方便查看和使用。
以上工具基本上在日常工作當中經(jīng)常會使用到,每個工具都有其側(cè)重點,這里列舉的只是大量工具中的一小部分,因為每個人使用習慣不一樣,各有側(cè)重,選擇適合自己就好,以上工具僅供參考。
本文內(nèi)容意在梳理分享,不在具體的工具使用方面做更加深入的講解,因為每一個工具如果詳細講起來都會涉及大量篇幅,也不可能面面俱到,有興趣的可以在社區(qū)或搜索引擎搜索之。
推薦小工具:
Dig,ethtool,iperf,iftop,dstat,mtr
比如在你想知道兩個主機之間的帶寬是否能夠到達相應(yīng)的帶寬,請使用iperf。想動態(tài)的查看目的地是否可到以及延遲等信息,請使用mtr。
四、故障的診斷與分析
故障診斷處理方面不是一兩句話就可以說清楚的,很大程度上在于平時經(jīng)驗的積累,很多故障都是相互關(guān)聯(lián)的,如何順藤摸瓜,找到問題的最終原因,有一些方法可以借鑒。這里不具體描述解決那個問題用了什么方法,只是聊聊解決問題有哪些經(jīng)驗和技巧。
分享一點小小的經(jīng)驗:
a)平時要多問幾個為什么
b)故障是否可以重現(xiàn),找到第一個場景,關(guān)注整體結(jié)合細節(jié)
c)多方面相互參考,同事之間相互配合
d)可以多做幾個假設(shè),直到推翻自己的想法
e)自己的工具箱要有幾個使用順手的TOOLS,包括自己開發(fā)的
以上只是一些解決問題的方法,具體問題還要具體分析。
下面我們結(jié)合一個真實的案例來描述一下:在出現(xiàn)網(wǎng)絡(luò)故障時,。我們?nèi)绾蜗朕k法快速的排除問題。
場景描述:
某日下午,公司里內(nèi)部的業(yè)務(wù)系統(tǒng)突然出現(xiàn)反應(yīng)比較慢的問題,多個業(yè)務(wù)管理員過來描述問題現(xiàn)象。近期一段時間內(nèi)曾出現(xiàn)過類似的問題,該類問題的原因是由于業(yè)務(wù)區(qū)的防火墻老舊,處理能力不足,導致CPU在短時間內(nèi)使用率激增,超過了境界閾值很多,導致此類現(xiàn)象的發(fā)生。
解決思路:
1)初步定位
又是類似問題的出現(xiàn),肯定不是個別業(yè)務(wù)系統(tǒng)的問題,一看就是有共性的,問題應(yīng)該是出現(xiàn)在網(wǎng)絡(luò)設(shè)備上才對,這樣才會造成大面積的問題,可是該防火墻一周前已經(jīng)升級換代了,不應(yīng)該有此類問題了。查看業(yè)務(wù)區(qū)域拓撲,因為拓撲已經(jīng)在心中,直接搞起。
2)逐步排查
首先登錄新的防火墻,查看CPU使用率,一切正常,看來問題不在此。
然后登錄業(yè)務(wù)系統(tǒng)去交換機查看負載,一看果然是高,高達99%,我勒個去,配合網(wǎng)絡(luò)管理員查看問題原因,查看各種性能信息,初步?jīng)]有太合理的線索,不能精準定位問題。收集各種信息準備發(fā)給廠商支持。
3)協(xié)助排查
多方回憶近期有無做過其他操作。
網(wǎng)絡(luò)方面:一周前升級換代該區(qū)域防護墻
主機方面:昨天接入6太新設(shè)備,并做端口綁定bond
4)再次排查
由于該區(qū)域Windows主機設(shè)備均已經(jīng)安裝殺毒軟件,病毒的可能性不大,Linux病毒可能性就更小了,先初步忽略。由于昨天上線6個主機設(shè)備,著重觀察網(wǎng)絡(luò)設(shè)備所連接端口,
通過交換機和監(jiān)控性能視圖分析該端口今天出現(xiàn)流量過大的問題,端口飽和。由于影響業(yè)務(wù)面比較廣,需要快速定位問題或者暫時消除影響。初步意見,交換機上線shutdown這6臺機器所連端口。持續(xù)觀察了一段時間,交換機CPU負載下來了,其他業(yè)務(wù)逐漸恢復??紤]到已經(jīng)下班,暫時觀察一下,明天看情況再做調(diào)整。并結(jié)合一下廠商意見。
5)第二日上班后,6臺機器業(yè)務(wù)恢復,交換機CPU負載又上來了,但是其他業(yè)務(wù)沒有影響,什么情況?再次進行梳理,找問題線索。
6)進一步排查
網(wǎng)絡(luò)管理員打開debug查看信息,經(jīng)過一段時間的分析梳理發(fā)現(xiàn)有12個mac地址頻繁的在兩臺交換機來回出現(xiàn),核對mac后,可以定位引起CPU過載的原因是這新上線的6臺機器(每臺機器兩個端口bond),果斷拔掉其中一個端口,交換機CPU負載很快下來,那么就可以能定位bond綁定有問題。
7)系統(tǒng)進一步排查
我做了很多次bond了,就算這次換了一個高版本操作系統(tǒng)應(yīng)該也沒有問題啊,果斷檢查之,查看綁定模式,一看模式為0,當時一驚,不應(yīng)該啊。進一步查看確實是模式配置錯誤了,當初我想設(shè)定的是模式6,后來不知道怎么寫成0了,以為其他機器都是拷貝過去的,所以都是模式0了,立馬改之。重啟網(wǎng)卡,一切看似正常,重新插入網(wǎng)線觀察交換機CPU負載很穩(wěn)定。這次CPU高應(yīng)該是這個引起的無疑了,這個鍋扣到我腦袋上了。
8)下午14:00,問題又出現(xiàn)了,這次交換機的cpu也不高了,什么情況,一臉懵逼的狀態(tài)。
再次排查,這次聚焦交換機,收集大量信息反饋給廠商,很快廠商給出的建議說是端口飽和丟包嚴重,影響了其他業(yè)務(wù)端口的正常使用,經(jīng)過廠商進一步排查確認,該型號交換機雖然以前性能很好,但是已經(jīng)屬于老舊設(shè)備,該型號端口組背板能力只有1G,該組其他端口帶寬總和已經(jīng)超過了1G,屬于交換機處理能力不足。
9)進一步協(xié)調(diào)該項目人員,調(diào)整大量交互端口成內(nèi)網(wǎng)私有網(wǎng)段,單獨使用一個千兆交換機做內(nèi)部業(yè)務(wù)交互使用,外部訪問還繼續(xù)走這個交換機。最終這個問題得到解決。
總結(jié):
此次事件引出三個問題:
1.端口綁定不可馬虎,需要仔細再仔細,并做驗證
2.預(yù)估業(yè)務(wù)端口網(wǎng)絡(luò)流量不足,主機設(shè)備連線分配不合理
3.交換機老舊,處理能力不足
后續(xù)應(yīng)該針對此類事情多多的總結(jié),升級換代產(chǎn)品,深入了解業(yè)務(wù)特性。