关于slurm由于页面文件配置问题的问题

相对全面的SLURM集群的配置、安装及一些小问题的解决 - slurm - ITkeyowrd
相对全面的SLURM集群的配置、安装及一些小问题的解决
推荐:zookeeper 安装配置教程,传送门 http://blog.csdn.net/shirdrn/article/details/7183503 文艺版,带有实操教程 http://zookeeper.apache.org/doc/r3.3.6/zookee
年前做了slurm集群的安装与配置,这里写出来与大家分享一下。安装配置的时候在网上找了很多资料,发现网上的版本都比较简单,很多东西没有说清楚,这里为大家一一详细说明,希望能对需要的朋友们有所帮助。同时我如有写错的地方请大家予以纠正,谢谢!联系QQ:
Slurm安装教程
OS:centos7&machine:master(主节点,也是计算节点),slaver1,slaver2,slaver3(3个计算节点)
1.首先是关于安装账户的问题,经常可以在网上看到一些slurm的安装教程先设置了一个slurm账户。在公司的人可能比较明白。因为在公司里想要拿到root账户几乎是不可能的,那现在安装的slurm谁是管理员呢?或者说以什么账户安装呢?对的,就是slurm账户。这就是需要建slurm账户的由来。每台机器上都要建立一个slurm账户!
好的,我们先建一个slurm账户,useradd命令
2.Slurm需要安装的组件
首先先yum -y install epel-release,添加第三方源,因为你当前的镜像源有可能找不到下面的包
常用的有gtk+-2.0,用来提供对sview实时任务查询的界面支持
安装命令:yum -y install gtk2
&&&&&&&&& yum -y install gtk-devel
Munge:提供组件间的认证通信机制。这个需要在所有节点安装并且启动。
安装命令:yum -y install munge
&&&&&&&&& yum -y install munge-devel
这个时候需要手动创建一些文件夹,这些文件夹在上述安装munge时是不会自动建立的,需要创建。分别是/etc/munge,/var/run/munge,/var/lib/munge,/var/log/munge,所有节点都要安装munge!!!!!
命令:mkdir&/etc/munge
&&&&& mkdir&/var/run/munge
&&&&& mkdir&/var/lib/munge
&&&&& mkdir&/var/log/munge
然后修改上述文件夹的属主为slurm
命令:chown slurm:slurm&/etc/munge
&&&&& chown slurm:slurm& /var/run/munge
&&&&& chown slurm:slurm& /var/lib/munge
&&&&& chown slurm:slurm& /var/log/munge
然后在一台节点上(我是在主节点上)生成munge的秘钥,存储在/etc/munge中
命令:/usr/sbin/create-munge-key
修改属主为slurm: chown slurm:slurm /etc/munge/munge.key
其余节点要各拷贝一份
命令:scp /etc/munge/munge.keyroot@&src-node&:/etc/munge
然后在各个节点上以slurm账户启动munge(之后不说明的地方都是以root账户)
命令:munged
PS命令查看是否启动了munge
命令:ps aux | grep munged
3.Slurm的安装
slurm的安装有三种方式,一是源码编译,二是yum安装,三是rpm安装。强烈建议源码编译,因为尝试过三种方法之后感觉第一种最好,坑少。
假设下载的是slurm-14.11.9,解压后进入文件夹,然后
命令:./configure (--prefix=/usr/local/slurm--sysconfdir=/usr/local/slurm/conf)
&&&&& make
&&&&& make install
括号内的东西可加可不加,我安装的时候没有加。这里的prefix是安装目录,后面的sysconfdir是配置文件的目录,这个在这里指定的话并不会新建一个文件夹,而是之后slurm读取配置文件是从这个位置读取。
(如果加了的话执行完上述命令之后会在。/usr/local/slurm下产生5个文件夹,sbin等。
这时候又需要手动建立一些文件夹了。所以最好不要加这些设置。。。。因为configure文件里已经指定了不加的时候默认的各个文件夹)
启动集群:
Master节点需要执行 slurmctld -c& 和slurmd-c,都是以root账户执行
所有Slaver节点都执行 slurmd -c
配置文件说明:
首先是我在集群上的配置文件(每一行都做了注释):
# Example slurm.conffile. Please run configurator.html
# (in doc/html) tobuild a configuration file customized
# for yourenvironment.
# slurm.conf filegenerated by configurator.html.
# See theslurm.conf man page for more information.
ClusterName=biostacs&&&&&&&&&&&&& //集群名
ControlMachine=master&&&&&&&&& //主节点名
ControlAddr=192.168.122.1&&&&&&& //主节点地址,局域网
#BackupController=
#BackupAddr=
SlurmUser=slurm&&&&&&&& //主节点管理账号
#SlurmdUser=root
SlurmctldPort=6817&&&&&&&&& //主节点服务默认端口号
SlurmdPort=6818&&&&&&& //子节点服务默认端口号
AuthType=auth/munge&&&&&&&&&&& //组件间认证授权通信方式,使用munge
#JobCredentialPrivateKey=&&&&&&&&&&&
#JobCredentialPublicCertificate=
StateSaveLocation=/tmp&&&&&&&& //记录主节点状态的文件夹
SlurmdSpoolDir=/tmp/slurmd&&&&&&&&&&&& //子节点状态信息文件
SwitchType=switch/none
MpiDefault=none
SlurmctldPidFile=/var/run/slurmctld.pid&&&&&&& //主服务进程文件
SlurmdPidFile=/var/run/slurmd.pid&&&&&&&&& //子节点进程文件
ProctrackType=proctrack/pgid&&&&&&&&&&& //监控任务与进程间的关系
#PluginDir=
CacheGroups=0
#FirstJobId=
ReturnToService=0
#MaxJobCount=
#PlugStackConfig=
#PropagatePrioProcess=
#PropagateResourceLimits=
#PropagateResourceLimitsExcept=
#SrunProlog=
#SrunEpilog=
#TaskProlog=
#TaskEpilog=
#TaskPlugin=
#TrackWCKey=no推荐:这几天一直在学习redis集群。然后准备用spring实现redis多机操作,不幸的是,遇到问题好几天都解决不了,一度想放弃,可是想想,遇到困难正是学习提高的时候,就
#TreeWidth=50
SlurmctldTimeout=300
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
Waittime=0
# SCHEDULING
SchedulerType=sched/backfill
#SchedulerAuth=
#SchedulerPort=
#SchedulerRootFilter=
SelectType=select/linear
FastSchedule=1
#PriorityType=priority/multifactor
#PriorityDecayHalfLife=14-0
#PriorityUsageResetPeriod=14-0
#PriorityWeightFairshare=100000
#PriorityWeightAge=1000
#PriorityWeightPartition=10000
#PriorityWeightJobSize=1000
#PriorityMaxAge=1-0
SlurmctldDebug=3
SlurmctldLogFile=/var/log/slurmctld.log&&&&&&& //主节点log日志
SlurmdDebug=3
SlurmdLogFile=/var/log/slurmd.log&&&&&&&&& //子节点log日志
JobCompType=jobcomp/none
#JobCompLoc=
# ACCOUNTING
#JobAcctGatherType=jobacct_gather/linux
#JobAcctGatherFrequency=30
#AccountingStorageType=accounting_storage/slurmdbd
#AccountingStorageHost=
#AccountingStorageLoc=
#AccountingStoragePass=
#AccountingStorageUser=
# COMPUTE NODES
#NodeName=master,slaver1CPUs=2 RealMemory=32000 Procs=1 State=UNKNOWN
//节点名称,CPUs核数,corepersocket,threadspersocket,使用lscpu查看,realmemory实际分配给slurm内存,procs是实际CPU个数,/proc/cpuinfo里查看 state=unknown是刚启动集群的时候为unknown,之后会变成idle
NodeName=master,slaver1,slaver2,slaver3CPUs=24 CoresPerSocket=6 ThreadsPerCore=2 RealMemory=30000 Procs=1State=UNKNOWN
PartitionName=controlNodes=master Default=NO MaxTime=INFINITE State=UP
//partitionname是分成control和compute,default=yes是说这个用来计算,我们设置slaver1/2/3这三台default为yes,用来计算的
PartitionName=computeNodes=slaver1,slaver2,slaver3 Default=YES MaxTime=INFINITE State=UP
#PartitionName=debugNodes=linux[1-32] Default=YES MaxTime=INFINITE State=UP
这就是配置文件的全部内容。
安装完成后执行sinfo命令,如果所有机器都是下图
则集群启动正常。State有idle(空闲),salloc(占用),unknown(刚启动时可能出现),down(连不上)等状态。
一些小的问题:
1.如果修改了配置文件slurm.conf,则请在master上执行scontrol reconfig命令更新配置文件。
2.目前集群所有机器的配置文件是一样的,如果修改了请把所有机器的conf都相应修改掉
3.查看各个节点的情况 scontrol show node如果出现not responding说机器通信有问题
4.如果要看上述3中的机器的具体原因可以查看每台机器的具体日志,目录为/var/log/slurmd.log
在master上还可以查看/var/log/slurmctld.log
5.如果某个节点down很久了,后来你找到原因了,觉得解决了。此时因为长时间down需要update整个集群,命令为 scontrol updatenode=master,slaver1,slaver2,slaver3 state=idle
6.建立slurm用户的时候查看id slurm 会显示uid=1001(slurm),gid=1001(slurm),group=1001(slurm)【我的集群上】。注意每台机器上都要建一个slurm账户,当你查看发现有的机器上id slurm不一致的时候,可能有的机器是1000,这时候需要修改uid和gid为1001,所有节点一定要保持一致!然后如果之前手动建立的munge文件夹是在1000时候建立的,改了之后要把之前的文件夹删掉重新建一遍!
7.Sview来图形化查看任务状态,这个需要在本地有一个vnc的客户端,在master上开一个vncsever就可以连了,然后sview,否则直接命令窗登陆会看到cannot open display
文件存储的问题:
现在集群是master节点一个,slaver1-3是计算节点,slaver4是存储节点,我已经把slaver4的/home/bio/data1/data挂载到了master和1、2、3的/home/bio/data1/data文件夹下,这样大家可以传数据到master的/home/bio/data1/data文件夹下运行,实际上这些数据是放到了4下面。Master/1/2/3共享了4的/home/bio/data1/data文件夹
Slurm运行任务:
Slurm的任务提交方式有3种,命令行直接提交srun,脚本提交sbatch,分配资源后提交salloc.
命令行提交直接提交适用于快速简单的单个任务,脚本提交适用于多个串行或并行任务组成的任务集,分配资源提交跟脚本提交类似,允许先分配资源,然后逐渐提交任务。
Srun运行参数
--begin 设定任务开始时间 例如16:00,now+1hour
--N 指定节点数 例如-N3
-n 指定并行任务数 例如-n3
-o 指定标准输出路径
-time 指定耗时上限
Sbatch是脚本提交,脚本里面直接多个srun命令即可
参数如上。注意:-N指定节点数不能小于里面srun指定的数目
距离存在a.pl执行
Srun -N3 perl a.pl
注意执行slurm命令的时候回车会返回一个job号,然后产生一个slurm-job号.out文件,提交完命令后可以立刻查看一下out文件,如果里面什么都没有,恭喜你,执行成功了,在sview里可以看到。注意一定要查看下out文件,因为执行错了有时候也会在sview里出现该任务。一般报错都会在out文件里呈现。
推荐:最近,要把原来基于Ubuntu下配置的Hadoop集群迁移到RHEL 5下,结果在启动的时候,出现了莫名其妙的问题: Namenode进程启动起来了,但是在登录到Datanode上启动
年前做了slurm集群的安装与配置,这里写出来与大家分享一下。安装配置的时候在网上找了很多资料,发现网上的版本都比较简单,很多东西没有说清楚,这里为大家一一详细说明,希望能对需要的朋友
相关阅读排行
相关内容推荐
请激活账号
为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。
您的注册邮箱:
如果您没有收到激活邮件,请注意检查垃圾箱。在 Ubuntu 上安装 SLURM 集群资源管理器_服务器应用_Linux公社-Linux系统门户网站
你好,游客
在 Ubuntu 上安装 SLURM 集群资源管理器
作者:Linux
SLURM 是一个类似 Sun Grid Engine (SGE) 的开源分布式资源管理软件,用于超级计算机和大型计算节点集群,可高度伸缩和容错。SUN 被卖给
后,好用的 SGE 变成 Oracle Grid Engine 并且从 6.2u6 版本开始成为商业软件了(可以免费使用90天),所以我们不得不另寻其他的开源替代方案,SLURM 是上次在德班高性能会议的时候一位陌生人介绍的,听上去不错。
SLURM 通过一对冗余集群控制节点(冗余是可选的)来管理集群计算节点,是由一个名为 slurmctld 的管理守护程序实现的,slurmctld 提供了对计算资源的监视、分配和管理,并将进入的作业序列映射和分发到各个计算节点上。每个计算节点也有一个守护程序 slurmd,slurmd 管理在其上运行的节点,监视节点上运行的任务、接受来自控制节点的请求和工作、将工作映射到节点内部等等。图示如下:
官方网站提供的 一点都不 quick,看了头大。以下步骤使用两台演示:主机名为 slurm00 的服务器用作控制节点;主机名为 slurm01 的服务器用作计算节点。
在控制节点和计算结点分别安装 slurm 包,这个包里面既含有控制节点需要的 slurmctld 也含有计算结点需要的 slurmd:
# apt-get install slurm-llnl
控制节点和计算结点之间需要通信,通信就需要认证,slurm 支持两种认证方式:Brent Chun&s 的 authd 和 LLNL 的 ,MUNGE 是专为高性能集群计算打造的,这里我们选用 MUNGE,生成 key 后启动 munge 认证服务:
# /usr/sbin/create-munge-key
Generating a pseudo-random key using /dev/urandom completed.
# /etc/init.d/munge start
在线配置工具生成配置文件,然后把配置文件拷贝控制节点以及各个计算结点的 /etc/slurm-llnl/slurm.conf(是的,控制节点和计算结点使用同一个配置文件)。
有了配置文件和启动了 munge 服务后就可以在控制节点启动 slurmctld 服务了:
# /etc/init.d/slurm-llnl start
* Starting slurm central management daemon slurmctld
把控制节点生成的 munge.key 拷贝到各个计算结点:
# scp /etc/munge/munge.key @slurm01:/etc/munge/
登陆计算节点后启动 munge 服务(注意需要改变 munge.key 的 owner 和 group 为 munge,否则会启动失败)和 slurmd 服务:
# ssh ubuntu@slurm01
# chown munge:munge munge.key
# /etc/init.d/munge start
* Starting MUNGE munged
在控制节点上(slurm00)测试一下是否顺利连接到计算结点(slurm01),并且简单运行一个程序 /bin/hostname 看看效果吧:
PARTITION AVAIL
STATE NODELIST
idle slurm01
# srun -N1 /bin/hostname
相关资讯 & & &
& (01月21日)
& (01月21日)
& (01月23日)
& (01月21日)
& (05/12/:13)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款vim在acm-icpc中的配置(转自kuangbin巨巨) &#qqz的小窝
新跟进评论
我评论的新回复
| 得票最多
近期评论文章归档主题信息(必填)
主题描述(最多限制在50个字符)
申请人信息(必填)
申请信息已提交审核,请注意查收邮件,我们会尽快给您反馈。
如有疑问,请联系
CSDN &《程序员》编辑/记者,投稿&纠错等事宜请致邮
你只管努力,剩下的交给时光!
如今的编程是一场程序员和上帝的竞赛,程序员要开发出更大更好、傻瓜都会用到软件。而上帝在努力创造出更大更傻的傻瓜。目前为止,上帝是赢的。个人网站:。个人QQ群:、
个人大数据技术博客:

我要回帖

更多关于 由于页面文件配置问题 的文章

 

随机推荐