梁明炯
摘 ?要:AIX與Linux都是常用的類UNIX操作系統(tǒng),通常運行于服務(wù)器端。如何檢查硬件狀態(tài),及時發(fā)現(xiàn)硬件故障是服務(wù)器運維的基礎(chǔ)。文章對AIX和Linux系統(tǒng)查看硬件狀態(tài)的方法進行了比較分析。
關(guān)鍵詞:AIX;Linux;硬件狀態(tài);比較
中圖分類號:TP368.5 文獻標(biāo)志碼:A ? ? ? ? 文章編號:2095-2945(2020)24-0043-03
Abstract: AIX and Linux are both frequently used UNIX-like operating systems which often operate on the server side. How to check hardware status and find out hardware faults in time is the basis of server operation and maintenance. This paper compares and analyzes the methods of checking hardware status by AIX and Linux systems.
Keywords: AIX; Linux; hardware status; comparative analysis
1 背景及意義
Linux最初由Linus Torvalds編寫,是一套免費使用的,支持多線程和多CPU的類UNIX操作系統(tǒng)[1]。AIX則是由IBM開發(fā),主要應(yīng)用于IBM RISC 6000系列機器的類UNIX操作系統(tǒng)[2]。AIX和Linux都有穩(wěn)定的性能,因此常被用作服務(wù)器系統(tǒng)。在服務(wù)器運維中,如何檢查硬件狀態(tài),及時發(fā)現(xiàn)硬件故障是運維基礎(chǔ)。雖然AIX和Linux有相似性,但是兩者的很多結(jié)構(gòu)和操作命令都不太相同,本文對AIX和Linux系統(tǒng)查看硬件狀態(tài)的方法進行了比較分析。熟悉掌握兩者的區(qū)別,才能更好的提升服務(wù)器運維的效率,保障業(yè)務(wù)系統(tǒng)的安全運行。
2 AIX系統(tǒng)硬件狀態(tài)
AIX系統(tǒng)提供了記錄硬件錯誤日志的功能,通過系統(tǒng)日志可以深入了解硬件的具體情況。在檢查硬件狀態(tài)時,首先應(yīng)查看系統(tǒng)日志,再通過相關(guān)AIX命令查看硬盤內(nèi)存等是否正常[3]。
2.1 基于日志查看硬件告警
如果系統(tǒng)檢測到了某個硬件出現(xiàn)了錯誤,則把該錯誤記錄在/dev/error設(shè)備中。服務(wù)器上有一塊存儲器叫NVRAM(Non-Volatile Random Access Memory,非易失性隨機訪問存儲器),它所存儲的數(shù)據(jù)在斷電之后不會丟失。AIX系統(tǒng)會把所記錄的錯誤記錄保存在NVRAM中。AIX系統(tǒng)的錯誤日志進程errdemon(位于/usr/lib/目錄下),它負(fù)責(zé)從/dev/error中讀取錯誤記錄,并根據(jù)系統(tǒng)的錯誤模板庫對錯誤記錄進行格式化后寫入系統(tǒng)的錯誤日志中。AIX處理后的系統(tǒng)錯誤日志默認(rèn)存放在/var/adm/ras/errlog。這是個格式化文件,如果使用系統(tǒng)的文本查看命令,例如more命令打開errlog文件只能看到亂碼。不過,AIX系統(tǒng)提供了errpt命令可查看錯誤日志文件。運行errpt命令輸出的信息包括6列,其含義如下:
(1)IDENTIFIER:錯誤標(biāo)示符,表示所使用的錯誤模板。
(2)TIMESTAMP:錯誤時間戳,格式為MMDDhhmmYY(月日時分年)。
(3)T:錯誤類型,共分為6種錯誤類型:PEND(設(shè)備或功能組件可能丟失,簡寫為P)、PERF(性能嚴(yán)重下降,簡寫是P)、PERM(硬件設(shè)備或軟件模塊損壞,簡寫也是P)、
TEMP(臨時性錯誤,或已恢復(fù)正常,簡寫為T)、INFO(一般消息,簡寫為I)、UNKN(未確定的錯誤,簡寫為U)。
(4)C:錯誤種類,表示錯誤來源,包括硬件或介質(zhì)錯誤(簡寫為H)、軟件錯誤(簡寫為S)、其它錯誤(簡寫為O)、未確定的錯誤(簡寫為U)。
(5)Resource_Name:資源名稱,即出現(xiàn)錯誤的資源名稱。對于硬件錯誤,一般指設(shè)備,對于軟件錯誤,一般指軟件部件或者可執(zhí)行程序名稱。
(6)Description:錯誤描述,表示錯誤的簡要說明。
服務(wù)器上運行errpt命令后的顯示如圖1所示。例如第二行信息,表示錯誤是2020年4月3日7時47分出現(xiàn)的,為軟件錯誤。對于硬件錯誤重點關(guān)注第三和第四列。第三列T表示類型,如果T值為PERM,通常表示有損壞的硬件設(shè)備或者軟件模塊;第四列表示種類class,若值為H則表示硬件設(shè)備故障或者介質(zhì)錯誤。因此,可通過errpt命令帶相關(guān)參數(shù)列出相關(guān)硬件故障信息。例如,通過“errpt -d H”命令可查詢所有硬件出錯信息,而通過“errpt -T PERM-d H”命令可以查詢硬件損壞的錯誤信息。
使用errpt命令顯示的是所有故障信息。如果需查看某個錯誤的詳細(xì)內(nèi)容,可以在命令上加錯誤標(biāo)示符。圖1中顯示的錯誤信息,如果需查看第一行的具體內(nèi)容,具體命令為:errpt-aj A6DF45AA,表示列出標(biāo)識符為A6DF45AA錯誤的詳細(xì)內(nèi)容。
2.2 相關(guān)命令查看硬件狀態(tài)
AIX提供了smitty工具用于檢查硬盤等的硬件設(shè)備是否故障。通過輸入smitty pxdam命令,可以進入檢查硬盤狀態(tài)如圖2所示。圖中第一行第三列的值為optimal,表示磁盤陣列的狀態(tài)正常,如果值為degrade或者failed則表示磁盤陣列中有損壞的磁盤。具體磁盤pdisk0到pdisk6的狀態(tài)顯示在第二到第七行,其值均為active,表示所有磁盤狀態(tài)都正常,如果狀態(tài)顯示為failed或者其它值,則表示這塊磁盤可能已故障。
AIX的lsdev命令可用來檢查列出系統(tǒng)中的設(shè)備狀態(tài)和信息。lsdev命令實際上是從系統(tǒng)中一個叫“設(shè)備配置數(shù)據(jù)庫”中獲取系統(tǒng)的設(shè)備信息,然后通過相關(guān)的格式化選項參數(shù)返回信息。命令的常用參數(shù)包括:-C(從預(yù)定義庫中顯示設(shè)備信息)、-c(限制輸出指定類中的設(shè)備)、-H(顯示列輸出的頭部分)、-S(顯示指定狀態(tài)的設(shè)備)、-F(以指定格式顯示輸出)。結(jié)合以上參數(shù)就可通過lsdev命令根據(jù)實際需求檢查硬件狀態(tài)。例如查看內(nèi)存狀態(tài),通過輸入命令Lsdev-Cc memory,如果內(nèi)存狀態(tài)正常會顯示Available;而通過輸入Lsdev-Cc disk命令則可以查看硬盤狀態(tài)是否正常。
3 Linux系統(tǒng)硬件狀態(tài)
Linux系統(tǒng)具有強大的日志功能,可以通過日志查看硬件狀態(tài)。和AIX系統(tǒng)一樣,Linux系統(tǒng)內(nèi)核會把產(chǎn)生的各種錯誤信息(包括硬件錯誤信息)通過日志守護進程寫到日志文件中。Linux日志文件通常保存在/var/log目錄下,包含了系統(tǒng)和服務(wù)的各種信息。作為運維人員重點關(guān)注:boot.log,用于記錄系統(tǒng)啟動時的日志,可查看各系統(tǒng)服務(wù)啟動的信息;/lastlog,包含系統(tǒng)所有用戶最近操作信息;btmp,包含所有登錄失敗的信息;message,記錄系統(tǒng)整體信息,包含系統(tǒng)啟動期間的日志和cron、daemon等的內(nèi)容;secure,記錄系統(tǒng)驗證與授權(quán)信息;dmesg,包含許多與硬件有關(guān)的信息[4]。因此檢查系統(tǒng)的硬件狀態(tài)重點查看/var/log/dmesg日志文件。
3.1 基于日志查看硬件告警
Linux系統(tǒng)的/var/log/dmesg日志文件記錄了系統(tǒng)開機BIOS自檢信息,以及光驅(qū)、網(wǎng)卡、RAID、LVM等配置信息。既可以使用cat /var/log/dmesg命令來查看該日志內(nèi)容,也可以直接使用Linux的dmesg命令來查看。由于dmesg命令輸出的信息太多,對于運維人員,可以通過三個方法篩選出有用的硬件狀態(tài)信息。
(1)通過dmesg的level標(biāo)簽根據(jù)錯誤級別限制輸出內(nèi)容。level標(biāo)簽把錯誤分成emerg(系統(tǒng)無法使用)、alert(須立即采取行動)、crit(危急條件)、err、warn、notice、info和debug共8個等級。因此運維人員可把錯誤級別限制在warn以上輸出,如:dmesg-level=warn,err,alert,crit,emerg
(2)通過使用如more、less等命令對輸出的信息分頁
或者指定行數(shù)顯示,如:dmesg | more、dmesg | tail -10
(3)通過grep命令對硬件關(guān)鍵詞進行過濾篩選。例如,查看硬盤設(shè)備信息,你可以使用grep命令搜索sda關(guān)鍵詞,如:dmesg | grep sda,同樣可以通過memory、cpu等關(guān)鍵字查看內(nèi)存和cpu信息。需要查看所有硬件設(shè)備的錯誤信息,則可以過濾含err關(guān)鍵字的日志信息,如:dmesg | grep err
3.2 相關(guān)命令查看硬件狀態(tài)
(1)通過Linux的smartctl 命令查看硬盤的SMART信息。硬盤的SMART(Self-Monitoring Analysis and Reporting Technology,自我監(jiān)測分析與報告技術(shù)),是硬盤運行時會將自身的相關(guān)參數(shù),包括溫度、容量、扇區(qū)、密度、內(nèi)部電路等記錄下來,系統(tǒng)對硬盤的這些參數(shù)實時監(jiān)控,若參數(shù)超過閾值,則會發(fā)出警告,從而保護數(shù)據(jù)不受損失。
首先通過smartctl-i
可通過命令“smartctl --test=TEST /dev/sda”對硬盤進行自我檢測,檢測的結(jié)果信息可通過“smartctl -l selftest /dev/sda”查看。另外,如果需要查看硬盤的歷史錯誤日志,輸入命令:smartctl -l error /dev/sda。
(2)Linux提供了一系列以ls開頭的命令,可查看硬件的詳細(xì)信息。常用的包括lsblk(顯示可用塊設(shè)備的信息)、lscpu(顯示cpu相關(guān)信息)和lsscsi(顯示SCSI設(shè)備信息)等:
a. lsblk命令除了列出可用塊設(shè)備(包括硬盤、CD-ROM等)的信息外,還能顯示塊設(shè)備之間的依賴關(guān)系。lsblk命令默認(rèn)以樹狀形式顯示,其輸出結(jié)果包括7個列。其中,NAME表示塊設(shè)備名稱,TYPE表示塊設(shè)備是否為磁盤或磁盤上的一個分區(qū),MOUNTPOINT表明設(shè)備掛載的掛載點。lsblk命令也用來列出某個特定設(shè)備的所屬關(guān)系,同時可列出組和模式。lsblk常用的參數(shù)包括-a和-b。“l(fā)sblk -a”命令會列出服務(wù)器上所有的設(shè)備包括空設(shè)備。-b參數(shù)表示以字節(jié)方式顯示設(shè)備大小,常用于查詢指定設(shè)備的信息,例如可以通過命令“l(fā)sblk -b /dev/sda”可查詢上面提到的服務(wù)器中設(shè)備符號為/dev/sda的硬盤信息。
b. lspci命令用于顯示有關(guān)pci總線信息以及連接它們的設(shè)備信息。lspci命令的輸出信息中常見到“[]:[].[]”格式的數(shù)字(如00:02.0)。這是以十六進制顯示總線編號,其中第一個參數(shù)表示總線編號,第二個是插槽編號,第三個是功能編號。lspci命令在默認(rèn)情況下顯示簡單的設(shè)備列表,常用的選項參數(shù)包括-v(輸出更多PCI 接口裝置的詳細(xì)信息)和-vv(表示輸出更詳細(xì)的用于解析的信息)可輸出pci詳情。
c. lscpu命令從sysfs、/proc/cpuinfo或者特定架構(gòu)的庫中收集數(shù)據(jù)。該命令的輸出信息包括cpu、線程、內(nèi)核、插槽、共享緩存、cpu型號、運行模式、處理指令速度等信息。為了以可讀格式顯示lscpu命令信息,常用-e參數(shù)選項來格式化輸出,其命令為:lscpu -e。所輸出的信息包括cpu、node、socket、core、online、maxMHZ等信息列。如果希望限制輸出特定列,比如限制輸出為cpu、node和socket列,那么具體命令為:lscpu -e=cpu,node,socket。如果希望只顯示在線或者離線cpu信息,可以用-b或者-c選項執(zhí)行l(wèi)scpu操作。具體為lscpu -b和lscpu -c。
4 結(jié)束語
AIX和Linux系統(tǒng)擁有穩(wěn)定的運行性能,是服務(wù)器常用的操作系統(tǒng)。作為服務(wù)器運維人員,檢查服務(wù)器硬件是否正常、有無硬件故障是基礎(chǔ)工作。本文闡述了AIX和Linux系統(tǒng)中如何查看硬件的狀態(tài)是否正常。通過這兩者的比較分析,有助于運維人員理解它們之間的差異以及各自的硬件狀態(tài)檢查方法,以保障業(yè)務(wù)系統(tǒng)的正常運行。
參考文獻:
[1]謝勝盈.批量自動巡檢Linux服務(wù)器[J].網(wǎng)絡(luò)安全和信息化,2018:94-96.
[2]稅儀冬.基于RS6000服務(wù)器的DB2數(shù)據(jù)庫性能調(diào)優(yōu)[D].西南交通大學(xué),2006.
[3]顧宇紅.服務(wù)器在線模式下硬件故障診斷的方法[J].福建電腦,2011(12):153-157.
[4]李明.看懂Linux的日記[J].開放系統(tǒng)世界,2006(7):78-79.