"Configless" Slurm

"Configless" Slurm is a feature that allows the compute nodes — specifically the slurmd process — and user commands running on login nodes to pull configuration information directly from the slurmctld instead of from a pre-distributed local file.
「Configless」Slurmは、計算ノード(特にslurmdプロセス)とログインノードで実行されているユーザーコマンドが、事前に配布されたローカルファイルからではなくslurmctldから直接構成情報を取得できるようにする機能です。
Your cluster does require a central set of configuration files on the Slurm controllers — "configless" in Slurm's parlance means that the compute nodes, login nodes, and other cluster hosts do not need to be deployed with local copies of these files.
クラスターには、Slurmコントローラー上に構成ファイルの中央セットが必要です。Slurmの用語で「configless」とは、計算ノード、ログインノード、およびその他のクラスターホストをこれらのファイルのローカルコピーとともにデプロイする必要がないことを意味します。

The slurmd on startup will reach out to a slurmctld that you specify and the config files will be pulled to the node.
起動時のslurmdは、指定したslurmctldに到達し、構成ファイルがノードにプルされます。
This slurmctld can be identified by either an explicit option, or — preferably — through DNS SRV records defined within the cluster itself.
このslurmctldは、明示的なオプションによって、またはクラスター自体内で定義されたDNSSRVレコードを介して(できれば)識別できます。

Installation

There are no extra steps required to install this feature.
この機能をインストールするために必要な追加の手順はありません。
It is built in by default starting with Slurm 20.02.
Slurm20.02以降はデフォルトで組み込まれています。

Setup

The slurmctld must first be configured to run in the configless mode.
slurmctldは、最初にconfiglessモードで実行するように構成する必要があります。
This is handled by setting SlurmctldParameters=enable_configless in slurm.conf and restarting slurmctld.
これは、slurm.confでSlurmctldParameters = enable_configlessを設定し、slurmctldを再起動することで処理されます。

Once enabled, you must configure the slurmd to get its configs from the slurmctld.
有効にしたら、slurmctldから構成を取得するようにslurmdを構成する必要があります。
This can be accomplished either by launching slurmd with the --conf-server option, or by setting a DNS SRV record and ensuring there is no local configuration file on the compute node.
これは、-conf-serverオプションを指定してslurmdを起動するか、DNS SRVレコードを設定して、計算ノードにローカル構成ファイルがないことを確認することで実現できます。

The --conf-server options takes precedence over the DNS record.
--conf-serverオプションは、DNSレコードよりも優先されます。

The command line option takes "$host[:$port]", so an example would look like:
コマンドラインオプションは「$ host [:$ port]」を取るため、例は次のようになります。

slurmd --conf-server slurm-master:6817
Specifying the port is optional and will default to 6817 if it is not present.
ポートの指定はオプションであり、存在しない場合はデフォルトで6817になります。

The same information can be provided in a DNS SRV record.
同じ情報をDNSSRVレコードで提供できます。
For example:
例えば:

_slurmctld._tcp 3600 IN SRV 10 0 6817 slurm-backup
_slurmctld._tcp 3600 IN SRV 0 0 6817 slurm-master
Will provide the required information to the slurmd on startup.
起動時にslurmdに必要な情報を提供します。
As shown above, multiple SRV records can be specified if you have deployed Slurm in an HA setup.
上に示したように、HAセットアップでSlurmをデプロイした場合は、複数のSRVレコードを指定できます。
The DNS SRV entry with the lowest priority should be your primary slurmctld, with higher priority values for backup slurmctlds.
優先度が最も低いDNSSRVエントリをプライマリslurmctldにし、バックアップslurmctldsの優先度を高くする必要があります。

Initial Testing

With the slurmctld configured and slurmd started, you can check in a couple places to make sure the configs are present on the node.
slurmctldを構成し、slurmdを開始したら、いくつかの場所をチェックして、構成がノードに存在することを確認できます。
Config files will be in SlurmdSpoolDir under the /conf-cache/, and a symlink to this location will be created automatically in /run/slurm/conf.
構成ファイルは/ conf-cache /の下のSlurmdSpoolDirにあり、この場所へのシンボリックリンクは/ run / slurm / confに自動的に作成されます。
You can confirm that reloading is working by adding a comment to your slurm.conf on the slurmctld node and running scontrol reconfig and checking that the config was updated.
slurmctldノードのslurm.confにコメントを追加し、scontrol reconfigを実行して、構成が更新されたことを確認することで、リロードが機能していることを確認できます。

Limitations

Using "%n" in "SlurmdSpoolDir" or "SlurmdPidFile" will not be properly substituted for the NodeName unless slurmd is also launched with the "-N" option.
「SlurmdSpoolDir」または「SlurmdPidFile」で「%n」を使用すると、slurmdも「-N」オプションで起動されない限り、NodeNameの代わりに適切に使用されません。

If you are using systemd to launch slurmd, you must ensure that "ConditionPathExists=*" is not present in the unit file or the slurmd will not start.
systemdを使用してslurmdを起動する場合は、「ConditionPathExists = *」がユニットファイルに存在しないことを確認する必要があります。存在しない場合、slurmdは起動しません。
(The example slurmd.service file shipped in Slurm 20.02 and above does not include this entry.)
(Slurm 20.02以降で出荷されたサンプルslurmd.serviceファイルには、このエントリは含まれていません。)

If any of the supported config files "Include" additional config files, the Included configs will NOT be shipped to the slurmds.
サポートされている構成ファイルのいずれかが追加の構成ファイルを「インクルード」している場合、インクルードされた構成はslurmdsに出荷されません。
Any additional config files will need to be shared a different way or added to the parent config.
追加の構成ファイルは、別の方法で共有するか、親構成に追加する必要があります。

Notes

The order of precedence for determining what configuration source to use is as follows:
使用する構成ソースを決定するための優先順位は次のとおりです。

  1. The slurmd --conf-server $host[:$port] option
  2. The -f $config_file option
  3. The SLURM_CONF environment variable (if set)
  4. The default slurm config file (likely /etc/slurm.conf)
  5. Any DNS SRV records (from lowest priority value to highest)

Supported configuration files are:
サポートされている構成ファイルは次のとおりです。

  • slurm.conf
  • acct_gather.conf
  • cgroup.conf
  • cgroup_allowed_devices_file.conf
  • ext_sensors.conf
  • gres.conf
  • knl_cray.conf
  • knl_generic.conf
  • plugstack.conf
  • topology.conf

Last modified 11 May 2020