【IT168 专稿】随着计算任务和数据处理的规模越来越大,很多用户开始部署各种服务器集群(机群),以取代传统的单机应用模式。但要配置和管理好机群系统,用户需要考虑多种千变万化的现实因素,比如网络配置、特殊应用、软件安装和升级维护等等。一个机群管理软件成功的关键就在于能否灵活的适应这些变化。总体来看,一个好的机群系统管理软件必须具备以下特性:
-
完成多种不同任务的基本功能,包括并行命令的执行、配置文件管理和软件维护。
-
硬件系统可灵活扩展,以支持不同的硬件。
-
支持多种节点安装方法,如本地直接安装、节点“克隆”或无盘操作。
-
支持多种网络配置,包括路由器、防火墙、低带宽网络和高安全性环境。
-
监控能力必可配置、可扩展,并且兼容标准。
-
管理软件须有适当的应用编程接口和命令行接口,以支持各种形式的机群网络结构。
-
模块化和可定制,以适应现有结构和工作方式(如命令行接口、扩展性、单独使用某一部分等)。
-
具备时常更新和用户反馈的机制。
可见,灵活适应性是机群管理软件的灵魂所在。下面将讨论上述特性,以供用户在选购机群系统时参考。
|
机群管理的内容非常丰富,通常能提供可完成各种任务的简单工具,这些工具越灵活越好。机群管理的基本功能包括:
- 支持多种操作系统版本:工具要求能跨多种类型的操作系统和体系结构。尽管Red Hat企业版(RHEL)和SuSE企业服务器版(SLES)是企业机群用得比较多的两个版本,但也有不少机群用户用到一些免费的版本,如Fedora、CentOS、Scientific Linux和Debian。
- 分布命令执行:一个分布式Shell是最基本的机群组件,它允许管理员在整个机群或一部分节点上很快的执行命令行操作。这种功能是很有用的,因为它允许管理员不需要其它管理软件的支持就能完成工作。必要的灵活性包括超时设置(对那些没有响应的节点),跳过一些不在线的节点,以及使用任何底层远程Shell的能力。
- 文件分发:分发文件是机群第二个基本的能力。文件分发有两种模式:单次复制和在整个机群中保留一个公共文件库。在整个机群或一部分节点维护配置文件时,采用后一种方式具有相当的灵活性,它允许不同的节点组使用不同版本的配置文件,且允许复制文件前后运行用户定义的脚本。
- 软件维护:软件维护就是节点安装成功以后升级和安装软件的能力,对于管理员在不重装节点的情况下安装或升级单个应用程序是相当重要的。这个功能必须自动安装一些系统必备的RPM软件包。
使用上述基本工具就可以完成大部分复杂的机群工作,包括高性能计算应用程序的安装和启动、机群用户管理、服务的配置和启动,以及添加节点。例如,高性能计算软件的安装和启动就可以通过软件维护和分布式shell做到。象NTP和自动装载器这些服务的配置和启动,还有用户管理,就可以在管理服务器通过分发配置文件来配置。
目前,xCAT、Oscar中的C3工具包、Scali Mange和CSM等机群管理工具都具有上述功能。也有一些工具具备一部分部分。如Red Hat的网络升级程序(up2date)和YUM提供了软件维护的功能。
可扩展的硬件控制
硬件控制提供了不需要直接接触硬件就能管理机群硬件的关键能力,如开关电源、查询参数、控制台、固件闪存等。大部分机群硬件完成这些任务的机制都是私有的,但这些机制通常根据硬件也各不相同。这也给远程控制造成了困难,因为许多机群包含有结构各不相同的硬件。即使所有计算节点都是同种类型的机器,也还存在一些I/O节点和象交换机、SAN控制器、终端服务器等非节点设备需要管理。
为了支持不断增多的电源控制方法,管理软件必须支持用户自定义电源控制方法,插入电源控制命令。可插入的方法让软件更易于支持新硬件,并且不管实际的控制方法有什么不同,也允许用户运行相同的命令控制不同的节点和设备,也允许其它软件组件,比如安装程序,驱动电源控制不同的硬件。
除了机群硬件的电源控制,远程控制台也是需要提供可插入方法的。市场上有各种各样的终端服务器和SOL,每一种都有各自繁琐的方法和节点建立远程控制台会话。
读写固件闪存的方法通常是硬件相关的,但至少可以通过增加附加的驱动程序达到一定的灵活性,允许in-band写闪存(当节点在运行时操作)或者在操作系统安装完成之前操作。
除了为新的终端服务器写你自己的控制台方法,电源和控制台方法的定制使机群硬件在升级时更为灵活:你不用等最新版本的管理软件出来,就可以自己编写脚本支持新硬件。机群管理员能轻松的开发硬件控制方法,比如通过Wake On Lan来打开电源,通过分布式shell关闭电源,以及通过象APC或Baytech这样的电源开关控制电源。xCAT、Scali Manage和CSM都提供可扩展的电源控制。
不同的节点安装方法
在节点上安装操作系统和应用程序是机群管理软件中最重要的功能,因为如果手工去做的话,需要花很长的时间。同时也因为安装方法会影响其它管理过程,所以支持多种不同的安装方法就显得重要了。
1)直接安装:对于节点不全相同的机群和那些具有独立的软件维护过程的机群,从相关厂商网站上直接安装RPM包的方式通常是最有效的。管理员只要有一张光盘就可以开始安装,并且可以为不同的节点安装不同的程序包。Rocks、Clusterworx、Scali Manage、xCAT和SCM都支持这种安装方法。他们通常采用kickstart和autoyast的无人值守安装功能,在网络多个节点上自动并行安装。
2)批量克隆:虽然直接安装方法很简单,但也有相当一部分人更喜欢“克隆”的方法。这种安装方法通常和节点的软件维护策略相关。在这种方式下,先手工安装一个样板节点并配置好,然后从样板节点上生成软件镜像,复制到其它节点。当升级或配置变化时,样板节点先做改动,然后重做一次生产镜像和复制的操作。这种方式对那些大部分节点的软硬件都相同的机群最为有效。OSCAR、HP XC、xCAT、CSM、Clusterworx和Partimage、System Imager这些开源工具都提供这种克隆的能力。
3)无盘安装:尽管在每个节点本地安装操作系统也不错(硬盘便宜、启动时操作系统文件加载更快),但有些用户还是采用了无盘节点。这些用户之所以这么做并不是因为价格(现在硬盘已经相当便宜了),也不是为了便于维护,而是基于大型机群的可靠性考虑。无盘节点启动时通常是由服务器给它发送内核文件,可能还有一些系统文件,剩下的文件系统则是从NFS服务器上下载。CIT、Clusterworx、warewulf、xCAT、CSM、Scyld和Egenera都支持无盘节点。(Scyld在每个节点只装载一个很小的系统镜像。Egenera则提供一个每个节点通过SAN都可以访问的硬盘。)
多数用户对于如何安装节点有特定的需求,因为这影响了整个管理策略。因此,提供尽可能多的节点安装方法对于机群管理软件很重要。这些安装方法应该可定制,用户通过定义安装完成后的执行脚本就能达到目的。
可扩展的监控能力
可扩展的机群监控能力,与可扩展的硬件控制能力一样重要,是机群自动化管理的有用工具。尽管有些企业软件提供错误检查和响应的能力,机群管理软件提供一种内建的用户可定制的监控还是很有用的。整个机群中一些需要监控的指标包括:节点上线和下线(对管理机群负载的软件有用)、内存使用、文件系统空间使用、处理器空闲时间、网卡吞吐量以及系统日志。下面列出一些重要的扩展点:
- 用户可自定义增加对系统或应用的一些特殊指标的监控,以及象SNMP和CIM这样的标准基础应用的监控,这些监控指标有些系统本身可能没有提供。
- 用户可针对发生的状况在本地或整个机群自定义需要运行的脚本。
- 可把监控到的事件转发给其它一些不同的企业监控软件如Tivoli企业控制台、CA Unicenter或HP OpenView。
目前,Ganglia、Nagios、Big Brother、Scali Manage、Clusterworx和CSM都具备可扩展的监控能力。
多级支持
机群管理需要多级支持主要是基于以下几种原因。首先是为了能够支持比当前规模更多的节点;其次是为了把所有节点分成一些小子集单独管理,有时可能会分给不同的管理员,但仍然处于相同的中央控制之下;其三是为了处理某些特殊的网络配置,比如跨地域机群。
一个典型的多级机群有3级,其中有一些节点集,每个集合由一个管理服务器管理(称为一线管理服务器,First Line Management Server,简称FMS)。更高一级的管理服务器(称执行管理服务器,Executive Management Server,简称EMS)管理所有的一线管理服务器。理论上,在EMS上能做所有的管理操作,但至少要能做到以下的关键操作:
- 安装FMS,复制任何必要的操作系统镜像,并指挥FMS安装子节点。
- 把更新的软件分发到FMS和所有子节点。
- 把配置文件和数据分发到FMS和所有子节点。
- 在任何一台FMS或子节点上执行命令。
- 控制子节点硬件(比如开关电源)。
- 配置对所有FMS和子节点的监控。
多级支持允许机群管理软件适应更多的机群环境。这里提到的软件只有xCAT和CSM支持多级支持。有些软件,象CIT,只对某些特殊操作提供多级支持,如节点安装和无盘引导。
模块化和可定制
用户在使用本文提到的管理软件时,一般通常先在实验室环境里安装。但在这种情况下,这些产品在管理任务(安装、软件维护、用户管理、配置、监控等)方面又不能正常表现出其功能。为了避免这种“使用障碍”,管理软件产品必须具备以下特性:
- 完整的命令行接口——方便管理员在自己的程序里写脚本调用管理命令。
- 模块化——方便管理员根据需要只使用其中的某些部分。例如,管理软件产品不应该要求管理员在使用一些功能时必须使用产品本身的用户ID管理模块。
- 可扩展——所前文所述,管理软件产品应该能易于扩展,以支持不同的操作系统版本(CSM有这种功能),支持新硬件及其控制(如xCAT和CSM),支持用户自定义的指标监控(如CSM和Ganglia),以及支持用户应用程序设置(如Rocks、OSCAR和CSM)。
时常更新和用户反馈
我们知道,Linux软件及其相关硬件一直在不断发展。一个典型的Linux机群中,许多部件通常一年就有好几个新版本,所有的部件都有新的更新规划。新技术的不断涌现,导致管理软件也必须适应这些变化,可时常更新。对此,开源软件(象Rocks、CIT、OSCAR)比较容易做到,而且不需要开发团队做不断的重复性测试(通常用户社区的人做了这部分工作)。而一般的商业产品经常自己承担这些工作。
虽然目前已经有不少机群管理工具可供选择,IBM、HP、曙光、浪潮等提供服务器集群方案的厂商都会有相应的管理软件,但很少有一种产品可以满足所有类型机群的各种要求。为此,用户在选购机群系统时,需要更多地关注相关管理软件的灵活性,以更好地满足外部环境和自身业务的不断发展变化。
