slurm任务调度系统部署和测试(一)

本博客通过VMware workstation创建了虚拟机console,然后在console内部创建了8台kvm虚拟机,使用这8台虚拟机作为集群,来部署配置和测试slurm任务调度系统。
console虚拟机配置为:4核心CPU,8G内存,20G系统盘安装OS,20G数据盘挂载到/opt,10G数据盘挂载到/home,一块NAT网卡模拟带外,一块Host only网卡模拟专用内网

在使用console部署8台kvm虚拟机之后,需要做一下操作:

部署console到node11-18的免密码登陆,通过sshpass+shell实现

部署console为NTP服务器,同步node11-18的时间到console

部署console为LDAP服务器,能够实现全局用户认证

格式化数据盘,将/opt和/home通过NFS共享给node11-18

注:
上面这部分内容涉及较多,如VMware workstation部署虚拟机console,console虚拟机部署kvm虚拟机,创建并挂载NFS全局文件系统,console到多节点的免密码登陆,NTP和LDAP服务部署等,这里不做一一详述。

2.同步时间节点

将console部署为NTP服务器之后,通过定时执行同步任务来保证所有节点时间一致:
pdsh -w node[11-18] ntpdate 192.168.80.8

将该命令写入定时任务:
crontab -e

*/5 * * * * pdsh -w node[11-18] "ntpdate 192.168.80.8; hwclock --systohc" 3.下载软件包

munged-0.5.12
slurm-16.05.3(该软件包因为安全漏洞问题,已经无法下载,可下载其他版本)

4.编译安装munge-0.5.12

1.创建安装目录:
mkdir -p /opt/munge/munge-0.5.12
2.解压:
unzip munge-munge-0.5.12.zip
3.编译:
cd munge-munge-0.5.12
./configure --prefix=http://www.likecs.com/opt/munge/munge-0.5.12 --sysconfdir=http://www.likecs.com/opt/munge/munge-0.5.12/etc --localstatedir=http://www.likecs.com/var
make && make install
注:
此时编译报错:

checking which cryptographic library to use... failed
configure: error: unable to locate cryptographic library

解决如下:
yum -y install openssl openssl-devel

此时可以在/opt/munge/munge-0.5.12下,查看到munge的各类目录

5.配置munge

我希望munged在运行的时候,以root用户的身份运行(默认是munge用户),此时需要修改配置。
1.创建munge.key,并修改权限:
cd /opt/munge/munge-0.5.12/etc
echo "helloeveryone,I'ammungekeyonkvmcluster." >munge.key && chmod 600 munge.key

这里munge.key可以手动创建,但是必须保证其内容在32个字节以上,且文件权限为600方可

2.在所有需要部署slurmd的节点上创建munged运行需要的目录
pdsh -w node[11-18] mkdir -p /var/{log,run,lib}/munge

假如这三个目录为全局目录,即安装在/opt上的话,则节点不能够同时启动munged

3.修改munge运行的进程用户为root
cd /opt/munge/munge-0.5.12/etc/rc.d/init.d
vim munge编辑内容如下:

prefix="/opt/munge/munge-0.5.12" exec_prefix="${prefix}" sbindir="${exec_prefix}/sbin" sysconfdir="/opt/munge/munge-0.5.12/etc" localstatedir="/var" SERVICE_NAME="MUNGE" DAEMON_EXEC="$sbindir/munged" PIDFILE="$localstatedir/run/munge/munged.pid" USER="root" GROUP="root" VARRUNDIR="$localstatedir/run/munge"

4.修改启动脚本的配置文件
vim /opt/munge/munge-0.5.12/etc/sysconfig/munge,内容如下:

DAEMON_ARGS="--key-file /opt/munge/munge-0.5.12/etc/munge/munge.key --num-threads 1" USER="root" GROUP="root"

5.创建添加环境变量的脚本,拷贝到其他节点
vim /etc/profile.d/optenv.sh

#!/bin/bash export PATH=$PATH:/opt/munge/munge-0.5.12/sinb

拷贝至其他节点:

for i in $(seq 11 18) do scp /etc/profile.d/optevn.sh node$i:/etc/profile.d/ done

6.节点启动munged
pdsh -w node[11-18] munged
pdsh -w node[11-18] ps -ef|grep munge|grep -v grep

6.编译安装slurm-16.05.3

1.创建安装目录:
mkdir -p /opt/slurm/slurm-16.05.3

2.编译安装

./configure \ --prefix=http://www.likecs.com/opt/slurm/slurm-16.05.3/ \ --sysconfdir=http://www.likecs.com/opt/slurm/slurm-16.05.3/etc --with-munge=http://www.likecs.com/opt/munge/munge-0.5.12/

make && make install

3.创建其他所需目录
cd /opt/slurm/slurm-16.05.3 && mkdir etc log state

etc:用于放置slurmctld,slurdbd的配置文件

log: 用于存放slurmctld,sluedbd的日志文件

state:用户存放作业状态的目录

4.创建slurmadmin用户,并修改相应目录权限
chown -R slurmadmin:slurmadmin state && chmod 777 log

7. 配置slurm

创建slurm.conf,内容如下:

#slurm集群名称 ClusterName=myslurm #slurm主控制器主机名 ControlMachine=node11 #slurm从控制器主机名 BackupController=node12 #slurm进程用户 SlurmUser=slurmadmin #slurmd节点守护进程用户 SlurmdUser=root #slurmctld控制器端口 SlurmctldPort=6817 #slurmd节点守护进程端口 SlurmdPort=6818 #slurm通信认证 AuthType=auth/munge SwitchType=switch/none MpiDefault=none #slurm任务状态保存目录 StateSaveLocation=http://www.likecs.com/opt/slurm/slurm-16.05.3/state #slurmd守护进程日志保存 SlurmdSpoolDir=http://www.likecs.com/var/log/slurmd #slurmctld的pid存放 SlurmctldPidFile=http://www.likecs.com/var/run/slurmctld.pid #slurmd守护进程的pid文件存放 SlurmdPidFile=http://www.likecs.com/var/run/slurmd.pid TaskPlugin=task/cgroup ProctrackType=proctrack/cgroup #第一个jobid号 FirstJobId=1000 #最大的jobid号 MaxJobId=50000 ReturnToService=2 SlurmctldTimeout=300 SlurmdTimeout=300 TCPTimeout=10 InactiveLimit=0 MinJobAge=300 KillWait=30 Waittime=0 SchedulerType=sched/backfill SelectType=select/linear FastSchedule=1 DebugFlags=NO_CONF_HASH SlurmctldDebug=3 #slurmctld控制器守护进程的日志存放,全局文件系统 SlurmctldLogFile=http://www.likecs.com/opt/slurm/slurm-16.05.3/log/slurmctldlogfile SlurmdDebug=3 #slurmd节点守护进程的日志文件,节点本地 SlurmdLogFile=http://www.likecs.com/var/log/slurmdlogfile #slurm运行插件的路径 PluginDir=http://www.likecs.com/opt/slurm/slurm-16.05.3/lib:/opt/slurm/slurm-16.05.3/lib/slurm #jod限制类型 JobAcctGatherType=jobacct_gather/cgroup #计费等配置 #采用slurmdbd守护进程进行存储 AccountingStorageType=accounting_storage/slurmdbd #运行slurmdbd进程的节点主机名 AccountingStorageHost=node11 #slurmdbd运行节点的端口 AccountingStoragePort=6819 AccountingStorageEnforce=limints,qos #account存放的库 AccountingStorageLoc=slurm_acct_db #运行slurmdbd的数据库用户 AccountingStorageUser=slurmadmin AccountingStoragePass=http://www.likecs.com/var/run/munge/munge.socket.2 AcctGatherNodeFreq=180 #资源配置,包括节点配置,队列(分区)配置等 NodeName=node[11-18] CPUs=4 RealMemory=300 sockets=2 CoresPerSocket=2 ThreadsPerCore=1 State=UNKNOWN PartitionName=q_x86_1 Nodes=node[11-18] MaxTime=INFINITE State=UP DEFAULT=YES AllowAccounts=ALL

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzjsxg.html