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