吴楠
中国电子科技集团公司第五十四研究所 河北石家庄 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 软件的内部结构
综上所述,高性能计算机作为我国当下最为关键的机器设备,本身需要有完整的管理软件作为基础才能实现不同方向的应用和操作,因此,为了更好的加强管理软件的使用效果,就需要针对管理软件的基本原理进行着重分析,以此来达到高性能计算机的管理和调控效果。