Unix服務(wù)器重啟時應(yīng)該注意啥?
對于系統(tǒng)管理員來說如何管理自己的服務(wù)器已經(jīng)是再簡單不過,但是如何管理好服務(wù)器卻不是一個簡單的事情。對于管理員來說重啟服務(wù)器可不是一件鬧著玩的事情。對于Windows服務(wù)器管理員來說經(jīng)常性重啟Windows設(shè)備已經(jīng)成為一種生活常態(tài),但在Unix系統(tǒng)中這種辦法卻難以奏效——在默認情況下重新啟動不會帶來任何形式的改善。
我打算借此機會跟大家詳細聊聊重啟的問題。對于每一位服務(wù)器管理員來說這都算得上熱門話題,但在Unix極客們眼中它則屬于一種層次更深的課題——可能因為Windows管理員們往往把重啟當(dāng)成故障排查工作的首要步驟之一,而Unix團隊則一般只在束手無策的情況下才進行嘗試。
Unix服務(wù)器重啟的兩種情況
實際情況是:服務(wù)器重啟操作應(yīng)該極少出現(xiàn)——請注意是極少。在這里我列舉內(nèi)核更新與硬件更換作為例子,因為它們是Unix領(lǐng)域中引發(fā)重新啟動的兩大主要原因。有些人一直在鼓吹什么不重啟服務(wù)器的話會帶來某些嚴重的安全風(fēng)險,這簡直是一派胡言。如果服務(wù)項目與應(yīng)用程序中確實存在安全風(fēng)險,那么打上漏洞補丁就能解決問題了,而且補丁往往不要求重啟設(shè)備。而如果安全風(fēng)險存在于內(nèi)核模塊中,一般來說只需卸載對應(yīng)模塊、安裝補丁,最后重新加載模塊。沒錯,我承認一旦內(nèi)核中存在安全風(fēng)險,那么重啟操作的確是必要的。但在這種情況之外,大家根本沒有切實的理由重新啟動Unix服務(wù)器。
有些人認為如果不進行重啟操作,其它形式的風(fēng)險往往會接踵而至,例如某些關(guān)鍵性服務(wù)項目在開機時沒有得到正確啟用,而這將導(dǎo)致一系列隱患。當(dāng)然,這種說法本身是正確的,但只要管理工作執(zhí)行到位,這其實根本就是種杞人憂天。只有剛剛接掌服務(wù)器設(shè)備的菜鳥才會忘記正確設(shè)置服務(wù)項目的啟動參數(shù)。不過話說回來,如果大家的服務(wù)器正處于構(gòu)建階段,且其中還不涉及任何生產(chǎn)方面的內(nèi)容,那么不妨隨意進行各類重啟測試,這不會帶來任何不良影響。而且我認為這正是熟悉重啟機制的最好時機。
但還有另一方面需要考慮:那些將重啟操作當(dāng)成故障排查重要步驟之一的家伙是抱著死豬不怕開水燙的心態(tài),打算一次性把問題都暴露出來。就說一套已經(jīng)出現(xiàn)問題的Unix設(shè)備吧,某些還處于運行中的服務(wù)項目實際上已經(jīng)無法再次啟動,而這一點在重啟之后就會顯現(xiàn)出來——也許是由于分段故障或者其它稀奇古怪的原因。
造成Unix服務(wù)器重啟的原因
如果我們只是簡單查看幾分鐘之后就一拍腦門決定重啟設(shè)備,那么也許故障的真正原因就徹底湮沒在時光中了——也許是某位初級管理員在運行一套自己編寫的愚蠢腳本時無意中刪除了/boot目錄或者/etc、/usr/lib64目錄下的部分內(nèi)容。這正是引發(fā)分段故障以及設(shè)備不穩(wěn)定情況的罪魁禍首。然而一旦我們選擇直接重啟服務(wù)器而沒有深入挖掘問題,那么顯然問題會變得更加嚴重,接下來不出意外的話大家應(yīng)該會啟動恢復(fù)鏡像——這就代表需要面對大量恢復(fù)工作——而與此同時生產(chǎn)服務(wù)器也將陷入停機狀態(tài)。
以上只是我們在Unix領(lǐng)域中應(yīng)該盡量避免重啟操作的原因之一。與其說這算是種故障排查方法,不如把它看作一類孤注一擲的豪賭——要么發(fā)現(xiàn)問題,要么親手毀掉一切再慢慢重建。總之,沒人能利用/var分區(qū)重啟設(shè)備就完全修正錯誤。(另外請別提什么打開文件句柄這類迂腐的蠢話——我想大家應(yīng)該理解我的意思)
服務(wù)器重啟前請做完你該做的工作
在大多數(shù)情況下,不進行重啟是極其重要的,因為系統(tǒng)中能夠幫助我們修復(fù)問題的關(guān)鍵性內(nèi)容在重啟前是一定存在的,但在重啟后卻未必還在。重啟之后問題絕對會再次出現(xiàn),然而一旦解決方案隨重啟行為而煙消云散,那么故障本身就陷入了無解的死循環(huán)中。除非有人決定不進行重啟,而是嘗試找出問題的根源。遺憾的是,能做了這種明智選擇的人實在少之又少。實際情況是:一根小小的故障內(nèi)存條就能給系統(tǒng)正常運行與設(shè)備啟動狀態(tài)帶來極大的麻煩。而這個時候,對癥下藥才是上策,一味重啟只會帶來額外的損失。
因此,今后大家在面對問題時,如果有某個家伙說什么“嘿,不如先重啟一下看看”,不妨直接給他兩個大嘴巴。重啟當(dāng)然是方案之一,但在實施重啟前請務(wù)必確保我們已經(jīng)采取了一切能夠想到的處理措施;畢竟節(jié)省下來的都是咱們自己的時間跟精力嘛。