一、故障現象及分析 該工作站的不定時自動重啟有著比較特殊的現象:沒有規律、沒有預兆。對用戶的影響也是最致命的---不僅是作業失敗,甚至會導致數據庫被破壞。針對這一系統故障現象進行了認真的分析,通過查找錯誤日志,找出了系統報出的“Panics”錯誤。當系統自動重啟時,/etc/rc2.d/S75savecore 實用程序會把這些信息卸載到文件系統/var/crash/`hostname`/目錄下,便於系統管理員進行故障分析和故障定位,21次Panics錯系統自動產生的文件如下: -rw-r--r-- 1 root root 634041 Feb 3 03:20 unix.0 ……………………… -rw-r--r-- 1 root root 620121 Aug 7 12:35 unix.16 ……………………… -rw-r--r-- 1 root root 622218 Aug 12 09:25 unix.21 -rw-r--r-- 1 root root 181395456 Feb 3 03:20 vmcore.0 ……………………… -rw-r--r-- 1 root root 237830144 Aug 7 12:35 vmcore.16 ……………………… -rw-r--r-- 1 root root 168732916 Aug 12 09:25 vmcore.21 二、Panics錯誤類型分析 依據系統提供的技術資料,Panics錯誤具有兩種典型的錯誤類型: 第一類:系統自動重啟(reboot) 這類錯誤是指系統在執行過程中遇到一條非法指令無法繼續執行下去,為避免錯誤的擴大而采取的保護措施,這種非法指令的訪問可由來自於主板、內存、顯卡等很多因素,也可能是系統對某一硬件支持存在BUG;若硬件自身沒問題,有時操作系統存在某些缺陷,也會導致此類故障的發生。 第二類:系統掛起(system hang) 這類錯誤現象是系統不接受任何指令,大多屬於用戶應用程序存在錯誤而耗盡了系統資源所致。 從故障現象分析我們判斷,該機器呈現的故障屬於第一類情況。 三、故障的研究與解決 通過對系統內核故障卸載的文件unix.16 和 vmcore.16分析研究,解決了裝有地震反演Jason軟件的sun工作站系統運行不穩定問題。 針對系統重啟(reboot)故障,為了找出有效的故障處理方法,我們認為應該從分析系統發生故障所卸載的錯誤信息入手,利用系統中提供的調試工具,(如:adb、crash等)進行錯誤分析,根本無法找出解決問題的方法。最終在sunsolve網站上找到一個用於分析Panics錯誤所產生的DUMP文件的軟件---Act(Automated Crash Analysis Tool)。 1 act 軟件的安裝配置 該軟件的安裝會在/etc/rc2.d中產生S76ACT_dumpscript腳本配置文件,便於日後跟蹤分析。 詳細安裝過程(略) 2 運行Act軟件進行代碼分析,並將分析結果存放於act.16文件中 # cd /var/crash/`hostname` # /opt/CTEact/bin/act –n unix.16 –d vmcore.16 > act.16 3 對軟件的結果進行分析,提取故障信息關鍵字 # more act.16 該文件信息很多,摘錄其中的部分信息為: System booted at: 2003 Aug 7 01:09:37 GMT System crashed at: 2003 Aug 7 12:33:14 GMT Crash dump started at: 2003 Aug 7 12:34:54 GMT panic: BAD TRAP: type=%x rp=%p addr=%p mmu_fsr=%x occurred in module“%s”due to %s SunSolve search string: ### SUNSOLVE ### [ifb_kernel_dma_cmd_data trap type 31 (data mmu miss)](其中ifb為3D顯卡邏輯設備名) 從軟件分析結果中提取出故障關鍵字: [ifb_kernel_dma_cmd_data trap type 31 (data mmu miss)],得到的結論是:目前的SunOS 5.8 Generic_108528-11 kernel版本對X Window 及3D顯卡的支持仍存在bug,該工作站使用的顯卡是Elite3D Graphics和EXPert3D Graphics,由此得出故障處理的方法是對這台工作站下載最新補丁(patch)以解決對顯卡的支持問題。 需要的補丁文件如下: 108569-08、108604-32、108605-33、108606-31、108576-41、108714-05、108773-08。 4 故障的解決方法 首先download所有補丁文件,再利用系統提供的pkgadd或patchadd實用程序解包並安裝、效驗。 四、技術關鍵 1 、 系統錯誤的定位及分析 2 、 故障類型的確定及處理方法 3 、ACT軟件的開發與應用