ubuntu系统下SLURM集群配置搭建 您所在的位置:网站首页 ubuntu集群搭建 ubuntu系统下SLURM集群配置搭建

ubuntu系统下SLURM集群配置搭建

#ubuntu系统下SLURM集群配置搭建| 来源: 网络整理| 查看: 265

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

ubuntu系统下SLURM集群配置搭建_客户端

  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

ubuntu系统下SLURM集群配置搭建_客户端_02

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

ubuntu系统下SLURM集群配置搭建_客户端_03

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 将配置文件分发到各节点上(需要先修改好)slurm.conf文件附在文章末尾

  scp 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

————————————————



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有