KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

RockLinux8にて、SLURM並列計算環境の構築のおさらいまとめ(一から構成しよう)その1:mungeとslurmインストーラのコンパイルについて

登録日 :2024/03/09 21:12
カテゴリ :SLURM

RockyLinux8でSLURM並列計算環境を構築する手順を改めておさらいして、まとめてみようと思う。

環境としては、RockyLinuxのインストーラにて「rpmbuild」開発ツールのみを追加しGUIサーバのインストールを行っておく。

1. mariadbのインストール

ここは本題ではないため、オンラインでdnfインストール

[root@headnode ~]# dnf install mariadb-server --nobest

インストールされるパッケージは以下のようになる。
もしオフライン環境の場合は、rpmファイルをダウンロードしてきて一つずつインストールすることになると思う。参考情報(https://nonoco.believeriver.site/detail_mark/121/)

 mariadb-server x86_64 3:10.3.39-1.module+el8.8.0+1452+2a7eab68 appstream  16 M依存関係のインストール:
 mariadb        x86_64 3:10.3.39-1.module+el8.8.0+1452+2a7eab68 appstream 6.0 M
 mariadb-common x86_64 3:10.3.39-1.module+el8.8.0+1452+2a7eab68 appstream  63 k
 mariadb-connector-c x86_64 3.1.11-2.el8_3                           appstream 199 k
 mariadb-connector-c-config noarch 3.1.11-2.el8_3                           appstream  14 k
 mariadb-errmsg x86_64 3:10.3.39-1.module+el8.8.0+1452+2a7eab68 appstream 234 k
 perl-DBD-MySQL x86_64 4.046-3.module+el8.9.0+1501+450eec3b     appstream 155 k 弱い依存関係のインストール:
 mariadb-backup x86_64 3:10.3.39-1.module+el8.8.0+1452+2a7eab68 appstream 6.1 M
 mariadb-gssapi-server x86_64 3:10.3.39-1.module+el8.8.0+1452+2a7eab68 appstream  51 k
 mariadb-server-utils x86_64 3:10.3.39-1.module+el8.8.0+1452+2a7eab68 appstream 1.1 M
インストール済み:
  mariadb-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64
  mariadb-backup-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64
  mariadb-common-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64
  mariadb-connector-c-3.1.11-2.el8_3.x86_64
  mariadb-connector-c-config-3.1.11-2.el8_3.noarch
  mariadb-errmsg-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64
  mariadb-gssapi-server-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64
  mariadb-server-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64
  mariadb-server-utils-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64
  perl-DBD-MySQL-4.046-3.module+el8.9.0+1501+450eec3b.x86_64

2. slurm, mungeのインストーラをダウンロードする

2-1 mungeのダウンロード(ダウンロード場所:https://github.com/dun/munge/releases/)

mungeについては、最新のmunge-0.5.15をダウンロードする。
GitHubからのため、もしLinuxがローカルの場合は、ダウンロードしてUSBで転送してもOK。

[root@headnode download]# wget https://github.com/dun/munge/releases/download/munge-0.5.15/munge-0.5.15.tar.xz
[root@headnode download]# wget https://github.com/dun/munge/releases/download/munge-0.5.15/munge-0.5.15.tar.xz.asc
[root@headnode download]# wget https://github.com/dun.gpg

ダウンロードされたファイルは以下の通り

[root@headnode download]# ls -l
合計 464
-rw-r--r--. 1 root root   4710  3 10 21:10 dun.gpg
-rw-r--r--. 1 root root 459468  6 23  2022 munge-0.5.15.tar.xz
-rw-r--r--. 1 root root    833  6 23  2022 munge-0.5.15.tar.xz.asc
2-2 slurmのダウンロード(ダウンロード場所:https://download.schedmd.com/slurm/)
[root@headnode slurm]# wget https://download.schedmd.com/slurm/slurm-21.08.8-2.tar.bz2
--2024-03-10 21:56:02--  https://download.schedmd.com/slurm/slurm-21.08.8-2.tar.bz2
download.schedmd.com (download.schedmd.com) DNSに問いあわせています... 71.19.154.210
download.schedmd.com (download.schedmd.com)|71.19.154.210|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 6747045 (6.4M) [application/x-bzip2]
`slurm-21.08.8-2.tar.bz2' に保存中

slurm-21.08.8-2.tar.bz2                         100%[====================================================================================================>]   6.43M  1.15MB/s 時間 7.6s

2024-03-10 21:56:11 (862 KB/s) - `slurm-21.08.8-2.tar.bz2' へ保存完了 [6747045/6747045]

[root@headnode slurm]#

ダウンロード結果

[root@headnode slurm]# ls -l
合計 6592
-rw-r--r--. 1 root root 6747045  5  6  2022 slurm-21.08.8-2.tar.bz2
[root@headnode slurm]#

3. slurm, mungeのコンパイルを行う

3-1 mungeのコンパイル

mungeをコンパイルするには、以下のライブラリをインストールしておく。

エラー: ビルド依存性の失敗:
        bzip2-devel  munge-0.5.15-1.el8.x86_64 に必要とされています
        gcc  munge-0.5.15-1.el8.x86_64 に必要とされています
        make  munge-0.5.15-1.el8.x86_64 に必要とされています
        openssl-devel  munge-0.5.15-1.el8.x86_64 に必要とされています
        zlib-devel  munge-0.5.15-1.el8.x86_64 に必要とされています

オンラインであれば、yumでインストールするとよい

yum install bzip2-devel
yum install gcc
yum install make
yum install openssl-devel
yum install zlib-devel

参考)https://nonoco.believeriver.site/detail_mark/207/

rpmbuild -tb --clean munge-0.5.15.tar.xz 2>&1 | tee munge-0.5.15_rpmbuild.log

ビルドが完了すると、以下のフォルダにmungeのインストールファイルが作成されている

/root/rpmbuild/RPMS/x86_64
[root@headnode x86_64]# ls -l
合計 604
-rw-r--r--. 1 root root 143412  3 10 22:18 munge-0.5.15-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 230188  3 10 22:18 munge-debuginfo-0.5.15-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 135284  3 10 22:18 munge-debugsource-0.5.15-1.el8.x86_64.rpm
-rw-r--r--. 1 root root  22948  3 10 22:18 munge-devel-0.5.15-1.el8.x86_64.rpm
-rw-r--r--. 1 root root  24524  3 10 22:18 munge-libs-0.5.15-1.el8.x86_64.rpm
-rw-r--r--. 1 root root  46932  3 10 22:18 munge-libs-debuginfo-0.5.15-1.el8.x86_64.rpm
[root@headnode x86_64]#
3-2 slurmのコンパイル

slurm-21.08.02をコンパイルするには、以下のライブラリインストールが事前に必要

エラー: ビルド依存性の失敗:
        munge-devel  slurm-21.08.8-2.el8.x86_64 に必要とされています
        munge-libs  slurm-21.08.8-2.el8.x86_64 に必要とされています
        pam-devel  slurm-21.08.8-2.el8.x86_64 に必要とされています
        perl(ExtUtils::MakeMaker)  slurm-21.08.8-2.el8.x86_64 に必要とされています
        readline-devel  slurm-21.08.8-2.el8.x86_64 に必要とされています

以下のライブラリはオンラインであれば、それぞれyumでインストールすればよい。

yum install pam-devel
yum install perl-ExtUtils-MakeMaker
yum install readline-devel

mungeに関しては、先にコンパイルしておいたmungeのインストールが必要となる。
すなわち、slurmをコンパイルするにはmungeをインストールしておく必要があるということになる。
コンパイルをしたmungeファイルの保管場所にて、以下のようにインストールする。

rpm -ivh munge-*
[root@headnode munge]# rpm -ivh munge-*
Verifying...                          ################################# [100%]
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:munge-debugsource-0.5.15-1.el8   ################################# [ 17%]
   2:munge-debuginfo-0.5.15-1.el8     ################################# [ 33%]
   3:munge-libs-0.5.15-1.el8          ################################# [ 50%]
   4:munge-0.5.15-1.el8               ################################# [ 67%]
Run /usr/sbin/mungekey as the munge user to create a key.
For example: "sudo -u munge /usr/sbin/mungekey -v".
Refer to the mungekey(8) manpage for more information.
   5:munge-devel-0.5.15-1.el8         ################################# [ 83%]
   6:munge-libs-debuginfo-0.5.15-1.el8################################# [100%]
[root@headnode munge]#

これで良いかと思いきや、ここでslurmパッケージをコンパイルするすと、以下のようなエラーが発生するようである。

ファイルの処理中: slurm-slurmdbd-21.08.8-2.el8.x86_64
エラー: ファイルが見つかりません: /root/rpmbuild/BUILDROOT/slurm-21.08.8-2.el8.x86_64/usr/lib64/slurm/accounting_storage_mysql.so

mariadbをインストールするだけではだめのようで、以下のように開発ツールのライブラリもインストールする必要があるようだ。

yum install mariadb-devel   
yum install mariadb-embedded 
yum install mariadb-embedded-devel

slurmパッケージをコンパイルする。

rpmbuild -ta slurm-21.08.8-2.tar.bz2 2>&1 | tee rpmbuild-slurm.log

無事コンパイルが終了すると以下のようになる。

ッケージに含まれないファイルの検査中: /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/slurm-21.08.8-2.el8.x86_64
書き込み完了: /root/rpmbuild/SRPMS/slurm-21.08.8-2.el8.src.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-perlapi-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-devel-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-example-configs-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-slurmctld-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-slurmd-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-slurmdbd-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-libpmi-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-torque-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-openlava-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-contribs-21.08.8-2.el8.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/slurm-pam_slurm-21.08.8-2.el8.x86_64.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.7wcwpP
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd slurm-21.08.8-2
+ rm -rf /root/rpmbuild/BUILDROOT/slurm-21.08.8-2.el8.x86_64
+ exit 0
[root@headnode slurm]#

slurmのパッケージが作成されていることを確認する。

root@headnode x86_64]# pwd
/root/rpmbuild/RPMS/x86_64
[root@headnode x86_64]# ls -l
合計 21328
-rw-r--r--. 1 root root 17239640  3 10 23:37 slurm-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root    21164  3 10 23:38 slurm-contribs-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root    83776  3 10 23:37 slurm-devel-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root    12760  3 10 23:37 slurm-example-configs-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root   163528  3 10 23:38 slurm-libpmi-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root    12900  3 10 23:38 slurm-openlava-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root   173876  3 10 23:38 slurm-pam_slurm-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root   838156  3 10 23:37 slurm-perlapi-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root  1523696  3 10 23:38 slurm-slurmctld-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root   763240  3 10 23:38 slurm-slurmd-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root   840512  3 10 23:38 slurm-slurmdbd-21.08.8-2.el8.x86_64.rpm
-rw-r--r--. 1 root root   140276  3 10 23:38 slurm-torque-21.08.8-2.el8.x86_64.rpm
[root@headnode x86_64]#