● 摘要
软件设备(software appliance)是软硬件结合的产品,把选定的特别的应用程序加上最精简的操作系统,运行在标准硬件中而形成的产品。随着对企业的发展,对计算资源密度的要求越来越高,刀片式服务器成为软件设备的新的选择。本文提出一种新的思路设计并实现了一个把多刀片服务器单设备化的管理软件。
本文以实际项目出发,探讨如何把刀片式服务器机箱内的软硬件资源抽象为一个软件设备。“软件设备”的直观特点是一个封闭的硬件设备,从客户的角度来说,刀片式服务器机箱,连同其中的交换机和刀片式服务器,就是一个设备整体,所以我们要在管理软件中自动管理交换机、安装操作系统并对软件进行配置。
本软件基于Dell的M1000e刀片式服务器机箱、M620刀片式服务器和M6220刀片式交换机硬件开发。为了实现内部通讯,我们在交换机上预留了VLAN,并配置了虚拟接口,通过预留VLAN实现内部硬件的管理链路。为了实现单一的管理接口,我们以分布式管理的思想,实现了两层Agent服务的管理框架。刀片Agent用来管理具体刀片式服务器上的操作系统及软件配置,而设备Agent则负责把管理指令分发到具体的刀片Agent执行并对外提供单一的管理接口。
在管理节点上,我们定制了CentOS的发行安装源,并以PXE安装的方式在其他的刀片服务器上远程安装系统,定制的Kickstart文件则同时安装了业务软件及刀片Agent,并注册到设备Agent接受管理。利用DTK(Dell Tool Kit)实现对多个硬件的远程管理,为了进一步抽象出单一的服务器接口,我们利用了Keepalived+LVS的负载均衡方案,以LVS的转发功能结合业务软件的已有内核模块,实现了多个服务器的高性能集群。
本文重点介绍了服务器后台管理软件的设计与实现,系统总体上实现了远程部署,远程管理和维护,可实现分布式大规模管理,也可重用核心功能,扩展其他企业应用的管理功能。