Add and Remove Nodes¶
Omnia supports addition and removal of Slurm compute nodes from an existing cluster. You can add or remove nodes using either OME-based BMC discovery or mapping file discovery.
Warning
Addition of a new slurm_control_node is not supported.
Adding Slurm nodes¶
Prerequisites¶
- The Slurm cluster is already operational (
slurmctldis running on the control node). - Network connectivity between the OIM and the new nodes is verified.
- For OME-based discovery: the new node is added and configured in OpenManage Enterprise (OME).
Using mapping file discovery¶
-
Update the PXE mapping file with new Slurm node entries. Add entries for new nodes with the appropriate functional group (e.g.,
slurm_node_x86_64).Warning
Do not remove existing nodes from the mapping file when adding new entries.
-
Run the
provision.ymlplaybook:Run on: omnia_core containerssh omnia_core cd /omnia/provision ansible-playbook provision.yml -
PXE boot the newly added nodes.
-
To enable iDRAC telemetry collection on the new nodes, run the
telemetry.ymlplaybook:Run on: omnia_core containercd /omnia/telemetry ansible-playbook telemetry.ymlNote
You do not need to run
telemetry.ymlif the service Kubernetes cluster nodes are configured to collect telemetry data only using LDMS. LDMS begins collection automatically afterprovision.ymlis executed.
Using OME-based BMC discovery¶
-
Ensure the new node is added and configured in OpenManage Enterprise (OME).
-
Run the
discovery.ymlplaybook with the OME discovery mechanism:Run on: omnia_core containerssh omnia_core cd /omnia/discovery ansible-playbook discovery.yml -e "discovery_mechanism=ome" -
Update the PXE mapping file path in
provision_config.yml. -
Run the
provision.ymlplaybook:Run on: omnia_core containercd /omnia/provision ansible-playbook provision.yml -
PXE boot the newly added nodes.
-
To enable iDRAC telemetry collection, run the
telemetry.ymlplaybook:Run on: omnia_core containercd /omnia/telemetry ansible-playbook telemetry.yml
Removing Slurm nodes¶
Using mapping file discovery¶
-
Update the PXE mapping file. Remove or reassign nodes that should no longer be part of the Slurm cluster.
-
Run the
provision.ymlplaybook:Run on: omnia_core containerssh omnia_core cd /omnia/provision ansible-playbook provision.yml -
To stop iDRAC telemetry collection from the removed nodes, run the
telemetry.ymlplaybook:Run on: omnia_core containercd /omnia/telemetry ansible-playbook telemetry.ymlNote
You do not need to run
telemetry.ymlto stop LDMS collection from removed nodes. LDMS stops collection automatically afterprovision.ymlis executed.
Using OME-based BMC discovery¶
-
Remove or reassign the node in OpenManage Enterprise (OME).
-
Run the
discovery.ymlplaybook with the OME discovery mechanism:Run on: omnia_core containerssh omnia_core cd /omnia/discovery ansible-playbook discovery.yml -e "discovery_mechanism=ome" -
Update the PXE mapping file path in
provision_config.yml. -
Run the
provision.ymlplaybook:Run on: omnia_core containercd /omnia/provision ansible-playbook provision.yml -
To stop iDRAC telemetry collection from the removed nodes, run the
telemetry.ymlplaybook:Run on: omnia_core containercd /omnia/telemetry ansible-playbook telemetry.yml
Verification¶
After adding or removing nodes, confirm the cluster state:
# Check overall cluster health
sinfo
# Verify controller sees all expected nodes
scontrol show nodes | grep NodeName
# Submit a test job to verify scheduling
srun -N 1 hostname
Info
- Configure PXE Boot -- Set PXE boot order on nodes via
set_pxe_boot.yml. - PXE Mapping File -- PXE mapping CSV format and functional group reference.
- Provision Config -- Where the mapping file path is specified.
- Reprovision Cluster -- Re-image nodes instead of just adding/removing them.