前端時間有人問我小型機出現故障以後怎麼去找問題,可是以前出差比較忙,今天我就好好的將這個整理一下。但願你們看到以後有什麼不到位的地方能夠補充下。前端
第1、先定義故障shell
弄清楚系統發生了什麼問題
系統如今能作什麼?不能作什麼?
故障何時發生的?
有沒有作平時不一樣的操做?
故障有沒有規律?定時仍是不定時?發生的頻率有多高?
是一臺機器出現故障仍是多臺機器故障?故障現象是否相同?
最近有沒有作改動?如安裝了新的硬件、軟件,改變了系統的一些設置。
網絡
第2、對故障進行故障信息收集tcp
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 查看物理卷信息 還有其餘的。。。ide
第3、硬件故障定位svg
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 起來。
重建bootp_w_picpath
# lslv -m hd5 找出bootp_w_picpath所在的硬盤,如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
第4、軟件故障的定位
軟件故障狀況錯綜複雜,下面列舉幾個常見案例的故障處理方法。
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佔用率的發展趨勢。oop
第5、HACMP環境下的排錯ui
在通常狀況下,HACMP軟件不多須要手工干預,但一旦有問題發生,診斷和恢復的技巧是很重要的.須要能很快地判定問題而後運用你對HACMP的理解來恢復HACMP的正常運做.
通常地,HACMP環境下的排錯包括:
瞭解問題的存在.
判斷問題的出處.
解決問題.
this
第6、經常使用的系統狀態查詢命令spa
# 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 查看路由表