前端時間有人問我小型機出現故障之後怎麼去找問題,但是之前出差比較忙,今天我就好好的將這個整理一下。希望大家看到之後有什麼不到位的地方可以補充下。
第一、先定義故障
弄清楚系統發生了什麼問題
系統現在能做什麼?不能做什麼?
故障什麼時候發生的?
有沒有做平時不同的操作?
故障有沒有規律?定時還是不定時?發生的頻率有多高?
是一臺機器出現故障還是多臺機器故障?故障現象是否相同?
最近有沒有做改動?如安裝了新的硬件、軟件,改變了系統的一些設置。
第二、對故障進行故障信息收集
1) 收集故障信息對於判斷、診斷故障原因,修復系統非常重要。
2) 系統故障記錄(errorlog)
errdemon 進程在系統啓動時自動運行
記錄包括硬件、軟件及其他操作信息
故障記錄文件爲/var/adm/ras/errlog,可備份下來或拷貝到別的機器上分析
errpt 命令的使用(普通用戶權限也可使用)
# errpt |more 列出簡短出錯信息
3) 控制面板上的LED 代碼
8 位代碼,通常系統故障燈會同時亮起。某些機型還會同時顯示故障設備位置代碼。
4 位代碼,通常是Exxx。
3 位代碼,通常爲0yyy,只看後3位。
8 位和4位代碼可查看系統服務手冊 (Service Guide)。
4) SMS (System Management Service) 故障記錄
如何進入SMS 菜單
當主控臺出現鍵盤圖標後(LED 顯示E1F1時)按1鍵。
選擇"Utilities",選擇"Error Log", 抄下8位故障代碼(在SMS 中還可以更改系統啓 動順序表)
5) MAIL
# mail
系統會向root用戶發mail報告出錯信息。通常系統出現故障後沒有進行檢查修復,系統會定時提醒root。
6) 運行故障診斷程序(Diagnostic),對系統硬件進行檢查和診斷。
當發現有硬件故障時應立即使用diag
#diag
> 選高級診斷(Advance Diagnostic)
> 選問題診斷(Problem Determination) 或 選系統檢查(System Verification)
(選PD 會對系統錯誤記錄進行分析)
diag運行後會給出SRN 代碼,故障設備名稱及百分比,地址代碼等。
對於PCI機型應在系統報錯7天之內運行diag程序對出錯記錄裏的sense數據進行分析。
7) 其他用於收集系統信息的命令
lsdev -C 系統設備信息
lspv 查看物理卷信息 還有其他的。。。
第三、硬件故障定位
IBM 小型機故障定位方法包括小型機I/O櫃上的顯示面板上的Checkpoints信息,Error Code 和SRNs。
Checkpoints 檢查點是系統加電CMOS初始化程序(initial program load (IPL))運行後顯示在 I/O櫃的顯示面板上一系列信息。
1. IPL 流程
當交流電源接到系統後,IPL流程就開始了,IPL流程包括四個步驟:
. Phase 1: Service Processor 的初始化
Phase 1 開始於交流電源接到系統後,直到OK顯示在I/O櫃上的顯示面板上爲止。在這個步驟會顯示 8xxx 或9xxx checkpoints代碼 。
. Phase 2: 由 Service Processor 引導的硬件初始化
Phase 2 開始於按下I/O櫃上的白色電源開關。在這個步驟會顯示 9xxx checkpoints 。91FF 是最後的代碼標誌着第三步驟的開始
. Phase 3: 系統固件的初始化
在 Phase 3, 一個系統處理器接管控制並繼續初始化系統資源, 在這個步驟會顯示 Exxx。E105是最後的代碼標誌着第四步驟AIX啓動的開始。在這個過程中還會顯示各種位置碼( 位置碼代表着系統的每一個部分)
. Phase 4: AIX 啓動
當AIX開始啓動時,顯示面板上的代碼爲 0xxx ,同時位置碼會出現在第二行。當AIX的登錄窗口出現在控制檯上時第四步驟結束同時顯示面板上再無任何信息出現。
Error Code 當系統運行有錯誤發現時,一個8位碼會顯示在顯示面板上,同時在第二行顯示相對應問題硬件的位置碼。
SRNs (Service request numbers,服務請求碼 )當系統運行有錯誤發現時,SRNs碼會以 xxx-xxx的形式顯示在顯示面板上,同時在AIX的error log中也會有記載。
以上所有代碼都會有相應的步驟解決。由於代碼繁多,請在出現問題後記錄下代碼,並致電IBM服務熱線。
2. 系統不能啓動
系統停在Stage 1,可能爲電源、系統板、CPU、內存等硬件故障。記錄故障代碼通知IBM工程師。
系統停在Stage 2,可能是啓動順序表(bootlist)損壞或I/O子系統故障。可嘗試進入SMS 菜單檢查啓動順序表,並修改。若在選擇bootlist時沒有硬盤設備可選或顯示的硬盤信息不正確則可能是硬盤故障。若根本沒有SCSI設備可選則鏈路有問題。
系統停在Stage3,可能是硬盤數據損壞,系統設置文件出錯,或I/O子系統故障。
系統停在551,555或557
發生在系統啓動的第三階段 (Stage 3),可能是:
文件系統損壞
文件系統日誌(jfslog)損壞
rootvg中有壞硬盤
3. 修復方法
用系統光盤或系統備份帶啓動(必須與硬盤中的操作系統版本一致)
啓動後選擇選項3
"Start Maintenance Mode for System Recovery"
> "Access a Root Volume Group"
> "Access this volume group and start a shell
before mounting the file systems"
格式化文件系統日誌(jfslog)
# /usr/sbin/logform /dev/hd8
檢查修復文件系統
# fsck -y /dev/hd1 (/home 文件系統)
# fsck -y /dev/hd2 (/usr 文件系統)
# fsck -y /dev/hd3 (/tmp 文件系統)
# fsck -y /dev/hd4 (/ 文件系統)
# fsck -y /dev/hd9var (/var 文件系統)
... ...
用 exit 命令退出,文件系統會自動 mount 起來。
重建bootimage
# lslv -m hd5 找出bootimage所在的硬盤,如hdisk0
# bosboot -ad /dev/hdisk0
# bootlist -m normal /dev/hdisk0 重建啓動順序表。
重啓動系統
# shutdown -Fr
如上述步驟不奏效
用系統備份帶恢復系統。
如備份帶不能恢復,用診斷光盤(Diagnostic CDROM)檢查是否壞硬盤。
4. CDE圖形界面掛死
CDE 運行時不要更改網絡參數(如:主機名和IP 地址)
更改網卡設置,請先退出CDE圖形環境,選擇命令行方式登錄,在字符界面下更改。
如CDE 已經掛死
遠程 telnet 登錄
找出所有dt有關的進程用kill命令殺掉
# ps -ef |grep dt
... ...
# kill PID
檢查當前主機名
# hostname
tscf50
查看主機名是否對應有效的IP地址
# netstat -i |grep tscf50
tr0* 1500 9.185.40 tscf50 506049 0 28247 0 0
更改主機名或IP地址,使主機名與當前有效的IP地址存在對應關係。
# smitty tcpip
重新啓動CDE界面
# /etc/rc.dt
HACMP環境下可把主機名alias到127.0.0.1上
# cat /etc/hosts
127.0.0.1 loopback localhost tscf50 # loopback (lo0) name/addressbvg
5. 系統dump
發生在系統崩潰時,AIX會做dump(系統內存的快照)。
此時機器會顯示閃動的888 102 xxx 0cx 代碼:
0c9 系統dump 進行中。0c9狀態可能會維持超過2分鐘,
不要關電和按reset, 等待dump做完。
0c0 dump 成功完成,這時可以斷電重起。
0c2 手動啓動dump 功能
0c4 dump 設備空間不足,只有部分信息保存下來
0c5 不明原因導致dump 失敗
一般dump是由於軟件出錯引起(888-102-207 除外),機器通常可以重啓。重啓時可能提示用戶插入磁帶拷貝dump文件,不要選擇退出,這樣會丟失重要的故障信息。
dump的有關設置
估算系統dump的大小,在系統最繁忙時(內存使用最多)
# sysdumpdev -e
0453-041 Estimated dump size in bytes: 53477376
# lsps -a
Page Space Physical Volume Volume Group Size %Used Active
paging00 hdisk0 rootvg 480MB 1 yes
hd6 hdisk1 rootvg 544MB 1 yes
當前的設置
#sysdumpdev -l
primary /dev/hd6
第四、軟件故障的定位
軟件故障情況錯綜複雜,下面列舉幾個常見案例的故障處理方法。
1) 文件系統空間不夠。
查看有沒有“滿”的文件系統。特別是/、/var、/tmp,不要超過90%。文件系統滿可導致系統不能正常工作,尤其是AIX的基本文件系統。如/ (根文件系統)滿則會導致用戶不能登錄。用df –k 查看。
# df -k (查看AIX的基本文件系統)
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/hd4 24576 1452 95% 2599 22% /
/dev/hd2 614400 28068 96% 22967 15% /usr
/dev/hd9var 8192 4540 45% 649 32% /var
/dev/hd3 167936 157968 6% 89 1% /tmp
/dev/hd1 16384 5332 68% 1402 35% /home
除/usr文件系統,其他文件系統都不應太滿,一般不超過80%。
處理方法1:刪除垃圾文件
# du -sk * |sort -rn |head
查找出當前目錄下佔空間最大的子目錄,逐層往下直到找出佔空間最大的文件。(要區分哪些目錄是文件系統的 mount point,哪些是文件系統的子目錄)刪除文件,釋放空間。有時刪除文件後空間並不馬上釋放,這是由於你刪除的文件正被某個程序打開。只有當這個程序停止後空間才釋放,有時甚至需要重起系統。
處理方法2:增加文件系統大小
# smitty chjfs
文件系統可以在任何時候加大,前提是卷組(VG)中有剩餘空間。
2) 檢查文件系統的完整性
# umount filesystem_name
# fsck -y filesystem_name
注意:文件系統必須先umount,再做檢查和修復,否則可導致未
知的後果。
3) 查看卷組信息(lsvg -l vg_name):
有沒有"stale"狀態的邏輯卷。 若有,用syncvg 命令修復"stale"邏輯卷。
4) 檢查內存交換區(paging space)使用率(lsps -s):
使用率是否超過70%,若有則用chps –sX pgname增加X個PP或用 mkps –a –n –sX myvg在myvg上增加一個PP數爲X的內存交換區。
5) 小型機內存泄漏問題
小型機出現內存泄漏,即系統或應用進程無法將使用過的內存釋放,使可用內存的容量逐漸減少。如果可用內存降到某最小值將造成系統或應用程序無法FORK子進程,就會造成系統癱瘓。
通常我們可以用ps和sar命令來查看小型機內存和CPU佔用率的大概情況以及各進程的內存和CPU佔用率的發展趨勢。
第五、HACMP環境下的排錯
在一般情況下,HACMP軟件很少需要手工干預,但一旦有問題發生,診斷和恢復的技巧是很重要的.需要能很快地斷定問題然後運用你對HACMP的理解來恢復HACMP的正常運作.
一般地,HACMP環境下的排錯包括:
瞭解問題的存在.
判斷問題的出處.
解決問題.
第六、常用的系統狀態查詢命令
# lsdev –C –s scsi
列出各個SCSI設備的所有相關信息:如邏輯單元號,硬件地址及設備文件名等。
# ps -ef
列出正在運行的所有進程的各種信息:如進程號及進程名等。
# netstat -rn
列出網卡狀態及路由信息等。
# netstat -in
列出網卡狀態及網絡配置信息。
# df -k
列出已加載的邏輯卷及其大小信息。
# mount
列出已加載的邏輯卷及其加載位置。
# uname -a
列出系統ID 號,系統名稱,OS版本等信息。
# hostname
列出系統網絡名稱。
# lsvg –l rootvg,lsvg –p rootvg
顯示邏輯卷組信息,如包含哪些物理盤及邏輯卷等。
# lslv –l datalv,lslv –p datalv
顯示邏輯卷各種信息,如包含哪些盤,是否有鏡像等。
八 網絡故障定位方法
網絡不通的診斷過程:
ifconfig 查看網卡是否啓動 (up)
netstat –i 查看網卡狀態
Ierrs/Ipkts 和 Oerrs/Opkts是否>1%
ping自己網卡地址 (ip 地址)
ping其它機器地址,如不通,在其機器上用diag檢測網卡是否有問題。
在同一網中, subnetmask 應一致。
網絡配置的基本方法:
(1) 如需修改網絡地址、主機名等,一定要用 chdev 命令
# chdev –l inet0 –a hostname=myhost
# chdev -l en0 -a netaddr='9.3.240.58' -a netmask=255.255.255.0’
(2) 查看網卡狀態:# lsdev –Cc if
(3) 確認網絡地址:# ifconfig en0
(4) 啓動網卡:# ifconfig en0 up
(5) 配置路由
有兩種方式加入路由:
永久路由
# chdev -l inet0 -a route=’10.47.0.0’,’9.3.240.59’
臨時路由
# route add 10.47.1.2 9.3.240.59
用命令 netstat -rn 查看路由表