皆さん、こんにちは!
前回(Slurm Debianパッケージ作成ハンズオンガイド)はSlurmのDebianパッケージをソースコードから作成する手順をご紹介しました。
今回は作成されたSlurmのDebianパッケージをインストールする手順を、ステップバイステップでご紹介します!
ノードタイプと必要となるパッケージの組み合わせは以下の通りです。
今回は、1台のサーバーをSlurmのController兼Computeとして利用する構成を想定しています。
Slurm Debianパッケージ インストールハンズオン
それでは、実際に作成済みのSlurm Debianパッケージをインストールする手順を見ていきましょう!
パッケージの確認
# cd /root/Slurm24_Packages # ls -l以下のようなSlurmのパッケージファイルがリストアップされれば準備OKです:
slurm-smd_24.11.5-1_amd64.deb slurm-smd-client_24.11.5-1_amd64.deb slurm-smd-slurmctld_24.11.5-1_amd64.deb slurm-smd-slurmd_24.11.5-1_amd64.deb slurm-smd-slurmdbd_24.11.5-1_amd64.debこれらのファイルが主要なパッケージです。
Slurmパッケージのインストール
- 必要なパッケージを確認したら、dpkg -iコマンドを使ってインストールします。
# dpkg -i slurm-smd_24.11.5-1_amd64.deb slurm-smd-client_24.11.5-1_amd64.deb slurm-smd-slurmctld_24.11.5-1_amd64.deb slurm-smd-slurmd_24.11.5-1_amd64.debこの時、途中で「依存関係の問題 - 設定を見送ります」といったエラーが表示されることがあります。これは、Slurmが動作するために必要な他のソフトウェアがインストールされていないためです。
依存関係の解決
- もしステップ2で依存関係のエラーが発生したら、apt-get install -fコマンドを実行して、必要な依存関係を自動的に解決し、インストールを完了させます。
# apt-get install -fこのコマンドが実行されると、不足しているパッケージがインストールされ、Slurmのインストールが再開されます。
インストールが完了したら、dpkg -l | grep slurm-smdコマンドでSlurmパッケージが正しくインストールされたかを確認しましょう。
# dpkg -l | grep slurm-smdiiで始まる行が確認できれば、インストールは成功です。
Slurmユーザーとディレクトリの作成
- Slurmサービスが動作するためのユーザーと必要なディレクトリを作成します。
まず、slurmユーザーを作成します。ホームディレクトリは/var/lib/slurmに設定し、ログインシェルはnologinとします。
# useradd -m -d /var/lib/slurm -s /sbin/nologin -r slurm💡 ヒント:
もし/var/lib/slurmディレクトリが既に存在する場合は、「warning: the home directory /var/lib/slurm already exists.」といった警告が出るかもしれませんが、問題ありません。id slurmでユーザーが作成されたか確認できます。
次に、Slurmがログやスプールファイルなどを保存するために必要なディレクトリを作成し、所有者をslurmユーザーに変更します。
# mkdir /var/spool/slurmctld; chown slurm:slurm /var/spool/slurmctld # mkdir /var/spool/slurmd; chown slurm:slurm /var/spool/slurmd # mkdir /var/log/slurm; chown slurm:slurm /var/log/slurm💡 ヒント:
/var/log/slurmが既に存在する場合は、mkdirコマンドで「ファイルが存在します」というメッセージが出ますが、これも問題ありません。最後に、Slurmの設定ファイルが格納される/etc/slurmディレクトリの所有者もslurmユーザーに変更します。
# chown -R slurm:slurm /etc/slurm- Slurmサービスが動作するためのユーザーと必要なディレクトリを作成します。
Slurm設定ファイルの配置と編集
- Slurmの動作を設定する重要なファイルを配置し、編集します。
/etc/slurm/には、Slurmをソースからコンパイルした際に生成されるひな形ファイルが格納されています。
これらのひな形ファイルをコピーして、設定を行います。
# cd /etc/slurm/ # cp -p slurm.conf.example slurm.conf # vim slurm.confslurm.confファイルを開き、以下の項目を環境に合わせて変更します:
SlurmctldHost: Slurmコントローラーサーバーのホスト名に設定します。
例: SlurmctldHost=master24SlurmctldLogFile: Slurmコントローラーのログファイルの出力先を変更します。
例: SlurmctldLogFile=/var/log/slurm/slurmctld.logSlurmdLogFile: Slurmデーモンのログファイルの出力先を変更します。
例: SlurmdLogFile=/var/log/slurm/slurmd.logNodeName: Computeサーバー(計算ノード)の設定です。
例: NodeName=master24 NodeAddr=10.100.110.179 CPUs=8 Boards=1 SocketsPerBoard=1 CoresPerSocket=8 ThreadsPerCore=1 RealMemory=15991
💡 ヒント:
各値は以下のコマンドで確認できます。NodeName: hostname NodeAddr: ip addr CPUs: nproc Boards: 物理マザーボードの数、基本は1 SocketsPerBoard: lscpuの「ソケット数」 CoresPerSocket: lscpuの「ソケットあたりのコア数」 ThreadsPerCore: lscpuの「コアあたりのスレッド数」 RealMemory: free -mのMem:のtotal値- PartitionName: パーティション(ジョブを割り当てるグループ)を設定します。
例: PartitionName=cpu-A Nodes=master24 MaxTime=INFINITE State=UP
変更内容を保存したら、diff slurm.conf slurm.conf.exampleで変更点を比較確認できます。
- Slurmの動作を設定する重要なファイルを配置し、編集します。
Slurmサービスの起動と確認
- 設定が完了したら、Slurmサービスを起動し、正しく動作しているか確認します。 まず、slurmd.service(計算ノードデーモン)を起動します。
# systemctl restart slurmd.service # systemctl status slurmd.serviceActive: active (running)と表示され、slurmd version 24.11.5 startedというメッセージがあればOKです。
次に、slurmctld.service(コントローラーデーモン)を起動します。
# systemctl restart slurmctld.service # systemctl status slurmctld.serviceこちらもActive: active (running)と表示されれば成功です。
最後に、sinfoコマンドを実行して、Slurmクラスターの状態を確認します。
# sinfo以下のように設定したパーティションとノードが表示され、STATEがidleとなっていれば、Slurmが正常に動作しています。
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST cpu-A up infinite 1 idle master24
これで、Slurmのインストールと基本的な設定、そしてサービスの起動までが完了しました!
まとめ
今回は、事前に作成されたSlurmのDebianパッケージを利用して、HPC環境にSlurmをインストールする手順をご紹介しました。
ビルドの複雑さを回避できるため、より手軽にSlurm環境を構築できたのではないでしょうか。
私たちライフマティックス株式会社では、今回ご紹介したSlurmのインストールや設定といった煩雑な作業を一切不要にする「Ready-to-Compute ワークステーション」を提供しています。
お客様のご希望の構成に応じて機器の提案からOS・研究環境の設定、さらにはソフトウェアの動作確認まで、専門のエンジニアが一貫して対応します。
また、導入後の運用サポートや、Slurmの保守サービスもご提供していますので、計算環境に関するご不明点やご要望がありましたら、ぜひお気軽にご相談くださいね。
このブログ記事が、皆さんの研究や開発を加速させる一助となれば幸いです!