明明白白你的Linux服務器——故障篇

在Linux/unix服務器的維護過程中,遇到各種各樣的問題;有的嚴重,有的很好解決,有的解決過程我就記錄下來與大家分享下,希望能給大家帶來幫助。

    故障一、

    今天早上來的第一件事,就是檢查昨天晚上剛剛重新安裝的一臺64位的CentOS 5.5服務器,那臺服務器是四塊硬盤作的二個RAID1,一個專用於OS,一個用於data,

    在安裝系統的過程中,爲了不損失數據,data分區我碰也碰過,今天用root進系統後,我用mount /dev/mapper/ddf1_datap1 /data進行掛載,很順利的掛載上去了,結果進去用ll命令一看,我靠,文件全出錯了,都不正常了,嚇我一跳,data分區裏有的數據很重要,特別是mysql數據庫,我問了下同事,同事也不是太清楚什麼回事,我突然想起,這個是不是沒正確掛載的原因,所以將其寫進/etc/fstab裏,如

/dev/mapper/ddf1_datap1 /data ext3 defaults 0 0

    大家別小看defaults選項,這個默認會作許多事情的,reboot後一切正常,虛驚一場,特此記錄工作心得,希望也給大家帶來幫助;最後是將所有的數據備份後再仔細的fsck一遍,確認無誤再進行掛載。

    故障二、

    故障描述:我們的jail母機192.168.21.36,因root的shell設置成的bash,而其依賴的庫文件libintl.so.8發生丟失,導致了root不能登陸,具體報障如下:

/libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required by "bash"
Connection to 192.168.21.36 closed.

    解決方法如下:

    1.用單用戶模式進入系統;

    2.掃描磁盤(此步非做不可,而且是安全的)

fsck -y 

    3.將文件系統重新掛載

mount -a 

    4.將root的默認shell切換到sh

chsh -s sh 

    重啓後一切正常

    故障三、

    在某臺工作機上,不小心刪除了GRUB所在的分區怎麼辦?今天閒來無事,不小心刪除了grub所在的分區/dev/hdb8,因爲裝的是windows2003和Centos5.3雙系統,搞得連windows也進不了,想想看這已經是第二次犯錯了。因爲我的工作機上沒有光驅和軟驅(以前本着經濟的原則配置的),上次是借別人的光驅,難道這次又要借,不行,我一定要自己想辦法搞定了。花了不少時間把我的臺電酷閃8G的優盤量產成了USB-CDROM+USB-HDD雙啓動的優盤,工作機居然不支持,暈。天寒地凍的,難道真要出門,忽然想起了,工作站支持網絡引導,呵呵,那就應該有辦法了。請出心愛的網刻軟件MaxDOS_71PXE_G115.exe,以下爲實驗步驟截圖:

搞定後原以爲萬事大吉了,發現一啓動還是回到了gub報錯狀態,呵呵,看來還要想心思;不選擇"克隆結束後重啓計算機",這樣就能回到Dos界面下,選擇一款MBR修復軟件,diskgen或spfdisk即可;或直接fdisk/mbr;其實還有個辦法也可行:在“grub>”提示符後輸入:“rootnoverify (hd0,0)” 回車將第一塊硬盤(hd0)的第一個分區(0)設爲根分區/root設備,但不加載文件系統;在“grub>”提示符後輸入:“chainloader +1” 回車,將啓動引導權轉交給當前分區的首扇區(Windows系統所在分區的首扇區)。

    其實,這只是一個很簡單的、常遇見的grub錯誤,只要有dos引導盤即可,但關鍵是我的工作機比較老,即無光驅、軟驅,連U盤引導也不支持,如果網絡引導也不支持的話,可以用第二種辦法嘗試(或者強大的Linux命令dd)。修復後重啓,故障排除;將以上步驟記錄下,方便下次犯錯時能迅速排障和重溫習下網絡Ghost。

    故障四、

    有臺同事在處理Linux服務器時,他移走了一塊硬盤,然後就直接啓動紅帽RHEL5,發現進了Emergency模式,焦急中他連忙跑過來找我;我第一句就是問他:你改動了硬件沒,他說他移走了硬盤後就直接啓動了,不是跟windows2003一樣嘛,有什麼問題?我都無語了,沒辦法 ,耐心跟他講解 linux下/etc/fatab的作 用及語法,最後告訴他可以在Emergency模式下輸入root密碼進入此模式,然後用mount –o remount,rw /將/分區設置成可讀寫,編輯/etc/fatab,將移除的硬盤用#號屏蔽掉後重啓服務器,故障解除。

    故障五、

    FreeBSD下的某臺jail虛擬機,可能發生了程序錯誤形成了死循環,在不停的寫某個文件,導致/usr佔滿,此時Nagios狂報警;這時候 需要快速將其抓取出來,這時候可以先新建 一個測試文件 touch test ,然後 用命令find / -newer test,爲了證明其通用性,我特的選擇了FreeBSD服務器

    ……

    以上僅僅只是我遇到的形形色色的各種Linux/unix服務器故障之一二而已,我總結了下平時Linux/unix應該注意的事項:

    ①服務器中最容易壞掉的是風扇,如果是電信機房要注意檢查;如果是自己內網服務器機房,平時注意將溫度控制在19度以下即可;

    ②DELL的機器的RAID卡放電和充電都是正常現象,如果有Nagios報警也是正常的;

    ③有時間就多巡視下機房,檢查下服務器的硬盤燈指示情況;

    ④注意網線不要鬆脫 了,不然你使用Heartbeat的服務器就很麻煩了;

    ⑤平時如果有時間和機會,可以作一些關於Keepalived和Heartbeat的模擬故障實驗,保證其高可用性。

    ⑥虛心學習網絡相關方面的知識和疑難問題,有時絕大多數的問題是網絡方面引起來的;另外,電信一般會封掉80端口的,就不要在這些問題上糾結了。

    遇到服務器故障時,一定要膽大心細,謹慎操作,因爲有時是線上環境,稍有不慎就灰飛煙滅了,多總結多思考,這樣才能成長得更快。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章