吳楠
中國電子科技集團公司第五十四研究所 河北石家莊 050000
計算機智能設備在我國的應用時間不長,但是在這短短的時間內,計算機智能設備以及特有的各項軟件憑借獨特的技術優勢和應用效果,在我國當下的各行各業都占有極為重要的地位。其中高性能計算機管理軟件扮演著重要的角色。目前,高性能計算機本身就具有相當強的處理能力,這也就意味著高性能計算機在同一時間所需要處理的困難也是相當多的,因此,這也就使得相關管理軟件的研發變得尤為困難,因為管理軟件需要在高性能計算機的強大處理能力基礎下,還要適應高性能計算機的接口設計以及不同方面的管理應用[1]。因此,高性能計算機管理軟件的出現可以說是劃時代的變革,在不同的方面上都有著相當強的管理效果。
高性能計算機其實是一種比較直觀的概念,從本質上來說,高性能計算機其實就是指具有極強計算機能力的集群機器,因為高性能計算機一般指的不是某一個單位,而是多個處理器所組成的龐大計算機系統和環境,比如說多種類型的HPC系統,這種系統的范圍可以覆蓋標準計算機的多個倍數。并且,HPC系統由于基于集群的存在,使得該項系統可以使用高性能網絡來進行互聯。也就是說,高性能計算機環境中,各類網狀網絡系統會使得主機之間的網絡性能和傳輸速率獲得極大的提升,這一點是傳統計算機設備所無法達到的計算效果[2]。
同時,高性能計算機一般指的是高集合化的超級服務器,這種集合度很高的計算機設備本身就和傳統的低檔PC服務器有著本質上的差異,不論是從性能還是計算能力方面,高性能計算機所表現出的作用都遠遠的超出傳統計算機服務器所能達到的效果。但是,由于不同計算機的組合效果也有著比較大的差異,因此高性能計算機也存在高中低的檔次分明,由于受到不同檔次成本的限制,目前中檔高性能計算機在不同市場中的發展和應用范圍最大。高性能計算機從某種角度上來說,是高技術和高經濟回報的代名詞,通常,隨著高性能計算機在我國政府重要部門以及科研領域的應用力度不斷增大,使得高性能計算機對于我國的重要性以及不言而喻。同時,即便是企業的發展也離不開高性能計算機的存在,而且,我國近幾年企業的主要發展方向都是高科技創新方向[3]。
高性能計算機作為一種具備極高計算機能力的服務器,本身如果想要進行正常的運轉和指令輸入,那么必定是離不開一套完整的管理軟件和系統,因此,管理軟件就此誕生。但是,高性能計算機管理軟件由于本身機體的性能差異,和傳統的計算機設備有著很大的區別。其中高性能計算機管理軟件會使用一種IPMI協議,這種協議會通過對網絡本身的啟動以及結合BMC卡來達到對計算機的高效管理作用,同時,還能結合因特網來進行遠程距離的關機和操作。比如說我們現在經常會用到的遠程控機就是其中功能的一種,只需要計算機用戶進行授權,其他的計算機操作者就可以對該臺計算機進行系統的安裝和檢測等操作,由此可見高性能計算機管理軟件的重要性[4]。
高性能計算機管理系統本身是依據java所形成的一種特殊管理類型軟件,也就是說,管理軟件從本質上來說和其他計算機內部的軟件類型是一樣的,都具有極強的功能性,可以對計算機的各類資源進行不同程度上的調配和利用,只是彼此之間的功能作用有著比較大的差異。一般來說,高性能計算機管理軟件主要包括三種類型的技術,即網絡、本地啟動和網絡安裝等方面的技術,同時,依據三種技術的不同應用效果,所表現出的功能差異也有著很大的差別。依據三種技術的存在,可以使得管理軟件幫助用戶進行計算機的開機和關機,而且各種高性能計算機管理方面的問題也得到了很大程度上的解決[5]。
結合上文,我們充分的分析了高性能計算機的相關概念和知識,并且還在一定程度上對高性能計算機管理軟件進行了詳細的探討,對此,為了更好的加強高性能計算機管理軟件的應用效果,就需要針對管理軟件的基本原理進行探討,從而達到對癥下藥的效果[6]。
一般來說,高性能計算機管理軟件離不開一項基本的計算機啟動機制,而這種機制也被叫做預啟動執行環境,這種環境會提供一種使用網絡接口來啟動計算機的機制,結合這種機制,可以幫助計算機不依賴本地數據存儲設備或者是操作系統就可以進行計算機的啟動。基于這項技術的存在,使得高性能計算機管理軟件的誕生得以實現。同時,PXE作為因特網有線管理體系中極為重要的組成部分之一,可以通過網絡協議、用戶數據報協議、動態主機設定協定、小型文件傳輸協議等多種網絡協議進行結合使用,從而對客戶機的固件拓展預設來進行不同程度上的管理[7]。
目前,PXE根據協議的不同應用效果,可以相應的分為客戶端和服務器兩種端口,同時PXE客戶端是在網卡內部的只讀存儲器中,也就是說,當高性能計算機進行啟動和執行時,往往需要BIOS將PXE的客戶端調到內存中,才能進行后續的執行操作。而用戶可以根據用戶菜單來進行不同方向的選擇,并且,PXE客戶端會基于網絡的前提下將遠程操作系統進行下載并在本地上進行安裝使用。從這種角度上來看,PXE客戶端本身的管理作用是比較強大的,可以結合不同的功能軟件來實現用戶本身的快速操控效果[8]。
同時,由于PXE啟動機制的限制,需要憑借網絡傳輸來作為基礎條件,即在計算機啟動時,就可以將DHCP服務器分配出一個具體的IP地址,由此來使得PXE客戶端分配IP地址的專門協議,來達到不同配置的運轉,同時,計算機本身是由多個重要的硬件設備所組成的,每個硬件設備之間都會有著龐大的資源,如何良好的運用硬件資源,就是管理軟件最主要起到的作用之一。PXE客戶機本身作為啟動過程中的重要組成角色之一,客戶機不僅可以是服務器、而且還可以是桌面級電腦和筆記本電腦的代名詞,隨著我國整體科技技術的不斷進步,PXE客戶機的固件也逐漸變為可用的啟動服務器,在重定向服務中找到分析返回的包之后,固件會向合適的啟動服務器詢問網絡自檢程序的路徑,同時還會通過TFTP協議來下載到電腦中的內存中,并且,根據不同的計算機運用情況,還會進行校驗的過程,當全部的PXE客戶機只使用一個NPB時,那么PXE客戶機就會被指定為用BOOTP協議,而不需要DHCP代理,但是由于目前科技技術的限制,還仍然需要TFTP啟動服務[9]。
高性能計算機管理軟件所運用到的PXE協議有機結合了DHCP和TFTP兩種,兩者彼此相互獨立又形成獨特的聯系情況,其中DHCP主要是用于啟動服務器的查找,而TFTP則是用于下載初始引導程序和附加文件的必備協議之一,并且,當開始PXE自檢會話時,PXE固件廣播會有一個明確的PXE選項,其中PXE選項有時會被DHCP服務所忽略,當出現這種狀況時,計算機管理軟件會通過提供配置信息來快速的完成自我配置過程,以此來保證高性能計算機的正常啟動和運轉[10]。
一般來說,高性能計算機管理軟件如果想要實現具體的管理操控,那么必定是離不開網絡、本地網絡啟動以及網絡安裝等相關技術的存在,也就是說,在Linux中,我們需要將這些調動服務寫成必備的腳本,以此來進行不同程度和方面的命令執行,除此之外,由于計算機本身作為機器是具備極強的邏輯性的,這一點是機器和人之間最明顯的差異,因此,不同調配的命令之間都有著極為嚴密的標準和規格[11]。一定數量的命令會根據不同的功能變化來找到具體的系統或者是命令。
除此之外,還有一種具體的計算機語言也具有很強的計算機操控能力,那就是我們現在經常看到和使用的Java,這種編輯環境可以很好的解決系統之間所存在的跨平臺問題,但是由于Java本身語言的限制,在實際的操作過程中還會存在接口的問題,此時就需要調用管理Shell腳本,以此來保證Java語言對于計算機不同資源的正常調配作用。并且,Java作為一種跨平臺語言,在實際的應用過程中還能達到不同進程調用的效果,以此來實現不同軟件之間的搭配使用。
該過程一般涉及本地啟動、網絡啟動和網絡安裝服務三項核心技術,基于Linux下能夠將調用的服務按照一定的方式寫成Shell腳本執行,以達到調用前臺命令的效果。由于從前臺調用功能數量固定,此時對每條調用命令格式而言,一般要對命令參數給予標準化處理,具體涵蓋了參數順序、個數等。
在編程過程中,選擇能夠跨平臺的Java語言來完成系統未來的跨平臺管理設想,此時就會涉及到調用Shell與Java腳本的接口問題,并且在Java進程管理中具備Shell腳本調用能力。實際上,Java提供了兩個類Process和Runtime:①類Process。其可以借助Runtime.exec方法來實現對進程的有效創建,由此可以返回一個因為exec方法執行而得到的Process類的子類實例,以實現對該執行命令進程的有效控制,并從中獲得該進程的信息,例如進程執行輸入和輸出、執行結果、等待進程結束等;②類Runtime。任何Java應用程序均具備一個Runtime類單獨的實例,其能夠與該應用程序所具備的運行環境產生一定的聯系,該過程中用Runtime類的靜態方法getRuntime()可以獲取Runtime實例。
4.3.1 軟件組成
(1)工具包。其一般負責提供必要的輔助功能,涉及到3個類:Dboperation類。用于對數據庫訪問進行封裝;QueryProperty類。用于對配制文件的訪問進行封裝;SocketClient類。對到配置文件指明的服務器Socket進行封裝,以實現與服務器間信息的有效溝通。
(2)UI界面包。其主要負責呈現客戶端所有顯示界面,其涉及到10個類,而最為核心的是主界面的重啟動系統時的顯示界面(DialogElec)、軟件運行時的主窗口(FrameMain)以及BMC卡更新配置顯示界面(FrameBmcUpdate)3個類。
(3)服務器端的集機群管理包。其主要負責在服務器端來對自客戶機的請求進行監聽,并結合客戶機的實際請求來給予處理,并作出回應,其涉及到4個類:MultiServer類主要用于對配置文件指名的8216端口進行監聽;ServerThread類的Run函數用于對客戶機的請求信息進行接收,并對接收信息進行分析,隨后做出相應的動作;ExecCmd類主要是調用正在運行的Java程序,并通過節點計算機上的某腳本來發揮相關功能的作用;Controller類主要負責完成管理工作。
(4)智能平臺管理接口(IPMI)。結合IPMI協議來完成對智能平臺遠程管理,并根據IPMI 協議實現了對GlobalDefine、CSession、UDPSocket、RMCP等4個類的網絡參數管理和電源管理。
(5)客戶端包。其主要功能是按照一定的方式將UI界面請求轉化成相對應的參數命令,該包只有SocketClient一個類,用于向服務器發送參數命令。
4.3.2 軟件結構介紹
高性能計算機管理軟件選擇了通用的MVC模式,并且在服務器和客戶機端分別借助一個控制器來將UI的請求按照一定的方式轉化為命令串,同時也可以將各種功能封裝成相關的方法。此外,在兩個控制器間,MultiServer、ServerThread和SocketClient分別在服務器端和客戶端來開展命令串的接收或發送工作,如圖1所示。

圖1 軟件的內部結構
綜上所述,高性能計算機作為我國當下最為關鍵的機器設備,本身需要有完整的管理軟件作為基礎才能實現不同方向的應用和操作,因此,為了更好的加強管理軟件的使用效果,就需要針對管理軟件的基本原理進行著重分析,以此來達到高性能計算機的管理和調控效果。