“沒(méi)有折騰,就(jiù)沒(méi)有故障”這(zhè)句話雖糙,但卻很有道(dào)理,尤其在運維上。據有關咨詢機構統計,數據中心的故障中有百分之七十是人爲故障,也就(jiù)是與人的活動強相關,可見人對(duì)于數據中心來說(shuō)是多麼(me)可怕。人爲故障其中也可以分爲有意的和無意的。有意的是指明知道(dào)一些操作會(huì)造成(chéng)數據中心故障,仍執意去做的,這(zhè)些人往往希望通過(guò)造成(chéng)數據中心運行癱瘓,而達到不可告人的目的,這(zhè)種(zhǒng)故障占到了人爲故障的80%,剩餘的就(jiù)是無意的。
數據中心本身是一個複雜龐大的系統,運維的人員不可能(néng)面(miàn)面(miàn)俱到都(dōu)精通所有技術細節,當接觸到自己不熟悉或不了解的地方,操作易引發(fā)意想不到的結果。還(hái)有不少的設備,軟件質量不高,反複操作下發(fā)就(jiù)容易引發(fā)軟件問題,從而造成(chéng)業務中斷。這(zhè)種(zhǒng)情況在數據中心裡(lǐ)還(hái)不少見,數據中心裡(lǐ)設備成(chéng)千上萬,數量龐大,動一動問題就(jiù)來了,所以運行穩定的數據中心不要輕易去改動,就(jiù)讓它自己處于最佳狀态去運行下去。
衆所周知,但凡遇到一些重大節日和活動,大型的數據中心都(dōu)會(huì)進(jìn)行封網,停止一切操作和活動行爲,目的就(jiù)是爲了減少故障發(fā)生,將(jiāng)人爲操作風險降低,將(jiāng)觸發(fā)BUG的風險降低。這(zhè)種(zhǒng)方式行之有效,除了可能(néng)出現一些硬件故障外,幾乎很少發(fā)生其它類問題。
我們都(dōu)知道(dào)烏龜的壽命很長(cháng),活上幾百年輕飄飄的,就(jiù)是因爲烏龜很少動,移動緩慢,這(zhè)大大延長(cháng)了它的生存壽命。數據中心運維也喜靜不喜動,少動慎動,這(zhè)能(néng)最大程度減少故障發(fā)生。金融銀行業的數據中心對(duì)可靠性要求很高,爲了避免出故障,銀行的數據中心内部制定了嚴格的操作制度,所有的操作都(dōu)要遵守統一規範,任何命令的下發(fā)和變更都(dōu)要經(jīng)過(guò)行裡(lǐ)提前審核,甚至在模拟環境中驗證過(guò)沒(méi)問題,才開(kāi)始到現網中去實施操作,銀行業的數據中心操作最爲規範,使得數據中心的可靠性也最高。
不過(guò),爲了快速響應業務需求和提高資源利用率,運維又不得不頻繁折騰,不動基本做不到。一個數據中心可能(néng)每周晚上都(dōu)有安排變更,還(hái)有設備軟件升級、配置優化、設備替換等工作,數據中心總是有沒(méi)完沒(méi)了的變更操作,這(zhè)樣(yàng)不可避免地在操作過(guò)程中出現一些新問題,導緻數據中心總是無法穩定下來,業務經(jīng)常受到影響,這(zhè)其實就(jiù)違背了運維祖訓的宗旨。
數據中心裡(lǐ)需要的技術知識太多,涵蓋多個學(xué)科幾十個門類,沒(méi)有誰能(néng)全部掌握,完全掌握一門都(dōu)很難,這(zhè)時(shí)制定相應的操作,受限知識面(miàn),總會(huì)有考慮不周的地方,一旦有漏掉就(jiù)可能(néng)在操作過(guò)程中産生問題。對(duì)于變更操作,任何人都(dōu)沒(méi)有絕對(duì)的把握,凡事(shì)都(dōu)可能(néng)有意外,就(jiù)像是做手術,再小的手術也是有風險的,也要家屬簽字,萬一出了事(shì)故手術操作者能(néng)免責。
既然不能(néng)避免折騰,那就(jiù)想辦法不讓折騰出問題。
首先要分治。分治就(jiù)是把風險高的和風險低的分開(kāi)、重要性高的和不高的分開(kāi)、簡單的和複雜的分開(kāi)、頻繁變動的和不頻繁的分開(kāi)。歸根到底都(dōu)在做兩(liǎng)件事(shì):封裝複雜度、隔離變化。運維架構層的分治,在業界已經(jīng)非常普遍了,比如應用服務器和數據庫服務器分離、交易數據庫和用戶數據庫分離,生産環境和測試環境隔絕。數據中心是有很多小系統組成(chéng)的,相互之間要松耦合,最好(hǎo)是隔離的,這(zhè)樣(yàng)一個小系統故障,影響是局部的,不會(huì)影響全局。
其次是管人。要減少人爲折騰出的故障,就(jiù)要加強對(duì)人的約束和管理。不同技術等級的人能(néng)做的操作權限是不同的,一個新手要上線操作,必須要由老工程師來指導。要制定詳細的人員管理規章制度,對(duì)運維的人員形成(chéng)約束力,對(duì)運維的人員進(jìn)行考核、監控、管理,增強運維人員工作的責任心,有獎有罰。制定嚴格的各項規章制度,一般的數據中心都(dōu)需要24小時(shí)常年不間斷向(xiàng)外提供服務,所以要給數據中心人員充分的休息時(shí)間,按時(shí)的上下班,避免長(cháng)時(shí)間工作、疲勞工作,減少出錯概率。
第三是管事(shì)。當數據中心需要變更和優化操作時(shí),需要運維團隊的人員進(jìn)行整體讨論,對(duì)預知的風險進(jìn)行分析,确保操作不會(huì)對(duì)運行業務造成(chéng)影響。每個變更都(dōu)是整個技術團隊的讨論通過(guò)做出的決定,而不是個人的行爲,這(zhè)樣(yàng)能(néng)將(jiāng)技術性人爲故障降到最低。要制定好(hǎo)回退方案,一旦出現異常情況立即回退,事(shì)後(hòu)將(jiāng)原因分析情況後(hòu)再進(jìn)行二次變更。畢竟運維的人員都(dōu)不是專業搞設備的,對(duì)設備内部處理和實現并不見得很清楚,重大的變更操作可以邀請設備廠家的技術人員參與和支持,降低操作錯誤的風險。每次操作都(dōu)要做好(hǎo)充分準備,必要的模拟演練、提前的業務搬移、緊急通道(dào)的準備等都(dōu)需要,這(zhè)樣(yàng)才能(néng)降低故障發(fā)生的風險。
“沒(méi)有折騰,就(jiù)沒(méi)有故障”是金口良言,聽上去很有道(dào)理,實際卻很難做得到。數據中心本就(jiù)是一個數據高速流動的場所,業務需求時(shí)時(shí)都(dōu)在變化,爲了滿足業務部署和發(fā)展的需求,不讓對(duì)數據中心變更、折騰,根本就(jiù)是做不到,“沒(méi)有折騰”隻是一種(zhǒng)理想的狀态罷了。不過(guò),的确是應該最大限度地去主動降低數據中心操作頻率,盡量少動,這(zhè)樣(yàng)可極大降低故障發(fā)生概率。人是數據中心活動中的最重要因素,沒(méi)有人的參與哪裡(lǐ)來的數據中心,而偏偏人也同時(shí)給數據中心帶來成(chéng)長(cháng)的煩惱,人在運維的過(guò)程中作用依然舉足輕重。作爲數據中心的運維人,要時(shí)刻牢記祖訓。