RS/6000小型機故障的基本定位方法 轉
http://www.chinaunix.net 作者:wolf2602 發(fā)表于:2003-02-26 11:53:56
一 故障的定義
.弄清楚系統發(fā)生了什么問(wèn)題
.系統現在能做什么?不能做什么?
.故障什么時(shí)候發(fā)生的?
.有沒(méi)有做平時(shí)不同的操作?
.故障有沒(méi)有規律?定時(shí)還是不定時(shí)?發(fā)生的頻率有多高?
.是一臺機器出現故障還是多臺機器故障?故障現象是否相同?
.最近有沒(méi)有做改動(dòng)?如安裝了新的硬件、軟件,改變了系統的一些設置。
二 故障信息的收集
1)收集故障信息對于判斷、診斷故障原因,修復系統非常重要。
2)系統故障記錄(errorlog)
errdemon 進(jìn)程在系統啟動(dòng)時(shí)自動(dòng)運行
記錄包括硬件、軟件及其他操作信息
故障記錄文件為/var/adm/ras/errlog,可備份下來(lái)或拷貝到別的機器上分析
errpt 命令的使用(普通用戶(hù)權限也可使用)
#errpt |more 列出簡(jiǎn)短出錯信息
ERROR_ID TIMESTAMP T C RESOURCE_NAME ERROR_DESCRIPTION
192AC071 0723100300 T 0 errdemon Error logging turned off
0E017ED1 0720131000 P H mem2 Memory failure
9DBCFDEE 0701000000 T 0 errdemon Error logging turned on
038F2580 0624131000 U H scdisk0 UNDETERMINED ERROR
AA8AB241 0405130900 T O OPERATOR OPERATOR NOTIFICATION
TIMESTAMP: MMDDHHMMYY (月日時(shí)分年)
T(類(lèi)型): P 永久; T 臨時(shí); U 未知 (永久性的錯誤應引起重視)
C(分類(lèi)): H 硬件; S 軟件; O 用戶(hù); U未知
#errpt -d H 列出所有硬件出錯信息
#errpt -d S 列出所有軟件出錯信息
#errpt -aj ERROR_ID 列出詳細出錯信息
# errpt -aj 0502f666 <--- ERROR_ID用大小寫(xiě)均可
例:
LABEL: SCSI_ERR1
ID: 0502F666
Date/Time: Jun 19 22:29:51
Sequence Number: 95
Machine ID: 123456789012
Node ID: host1
Class: H
Type: PERM
Resource Name: scsi0
Resource Class: adapter
Resource Type: hscsi
Location: 00-08
VPD: <--- Virtal Product Data
Device Driver Level.........00
Diagnostic Level............00
Displayable Message.........SCSI
EC Level....................C25928
FRU Number..................30F8834
Manufacturer................IBM97F
Part Number.................59F4566
Serial Number...............00002849
ROS Level and ID............24
Read/Write Register Ptr.....0120
Description
ADAPTER ERROR
Probable Causes
ADAPTER HARDWARE CABLE
CABLE TERMINATOR DEVICE
Failure Causes
ADAPTER
CABLE LOOSE OR DEFECTIVE
Recommended Actions
PERFORM PROBLEM DETERMINATION PROCEDURES
CHECK CABLE AND ITS CONNECTIONS
Detail Data
SENSE DATA
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
3)控制面板上的LED 代碼
.8 位代碼,通常系統故障燈會(huì )同時(shí)亮起。某些機型還會(huì )同時(shí)顯示故障設備位置代碼。
.4 位代碼,通常是Exxx。
.3 位代碼,通常為0yyy,只看后3位。
.8 位和4位代碼可查看系統服務(wù)手冊 (Service Guide)。
3 位代碼可查看系統診斷手冊(Diagnostic Information for Multiple Bus System)。
.閃動(dòng)的 888, 系統崩潰,硬件或軟件原因造成。按reset 鍵會(huì )顯示更多內容。
888-102 一般為軟件故障(888-102-207 例外)
系統會(huì )產(chǎn)生一個(gè)dump。
888-102-xxx-0C9 系統正在做dump, 請等待。
888-102-xxx-0C0 系統dump完成,可關(guān)電重啟。
888-103 或 105
硬件故障,一般有 SRN 代碼及位置代碼。
4)SMS (System Management Service) 故障記錄
如何進(jìn)入SMS 菜單
當主控臺出現鍵盤(pán)圖標后(LED 顯示E1F1時(shí))按1鍵。
選擇"Utilities"
選擇"Error Log", 抄下8位故障代碼
(在SMS 中還可以更改系統啟動(dòng)順序表)
5) MAIL
#mail
系統會(huì )向root用戶(hù)發(fā)mail報告出錯信息。通常系統出現故障后沒(méi)有進(jìn)行檢查修復,系統會(huì )定時(shí)提醒root。
6)運行故障診斷程序(Diagnostic),對系統硬件進(jìn)行檢查和診斷。
當發(fā)現有硬件故障時(shí)應立即使用diag
#diag
> 選高級診斷(Advance Diagnostic)
> 選問(wèn)題診斷(Problem Determination) 或
選系統檢查(System Verification)
(選PD 會(huì )對系統錯誤記錄進(jìn)行分析)
diag運行后會(huì )給出SRN 代碼,故障設備名稱(chēng)及百分比,地址代碼等。
對于PCI機型應在系統報錯7天之內運行diag程序對出錯記錄里的sense數據進(jìn)行分析。
7)其他用于收集系統信息的命令
lsdev -C 系統設備信息
#lsdev -Cc disk
hdisk0 Available 00-06-00-2,0 4.5 GB 16 Bit SCSI Disk Drive
hdisk1 Available 00-06-00-1,0 4.5 GB 16 Bit SCSI Disk Drive
hdisk2 Defined 00-06-00-4,0 16 Bit SCSI Disk Drive
lspv 查看物理卷信息
#lspv
hdisk0 0007821160af3d76 rootvg
hdisk1 000782117f571294 rootvg
hdisk2 0000000045c45bde datavg
lsvg 查看卷組信息
#lsvg datavg
VOLUME GROUP: datavg VG IDENTIFIER: 0000000055e2458b
VG STATE: active PP SIZE: 4 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 2169 (8676 megabyt
MAX LVs: 256 FREE PPs: 1 (4 megabytes)
LVs: 3 USED PPs: 2168 (8672 megabyt
OPEN LVs: 2 QUORUM: 2
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: yes
MAX PPs per PV: 2032 MAX PVs: 16
#lsvg -l rootvg
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 1 1 closed/syncd N/A
...
lv00 jfs 51 102 1 closed/stale /ibmcxx
lv01 jfs 1 1 1 open/syncd /cics_regions
lv02 jfs 4 4 1 open/syncd /var/mqm
lslpp 查看文件組信息
# lslpp -L |grep 23100020
....
devices.pci.23100020.rte 4.3.2.7 C IBM PCI 10/100 Ethernet Adapt
看某個(gè)文件組是否已安裝,如以太網(wǎng)卡驅動(dòng)。也用于查詢(xún)補丁程序的版本。
lsattr 查看設備參數設置
# lsattr -El ent2
busio 0x7fffc00 Bus I/O address False
busintr 9 Bus interrupt level False
intr_priority 3 Interrupt priority False
tx_que_size 512 TRANSMIT queue size True
rx_que_size 256 RECEIVE queue size True
rxbuf_pool_size 384 RECEIVE buffer pool size True
media_speed 10_Half_Duplex Media Speed True
use_alt_addr no Enable ALTERNATE ETHERNET address True
alt_addr 0x000000000000 ALTERNATE ETHERNET address True
ip_gap 96 Inter-Packet Gap True
lscfg 查看VPD信息(Virtual Product Data)
# lscfg -vl ssa1
DEVICE LOCATION DESCRIPTION
ssa1 30-68 IBM SSA Enhanced RAID Adapter
(14104500)
Part Number.................097H0645
FRU Number..................097H0645 <-- 備件號
Serial Number...............C8217227
EC Level....................0000F20825
Manufacturer................IBM053
ROS Level and ID............7201 <-- 微碼版本
Loadable Microcode Level....04
Device Driver Level.........00
Displayable Message.........SSA-ADAPTER
Device Specific.(Z0)........DRAM=032
Device Specific.(Z1)........CACHE=0
Device Specific.(Z2)........000000062955dab2
Device Specific.(YL)........P2-I7 <-- 槽號
不同的硬件設備有不同的VPD,所含的格式和信息都不一樣。通常備件號和微碼
版本最有參考價(jià)值。注:FRU(Field Replace Unit)才是真正的備件號。
三 硬件故障定位方法
IBM 小型機故障定位方法包括小型機I/O柜上的顯示面板上的Checkpoints信息,Error Code 和SRNs。
Checkpoints 檢查點(diǎn)是系統加電CMOS初始化程序(initial program load (IPL))運行后顯示在 I/O柜的顯示面板上一系列信息。
IPL 流程
當交流電源接到系統后,IPL流程就開(kāi)始了,IPL流程包括四個(gè)步驟:
. Phase 1: Service Processor 的初始化
Phase 1 開(kāi)始于交流電源接到系統后,直到OK顯示在I/O柜上的顯示面板上為止。在這個(gè)步驟會(huì )顯示 8xxx 或9xxx checkpoints代碼 。
. Phase 2: 由 Service Processor 引導的硬件初始化
Phase 2 開(kāi)始于按下I/O柜上的白色電源開(kāi)關(guān)。在這個(gè)步驟會(huì )顯示 9xxx checkpoints 。91FF 是最后的代碼標志著(zhù)第三步驟的開(kāi)始
. Phase 3: 系統固件的初始化
在 Phase 3, 一個(gè)系統處理器接管控制并繼續初始化系統資源, 在這個(gè)步驟會(huì )顯示 Exxx。E105是最后的代碼標志著(zhù)第四步驟AIX啟動(dòng)的開(kāi)始。在這個(gè)過(guò)程中還會(huì )顯示各種位置碼( 位置碼代表著(zhù)系統的每一個(gè)部分)
. Phase 4: AIX 啟動(dòng)
當AIX開(kāi)始啟動(dòng)時(shí),顯示面板上的代碼為 0xxx ,同時(shí)位置碼會(huì )出現在第二行。當AIX的登錄窗口出現在控制臺上時(shí)第四步驟結束同時(shí)顯示面板上再無(wú)任何信息出現。
Error Code 當系統運行有錯誤發(fā)現時(shí),一個(gè)8位碼會(huì )顯示在顯示面板上,同時(shí)在第二行顯示相對應問(wèn)題硬件的位置碼。
SRNs (Service request numbers,服務(wù)請求碼 )當系統運行有錯誤發(fā)現時(shí),SRNs碼會(huì )以 xxx-xxx的形式顯示在顯示面板上,同時(shí)在A(yíng)IX的error log中也會(huì )有記載。
以上所有代碼都會(huì )有相應的步驟解決。由于代碼繁多,請在出現問(wèn)題后記錄下代碼,并致電IBM服務(wù)熱線(xiàn)。
系統的啟動(dòng)順序:
.系統不能啟動(dòng)
系統停在Stage 1,可能為電源、系統板、CPU、內存等硬件故障。記錄故障代碼通知IBM工程師。
系統停在Stage 2,可能是啟動(dòng)順序表(bootlist)損壞或I/O子系統故障??蓢L試進(jìn)入SMS 菜單檢查啟動(dòng)順序表,并修改。若在選擇bootlist時(shí)沒(méi)有硬盤(pán)設備可選或顯示的硬盤(pán)信息不正確則可能是硬盤(pán)故障。若根本沒(méi)有SCSI設備可選則鏈路有問(wèn)題。
系統停在Stage3,可能是硬盤(pán)數據損壞,系統設置文件出錯,或I/O子系統故障。
.系統停在551,555或557
發(fā)生在系統啟動(dòng)的第三階段 (Stage 3),可能是:
文件系統損壞
文件系統日志(jfslog)損壞
rootvg中有壞硬盤(pán)
修復方法
用系統光盤(pán)或系統備份帶啟動(dòng)(必須與硬盤(pán)中的操作系統版本一致)
啟動(dòng)后選擇選項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 命令退出,文件系統會(huì )自動(dòng) mount 起來(lái)。
重建bootimage
# lslv -m hd5 找出bootimage所在的硬盤(pán),如hdisk0
# bosboot -ad /dev/hdisk0
# bootlist -m normal /dev/hdisk0 重建啟動(dòng)順序表。
重啟動(dòng)系統
# shutdown -Fr
如上述步驟不奏效
用系統備份帶恢復系統。
如備份帶不能恢復,用診斷光盤(pán)(Diagnostic CDROM)檢查是否壞硬盤(pán)。
.CDE圖形界面掛死
CDE 運行時(shí)不要更改網(wǎng)絡(luò )參數(如:主機名和IP 地址)
更改網(wǎng)卡設置,請先退出CDE圖形環(huán)境,選擇命令行方式登錄,在字符界面下更改。
如CDE 已經(jīng)掛死
遠程 telnet 登錄
找出所有dt有關(guān)的進(jìn)程用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地址存在對應關(guān)系。
# smitty tcpip
重新啟動(dòng)CDE界面
# /etc/rc.dt
HACMP環(huán)境下可把主機名alias到127.0.0.1上
# cat /etc/hosts
127.0.0.1 loopback localhost tscf50 # loopback (lo0) name/addressbvg
.系統dump
發(fā)生在系統崩潰時(shí),AIX會(huì )做dump(系統內存的快照)。
此時(shí)機器會(huì )顯示閃動(dòng)的888 102 xxx 0cx 代碼:
0c9 系統dump 進(jìn)行中。0c9狀態(tài)可能會(huì )維持超過(guò)2分鐘,
不要關(guān)電和按reset, 等待dump做完。
0c0 dump 成功完成,這時(shí)可以斷電重起。
0c2 手動(dòng)啟動(dòng)dump 功能
0c4 dump 設備空間不足,只有部分信息保存下來(lái)
0c5 不明原因導致dump 失敗
一般dump是由于軟件出錯引起(888-102-207 除外),機器通??梢灾貑?。重啟時(shí)可能提示用戶(hù)插入磁帶拷貝dump文件,不要選擇退出,這樣會(huì )丟失重要的故障信息。
dump的有關(guān)設置
估算系統dump的大小,在系統最繁忙時(shí)(內存使用最多)
# 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 <-- dump的主設備
secondary /dev/sysdumpnull
copy directory /var/adm/ras <-- dump拷貝的目錄
forced copy flag TRUE
always allow dump TRUE
hd6應比估算值稍大。
/var/adm/ras 是默認的dump拷貝目錄,比較估算值,保證/var文件系統有足夠的剩余空間拷貝dump文件。否則機器重起時(shí)會(huì )提示用戶(hù)插入磁帶。
dump文件名為vmcore.#
對PCI機型如要手動(dòng)做dump,須把" always allow dump" 先設成true。
# sysdumpdev -K
dump打包
# snap -a -o /dev/rmt# 或
# snap -a -c 把/tmp/ibmsupt目錄做成一個(gè)壓縮文件
snap.tar.Z如果/tmp文件系統空間不夠,
可用-d directory 參數指定別的目錄代
替/tmp/ibmsupt
四 7133-D40 SSA磁盤(pán)柜的故障定位
當SSA磁盤(pán)柜出現故障時(shí),在磁盤(pán)柜前面板的液晶顯示屏上會(huì )顯示相應的SRNs,同時(shí)黃色的顯示燈會(huì )閃動(dòng),在A(yíng)IX的error log中也會(huì )有記載錯誤信息,如:DISK_ERR1,DISK_ERR4,SSA_ARRAY_ERROR等。請在出現問(wèn)題后記錄下代碼,并致電IBM服務(wù)熱線(xiàn)。
五 軟件故障定位方法
軟件故障情況錯綜復雜,下面列舉幾個(gè)常見(jiàn)案例的故障處理方法。
1) 文件系統空間不夠。
查看有沒(méi)有“滿(mǎn)”的文件系統。特別是/、/var、/tmp,不要超過(guò)90%。文件系統滿(mǎn)可導致系統不能正常工作,尤其是AIX的基本文件系統。如/ (根文件系統)滿(mǎn)則會(huì )導致用戶(hù)不能登錄。用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文件系統,其他文件系統都不應太滿(mǎn),一般不超過(guò)80%。
處理方法1:刪除垃圾文件
# du -sk * |sort -rn |head
查找出當前目錄下占空間最大的子目錄,逐層往下直到找出占空間最大的文件。(要區分哪些目錄是文件系統的 mount point,哪些是文件系統的子目錄)刪除文件,釋放空間。有時(shí)刪除文件后空間并不馬上釋放,這是由于你刪除的文件正被某個(gè)程序打開(kāi)。只有當這個(gè)程序停止后空間才釋放,有時(shí)甚至需要重起系統。
處理方法2:增加文件系統大小
# smitty chjfs
文件系統可以在任何時(shí)候加大,前提是卷組(VG)中有剩余空間。
2) 檢查文件系統的完整性
# umount filesystem_name
# fsck -y filesystem_name
注意:文件系統必須先umount,再做檢查和修復,否則可導致未
知的后果。
3)查看卷組信息(lsvg -l vg_name):
有沒(méi)有"stale"狀態(tài)的邏輯卷。 若有,用syncvg 命令修復"stale"邏輯卷。
4)檢查內存交換區(paging space)使用率(lsps -s):
使用率是否超過(guò)70% ,若有則用chps –sX pgname增加X(jué)個(gè)PP或用 mkps –a –n –sX myvg在myvg上增加一個(gè)PP數為X的內存交換區。
5) 小型機內存泄漏問(wèn)題
小型機出現內存泄漏,即系統或應用進(jìn)程無(wú)法將使用過(guò)的內存釋放,使可用內存的容量逐漸減少。如果可用內存降到某最小值將造成系統或應用程序無(wú)法FORK子進(jìn)程,就會(huì )造成系統癱瘓。
通常我們可以用ps和sar命令來(lái)查看小型機內存和CPU占用率的大概情況以及各進(jìn)程的內存和CPU占用率的發(fā)展趨勢。
(a) ps
# ps gv|head -n 1; ps gv|egrep -v "RSS" | sort +6b -7 -n -r |head -n 5
PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM COMMAND
15674 pts/11 A 0:01 0 36108 36172 32768 5 24 0.6 24.0 ./tctestp
22742 pts/11 A 0:00 0 20748 20812 32768 5 24 0.0 14.0 ./backups
10256 pts/1 A 0:00 0 15628 15692 32768 5 24 0.0 11.0 ./tctestp
2064 - A 2:13 5 64 6448 xx 0 6392 0.0 4.0 kproc
1806 - A 0:20 0 16 6408 xx 0 6392 0.0 4.0 kproc
SIZE virtual size (in the pagingspace), in kilobytes,
RSS real-memory (resident set) size in kilobytes of the process.
通過(guò)不同時(shí)間輸出的比較,就能觀(guān)察出內存和CPU占用率的基本情況。找出其中占用內存數不斷變大的進(jìn)程,這個(gè)進(jìn)程可能就已經(jīng)發(fā)生了內存泄漏。
(b) sar 指令也可以查看CPU占用率,但統計的結果不是很準確。通常使用sar令的格式為:
#sar -P ALL 2 10
09:29:37 cpu %usr %sys %wio %idle
09:29:39 0 0 0 4 95
1 1 0 4 95
- 0 0 4 95
09:29:41 0 0 2 6 92
1 3 4 2 91
- 2 3 4 92
09:29:43 0 3 1 2 94
1 2 2 2 95
- 2 1 2 94
09:29:45 0 2 2 7 90
1 4 5 6 86
- 3 3 6 88
09:29:47 0 1 1 2 96
1 1 2 2 96
- 1 1 2 96
09:29:49 0 0 0 0 100
1 0 1 0 99
- 0 0 0 100
09:29:51 0 2 0 0 98
1 0 1 0 98
- 1 0 0 98
09:29:53 0 7 1 6 86
1 2 2 5 90
- 5 2 5 88
09:29:55 0 4 5 56 35
1 12 2 55 32
- 8 4 55 33
09:29:57 0 16 8 14 64
1 15 9 11 65
- 15 8 12 64
Average 0 3 2 10 85
1 4 3 8 85
- 4 2 9 85
表示2秒鐘輸出一次結果總共有10次結果,然后平均。
目前,如果發(fā)現內存泄漏,最好重新啟動(dòng)系統。
六 HACMP環(huán)境下的排錯
在一般情況下,HACMP軟件很少需要手工干預,但一旦有問(wèn)題發(fā)生,診斷和恢復的技巧是很重要的.需要能很快地斷定問(wèn)題然后運用你對HACMP的理解來(lái)恢復HACMP的正常運作.
一般地,HACMP環(huán)境下的排錯包括:
.了解問(wèn)題的存在.
.判斷問(wèn)題的出處.
.解決問(wèn)題.
一 了解問(wèn)題的存在
您可以通過(guò)以下途徑了解到一個(gè)CLUSTER環(huán)境下出現了問(wèn)題.
.最終用戶(hù)的投訴,他們無(wú)法訪(fǎng)問(wèn)應用程序.
.控制臺上出現一些HACMP的信息.
1.應用服務(wù)無(wú)法訪(fǎng)問(wèn)
最終用戶(hù)的抱怨通常預示CLUSTER出現了問(wèn)題.他們無(wú)法正常執行應用或是無(wú)法登錄到系統.我們必須采集到詳細的信息以判斷到底那里出現了問(wèn)題.是否有錯誤的信息提示?如果可能的話(huà),讓用戶(hù)重復步驟以確定那里是錯誤的開(kāi)始.您也可以在自己的系統上重復.要知道用戶(hù)應用不可用并不代表HACMP有問(wèn)題.問(wèn)題可能出現在應用程序本身或是它的啟動(dòng)或終止腳本出現了問(wèn)題.因此應用程序本身的排錯也應是HA排錯的一部分.
2.控制臺上出現一些HACMP的信息
在HACMP啟動(dòng),終止或出錯時(shí),控制臺上會(huì )出現一些HACMP的信息,同時(shí)也會(huì )寫(xiě)入相應的文件中.
二 判斷問(wèn)題的出處
當錯誤出現時(shí),我們應嘗試發(fā)現錯誤的所在.但我們常常被錯誤的表面所誤導.以下的步驟可以使我們得到更詳細的信息.
1.保存好一些LOG文件.(/tmp/hacmp.out & /tmp/cm.log).因為它們可能被覆蓋.
2.仔細檢查HACMP所產(chǎn)生的LOG文件.它們能提供最初的判斷線(xiàn)索.
3.用HACMP的工具和AIX的命令來(lái)檢查HACMP的部件是否正常.
4.打開(kāi)HACMP的跟蹤工具來(lái)產(chǎn)生更詳細的信息.
.HACMP的LOG文件:以下文件都是文本文件,可以用VI來(lái)看.每個(gè)日志文件都含有每個(gè)信息的產(chǎn)生時(shí)間.
/usr/adm/cluster.log :記錄了HACMP的狀態(tài),由HA的守護進(jìn)程所產(chǎn)生.
/tmp/hacmp.out :記錄了HA的詳細腳本.
/usr/sbin/cluster/history/cluster.mmdd :記錄了HA的各個(gè)事件的發(fā)生.
/tmp/cm.log :由clstrmgr進(jìn)程產(chǎn)生,每次HA重起時(shí)會(huì )被覆蓋.
.HACMP FOR AIX的結構
應用層
HACMP軟件層
LVM & TCPIP 層
AIX 層
物理網(wǎng)絡(luò )層
物理硬盤(pán)層
硬件層
在物理網(wǎng)絡(luò )層,物理硬盤(pán)層,硬件層,LVM & TCPIP 層,AIX 層 我們可以用AIX系統命令來(lái)看是否硬件和系統出現了問(wèn)題.一般地,在用errpt命令來(lái)看沒(méi)有類(lèi)型為PH的錯誤,lsvg -o 來(lái)看我們所須的VG已varyon,mount來(lái)看我們所須的文件系統已安裝, netstat -i來(lái)看我們所須的service IP是UP的狀態(tài)(或用ifconfig en*),cluster node 之間的service 與service IP ,standby與 standby IP 互相可以ping通.在各個(gè)節點(diǎn)上執行stty<
在HACMP軟件層上,我們可以用vi /tmp/hacmp.out來(lái)看,如果出現event failed的字段,則有可能問(wèn)題出現在該層,如果在問(wèn)題出現的時(shí)段,hacmp.out無(wú)信息出現,則問(wèn)題可能出現在應用層.
以下是HA排錯的一些守則:
.在第一時(shí)間保存好相關(guān)的日志文件,特別是那些會(huì )被覆蓋的文件.
.嘗試去重復問(wèn)題的出現.不要被用戶(hù)所反映的問(wèn)題迷惑.
.漸進(jìn)地去重復問(wèn)題,如果有多個(gè)可能導致問(wèn)題的出現,一個(gè)一個(gè)地去重復,而不要一次重復多個(gè)可能.
.不要憑經(jīng)驗來(lái)判斷問(wèn)題,而是要在各種測試后,由結果來(lái)判斷.
.隔離問(wèn)題的來(lái)源,根據我們上面所敘述的層次關(guān)系,至頂向下地診斷.
.由簡(jiǎn)到繁地做測試,我們先從一個(gè)簡(jiǎn)單的環(huán)境來(lái)做測試,不要嘗試在一個(gè)復雜的環(huán)境中測試.
.一次做一次改動(dòng),否則我們無(wú)法知道是那個(gè)改動(dòng)解決了問(wèn)題.
.不要忽略各種可能,因小可失大,留心系統的每一個(gè)細節,包括電源,插頭,連線(xiàn)等.
.保持各種測試的記錄以及解決的步驟,用做將來(lái)排錯的參考.
.撥打IBM服務(wù)熱線(xiàn),將問(wèn)題現象和您所做的測試結果告訴IBM的工程師,他們將在CALL CENTER的測試中心重復試驗,必要時(shí)會(huì )派工程師到場(chǎng)解決問(wèn)題.
三 IBM HACMP 雙機系統的管理和維護
本節將說(shuō)明HACMP 雙機軟件的一些基本管理和維護命令這些命令將會(huì )在HACMP 雙機
系統的日常工作中經(jīng)常用到.
1 HACMP 雙機系統的啟動(dòng)
要啟動(dòng)HACMP 雙機系統必須要有root 用戶(hù)的特權分別進(jìn)入到系統各節點(diǎn)主機在命令
行上執行下述命令即可.
# smit clstart
或
# /usr/sbin/cluster/etc/rc.cluster -boot -N –I
需要注意的是在雙機系統中HACMP 雙機軟件先啟動(dòng)的節點(diǎn)將成為主節點(diǎn)擁有資源
并對外提供關(guān)鍵服務(wù)后啟動(dòng)的節點(diǎn)將成為備節點(diǎn).
另外在啟動(dòng)HACMP 前需要啟動(dòng)雙機上的INFORMIX 和SCP 應用.
2 HACMP 雙機系統的關(guān)閉
要關(guān)閉某節點(diǎn)上的HACMP 雙機軟件必須要有該節點(diǎn)root 用戶(hù)的特權以root 用戶(hù)進(jìn)入到
該節點(diǎn)主機在命令行上執行下述命令即可.
# smit clstop
或
# clstop -gr
需要注意的是若該節點(diǎn)是主節點(diǎn)并且備節點(diǎn)上的HACMP 軟件亦正常運行則需注意
clstop 關(guān)閉模式的三種選項的不同1 forced 是指立即關(guān)閉雙機軟件不調用任何客戶(hù)應用的
善后處理例程.2 graceful 是指在關(guān)閉雙機軟件時(shí)將調用客戶(hù)應用預定義的善后處理例程.3
takeover 是指該節點(diǎn)將關(guān)閉雙機軟件并釋放資源請求備節點(diǎn)進(jìn)行接管.如該節點(diǎn)是備節點(diǎn)
則關(guān)閉模式選項沒(méi)有多大意義.
另外關(guān)閉HACMP 將關(guān)閉manager 和informix.
3 查詢(xún)HACMP 雙機系統的狀態(tài)
在雙機系統的運行當中操作員經(jīng)常需要知道雙機系統的當前狀態(tài)才有可能對雙機系
統出現的異常情況進(jìn)行恢復處理才能保證雙機系統的高可用性和高容錯性.查詢(xún)HACMP 雙機系統的狀態(tài)只需以root 用戶(hù)進(jìn)入需要查詢(xún)的節點(diǎn)進(jìn)行下列操作
首先檢查HACMP 雙機軟件在該節點(diǎn)是否已啟動(dòng)命令如下
# lssrc -g cluster
若是系統顯示出下面類(lèi)似的信息則說(shuō)明HACMP 雙機軟件已正常啟動(dòng).
Subsystem Group PID Status
clstrmgr cluster 22500 active
clsmuxpd cluster 23674 active
clinfo cluster 28674 active
在已確認雙機軟件HACMP 正常啟動(dòng)的情況下在命令行執行下述命令來(lái)察看雙機系統的當前狀態(tài)
# /usr/sbin/cluster/clstat -a
如果雙機系統一切工作正常則系統將顯示下述類(lèi)似信息
clstat - HACMP for AIX Cluster Status Monitor
-------------------------------------------------------------------------------------
Cluster: scp_cluster(80) Thu Jan 20 08:45:17 TAIST 2000
State: UP Nodes: 2
SubState: STABLE
Node: mscp1 State: UP
Interface: mscp1_svc (0) Address: 192.9.1.60
State: UP
Interface: mscp1_tty (1) Address: 0.0.0.0
State: UP
Node: mscp2 State: UP
Interface: mscp2_svc (0) Address: 192.9.1.61
State: UP
Interface: mscp2_tty (1) Address: 0.0.0.0
State: UP
七 常用的系統狀態(tài)查詢(xún)命令:
# lsdev –C –s scsi
列出各個(gè)SCSI設備的所有相關(guān)信息:如邏輯單元號,硬件地址及設備文件名等。
# ps -ef
列出正在運行的所有進(jìn)程的各種信息:如進(jìn)程號及進(jìn)程名等。
# netstat -rn
列出網(wǎng)卡狀態(tài)及路由信息等。
# netstat -in
列出網(wǎng)卡狀態(tài)及網(wǎng)絡(luò )配置信息。
# df -k
列出已加載的邏輯卷及其大小信息。
# mount
列出已加載的邏輯卷及其加載位置。
# uname -a
列出系統ID 號,系統名稱(chēng),OS版本等信息。
# hostname
列出系統網(wǎng)絡(luò )名稱(chēng)。
# lsvg –l rootvg,lsvg –p rootvg
顯示邏輯卷組信息,如包含哪些物理盤(pán)及邏輯卷等。
# lslv –l datalv,lslv –p datalv
顯示邏輯卷各種信息,如包含哪些盤(pán),是否有鏡像等。
八 網(wǎng)絡(luò )故障定位方法
網(wǎng)絡(luò )不通的診斷過(guò)程:
ifconfig 查看網(wǎng)卡是否啟動(dòng) (up)
netstat –i 查看網(wǎng)卡狀態(tài)
Ierrs/Ipkts 和 Oerrs/Opkts是否>1%
ping自己網(wǎng)卡地址 (ip 地址)
ping其它機器地址,如不通,在其機器上用diag檢測網(wǎng)卡是否有問(wèn)題。
在同一網(wǎng)中, subnetmask 應一致。
網(wǎng)絡(luò )配置的基本方法:
(1) 如需修改網(wǎng)絡(luò )地址、主機名等,一定要用 chdev 命令
# chdev –l inet0 –a hostname=myhost
# chdev -l en0 -a netaddr=‘9.3.240.58‘ -a netmask=255.255.255.0’
(2) 查看網(wǎng)卡狀態(tài):# lsdev –Cc if
(3) 確認網(wǎng)絡(luò )地址:# ifconfig en0
(4) 啟動(dòng)網(wǎng)卡:# ifconfig en0 up
(5) 配置路由
有兩種方式加入路由:
永久路由
# chdev -l inet0 -a route=’10.47.0.0’,’9.3.240.59’
臨時(shí)路由
# route add 10.47.1.2 9.3.240.59
用命令 netstat -rn 查看路由表
附:常用命令列表:
Any XXXX, ####, ****, or X is to be substituted by a name, resource name or #,
fn = filename
DIR = Directory
| = pipe symbol
bosboot -a -d /dev/hdiskx -rebuilds boot record/image on boot device(hdiskx)
cat -view contents of a file
cat /tmp/****.1 -view a file, look at output
cat fn fn > newfile -combines two files to a single file
cd -will return you to default DIR
cd / -will put in root DIR
cd /xxxx -change you to a DIR anywhere is system
cd .. -will drop you out of 1 DIR at a time
cd xxxxx -will change you to a DIR in current dir
cfgmgr -will auto config devices
cfgmgr -v & -(-v) shows processes (&) puts in background
chps -s xx hd# -increase paging space (xx=# of addt‘l PPs)
cp oldfn newfn -copy a file
cp oldfn Dirn -copy a file to another directory
crontab -l -list crontab entries for the current user
ctrl + v -will page down 1 page
ctrl + 6 -will page up 1 page
del fn -same as rm -i,promts to remove fn
df -I -shows status of file systems (no inodes)
df -Ik -(k) show status in 1024 bites(1mb)(only AIX 4
diag -a -updates changes in hardware configuration
diag ***** -****= a device type(as tape,disk....Fastpath)
diag -cd rmtX -resets tape drive
dosformat -formats a diskette to DOS
dosdir -list files on dos formated diskette
dosread XX YY -copies dos file XX to aix file YY
doswrite YY XX -copies aix file YY to dos file XX
errpt -generates a one line synopsis of logged errors
errpt | pg -list errorlog 1 page @ a time(1st column is ID)
errpt -a -displays detailed information of logged errors
errpt -s Mmddhhmmyy -select entries posted later than date
errpt -aj XXXXXXX -list detail error by ID number.(XXX=1st column)
errpt -d S -list software errors
errpt -j XXXXXXX -list summary report by ID number.
errpt -aN XXXXXX -list detailed report by resource name column
errpt -N XXXXXXX -list summary report by resource name column
errclear 0 -clears errorlog
errclear -N XXXXX 0 -clears errorlog by resource name, 0=all enter
errclear -j XXXXX 0 -clears errorlog by ID number.
finger -same as who but with more details
flcopy -copies a diskette to another diskette
format -formats a diskette in default diskette drive
format -l -formats in lower denity: 1.44 on 2.44 / 720 on 1.44
hostname -responds with host system name
host (hostname) -responds with internet address
instfix -ik IPAR# -lists ipar fix was completely installed
lppchk -v -checks install status of LPPs
lppchk -v 2> /dev/lpX -sends output of lppchk to printer lpx
lpstat -a all -view all printer queues
lptest 80 5 > /dev/lp0 -send test pattern to lp0
ls -list names of files & directories in current dir
ls -lia -list details of files, current dir & subdir
ls -al -list details of files or dir in current dir
lsattr -El xxxxxx -list specific settings on a device
lsdev -C | sort -d -f -list system hardware (devices)
lsdev -C | grep 00-0X -list resourses for a adapter
lsdev -Cc xxxxx -H -list devices(xxx=tty,printer,disk,memory,adpt
lsdev -Cs scsi -list scsi devices(not serial or raid)
lsdev -Cc tape -list tape devices
lsdev -Cs pci -list pci devices
lsdev -Cs isa -list isa devices
lscons -lists the assigned console
lscfg -list hardware list (same as diags list)
lscfg -rl mem* |pg -lists the memory on PCI bus machines
lscfg -vl XXXXX -list config info from a device.(rmt0,hdisk,etc)
lscfg -vl sysplanar0 -lists the machine type, model, s/n on SMP
lsfs -list all filesystems + data from "df" cmd
lslpp -l | grep BROKEN -lists incomplete ptfs
lslv -m hd5 -finds boot drive under pv1 column
lsps -a -checks available paging space
lsps -s -checks available paging space
lspv -lists information about the physical volumes
lspv hdisk# -list drive info
lspv -l hdisk# -lists logical volume group disk in
lsuser -f ALL -lists all attributes for all users
lsvg -lists volume groups
lsvg -p XXXXXX -lists disks in volume group (xxxxx= volume name)
more -reads files and displays the text one screen at a time.
mpcfg -df -list all setting the machine is set to (smp)
mpcfg -cf 11 1 -changes to fast IPL on SMP machines (smp)
mv fn (path fn) -move and rename a file
oslevel -shows AIX version (3.2.4 and above)
pg -reads and displays text one screen at a time.
pdisable -makes unavailable or shows all disabled tty‘s
pdisable tty# -disables a tty
penable -makes available or shows all enabled tty‘s
penable tty# -enables a tty
ps -el |pg -look at process running on system
pwd -list what DIR you are currently in
r -repeats last command
rm -i ******* -remove a file & will prompt you if you are sure
rmdev -l XXXXX -removes a device and defines it to data base
rmdev -l XXXXX -d -removes a device and deletes it from data base
set -o vi -sets up to veiw cammands that have been run
:wq -write(save) and quit file
Esc + k -used with SET command to list last command
k,l -k=list next command ran, l=steps you thru command
I -use with SET command inserts characters
j -steps you backwards
cw -cw=removes a word,just type in new word
(use with Esc)
a,x,r -a=added text, x=delete text, r=replace text(r+letter)
R -lets you type over letters or words
smit ***** -(*****= tape,disk,tty,etc.fastpath)
su -stands for switch user,(NOT super user)
su -switches to root id or prompts you for password
su XXXXXX -switches to XXXXXX‘s id
tar -cvf /dev/rmtX /etc -will copy /etc to a tape drive
tar -tvf /dev/rmtX -will read a tape drive
tctl -f /dev/rmtX rewoffl -rewind & eject tape
tctl -f /dev/rmtX.1 fsf 3 -forward advances a tape to be read by TAR
tctl -F -list avail commands(-F flag is not correct)
tctl retension -retensions tape in tape drive
& -put any command in background with process ID
uptime -how long since last IPL and how many users on system
vmstat # # -reports virtual memory statistics and more
iostat # # -reports CPU,disk & cdrom statistics
use with vm & iostat -1st #(how many sec to repeat), 2nd #(how many times)
who -shows users on system
who am i -shows user id on your terminal & tty number
USE the following with other commands.
---------------------------------------------------
>/tmp/****.1 -creates a file (used with lsXXX command)
>/dev/lp# -redirectes output to a printer(use with a comd)
|grep -is useful to search for text in a file.
|pg -use after any command to view one page at a time
| -pipe sign - Takes the output of one command and
feeds it to the input of another.
> -redirect sign or greater than sign
/ -slash sign
\ -back slash sign
>> -double redirect will add text to end of file
& -put any command in background with process ID
MUST unmount file system 1st to run fsck & dfsck/only use with a problem
----------------------------------------------------------------------------------------------
fsck XXXXXXX -will check a file system for errors & prompt
dfsck /XXXX /XXXX -will check 2 different file sys at the same time
FOLLOWING command lines will delete a group of devices as a group, the #,
sign is the hdisk#‘s that you want to delete.(this is an exampe.)
--------------------------------------------------------------------------------------------------
for disk in # # # # -this line and the next 3 line work together
do -the prompt will be > (REMEMBER to hit enter)
rmdev -l hdisk# {disk} -d -the prompt will be > (brackets around disk change)
done -the prompt will be > (on a printout. change to
SSA RELATED COMMANDS
-----------------------------------------
lsattr -El ssaX -list attributes of SSA adapters
lscfg -vl ssaX -list VPD of SSA adapters
lsdev -C | grep SSA -list all SSA devices
lslpp -L | grep SSA -list SSA device drivers
maymap -ap -maymap display of SSA loop
maymap -alph -maymap display of SSA loop
lscfg -vl pdisk* -list VPD of pdisks
ssaxlate -l hdiskX -list hdisk to pdisk assignment
ssaxlate -l pdiskX -list pdisk to hdisk assignment
ssa_rescheck -l hdiskX -show hdisk reservation status
FOLLOWING CMDS LIST, COPY, AND RESTORE FOR cpio,tar,dd,backup,dos:
NOTE: The fd0 is just a dev. so you may use any media you desire.
-----------------------------------------------------------------------------------
LIST COPY
------ --------
cpio -itv < /dev/fd0 ls /tmp/fn | cpio -ov > /dev/fd0
tar -tvf /dev/fd0 tar -cvf /dev/fd0 fn
dd li -l | dd dd if=fn of=/dev/fd0
restore -Tf /dev/fd0 backup -0 -uf /dev/fd0 fn By INODE
restore -Tf /dev/fd0 find / -print | backup -i -f/dev/fd0 By NAME
dosdir doswrite -a (AIX fn) (fn.ext)
TO RESTORE
-------------------
cpio -iv fn < /dev/fd0
tar -xvf /dev/fd0
dd of=/dev/fd0 if=fn
restore -xvf /dev/fd0 fn BY NAME/INODE, restore understands unless special
flags were used.
dosread -a (fn.ext) (AIX fn)
TO DOCUMENT THE SYSTEM
-------------------------------------------
lscfg -v > /dev/lpx -to list sys config/VPD
lsuser -f ALL > /dev/lpX -to list users
lsdev -Cc tty -H -to list all tty‘s
lsdev -Cc lp -H -to list all lp‘s
lsattr -El ttyX > /dev/lpX -to list ttyX parameters (do for each tty)
lsattr -El lpX > /dev/lpX -to list lpX parameters (do for each lp)
lpstat > /dev/lpX -to list queues
lsfs > /dev/lpx -to list filesystems
lspv > /dev/lpx -to list hard drives
lspv hdiskx -to list hard drive config (do for each drive)
lspv -l hdiskx -to list files on drive
lsvg rootvg -to list rootvg data
plus printout of or save to diskette:
------------------------------------------
/etc/inittab
/etc/objrepos/Cu*
/etc/passwd
/etc/filesystems
/etc/security/passwd
/etc/hosts
/sbin/rc.boot