李 挺, 鄧 科, 蔡 昂, 張煥青, 王 匯, 馮 凝, 李 煒
(國網湖北省電力有限公司 檢修公司, 武漢 430050)
類Unix操作系統(Solaris Unix操作系統、HP Unix操作系統等Unix的各種商業版本及基于Unix系統的Linux和各種Linux的商業版本)具有可靠性高、安全性強和數據庫支持功能強大等優點[1],已成為最為安全、可靠、流行的大型服務器操作系統,被廣泛應用于各行業的工業服務器設備。然而,此類系統存在操作復雜、普適性低以及缺乏有效監測與維護手段等問題[2],并存在重要數據丟失和系統崩潰的風險,大幅縮短了硬件設備使用壽命[3-6]。
目前常用的類Unix系統服務器硬件檢測方法包括基于Linux Live技術的檢測方法[7]、基于Windows to go技術的檢測方法[8]和基于類Unix系統硬件檢測軟件的方法[9]。雖使用Linux Live技術能抽取出開源軟件的源代碼,靈活定制硬件自動檢測軟件及生成所需的精簡版檢測報告[10]。但由于Linux Live系統自帶的軟件驅動庫版本老舊且不完整,在不同硬件配置機器間的檢測中,需耗費大量時間從系統ISO驅動文件庫中查找及安裝驅動程序(>30 min),且常由于缺乏與最新服務器硬件匹配的驅動文件,造成系統無法啟動[11]?;赪indows to go技術的檢測方法雖擁有完整的系統,但相較于基于Linux Live技術的檢測方法需要占用的U盤空間大(16 GB以上),且對于U盤的讀取速度要求過高[12-14]。而基于類Unix系統硬件檢測軟件的方法又存在檢測功能單一、兼容性不足和操作難度大的問題[15]。
綜上所述,依靠現有類Unix系統檢測技術來檢測服務器設備難以緩解類Unix系統服務器存在的檢修和維護壓力。因此,開發一套高效簡單且兼容所有類Unix操作系統的硬件檢測方案具有較大的實際意義。本文設計與實現了一套類Unix操作系統便捷型離線硬件檢測軟件,以U盤啟動Windows PE的方式,使用Windows綠色軟件實現X86架構的類Unix操作系統服務器的跨平臺自動硬件健康檢測及報告自動獲取功能。
X86架構的服務器常由于缺乏系統運行所需的硬件驅動,導致無法兼容類Unix操作系統,但其均能兼容Windows操作系統[10]。因此,本文采用U盤啟動的方式,使用兼容Windows PE操作系統的硬件檢測軟件,來實現類Unix服務器的硬件檢測。經過試驗,存在以下技術要點。
1) 應用軟件在Windows PE系統下難以永久安裝。由于Windows PE采用虛擬內存系統運行方式,在此系統下安裝任何應用軟件,將會隨著系統重啟,造成安裝配置還原消失。
2) 缺乏完整的DLL文件導致應用軟件無法運行。由于Windows PE系統只包含系統的核心文件,缺乏完整的 DLL文件庫。因此,基于Windows PE的類Unix操作系統的計算機硬件檢測方法通常會出現多個軟件無法開啟的問題,且報錯類型均為“缺少DLL文件”(如圖1所示),從而導致多個應用軟件無法運行。

圖1 缺少DLL報錯Fig.1 Missing DLL report error
針對問題1),本文采用將已安裝完好的Windows綠色軟件預先存貯在裝有Windows PE系統的啟動U盤內,避免了在Windows PE系統下安裝應用軟件重啟后,安裝軟件消失的問題。
對于問題2),由于Windows PE系統采用虛擬內存運行方式,為防止重啟系統后,造成系統配置的文件還原消失。本文采用預定制具有完整DLL動態鏈接庫(總文件約60 MB)的Windows PE系統,為應用軟件的正常使用提供了運行環境。圖2和圖3所示分別為在預定制Windows PE系統下使用魯大師軟件對不同硬件配置裝有類Unix系統的浪潮服務器與惠普服務器進行硬件檢測時的界面。由圖可看出,系統能正常完成軟件檢測功能。

圖2 浪潮服務器魯大師檢測界面Fig.2 Detection interface byLudashi

圖3 惠普服務器魯大師檢測界面Fig.3 HP server Lu master detection interface
3) Windows軟件源代碼難以抽取導致檢測結果自動獲取困難。由于現有Windows硬件檢測軟件多為非開源軟件,難以采用抽取源代碼進行軟件定制的方式生成檢測報告的常規方法。若采用重新開發檢測軟件的方式,將耗費大量人力、物力。
對于此問題,采用可導出檢測報告支持Windows系統的現有服務器硬件檢測軟件進行檢測。隨后,再將報告文件提取后進行信息篩減,生成精簡版的報告文件。
為實現在Windows PE系統下,對類Unix系統的服務器硬件自動檢測并生成精簡報告的功能。方案如下:
1) DLL動態鏈接庫文件完整預定制。預定制具有完整DLL動態鏈接庫文件的Windows PE系統;
2) 檢測軟件資源綜合集成。將魯大師、aida64等Windows硬件檢測綠色軟件復制到Windows PE啟動U盤上;
3) 應用軟件功能模塊順序運行控制。定制批量處理軟件對各硬件檢測軟件的檢測模塊進行順序控制運行;
4) 檢測報告依次提取。待完成服務器硬件檢測后,再依次提取各檢測報告;
5) 檢測報告篩減與合成。對提取的各檢測報告進行篩減,合成為精簡的統一報告。
該軟件具體工作流程,如圖4所示。使用該檢測方案可以實現如下功能應用:
1) 定期預防檢查:使用該檢測方法,采用定期檢查的方式,對服務器設備硬件的健康情況進行全面檢測。從而及時發現其病態運行狀態,使其得到及時維護,對于即將損壞的設備提前予以更換。
2) 故障離線檢測:當類Unix操作系統服務器無法進入操作系統時,可能是硬件問題,也可能是軟件問題。用本檢測方法對硬件故障問題進行檢測,有利于缺陷原因判斷。
3) 設備臺賬管理:該檢測方法可顯示服務器硬件的詳細中文信息,有利于對站端設備及相關備品、備件進行詳細的臺賬管理,提高缺陷處理速度。
4) 合理配置參考:該檢測方法可以利用魯大師軟件實現對服務器的CPU、內存、顯卡、主板等重要硬件設備進行量化評分。可通過站端服務器設備的運行情況,結合魯大師軟件的硬件評分體系,得出當前實際配置需求。再結合電力發展,給出一定的裕度空間,并在服務器設備采購工作中進行經濟合理化硬件配置。

圖4 軟件方案流程圖Fig.4 Software flow chart
為了驗證上述檢測軟件的有效性,本部分使用研制的軟件對裝有不同類Unix系統的服務器進行硬件檢測測試。
使用預定制了完整動態鏈接庫的U盤啟動頁面,使用該軟件可以方便地進入Windows PE系統。如圖5所示為使用本軟件最終獲取的硬件設備檢測報告。從圖中可以看出,該檢測報告列舉了詳細的設備硬件信息,有助于及時發現設備缺陷以及所存在的問題。

圖5 檢測報告Fig.5 Test report
本文設計和實現了X86架構下跨平臺的類Unix操作系統服務器的硬件健康檢測及配置信息查詢軟件。此外,該軟件還可用于服務器系統定期預防檢查、故障離線檢測、設備臺賬管理和合理配置參考等工作。在不同類Unix系統進行硬件檢測測試的結果表明,所提出的檢測流程能實現輕松、高效、安全地完成各種類Unix系統服務器整個硬件檢測工作。