专利名称:一种异构机群管理系统及其信息处理方法
技术领域:
本发明涉及计算机机群管理技术,具体涉及一种异构机群管理系统及其信息处理方法。
背景技术:
机群系统是一组相互独立的、通过高速网络互联的计算机的集合,通过机群管理系统的统一配置和管理,可以充分利用机群中的每一台计算机的资源,实现复杂运算的并行处理。在机群系统中,机群中的每个结点是一个独立的单元,结点的配置和操作系统可以按照用户的需求灵活配置,结点可以是PC机或者工作站,操作系统可以是任何一种商用的操作系统,各个结点之间彼此独立,同时又可以在机群管理系统的管理和配置下协同工作。随着科学技术和网络的发展,人们对计算机运算速度和处理能力的要求越来越高,机群中的结点规模也越来越大,而机群中每个结点可能按照用户的要求需要安装不同的操作系统和软件,并且可能需要放置在不同的地方,如何维护和管理这些机群,减少机群系统管理员的负担,提高管理效率,成为日益重要的问题。
现有的机群管理系统基本上采用如图1所示的单客户端—多服务器端结构,它们能够实现基本的系统管理,也就是对机群结点进行一些日常的操作系统维护工作、网络配置、用户管理、系统查看等,以及对整个机群进行网络服务配置和管理,如网络文件系统(NFS)、网络信息系统(NIS)和网络域名系统(DNS)等的配置和管理。现有的机群管理系统基本上能实现这些功能,并且为机群系统管理员提供了一个图形化的管理工具,方便系统管理员访问、查看和管理各个结点、配置机群的网络服务以及在多个结点上执行并行命令等。
但是,目前的机群管理系统对机群的操作系统要求比较严格,通常一种机群管理系统是为某种结点和某些机型定制的,如果机群的结点类型和操作系统等配置发生变化,整个机群管理系统就需要重新修改,这给系统的开发和维护带来了很大困难。并且目前的机群管理系统要求客户端所使用的操作系统是特定的操作系统,如果客户端的操作系统发生变化,那么目前的机群管理系统将不能再在客户端使用,从而给机群管理系统的应用带来一定的局限生。
同时目前的机群管理系统主要是在局域网中运行和管理,不能够通过浏览器管理机群,也就是不能通过因特网来管理。由于一个系统管理员经常需要管理多个不同机群,因此它必须往返于不同的机房,带来大量时间上的浪费。随着移动办公在现代社会中重要性的增加,迫切需要一种能够随时随地访问和管理机群系统的机群管理系统,以提高机群系统管理员的工作效率。
此外,目前的机群管理系统一般不具有可扩展性和管理大规模机群结点的能力,只适合于小规模的机群管理。
发明内容
有鉴于此,本发明的一个目的是提供一种能够管理异构机群的机群管理系统。
本发明的另一个目的是提供一种可以通过web和局域网访问和管理机群系统的机群管理系统。
本发明的还有一个目的是提供一种上述机群管理系统的信息处理方法。
本发明的上述目的是通过如下的技术方案予以解决的一种异构机群管理系统,包括一个客户端和一个或一个以上的服务器端,其中服务器端进一步分为服务进程(SD)子层和服务虚拟层(SVL)子层,SVL子层由对应不同操作系统的解释性脚本语言构成,SD子层用于在接收到来自客户端的命令请求后,自动确定服务器端所使用的操作系统,然后调用SVL子层的对应所确定的操作系统的解释性脚本语言执行命令请求。
在上述机群管理系统中,客户端可以进一步分为图形化用户界面(GUI)层和用户服务(US)层,其中GUI层采用java实现,US层和GUI层的通信采用RMI通信机制。
在上述机群管理系统中,可以将GUI层嵌套在一个web页面中,US层进一步具有一个外部地址,US运行一个web服务器进程,GUI层和US层通过因特网连接并采用外部地址进行通信。这里通过外部地址通信是通过在US层所在的管理结点机增加一个分配了外部地址的网卡实现的。并且US层运行一个web服务器进程可以使用主从备份。
一种异构机群管理系统的信息处理方法,包括如下步骤a.客户端将接收到的命令请求信息后发送到服务器端的SD子层;b.SD子层自动确定SD子层所在的结点所使用的操作系统;c.SD子层调用SVL子层的和步骤b确定的操作系统对应的解释性脚本语言执行请求命令;d.SD子层将命令处理结果返回到客户端。
在上述信息处理方法中,客户端进一步分为GUI层和US层,步骤a可以进一步包括如下步骤a1.GUI层接收用户请求命令信息,并将命令请求信息通过RMI通信机制发送给US层;a2.US层将接收的命令请求信息发送到SD子层。
在上述信息处理方法中,步骤a1中的信息发送可以通过外部地址进行,也可以通过内部地址进行。
在上述信息处理方法中,在步骤a1之前可以进一步包括预先在GUI层建立用于存储客户端数据信息的机群管理系统数据库的步骤。并且在步骤a1 GUI层接收用户请求命令信息之前,可以进一步包括对用户进行身份认证的步骤,如果用户身份不合法,则拒绝用户接入,否则允许用户接入并接收用户请求命令信息。
在上述信息处理方法中,US层还可以进一步包括分别连接到各个SD子层的一个以上的子服务结点,步骤a2发送命令请求信息通过子服务结点采用进程分组发送。
通过本发明的技术方案可以看出,通过将服务器端分为SD和SVL两个子层,在SVL子层分别在不同的目录下存储了对应于不同操作系统的相应的解释性脚本语言,SD子层在接收到来自客户端的请求消息后,自动确定服务器端所在结点使用的操作系统,然后调用相应操作系统目录下的解释性脚本语言执行请求,从而使本发明可以适用于结点使用任何操作系统的机群系统,从而实现管理异构机群的目的。
在本发明中,通过将客户端进一步分为GUI层和US层,并且GUI层采用java实现,在US层增加一个外部地址,而且US层运行一个web服务器进程,GUI层嵌套到一个web页面中,因此本发明可以方便地移植到因特网中,系统管理员可以通过web访问和管理机群系统,减轻了系统管理员的工作负担,提高了工作效率。
由于GUI层采用java实现,而java具有良好的跨平台特性,因此GUI层可以不加任何改动地运行在不同的操作系统下,这样进行机群管理的计算机可以自如地使用不同的操作系统,从而扩大了本发明的使用范围。
同时,通过在US层采用进程分组的方法,本发明可以方便地应用于大规模机群系统中。
通过使用上述三层结构,本发明的机群管理系统具有良好的可扩展性,当用户有了新的需求时,GUI层和SVL子层可以随意增加模块和功能,同时不影响整个系统的结构和其他功能的实现。本发明的机群管理系统的各个层次内部可以按照用户实际要求进行修改,同时不影响其他部分。例如当用户选择新的操作系统时,整个软件的结构都不用变化,GUI层、US层和SD子层都不需要作任何修改,只需要在SVL子层增加一个目录和相应的解释性脚本语言,就可以方便地实现对新的操作系统机群结点的管理。这样既增加了软件的可重用性,又减少了系统管理员的负担。并且,本发明良好的分层结构使得程序之间的依赖性相对减少,使得机群管理系统在开发过程中具有模块化,各个层的开发人员具有相对的独立性,加快了系统的开发效率。因此使用本发明更易于开发和维护。
综上,本发明提供了三层结构的机群管理系统,使系统管理员可以通过浏览器或者局域网方便管理大规模异构机群。
图1是根据现有技术的机群管理系统的结构示意图;图2是根据本发明的机群管理系统的结构示意图;图3是根据本发明的机群管理系统的信息处理方法的流程图。
具体实施例方式
下面结合附图和具体实施方式
对本发明进行详细说明。
图2示出了根据本发明的机群管理系统的结构示意图。从图中可以看出,根据本发明的机群管理系统采用了三层结构图形化用户界面(GUI)层—用户服务(US)层—结点服务(NS)层。其中NS层又可以分为服务进程(SD)子层和服务虚拟层(SVL)子层两部分。
在本发明的三层结构中,GUI层为图形化的用户界面,主要是给系统管理员提供一个图形化的管理界面,负责收集用户的请求并将这些请求信息传递给US层,同时将US层的命令执行结果处理后显示给用户。考虑到进行管理的计算机可以运行任何操作系统,以及可以通过web访问和管理机群系统等因素,GUI层采用java实现。浏览器可以由java虚拟机来解释GUI层的java.applet类。GUI层的所有类通过一个统一的程序出口guiexport.class和US层的一个GUI程序usimport.class通过java的远程方法调用(RMI)进行通讯,这里的RMI其实是java的一种应用编程接口(API),它可以使一个平台上运行的java程序调用在另一个平台上运行的程序,GUI层的其他程序不需要知道US层和NS层之间如何实现,也就是说,US层和NS层的变化和实现对于GUI层是透明的。同时GUI层的内部实现对US层和NS层也是透明的。由于使用java实现,因此GUI层可以运行在本地、远程和web上,同时可以运行在不同的操作系统平台上。并且将GUI层嵌套到一个诸如html文件的web页面中,这样加上US层的相应设置,即可通过web接入GUI层实现对机群系统的管理。
US层为用户服务层,它充当GUI层与NS层之间信息传递的媒介,负责在这两层之间传递数据和分发命令。它的主要功能是将来自GUI层的请求经过处理分析后,按照一定的格式分发到各个结点,然后将各个结点的SD子层执行的结果处理后返回给GUI层。因此US层又可以称为中间通信层。为了不降低处理速度和消耗太多资源,US层采用C和java联合实现,其中与GUI层的通讯接口采用java实现,与NS层的通讯接口则采用C实现,通过C的socket多线程并发机制实现向多个结点并发发送命令和并发接收命令结果的功能。同时将这些结果处理分析成GUI层需要显示的格式发送给GUI层。同时,为了可以通过web访问和管理机群系统,在US层所在的管理结点机增加一个分配了表示管理结点机在因特网中地址的外部地址的网卡,US层同时运行一个web服务器进程,以将自己变成一个web服务器,使外界能够通过浏览器访问到该结点。US层对上层GUI层和下层NS层分别提供了清晰的接口,它的内部实现对其他层是透明的。
US层为了响应GUI层的用户请求需要启动一个java的服务器程序US_Agent,同时为了保证US层的US_Agent的稳定性,US_Agent采用主从备份策略,也就是,在机群系统内同时有两个结点运行US_gent,一个为主服务器,另一个为从服务器。正常情况下通过主服务器进行通讯,当主服务器出现故障时,US层的系统自动探测到主服务器有故障,然后通过从服务器进行通讯,从服务器变成主服务器,同时修复主服务器或者在机群内找另一台结点启动运行US_Agent,充当从服务器。主从服务器的切换和选择对上层GUI层和下层NS层都是透明的,不会影响机群系统管理软件的正常通讯。
NS层为结点服务层,它由SD子层和SVL子层组成。SD子层是一个运行在机群结点上的后台进程,它接收来自US层的并行命令(LPC)的socket请求,同时通过调用SVL子层的命令响应该请求,最后返回命令结果。SVL子层主要是调用操作系统管理命令,并对结果进行分析和处理输出给SD子层。SVL子层是由几组perl脚本组成的命令集,这些perl命令放在不同的目录下,通过操作系统名来命名这些目录,不同目录下的perl脚本调用不同操作系统的命令。但是对于同一个功能操作,这些不同目录下的脚本命令具有相同的名称。NS层通过不同的目录名来区分这些命令,从而调用不同操作系统的命令,最终实现调用正确的操作系统管理命令。
在本发明中,能够实现对异构机群系统的管理功能是通过SVL子层实现的。如上所述,SVL子层是由几组不同的perl脚本组成的命令集,一组perl脚本对应一种操作系统,例如一组perl脚本是在Windows操作系统下的脚本命令,一组perl脚本是在UNIX操作系统下的脚本命令,等等。这些perl脚本命令的名称和功能都完全相同,不同地是它们分别是针对不同的操作系统开发的,并在不同的操作系统下运行。各组perl脚本分别存放在SVL子层的以不同操作系统命名的不同目录下。当SD子层接收到来自US层的命令请求后,会自动调用操作系统本身包含的确定操作系统类型的命令,从而确定该结点所使用的操作系统,然后调用SVL子层的对应操作系统目录下的perl脚本命令,例如该结点使用的是UNIX操作系统,那么就将调用UNIX目录下的perl脚本命令。这样,通过预先在SVL子层存储所有可能的操作系统的不同perl脚本命令,即可实现对各个结点使用不同操作系统的异构机群进行管理的目的。
在本发明中,进行管理的计算机可以使用不同的操作系统,这是因为GUI层采用java编写,java语言良好的跨平台特性使其可以很好地支持多种操作系统而不需要进行任何附加的编译工作。这样,运行GUI层的计算机无论使用什么操作系统,都可以对机群系统进行管理,从而大大提高了机群管理系统的适用性。
同时,本发明还可以实现通过web访问和管理机群系统的功能。这是因为US层所在的管理结点机上增加一个分配了外部地址的网卡,并且GUI层的图形化用户界面被嵌套到一个web页面中,同时US层运行了一个web服务器进程。这样,当系统管理员通过web接入GUI层的图形化用户界面时,用户不需要知道任何具体细节,只需要在浏览器中输入管理结点机的对外的因特网地址和web页面名,就可以通过浏览器看到GUI层的图形化用户界面,并使用外部地址与US层进行消息交互,从而可以通过web访问和管理机群系统。
上面说明了本发明的机群管理系统的结构,下面结合图3说明本发明的机群管理系统的信息处理方法。
在建立上述根据本发明的机群管理系统的同时,GUI层的java类建立一个机群管理系统数据库,并且在系统初始化时通过该数据库获取各个结点的基本信息,建立这个数据库的目的是为了适应通过web访问和管理机群系统的需要,将原有的位于客户端的数据信息存储于这个数据库中,这样系统管理员可以通过调用这个数据库得到访问和管理机群系统的所需信息。
图3示出了根据本发明的机群管理系统的信息处理方法。从图3可以看出,在步骤S301,GUI层的图形化用户界面接收到用户接入请求。这里的GUI层可以在局域网中打开,也可以在web浏览器中打开,如果在局域网中打开,使用内部地址和US层进行通信;如果在web浏览器中打开,则使用外部地址和US层进行通信。在步骤S302,将对用户身份进行认证,以防止非法用户侵入机群系统。这里进行用户身份认证可以采用现有的任何一种认证方法,只要能够达到可以识别用户身份的合法性并拒绝非法用户接入的目的即可。在步骤S303,GUI层根据认证结果判断用户身份是否合法,如果用户身份不合法,则在步骤S313返回错误信息,拒绝用户接入请求;如果根据认证结果判断用户身份合法,则执行步骤S304及其后续步骤。
在步骤S304,GUI层的图形用户界面接收用户请求,并在步骤S305将用户请求命令传送到US层,也就是调用GUI_Export.class,通过RMI通信方式进行信息传递。在步骤S306,US层的US_Agent响应用户请求,调用LPC。在步骤S307,LPC将命令并发给各个结点的NS层。在步骤S308,NS层的SD子层响应LPC的请求,自动确定该结点所使用的操作系统。这里的自动确定是通过调用操作系统所包括的确定该操作系统类型的命令来实现的,每一种操作系统都具有一个相应地确定其类型的命令。在步骤S309,SD子层调用SVL子层的存储在相应操作系统目录下的perl脚本命令。在步骤S310,SVL子层调用相应的perl脚本命令。在步骤S311,perl脚本命令最终调用相应操作系统的命令,对用户请求进行处理。在步骤S312,NS层将处理结果通过US层返回给GUI层,由GUI层的图形化用户界面显示给用户。至此完成一次信息处理过程。
在本发明中,为了保证网络传输的可靠性和安全性,GUI层、US层和NS层之间的通信可以采用加密技术,这里的加密技术可以是现有的任何一种加密技术。
可以理解,以上只是对本发明的精神的一种说明,并不用以限制本发明的保护范围。例如,本发明实施例的svl子层是用perl脚本语言进行说明的,但是它并不局限于perl脚本语言,还可以是诸如sh等其他任何一种解释性脚本语言。另外,在本发明中,当结点数规模小时,US层可以采用线程组的形式,当结点数规模很大时,可以采用进程分组的形式来提高并发性和稳定性,也就是在US层建立子结点,通过子结点转发US层和NS层之间传输的数据信息,这样减小了US层需要同时打开文件的数量和通信线程的数量,从而使本发明的机群管理系统可以很容易地管理大规模的机群系统。
权利要求
1.一种异构机群管理系统,包括一个客户端和一个或一个以上的服务器端,其特征是,所述服务器端进一步分为服务进程(SD)子层和服务虚拟层(SVL)子层,所述SVL子层由对应不同操作系统的解释性脚本语言构成,所述SD子层用于在接收到来自客户端的命令请求后,自动确定服务器端所使用的操作系统,然后调用SVL子层的对应所确定的操作系统的解释性脚本语言执行所述命令请求。
2.根据权利要求1所述的异构机群管理系统,其特征是,所述客户端进一步分为图形化用户界面(GUI)层和用户服务(US)层,所述GUI层采用java实现,所述US层和GUI层的通信采用RMI通信机制。
3.根据权利要求2所述的异构机群管理系统,其特征是,所述GUI层嵌套在一个web页面中,所述US层进一步具有一个外部地址,US运行一个web服务器进程,所述GUI层和所述US层通过因特网连接并采用外部地址进行通信。
4.根据权利要求3所述的异构机群管理系统,其特征是,所述通过外部地址通信是通过在US层所在的管理结点机增加一个分配了外部地址的网卡实现的。
5.根据权利要求3所述的异构机群管理系统,其特征是,所述US层运行一个web服务器进程采用主从备份。
6.一种异构机群管理系统的信息处理方法,包括如下步骤a.客户端将接收到的命令请求信息后发送到服务器端的所述SD子层;b.SD子层自动确定SD子层所在的结点所使用的操作系统;c.SD子层调用SVL子层的和步骤b确定的操作系统对应的解释性脚本语言执行所述请求命令;d.SD子层将所述命令处理结果返回到客户端。
7.根据权利要求6所述的信息处理方法,其特征是,客户端进一步分为GUI层和US层,所述步骤a进一步包括如下步骤a1.GUI层接收用户请求命令信息,并将所述命令请求信息通过RMI通信机制发送给US层;a2.US层将接收的命令请求信息发送到SD子层。
8.根据权利要求7所述的信息处理方法,其特征是,所述步骤a1中的信息通过外部地址发送。
9.根据权利要求7所述的信息处理方法,其特征是,所述步骤a1中的信息通过内部地址发送。
10.根据权利要求7所述的信息处理方法,其特征是,在所述步骤a1之前进一步包括预先在GUI层建立用于存储客户端数据信息的机群管理系统数据库的步骤。
11.根据权利要求7所述的信息处理方法,其特征是,在步骤a1 GUI层接收用户请求命令信息之前,进一步包括对用户进行身份认证的步骤,如果用户身份不合法,则拒绝用户接入,否则允许用户接入并接收用户请求命令信息。
12.根据权利要求7所述的信息处理方法,其特征是,US层进一步包括分别连接到各个SD子层的一个以上的子服务结点,所述步骤a2发送命令请求信息通过所述子服务结点采用进程分组发送。
全文摘要
本发明公开了一种异构机群管理系统,包括一个客户端和一个或一个以上的服务器端,其中服务器端进一步分为服务进程(SD)子层和服务虚拟层(SVL)子层,SVL子层由对应不同操作系统的解释性脚本语言构成,SD子层用于在接收到来自客户端的命名请求后,自动确定服务器端所使用的操作系统,然后调用SVL子层的对应所确定的操作系统的解释性脚本语言执行命令请求。客户端可以进一步分为图形化用户界面(GUI)层和用户服务(US)层。本发明还公开了一种上述机群管理系统的信息处理方法。使用本发明可以管理异构机群系统,并且增加了机群管理系统的使用范围,减小了开发维护成本,具有良好的应用价值。
文档编号G06F12/00GK1512333SQ0215990
公开日2004年7月14日 申请日期2002年12月27日 优先权日2002年12月27日
发明者赵玉萍, 肖利民, 刘晓光, 黄凯 申请人:联想(北京)有限公司