ubuntu系统下SLURM集群配置搭建 | 您所在的位置:网站首页 › ubuntu集群搭建 › 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 将配置文件分发到各节点上(需要先修改好)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 实验室设备网 版权所有 |