位置:海鸟网 > IT > linux/Unix >

基于Linux的集群管理系统设计与实现

错新网讯     随着高速网络的不断发展, 网络用户及各种网络应用迅速增长, 使得网络服务器的负载能力渐渐成为高速网络中的瓶颈和薄弱环节. 单一服务器需要很高的硬件成本来满足如此高的负载要求, 甚至有时很难满足. 因此各种相对廉价且性能稳定的高可用性集群系统被更广泛地使用, 各种商业的、非商业的集群系统快速发展. 其中基于L inux 的LV S (L inux virtual server) 负载均衡集群系统由于其开放性、高可用性、高可伸展性等优点被普遍使用.但LV S 集群缺少一个全面的管理系统对集群进行监控与管理, 并保证系统的稳定运行. 当集群规模较大时, 无论对集群内单一节点还是对集群系统进行管理均很烦琐. 本文针对LV S 集群设计较完善的管理系统, 以便于扩大其集群规模, 提高LV S 集群的可用性及通用性; 并将系统rea lserver 集群上部分实现.


1 总体设计

本系统的设计参考了一些成熟的集群管理系统的设计思想, 在不对原LV S 集群系统进行改动的前提下进行. 采用模块化设计, 不同功能独立成模块, 各模块间互不影响, 单独与统一的管理界面进行信息交换, 便于修改与扩展.系统分为4 部分: 集群节点状态的监控、集群节点的快速安装与恢复、集群的动态调度、管理界面. 集群节点状态监控包括对集群内各节点软硬件的状态进行监测及根据设置的危险值报警; 节点的快速安装与恢复指对集群节点操作系统及软件的快速便捷的安装, 并在节点出现故障时可迅速恢复到初试状态, 这需要集群内各节点的硬件配置一致; 集群的动态调度要求在集群内节点数量增加或减少时能快速平滑地切换, 不影响集群的运行. 友好的管理界面是集群管理员与管理系统交互的通道, 并且系统各部分通过管理界面结合起来, 形成有机的整体.

整个系统的实现不是全部从零开始, 有很多OpenSou rce 的网络管理项目可供借鉴, 同时针对LV S 集群已经有一些功能比较简单的开源的管理软件也可以参照. 在对上述开放代码修改的基础上, 加入自主开发的代码, 形成完整的管理系统. 系统底层主要使用国际标准协议SNM P 简单网络管理协议对集群进行管理, 便于扩展.


2 各部分的具体设计

2. 1 集群节点的监控

监测的对象主要包括节点内存、CPU 使用情况、节点负载状况及服务进程运行状况. 当上述对象出现异常情况时系统要发出报警, 手工或者自动排除故障.监控部分以开源项目MRTG (mu lt i2rou tert raff ic grapher) 和MON 为基础进行改进.

MRTG 是网络流量监控工具, 也可以对CPU、内存、IöO 等硬件及特定服务的流量情况进行监测,并将监测的结果用图形形式通过W EB 方式显示出来. MRTG 通过SNM P 协议对网络设备进行监测, 且MRTG 提供了接口, 可以用第三方工具绘制各种显示图形. 本系统采用RRDToo ls 绘制系统管理界面所要的图形.MON 是服务可用性的监视工具, 可以在服务失效时发出警报. MON 的监测过程可分外独立的两部分: 监测条件, 条件失败时触发的动作.MON 以监视器(mon ito r) 的形式对被监测的进程或者设备进行监视, 一旦监视器失效就触发相应的告警程序(alert) ; 告警程序可以根据设置自动进行简单处理并通过ma il 等手段通知管理员.

两部分可以独立设置, 非常灵活.MON 负责对节点服务的可用性进行监视,在出现异常时发出报警并做出相应处理, 而MRTG 负责系统的采集并显示节点的运行状况,为分析集群性能、判断故障原因提供直观详实的数据.


2. 2 集群节点的快速安装与恢复

随着集群内节点数量的增加, 节点操作系统及软件的安装将成为一项很烦琐的工作. 由于负载均衡且集群内各节点实现功能相同, 所安装的操作系统及软件也都相同, 在硬件配置相同的前提下完全可以采用软件自动快速安装. 同时也可以用此方法对故障节点进行快速恢复.系统采用In tel 定义的PXE (p reboo texecu t ion environmen t) 远程启动标准和System Imager 系统镜像工具. PXE 是RPL ( remo te p rogram load) 的换代技术, 可以远程引导W indow s 系列、L inux 等多种操作系统.

System Imager 镜像工具可以将样本机器的系统镜像下来, 由镜像服务器通过网络将与样本机器完全一致的软件系统安装到其他机器上, 并且可以对客户机的IP、主机名等做简单配置. 镜像服务器同时也是PXE 服务器, 先安装好样本节点,然后在镜像服务器生成镜像, 集群内要安装系统的节点通过PXE 引导安装样本节点的镜像, 实现了快速自动安装. 当集群有变更时只需更改样本机器的设置, 然后更新镜像就可以实现整个集群系统的更新. 当集群内节点出现重大故障时, 按此方法将该节点系统重新安装即可恢复.


2. 3 集群的动态调度

在LV S 集群中增加或者减少节点相对比较容易, 只需在负载均衡节点用ipvsadm 设置即可,而且过渡很平滑. 此部分主要做好与其他部分如界面、监控等部分的接口, 并要为以后扩展到基于内容的负载均衡的动态调度做好准备.


2. 4 管理界面

整个管理系统通过管理界面构成一个有机的整体, 管理员通过管理界面与管理系统交互, 实现对集群系统的管理. 管理界面采用CöS 模式, 出于安全考虑, 管理界面将全部自主开发, 可以参照现有的一些简单的图形化LV S 管理工具, 如lvs2gu i、lvsm 等的设计思想.


3 未来的扩展

LV S 集群系统仍在发展, 将支持基于内容的负载均衡. 目前的LV S 仅在第3 层网络层进行负载均衡, 集群只能提供单一服务, 基于内容的负载均衡将使同一集群可以提供多种服务.对此在设计本管理系统时为系统的扩展作了准备. 主要是在节点安装、动态调度两部分. 在节点安装系统时要能通过预先配置对提供不同服务的节点分别安装不同的软件. 这可以参照脚本安装工具对System Imager 进行修改, 或者制作多个镜像进行选择; 在动态调度部分要求根据各服务的负载状况动态地调度集群内提供不同服务的

节点的数量, 当某项服务的负载过重就将负载较轻的节点转变成提供该服务的节点. 可用分布式shell (dist ribu ted shell) 来实现这种调度, 可以参照Rdist、Cfengine 等工具.


4 系统的实现

该系统在大连理工大学VOD 视频点播系统的realserver 集群中已经部分实现. 监控和自动安装部分已经实现, 并且可以对集群内节点进行简单调度. 保证了集群的7 × 24 h 稳定工作,在统一的管理界面实现后管理将更加便捷, 系统运作效率将进一步提高.