说明:PBS排队系统原先是在Centos7安装使用很顺利,但是有客户需求在Ubuntu20.04上使用,着手在Ubuntu20.04安装上安装的时候发现很多报错,并不能顺利安装,网上查找到的教程,有的说是让放弃转slurm,有的是换源安装,但是安装好的版本很低,有许多bug,不是很好用。经过自己慢慢摸索之后,改了部分配置以及源码之后,能够顺利安装,再次记录一下踩坑心得,与大家一起分享学习。如有问题,欢迎大家来撩。
一、安装包下载
笔者使用的安装包版本为torque-6.1.2,点击下面的连接可以直接下载源码安装包。
http://wpfilebase.s3.amazonaws.com/torque/torque-6.1.2.tar.gz
二、更改主机hosts文件
使用下面命令查看自己本机的IP地址
ifconfig
查看结果如下,红色框为本机IP地址
使用下面命令查看本机主机名
hostname
查看结果如下图所示,fz即为笔者主机名。
打开hosts文件,在红框位置添加红框内容,前面为本机IP地址,后面为本机主机名
三、编译与安装
1、上传安装包至目标机器
笔者使用xshell连接之后,使用xftp工具进行文件传输至指定目录,笔者使用的目录为/home/fz/package
2、解压安装包
mkdir /home/fz/package
cd /home/fz/package
tar -zxvf torque-6.1.2.tar.gz
cd torque-6.1.2/
3、安装必要的库文件
sudo apt-get install make gcc g++ libxml2-dev zlib1g-dev libboost-all-dev libssl-dev -y
4、配置编译
./configure --prefix=/opt/torque/6.1.2 --with-scp--with-default-server=fz --disable-gcc-warnings
配置结束之后如下图所示,会提示准备make,但是别着急,需要修改代码,不然会报错。
5、更改req.cpp文件
vim ./src/lib/Libattr/req.cpp
使用上面的命令打开req.cpp文件,更改将1057行的’\0’改为”\0″,如下图所示
6、开始编译
输入下面命令进行编译
make -j64 CFLAGS='-fpermissive'
7、开始安装
使用一下命令进行安装
sudo make install
8、生成安装包
sudo make packages
9、服务配置
sudo cp contrib/init.d/{pbs_{server,sched,mom},trqauthd} /etc/init.d/
sudo cp contrib/systemd/{pbs_{server,sched,mom},trqauthd}.service /etc/systemd/system/
10、Torque环境变量设置
sudo su // 进入root用户
TORQUE=/opt/torque/6.1.2
echo "TORQUE=$TORQUE" >> /etc/profile
echo "export PATH=\$PATH:$TORQUE/bin:$TORQUE/sbin" >> /etc/profile
source /etc/profile
exit // 退出root用户
11、启动pbs服务
vim ./torque.setup
更改第一行中的sh为bash,更改结束如下图所示
启动服务
sudo ./torque.setup fz
过程中需要输入y继续执行。
使用以下命令查看已启动的服务,并且将该启动的服务进程杀掉,如下图所示
ps -e | grep trqauthd
ps -e | grep pbs
12、编辑pbs_sched文件
vim /etc/init.d/pbs_sched
将里面的. /etc/rc.d/init.d/functions改为. /lib/lsb/init-functions
然后将里面的status和daemon都改为start_daemon即可
13、再次启动pbs服务
for i in trqauthd pbs_server pbs_mom pbs_sched; do sudo service $i start; done
14、指定计算节点
sudo vim /var/spool/torque/server_priv/nodes
fz np=8 //添加本行信息,注意等号前后不要有空格 fz是主机名 np是cpu核心数,可以通过lscpu来查看
sudo vim /var/spool/torque/mom_priv/config
pbsserver fz //添加这两行信息 fz是主机名
logevent 255
15、重启服务
sudo su
for i in trqauthd pbs_server pbs_sched pbs_mom ; do service $i restart; done
exit
16、检查PBS的信息
ps -e | grep pbs
结果如下
17、创建队列的默认信息
qmgr -c 'create queue fz'
qmgr -c 'set queue fz queue_type= execution'
qmgr -c 'set queue fz started= true'
qmgr -c 'set queue fz enabled= true'
qmgr -c 'set queue fz resources_default.walltime= 240:00:00'
qmgr -c 'set queue fz resources_default.nodes= 1'
qmgr -c 'set server default_queue= fz'
qmgr -c 'set server scheduling=true'
注:如果提示找不到qmgr命令重启一个终端试一试(qmgr: command not found)
18、提交测试任务
输入qnodes会出现一下信息,说明初步安装成功
再提交一个任务
echo sleep 120 | qsub
在输入qstat -an可以查看任务详情,如下图所示:
四、设置PBS服务开机自启
1、编辑rc-local.service文件
sudo vim /lib/systemd/system/rc-local.service
打开rc-local.service文件之后在最后添加如下代码
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
添加成功之后如下图所示
2、创建并保存rc.local文件
sudo vim /etc/rc.local
打开rc.local文件之后添加如下代码
#!/bin/sh
systemctl start pbs_server.service
systemctl start trqauthd
systemctl start pbs_sched.service
systemctl start pbs_mom.service
3、赋予rc.local可执行权限
sudo chmod +x /etc/rc.local
4、为rc-local.service添加软链接
sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/
5、使rc-local.service生效并启动
sudo systemctl enable rc-local
sudo systemctl start rc-local.service #启动服务
# sudo systemctl stop rc-local.service #暂停服务
# sudo systemctl status rc-local.service #查看状态
# sudo systemctl daemon-reload # 重新加载自启服务
参考文章:
[已放弃]<s>单机ubuntu编译安装PBS torque</s>
至此Ubuntu20.04 上的PBS安装就此告一段落了,如果大家在安装过程中出现了问题,可以在回看文中修改的关键信息,按照上述步骤就会成功,如还有问题欢迎私信交流!