Ubuntu server 18.04 搭建Slurm并行计算环境(包含NFS)
一、Munge 认证模块
1.1、安装 munge
主节点和子节点都安装munge
#安装
sudo apt update && sudo apt install munge libmunge-dev
#设置开机启动
sudo systemctl enable munge
sudo systemctl start munge
#验证安装
munge -V
sudo systemctl status munge
1.2、配置munge
主节点配置
#生成统一key
sudo create-munge-key
#设置munge.key访问权限
sudo chmod 1777 /etc/munge
子节点配置
#设置munge.key访问权限
sudo chmod 1777 /etc/munge
#删除自动生成的munge.key
rm -rf /etc/munge/munge.key
#从主节点获取/etc/munge/munge.key
sudo scp master@ipaddress:/etc/munge/munge.key /etc/munge
#设置munge.key文件访问权限
sudo chown munge:munge /etc/munge/munge.key
sudo chmod 400 /etc/munge/munge.key
#子节点重启
sudo systemctl restart munge
sudo systemctl status munge
#验证是否和主节点执行结果一致
munge -n
常见报错:权限问题,sudo chown munge:munge /etc/munge/munge.key && sudo chmod 400 /etc/munge/munge.key
二、安装NFS文件共享模块
2.1、NFS服务器端配置
# 安装nfs服务端
sudo apt update && sudo apt install nfs-kernel-server
# 配置NFS服务端共享目录,并设置公共访问权限
sudo mkdir -p /nfs
sudo chown nobody:nogroup /nfs
# 修改NFS服务端配置文件,并使配置生效
sudo vim /etc/exports
sudo exportfs -a
#添加如下内容
/nfs *(rw,sync,no_subtree_check,fsid=0,crossmnt)
# 启动nfs服务,并设置开机自启
sudo systemctl start nfs-kernel-server
sudo systemctl enable nfs-kernel-server
2.2、NFS客户端配置
# 安装NFS客户端
sudo apt update && sudo apt install nfs-common
# 创建与NFS服务端相同的共享目录
sudo mkdir -p /nfs
# 挂载共享目录
sudo mount 192.168.1.xxx(NFS服务端ip地址):/nfs /nfs
# 修改客户端配置文件
sudo vim /etc/fstab
# 添加如下内容
192.168.1.xxx(NFS服务端ip地址):/nfs /nfs nfs defaults 0 0
验证NFS配置:在NFS服务端的共享目录中创建文件,在NFS客户端的挂载目录查看是否有相同文件
二、Slurm作业调度模块
2.1、Slurm控制节点配置
# 安装配置文件
sudo apt install slurm-wlm slurm-wlm-doc -y
# 准备生成slurm配置文件
dpkg -L slurmctld | grep html
cd /usr/share/doc/slurmctld/
# 生成server页面,可视化生成配置文件
python3 -m http.server
:
# 启动slurm,并设置开机自启
sudo systemctl start slurmctld
sudo systemctl enable slurmctld
# 验证
sinfo
sudo systemctl status slurmctld
2.2、Slurm计算节点配置
# 安装slurm
sudo apt install slurm-wlm slurm-wlm-doc -y
# 复制控制节点的配置文件 /etc/slurm-llnl/slurm.conf 到 计算节点
ll /etc/slurm-llnl
# 启动slurm,并设置开机自启
sudo systemctl start slurmd
sudo systemctl enable slurmd
# 验证
sudo systemctl status slurmd