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