しゅうせいちゅう

ubuntu向けのdebファイルを作ってみる

基本は /opt の配下にインストールして、それをパッケージ作成用の/WORKとかに移して「fakeroot dpkg-deb --build /WORK .」って感じ
目録とか依存パッケージの指定、インストール後のスクリプトもあるけど。
ここではごくごく簡単なもので行います

apt install libpam-dev libcgroup-dev libpam-cgroup libhwloc-dev libpmix-dev libdbus-1-dev libfreeipmi-dev libipmimonitoring-dev man2html libreadline-dev
 
 
./configure --prefix=/opt/slurm --sysconfdir=/opt/slurm/etc --enable-x11 --disable-selinux \
--enable-pam --with-pam_dir=/usr/lib/x86_64-linux-gnu/security --with-hdf5=no --without-ucx --without-ofed --with-nvml=/usr/local/cuda-12.3  --without-munge --with-pmix=/usr/lib/x86_64-linux-gnu/pmix2

n1: ubuntu 20.04

ubuntu20.04はOS提供のパッケージがある. がだこのパッケージのversionは 19.05.5 でもし管理ノード(22.05.7)に繋ぐとエラーになる
slurmctld側(管理ノード)では「error: unpack_header: protocol_version 8704 not supported」と表記され
slurmd側(計算ノード)では「Unable to register: Zero Bytes were transmitted or received」と表記される

なのでソースから作る.
まずはGPUの制御のために「cuda-nvml-dev」を入れます. nvidiaドライバは登録済みですNVIDIA参照

root@n1:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
 :
root@n1:~# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  525.60.11  Wed Nov 23 23:04:03 UTC 2022
GCC version:  gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
 
root@n1:~# nvidia-smi -L
GPU 0: NVIDIA RTX A2000 (UUID: GPU-23cc3ee7-31d3-a068-2f61-5aa00052d084)
 
root@n1:~# bash ./cuda_12.0.0_525.60.13_linux.run     (「cuda-nvml-dev」のみインストール)

その後 munge アカウントを作成してmungeをインストールします. slurm アカウントはnis/ldap/ad 由来でも可

root@n1:~# groupadd -g 5001 munge && useradd -d /var/lib/munge -s /bin/bash -u 5001 -g munge munge
root@n1:~# apt install munge

あとはslurmをソースから作ります

root@n1:~# apt install build-essential libmunge-dev libpam-dev libcgroup-dev libpam-cgroup \
                       libhwloc-dev libpmix-dev libdbus-1-dev
root@n1:~# tar xf slurm-22.05.7.tar.bz2
root@n1:~# cd slurm-22.05.7/ 
root@n1:~/slurm-22.05.7# ./configure --prefix=/opt/slurm --sysconfdir=/opt/slurm/etc --disable-x11 --disable-selinux \
                         --enable-pam --with-hdf5=no --without-ucx --without-ofed --with-nvml=/usr/local/cuda-12.0
 
root@n1:~/slurm-22.05.7# make -j 20; make install
 
(インストール後の微調整)
mkdir /opt/slurm/etc
mkdir -p /var/spool/slurm/d
echo "D /run/slurm 0755 root root -" > /usr/lib/tmpfiles.d/slurm.conf
/usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/slurm.conf
echo -e "export PATH=\${PATH}:/opt/slurm/bin\nexport LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/opt/slurm/lib64" > /etc/profile.d/slurm.sh
cp ./slurm-22.05.7/etc/slurmd.service /usr/lib/systemd/system/
systemctl daemon-reload
 
root@n1:~# /opt/slurm/sbin/slurmd -C
NodeName=n1 CPUs=1 Boards=1 SocketsPerBoard=1 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=16001   -> この内容を管理ノードのslurm.confに加える
UpTime=0-00:13:55
 
root@n1:~#
 
(管理ノードから)
[root@slurm ~]# scp /opt/slurm/etc/*.conf  n1:/opt/slurm/etc/
[root@slurm ~]# scp /etc/munge/munge.key   n1:/etc/munge/
 
(デーモン起動)
root@n1:~# chown -R munge. /etc/munge/
root@n1:~# systemctl enable slurmd munge --now

管理ノードで「Configless 」が有効ならslurm/manager#d2a5c73c slurm.conf らのファイル転送は不要

ubuntuには既定でfirewallが設置されていないのでこれで完了

n3: ubuntu 22.04

ディストリビューター提供のパッケージは 21.08.5 で管理ノードが 22.05.7 なのでこれもソースから作っていく

root@n3:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
 :
root@n3:~# apt search slurmd
 :
slurmd/jammy 21.08.5-2ubuntu1 amd64
  SLURM compute node daemon
 :
root@n3:~#

構築方法は n1 と同じ

あと末端の微調整

apt install munge
mkdir /opt/slurm/etc ; mkdir -p /var/spool/slurm/d ; mkdir /run/slurm
echo -e "export PATH=\${PATH}:/opt/slurm/bin\nexport LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/opt/slurm/lib64" > /etc/profile.d/slurm.sh
 
cp slurm-22.05.7/etc/slurmd.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl enable slurmd munge
 
 
root@n3:~# /opt/slurm/sbin/slurmd -C
NodeName=n3 CPUs=4 Boards=1 SocketsPerBoard=4 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=16000    -> この内容を管理ノードのslurm.confに加える
UpTime=0-00:05:15
 
 
(管理ノードから)
[root@slurm ~]# scp /etc/munge/munge.key   n3:/etc/munge/
[root@slurm ~]# scp /opt/slurm/etc/*.conf  n3:/opt/slurm/etc/

最後にデーモンを起動させます

[root@n3 ~]# chown -R munge. /etc/munge/ ; mkdir /run/munge/ ; chown -R munge. /run/munge/
[root@n3 ~]# echo "d /run/munge 0755 munge munge" > /usr/lib/tmpfiles.d/munge.conf
[root@n3 ~]# /usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/munge.conf
[root@n3 ~]# systemctl enable munge slurmd --now
最新の60件
2025-02-17 2025-02-15 2025-02-14 2025-02-12 2025-02-03 2025-02-02 2025-02-01 2025-01-27 2025-01-26 2025-01-25 2025-01-24 2025-01-23 2025-01-20 2025-01-13 2025-01-12 2025-01-08 2024-12-30 2024-12-29 2024-12-22 2024-12-20 2024-12-17 2024-12-15 2024-12-14 2024-12-12 2024-12-11 2024-12-10 2024-12-09 2024-12-08 2024-11-28 2024-11-22 2024-11-15 2024-11-14 2024-11-12 2024-11-06 2024-11-05 2024-11-04 2024-11-02 2024-11-01 2024-10-28 2024-10-27 2024-10-23 2024-10-18 2024-10-17 2024-10-15 2024-10-14

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-07-27 (土) 00:50:47