
正所谓纸上得来终觉浅,绝知此事要躬行,经过前面的一些简单的理论知识学习之后,我们要动手进行实验,在进一步学习之前,我们需要安装一个HPC实验环境。安装的过程中我们会对Slurm的架构和配置有更深入的了解,为了降低门槛,我们的实验环境采用尽量简单的部署方式。
部署方案
节点组成
HPC调度系统是一套分布式的系统,包含一系列服务,在生产环境中我们通常会按照节点所提供的功能将节点进行逻辑划分,通常我们可以按下面的方式进行划分:
- 控制节点:控制节点负责计算节点的管理并提供账户管理等功能,其上运行的服务包括:调度管理控制器,例如Slurmctld、监控服务主控端例如gmetad、账户管理服务例如ypserv,除此之外包括数据库、消息队列、时间同步等服务都可以安装在控制节点上。
- 计算节点:计算节点负责运行具体的计算任务,主要运行调度系统的agent端,例如slurmd。
- I/O节点:为了提供更好的性能,HPC环境中通常会配备高性能的集中存储,这些节点通常使用高性能的磁盘阵列部署分布式文件系统,例如Lustre/Gluster等
- 登陆节点:通常不允许用户直接登陆控制节点或计算节点,用户应该使用登陆节点进行作业提交。

以上几类节点是从功能上进行的区分,但并非固定的方案,实际部署时我们可以根据需求灵活配置,例如将NIS/LDAP之类的身份管理服务部署在独立的机器上,将数据库和消息队列配置多机高可用等。总的来说为了提高系统的可用性和高性能,我们可以将服务部署在若干台物理机上各司其职,而如果出于学习研究的目的,我们也可以将所有服务安装到一起。
实验环境
在生产环节中Slurm通常被安装在物理服务器上以提供最佳的性能,但为了方面个人学习,我建议大家可以使用虚拟机进行安装。这里我们采用VirtualBox运行两个虚拟机进行环境搭建,其中管理节点同时也作为计算节点,具体配置如下:
- 操作系统:CentOS 7.2+
- VCPU:
- 管理节点:2核
- 计算节点:1核
- 内存:
- 管理节点2G+
- 计算节点2G+
- 磁盘:
- 不低于10G
- 网络:
- 管理节点:
- 桥接网络:192.168.1.0/24
- 内部网络:10.0.0.0/8
- 计算节点:
- 内部网络:10.0.0.0/8
- 管理节点:
- 共享存储: NFS
- 账户管理: NIS
- 调度系统: Slurm
- 监控系统: Ganglia
以上配置为最低配置,如果条件允许可以根据情况自行添加更多资源
服务图示

网络图示

下一节开始部署具体的服务。