#author("2026-08-08T16:13:05+00:00","default:sysosa","sysosa") #author("2026-08-08T16:13:36+00:00","default:sysosa","sysosa") 各OS毎の対応(2025.05.25) |BGCOLOR(YELLOW):OS|BGCOLOR(YELLOW):提供バージョン|BGCOLOR(YELLOW):リポジトリなど| |RockyLinux 9|22.05.9&br;23.11.3|epel&br;hpc-core| |RockyLinux 8|20.11.9&br;23.11.3|epel&br;hpc-core| |CentOS 7|20.11.9|epel| |Ubuntu 20.04|19.05.5|universe| |Ubuntu 22.04|21.08.5|universe| |Ubuntu 24.04|23.11.4|universe| |Ubuntu 26.04|25.11.2|universe| slurm.confで「AuthType=auth/slurm」を使えるようになるのは Slurm v23.11 から. それでまではmungeを使う必要がある. cgroups v2に対応になったのは slurm v22 .05 から あと「Configless」機能は slurm v20.02 から 起点を「/opt/slrum」にして設定ファイルも同じく「/opt/slurm/etc」に配置させ この「/opt/slrum」を共有させればいいのかなと思うが、そうなるとパッケージを用意する必要になる. &size(10){クラスターが単一OSなら. ヘテロOS環境なら既存のパッケージでいいのかも}; っで作ってみた(ubuntuの計算ノードとかには使えないけど) &color(red){*};&size(10){ubuntuのパッケージ作成方法はよく分からないので、作ってないです. ubuntu系はソースから作成なのかも}; 作成方法は[[https://slurm.schedmd.com/quickstart_admin.html>+https://slurm.schedmd.com/quickstart_admin.html]]に従います. まずはソースのtar.bz2を用意します #code(nonumber){{ [root@slurm ~]# cat /etc/redhat-release Rocky Linux release 9.8 (Blue Onyx) [root@slurm ~]# git clone https://github.com/SchedMD/slurm.git [root@slurm ~]# cd slurm/ [root@slurm slurm]# git tag | tail -n 5 slurm-26-05-0-0rc1 slurm-26-05-0-1 slurm-26-05-1-1 slurm-26-05-2-1 start [root@slurm slurm]# [root@slurm slurm]# git checkout slurm-26-05-2-1 [root@slurm slurm]# git branch * (HEAD detached at slurm-26-05-2-1) master [root@slurm slurm]# cd .. [root@slurm ~]# tar --exclude-vcs --transform 's/slurm/slurm-26.05.2/' -cvjf slurm-26.05.2.tar.bz2 slurm [root@slurm ~]# tar tvf slurm-26.05.2.tar.bz2 | head -n 3 drwxr-xr-x root/root 0 2026-08-09 00:53 slurm-26.05.2/ -rw-r--r-- root/root 65 2026-08-09 00:52 slurm-26.05.2/.git-blame-ignore-revs -rw-r--r-- root/root 119 2026-08-09 00:52 slurm-26.05.2/AUTHORS [root@slurm ~]# }} ***cgroups [#f3aea9e2] version 25.05 から cgroups v1 な環境は非推奨みたい. [[https://github.com/SchedMD/slurm/blob/slurm-25.05/CHANGELOG/slurm-25.05.md>+https://github.com/SchedMD/slurm/blob/slurm-25.05/CHANGELOG/slurm-25.05.md]] #code(nonumber){{ cgroup/v1 started its deprecation process, this means that from now on no new features will be added and only support for critical bugs be provided. slurmd will emit a warning once it found it is running under a cgroup/v1 system. We recommend upgrading to cgroup/v2 as soon as possible in order to get full support and new features. (DeepL訳) cgroups/v1の非推奨プロセスが開始されました。これは今後、新機能の追加は行われず、重大なバグに対するサポートのみが提供されることを意味します。 slurmdはcgroups/v1システム下で動作していることを検知すると警告を出力します。完全なサポートと新機能を利用するため、cgroups/v2へのアップグレードをできるだけ早く行うことを推奨します。 }} OSがcgroupsのv1かv2なのかは「stat -fc %T /sys/fs/cgroup/」で確認できます. 出力が「&color(magenta){cgroup2fs};」なら cgroups/v2. 「&color(orangered){tmpfs};」なら cgroups/v1. Rockylinux9は cgroup/v2 です Rockylinux8は cgroup/v1 です。 v2への変更は「grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1"」としてrebootすれば可能ですが、正直上手く動かないです. 素直にcgroups/v1のまま使った方がいい. その際は「&color(orangered){slurm-23.11};」がcgroups/v1の最終対応版となります. ***slurmに載せたい機能 [#m67847d1] コンパイルオプションで無能の有効、無効ができるのですが、設定ファイル slrum.conf でも無効にできるので 全ての機能をまずは入れてみることにした 小規模なのに muna を入れるとか, 高速ネットワークでもないのに ucx を入れるとか、ジョブのプロファイリングデータをしないにの hdf5 をいれる?とかとか思うが、入れてみた まずは追加のパッケージを入れて置きます #code(nonumber){{ dnf groupinstall "Development tools" dnf install epel-release -y dnf config-manager --enable crb dnf install munge-devel readline-devel pam-devel perl-ExtUtils-MakeMaker perl-interpreter perl-devel \ hwloc-devel mariadb-devel pmix-devel freeipmi-devel dbus-devel python3 json-c-devel lz4-devel librdkafka-devel \ libcurl-devel man2html-core http-parser-devel libyaml-devel libjwt-devel json-devel libselinux-devel \ lua-devel hdf5-devel ucx-devel ucx-rdmacm numactl-devel gtk2-devel dnf localinstall /Public/cuda/cuda-repo-rhel9-13-2-local-13.2.1_595.58.03-1.x86_64.rpm dnf install cuda-nvml-devel-13-2 dnf remove cuda-repo-rhel9-13-2-local }} ***macroファイルの準備 [#h565bdab] slurm.specを直接いじらず設定ファイル(macro file)を作成します. これでslurm.specの情報を上書きできます #code(nonumber){{ [root@slurm ~]# rpmbuild --version RPM version 4.16.1.3 [root@slurm ~]# vi slurm.rpmmacros %_prefix /opt/slurm %_slurm_sysconfdir %{_prefix}/etc %_with_hwloc --with-hwloc %_with_pam 1 --with_pam_dir=/usr/lib64/security %_with_pmix --with-pmix=/usr %_with_nvml --with-nvml=/usr/local/cuda-13.0 %_with_nvml --with-nvml=/usr/local/cuda-13.2 %_with_freeipmi --with-freeipmi=/usr %_with_jwt --with-jwt=/usr %_with_numa --with-numa %_with_hdf5 --with-hdf5=yes %_with_ucx --with-ucx=/usr %_with_lua --with-lua %_with_slurmrestd 1 [root@slurm ~]# }} ***rpmbuildでパッケージを作る [#gb1e1ab4] #code(nonumber){{ [root@slurm ~]# rpmbuild -ta --load slurm.rpmmacros slurm-26.05.2.tar.bz2 }} RockyLinux8とかCentOS7なら rpmbuild で「--load」が使えないので下記のようにします #code(nonumber){{ cp slurm.rpmmacros .rpmmacros rpmbuild -ta slurm-26.05.2.tar.bz2 rm -rf .rpmmacros }} 作成されたrpmファイルは #code(nonumber){{ [root@slurm ~]# ls -l rpmbuild/RPMS/x86_64/ -rw-r--r--. 1 root root 20609135 Aug 9 01:11 slurm-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 20280 Aug 9 01:11 slurm-contribs-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 86560 Aug 9 01:11 slurm-devel-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 13429 Aug 9 01:11 slurm-example-configs-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 163543 Aug 9 01:11 slurm-libpmi-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 13181 Aug 9 01:11 slurm-openlava-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 142447 Aug 9 01:11 slurm-pam_slurm-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 786022 Aug 9 01:11 slurm-perlapi-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 108486 Aug 9 01:11 slurm-sackd-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 1722107 Aug 9 01:11 slurm-slurmctld-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 1076909 Aug 9 01:11 slurm-slurmd-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 934890 Aug 9 01:11 slurm-slurmdbd-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 190877 Aug 9 01:11 slurm-slurmrestd-26.05.2-1.el9.x86_64.rpm -rw-r--r--. 1 root root 138973 Aug 9 01:11 slurm-torque-26.05.2-1.el9.x86_64.rpm [root@slurm ~]# (中身確認) [root@slurm ~]# rpm -qpli ./rpmbuild/RPMS/x86_64/slurm-26.05.2-1.el9.x86_64.rpm | less }} ***メモ [#u395f428] cudaライブラリ(cuda-nvml-devel)のないところでrpmbuildすると「/opt/slurm/lib64/slurm/gpu_nvml.so」が用意されない. これがないと「/etc/slurm/gres.conf」で「AutoDetect=nvml」が使えない. ***メモ2 [#r157a9e9] slurm-23.11から「sackd」が入ったみたい. ジョブ投入サイトにてmungeの代わりにこれを入れます.