ubuntu系统下SLURM集群

  • IP配置:所有机器配置同一网段IP,最好为单独内网,与常用外网网段分开,并将所有机器IP在/etc/hosts下添加,将/etc/hosts文件分别传到每台节点
  • Nfs服务器搭建部署

 

sudo apt-get install nfs-kernel-server  # 安装 NFS服务器端

sudo apt-get install nfs-common          # 安装 NFS客户端

1.1在服务端:添加NFS共享目录

cat /etc/exports

/home *(insecure,rw,sync,no_root_squash)

或者:/home  10.0.0.1/24(rw,sync,no_root_squash)

1.2 启动nfs服务:/etc/init.d/nfs-kernel-server restart  && systemctl enable nfs-kernel-server 
1.3 在客户端验证并挂载:showmount -e 10.0.0.1(主节点IP)   && mount -t nfs 10.0.0.1:/home /home(临时挂载)   
1.4 客户端开机启动并挂载nfs:  编辑/etc/fstab文件添加如下内容:永久挂载home
10.0.0.1:/home    /home                nfs defaults 0 0

     1.5 客户端取消挂载:取消挂载:sudo umount  /home

  • Nis服务搭建部署

2.1 安装rpcbind:  apt-get install rpcbind 服务端和客户端都安装nis  rpcbind

2.2 安装nis:apt-get install nis

2.3 启动并设置开机启动: systemctl enable rpcbind  && systemctl enable nis

2.4 Nis服务端配置:

2.4.1 修改nis域名,这里的域名与DNS无关:vim /etc/defaultdomain

2.4.2 修改nis配置文件:

  vim /etc/default/nis

修改NISSERVER类型为node01:  NISSERVER=node01

修改NISCLIENT为false :  NISCLIENT=false

2.4.3 修改yp配置文件: vim /etc/yp.conf   ## 加入以下内容

domain nis.example.com server ip # 这里的ip为本机的ip

 

2.4.4 修改修改数据库权限,一般可不用修改: vim /etc/ypserv.conf

2.4.5 修改客户端连接权限: vim /etc/ypserv.securenets

将"0.0.0.0 0.0.0.0"换为允许连接的客户端,可设置单个ip或某个网段

.5 service ypserv restart

执行 /usr/lib/yp/ypinit -m,初始化数据库。

执行ctrl+d,然后输入y

初始化完毕

make -C /var/yp

2.6 启动nis服务: systemctl start nis

2.7 设置nis开机自启: systemctl enable nis

2.8 nis客户端:

 2.8.1 安装:apt-get install nis rpcbind

 2.8.2 修改vi /etc/defaultdomain 内容跟主节点一样(必须相同否则无法配置成功)

 2.8.3 配置修改yp配置文件: ## 加入以下内容

vi /etc/yp.conf

domain nis.example.com server ip # 这里的ip为服务端的ip

 

 2.8.4 修改nsswitch.conf: 

vim /etc/nsswitch.conf  加入

passwd:        files nis

group:         files nis

shadow:        files nis

2.8.5 启动ypbind: service ypbind start && systemctl enable ypbind

2.8.6 nis认证测试: 执行 yptest 

2.9 配置过程中出现的问题:

2.9.1、服务端和客户端的域名一定保持一致 查看域名: nisdomainname

2.9.2 如果需要实现普通账户在其他主机免密登录,则需要如下操作:

登录普通账户 adduser user

ssh-keygen -t rsa

cd /home/user1/.ssh/

cat id_rsa.pub >> authorized_keys

chmod 600 authorized_keys

## 更新NIS账户和资料库

make -C /var/yp

  • Munge部署

3.1 创建Munge用户(Munge用户要确保Master Node和Compute Nodes的UID和GID相同,所有节点都需要安装Munge):

useradd -m munge

3.2 安装,每台上执行: apt install munge

3.3 在Master上创建密钥

  create-munge-key

scp /etc/munge/munge.key root@Slave1:/etc/munge/     #slave1 /etc/host修改对应的ip

    3.4 启动所有节点

 sudo  systemctl daemon-reload

sudo  systemctl restart munge

sudo  systemctl enable munge

   3.5 测试Munge服务: 每个计算节点与控制节点进行连接验证

     3.5.1 本地查看凭据:  munge -n

3.5.2本地解码:  munge -n | unmunge

3.5.3 验证compute node,远程解码:  munge -n | ssh node01 unmunge

3.5.4  Munge凭证基准测试: remunge

   3.6 分别修改权限每一个节点都需要(这里需要通过id 查看munge的uid 和gid如果id不相同需要修改二者的ID(通过usermod 和groupmod))

#修改目录属主

chown -R munge.munge /var/{lib,log,run}/munge

chown -R munge.munge /etc/munge

#修改目录模式

chmod 711 /var/lib/munge

chmod 700 /var/log/munge

chmod 755 /var/run/munge

chmod 700 /etc/munge

chmod 400 /etc/munge/munge.key

  • Slurm部署

4.1 创建Slurm用户

 useradd -m slurm

4.2 安装Slurm(每个节点都要安装):

    apt install slurm-wlm slurm-wlm-doc -y   ## slurmd -C  && slurmd -V 查看是否启动成功

4.3 将配置文件分发到各节点上(需要先修改好)

   cp slurm.conf /etc/slurm-llnl/slurm.conf   ## 所有的节点文件都是一样的,修改节点需要分别重启服务

4.4 修改文件权限(每个文件都需要修改)

rm -rf  /var/spool/slurm-llnl

mkdir /var/spool/slurm-llnl

chown -R slurm.slurm /var/spool/slurm-llnl

rm -rf /var/run/slurm-llnl/

mkdir /var/run/slurm-llnl/

chown -R slurm.slurm /var/run/slurm-llnl/

sudo mkdir -p /opt/slurm

sudo chmod -Rf 777 /opt/slurm

cd /opt/slurm

touch acct

touch jobcomp

   4.5 启动服务:

      主节点启动执行这4行

systemctl start slurmd

systemctl enable slurmd

systemctl start slurmctld

systemctl enable slurmctld

     其它节点执行

systemctl start slurmd

systemctl enable slurmd

systemctl daemon-reload

systemctl restart slurmd

systemctl restart slurmctld

  4.6 查看状态:sudo systemctl status slurmd.service   sudo systemctl status slurmctld.service

  4.7 如果修改了配置文件slurm.conf,则请在master上执行scontrol reconfigure命令更新配置文件

4.8 如果长时间没有起来sinfo显示down状态需要手动执行下(那个节点down就执行那个):

 scontrol update node=io01,node01,node02,node03,node04  state=idle 

  4.9 检查Slurm集群

4.9.1查看集群

# sinfo

# scontrol show partition

# scontrol show node

4.9.2提交作业   

# srun -N(测试节点数) 2   -n 4(使用核数) hostname

# scontrol show jobs

4.9.3查看作业

# squeue -a

slurm.conf文件设置:

# slurm.conf file generated by configurator easy.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
ControlMachine=node01
#
#MailProg=/bin/mail
MpiDefault=none
#MpiParams=ports=#-#
ProctrackType=proctrack/pgid
ReturnToService=1
SlurmctldPidFile=/var/run/slurm-llnl/slurmctld.pid
SlurmctldPort=6817
SlurmdPidFile=/var/run/slurm-llnl/slurmd.pid
SlurmdPort=6818
SlurmdSpoolDir=/var/spool/slurmd
SlurmUser=root
#SlurmdUser=slurm
StateSaveLocation=/var/spool/slurm-llnl
SwitchType=switch/none
TaskPlugin=task/none
#
#
# TIMERS
#KillWait=30
#MinJobAge=300
SlurmctldTimeout=3600
SlurmdTimeout=300
BatchStartTimeout=3600
PropagateResourceLimits=NONE
#
#
# SCHEDULING
FastSchedule=1
SchedulerType=sched/backfill
#SelectType=select/linear
SelectType=select/cons_res
SelectTypeParameters=CR_CPU_Memory
#
#
# LOGGING AND ACCOUNTING
#AccountingStorageType=accounting_storage/none
ClusterName=cluster
#JobAcctGatherFrequency=30
#JobAcctGatherType=jobacct_gather/none
#SlurmctldDebug=3
#SlurmctldLogFile=
#SlurmdDebug=3
#SlurmdLogFile=
#
# Acct
AccountingStorageEnforce=1
AccountingStorageLoc=/opt/slurm/acct
AccountingStorageType=accounting_storage/filetxt

JobCompLoc=/opt/slurm/jobcomp
JobCompType=jobcomp/filetxt

JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/linux
#
SlurmctldLogFile=/var/log/slurm/slurmctld.log
SlurmdLogFile=/var/log/slurm/slurmd.log

# COMPUTE NODES
# 所有的节点都要写上
NodeName=node01 NodeAddr=10.0.0.1 CPUs=6 State=UNKNOWN
NodeName=node02 NodeAddr=10.0.0.2 CPUs=96 State=UNKNOWN
PartitionName=control Nodes=node01 Default=NO MaxTime=INFINITE State=UP
PartitionName=compute Nodes=node02 Default=YES MaxTime=INFINITE State=UP
 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值