slurm 세팅하기 2 - slurm 설치 및 세팅
slurm 세팅
@ 서버 세팅
# 슬레이브 세팅
@# 서버, 클라이언트 설정
echo "/opt/slurm/lib64" > /etc/ld.so.conf.d/slurm-x86_64.conf
echo "/opt/lib64/slurm" >> /etc/ld.so.conf.d/slurm-x86_64.conf
@ 서버 세팅
mkdir /var/spool/slurmctld/
chown slurm: /var/spool/slurmctld/
chmod 755 /var/spool/slurmctld/
touch /var/log/slurmctld.log
chown slurm: /var/log/slurmctld.log
mkdir /var/spool/slurmd
mkdir /var/log/slurmd
chown slurm: /var/spool/slurmd
chmod 755 /var/spool/slurmd
touch /var/log/slurmd/slurmd.log
chown slurm: /var/log/slurmd/slurmd.log
# 슬레이브 세팅
mkdir /var/spool/slurmd
chown slurm: /var/spool/slurmd
chmod 755 /var/spool/slurmd
@# 서버, 클라이언트 설정
vi /etc/profile.d/slurm.sh
#@ 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.
#
ClusterName=slurm-m
SlurmctldHost=slurm-m
#
MailProg=/bin/mail
#MpiDefault=
#MpiParams=ports=#-#
ProctrackType=proctrack/cgroup
ReturnToService=1
SlurmctldPidFile=/var/run/slurmctld.pid
#SlurmctldPort=6817
SlurmdPidFile=/var/run/slurmd.pid
#SlurmdPort=6818
SlurmdSpoolDir=/var/spool/slurmd
SlurmUser=slurm
#SlurmdUser=root
StateSaveLocation=/slurm_test
#SwitchType=
TaskPlugin=task/affinity,task/cgroup
#
#
# TIMERS
#KillWait=30
#MinJobAge=300
#SlurmctldTimeout=120
#SlurmdTimeout=300
#
#
# SCHEDULING
SchedulerType=sched/backfill
SelectType=select/cons_tres
#selectType=select/linear *
SelectTypeParameters=CR_Core
#SelectTypeParameters=CR_CPU *
#
#
# LOGGING AND ACCOUNTING
#AccountingStorageType=accounting_storage/slurmdbd
#AccountingStorageHost=slurm
#AccountingStorageUser=slurm
JobAcctGatherType=jobacct_gather/linux
JobAcctGatherFrequency=30
#AccountingStorageType=
#JobAcctGatherFrequency=30
#JobAcctGatherType=
#SlurmctldDebug=info
#SlurmdDebug=info
SlurmctldLogFile=/var/log/slurmd/slurmctld.log
SlurmdLogFile=/var/log/slurmd.log
#
#
# COMPUTE NODES
NodeName=slurm-s CPUs=4 RealMemory=3700 Sockets=1 CoresPerSocket=4 ThreadsPerCore=1 State=UNKNOWN
PartitionName=test1 Nodes=slurm-s Default=no MaxTime=INFINITE State=UP
======================================================
위와 같이 설정해주며
# COMPUTE NODES 의 사양은 lscpu를 통해 확인하여 설정해준다.
# 슬레이브에서 slurmd 실행
systemctl start slurmd.service
@ 마스터에서 slurmctld 실행
systemctl start slurmctld.service
mysql 다운로드 및 설치
https://downloads.mysql.com/archives/community/
MySQL :: Download MySQL Community Server (Archived Versions)
Please note that these are old versions. New releases will have recent bug fixes and features! To download the latest release of MySQL Community Server, please visit MySQL Downloads. MySQL open source software is provided under the GPL License.
downloads.mysql.com
위 사이트에서 mysql 파일 다운로드
wget으로 다운받기 위해 Download를 마우스 우클릭 한 후 "링크 주소 복사" 를 해준다.
tar 파일 압축해제 전 디렉터리를 생성하여 tar 파일을 이동시켜준 후 해당 디렉터리에서 압축해제를 진행한다.
압축이 다 풀렸으면 dnf localinstall -y mysql-*.rpm 명령어를 통해 설치를 진행한다.
mysql 실행 확인
mysqld --initialize-insecure --user=mysql 해당 명령어를 통해 mysql을 비밀번호 없이 실행한다.
mysql_secure_installation mysql 정책 설정 진행
mysql 접속 확인
mysql -uroot -p -> mysql 접속
create database slurmacctdb; 데이터베이스 생성
CREATE USER 'slurm'@'%' IDENTIFIED BY 'slurm123!'; 계정 생성
GRANT ALL PRIVILEGES ON slurmacctdb.* TO 'slurm'@'%'; 권한 설정
SELECT user, host FROM mysql.user; 권한 조회
SELECT * FROM information_schema.SCHEMA_PRIVILEGES WHERE TABLE_SCHEMA = 'slurmacctdb';
# 생성한 계정으로 mysql 접속 확인
# /etc/slurm/slurmdbd.conf 파일 생성
============================================================
#
# Example slurmdbd.conf file.
#
# See the slurmdbd.conf man page for more information.
#
AuthType=auth/munge
DbdAddr=slurm-m **
DbdHost=slurm-m **
SlurmUser=slurm
DebugLevel=4
LogFile=/var/log/slurmd/slurmdbd.log
PidFile=/var/run/slurmdbd.pid
StorageType=accounting_storage/mysql
StorageHost=slurm-m **
StorageUser=slurm
StoragePass=slurm123!
StorageLoc=slurmacctdb
StoragePort=3306
============================================================
chmod 600 /etc/slurm/slurmdbd.conf
chown slurm: /etc/slurm/slurmdbd.conf
chown slurm: /var/log/slurmd
# /etc/slurm/slrum.conf 수정 - 아래 세줄 주석 해제 및 수정 / 42번째 줄
# LOGGING AND ACCOUNTING
AccountingStorageType=accounting_storage/slurmdbd
AccountingStorageHost=slurm-m **
AccountingStorageUser=slurm
/root/ 경로에 .bashrc 파일 편집
============================================================
alias si='sinfo -o "%20P %5D %14F %8z %10m %10d %11l %32f %N"'
alias si2='sinfo -o "%20P %5D %6t %8z %10m %10d %11l %32f %N"'
alias si3='sinfo -o "%14P %12n %9t %14C %12O %9m %12e %10d %11l"'
alias sq='squeue -o "%8i %12j %4t %10u %20q %20a %10g %20P %10Q %5D %11l %11L %R"'
alias sq2='squeue --format="%.10i %.9P %.50j %.8u %.8T %.10M %.9l %.6D %R" | sort -n -k1,1'
alias sq3='squeue -o "%8i %15j %8C %8m %4t %10u %20q %20P %10Q %5D %11l %11L %R" | sort -n -k1,1'
============================================================
하단에 위 내용 추가 후 저장
source .bashrc 적용
적용 후 which sinfo 입력 시 "no" 가 나올 경우
export PATH=$PATH:/opt/slurm/bin
그 위에 아래 내용 추가 후 저장, source .bashrc 입력
sinfo 명령어 작동 확인
sacctmgr add cluster slurm-m
sacctmgr add account none Cluster=slurm-m
순서대로 입력
# 각 명령어의 설명
sacctmgr add cluster slurm-m: 이 명령어는 "slurm-m"이라는 이름의 새로운 클러스터를 추가합니다. Slurm은 여러 대의 컴퓨터로 구성된 클러스터에서 작업을 관리하는 데 사용되며, 이 명령어는 새로운 클러스터를 설정하는 데 사용됩니다.
sacctmgr add account none Cluster=slurm-m: 이 명령어는 "slurm-m" 클러스터에 "none"이라는 이름의 새로운 계정을 추가합니다. Slurm에서는 작업을 제출하고 관리하는 데 사용되는 계정을 설정할 수 있습니다. "none"은 특별한 권한을 가지지 않는 기본 계정을 나타냅니다.
# 이후 mysql 접속하여
use slurmacctdb
show tables; 입력시
테이블이 생성된 것 확인
# sinfo 명령어 입력 시 STATE가 "down*'으로 표시된다.
scontrol update nodename=slurm-s state=resume
명령어를 통해 STATE를 "idle" 로 전환해준다.