[slurm] CentOS7/Ubuntu18上Slurm部署步骤(单机版)

1. 关闭防火墙,禁用selinux

2. 创建munge和slurm用户

需要确认1190和1191没有被其他user占用

export MUNGEUSER=1190
groupadd -g $MUNGEUSER munge
useradd  -m -c "MUNGE Uid 'N' Gid Emporium" -d /var/lib/munge -u $MUNGEUSER -g munge -s /sbin/nologin munge
export SlurmUSER=1191
groupadd -g $SlurmUSER slurm
useradd -m -c "Slurm workload manager" -d /var/lib/slurm -u $SlurmUSER -g slurm -s /bin/bash slurm

3. 安装munge

##centos7
yum install munge munge-libs munge-devel rng-tools -y

## ubuntu18
apt install munge libmunge-dev -y

#rng 相关ubuntu跳过
rngd -r /dev/urandom
sed -i 's#^ExecStart.*#ExecStart=/sbin/rngd -f -r /dev/urandom#g'  /usr/lib/systemd/system/rngd.service
systemctl daemon-reload
systemctl start rngd
systemctl enable rngd

# 华为Euler系统下编译安装
dnf install bzip2-devel openssl-devel zlib-devel gdb -y
rpmbuild -tb --without verify munge-0.5.15.tar.xz
cd /root/rpmbuild/RPMS/aarch64
dnf install ./*.rpm

# 创建密钥

dd if=/dev/urandom bs=1 count=1024 > /etc/munge/munge.key
chown munge: /etc/munge/munge.key
chmod 400 /etc/munge/munge.key

systemctl restart munge
systemctl enable munge
systemctl status munge

4. 安装slurm

# centos7
yum install gcc gcc-c++ readline-devel perl-ExtUtils-MakeMaker pam-devel rpm-build mysql-devel http-parser-devel json-c-devel libjwt  libjwt-devel python3 -y

# ubuntu18
apt-get install make hwloc libhwloc-dev libmunge-dev libmunge2 munge mariadb-server libmysqlclient-dev libhttp-parser-dev libjwt-dev libjwt0 libjson-c-dev -y

# Euler
dnf install gcc gcc-c++ readline-devel perl-ExtUtils-MakeMaker pam-devel rpm-build mariadb-devel mariadb http-parser-devel json-c-devel -y

5. 文件权限修改

 mkdir -p /var/spool/slurm/ctld
chmod 0755 /var/spool/slurm/ctld
chown slurm:slurm /var/spool/slurm/ctld

mkdir -p /var/spool/slurm
chown slurm: /var/spool/slurm
mkdir -p /var/log/slurm
chown slurm: /var/log/slurm

6. 安装数据库

从https://mariadb.org/download/?t=repo-config&d=CentOS+7&v=10.3&r_m=blendbyte 获取10.3版本的repo文件
高版本需要一些依赖,arm操作系统可能没有,故选择10.3

yum install MariaDB-server MariaDB-client

在/etc/my.cnf中增加如下内容
[mysqld]
innodb_buffer_pool_size=1024M
innodb_log_file_size=64M
innodb_lock_wait_timeout=900
注: 此步骤解决slurmdbd链接数据库报错

增加数据库用户

mysql -e "CREATE USER 'slurm'@'%' identified  by 'Slurm1234'"
mysql -e "GRANT ALL ON slurm_acct_db.* TO 'slurm'@'%'"
mysql -e "CREATE USER 'slurm'@'localhost' identified  by 'Slurm1234'"
mysql -e "GRANT ALL ON slurm_acct_db.* TO 'slurm'@'localhost'"
mysql -e "CREATE USER 'slurm'@'***HOSTNAME****' identified  by 'Slurm1234'"
mysql -e "GRANT ALL ON slurm_acct_db.* TO 'slurm'@'***HOSTNAME****'"  #替换HOSTNAME

Euler系统仓库内没有mysql或者mariadb服务端(有客户端),需要自行从源码编译或者下载arm架构二进制包
mariadb没找到,但mysql有
https://downloads.mysql.com/archives/community/
从以上网址下载centos8或者centos7的二进制安装包即可
本次测试Eulerv2r8用了centos8得二进制安装包,可以成功安装并运行

7. 编译slurm

./configure --enable-debug --with-munge --enable-slurmrestd
不需要调试就不加debug

修改auth验证:编辑src/slurmrestd/operations.c,注释掉

        if ((rc = rest_authenticate_http_request(args))) {
                _operations_router_reject(args, "Authentication failure",
                                          HTTP_STATUS_CODE_ERROR_UNAUTHORIZED);
                return rc;
        }

保存文件后重新make install 编译slurmrest即可

slurmrest运行命令:
SLURMRESTD_SECURITY=disable_user_check slurmrestd -a rest_auth/local -s openapi/v0.0.39 -vvv 0.0.0.0:6688
运行rest api服务

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值