So an example of using slurm to reboot all nodes 3 at a time:

    sinfo -h -o %n|xargs --max-procs=3 scontrol reboot {}

If you want to get fancy, make a script that does the reboot and waits for the node to be back up before exiting and use that instead of the 'scontrol reboot' part.

Brian Andrus

On 8/3/2022 11:47 AM, Benjamin Arntzen wrote:
At risk of being a heretic, why not something like Ansible to handle this? Slurm "should" be able to do it but feels like a bit of a weird fit for the job.

------------------------------------------------------------------------
*From:* slurm-users <slurm-users-boun...@lists.schedmd.com> on behalf of Phil Chiu <whophilc...@gmail.com>
*Sent:* Wednesday, 3 August 2022, 5:51 pm
*To:* slurm-us...@schedmd.com <slurm-us...@schedmd.com>
*Subject:* [slurm-users] Rolling reboot with at most N machines down simultaneously?

Occasionally I need to all the compute nodes in my system. However, I have a parallel file system which is /converged/, i.e., each compute node contributes a disk to the file system. The file system can tolerate having N nodes down simultaneously.

Therefore my problem is this - "Reboot all nodes, permitting N nodes to be rebooting simultaneously."

I have thought about the following options

  * A mass scontrol reboot - It doesn't seem like there is the ability
    to control how many nodes are being rebooted at once.
  * A job array - Job arrays can be easily configured to allow at most
    N jobs to be running simultaneously. However, I would need each
    array task to execute on a specific node, which does not appear to
    be possible.
  * Individual slurm jobs which reboot nodes - With a for loop, I
    could submit a reboot job for each node. But I'm not sure how to
    limit this so at most N jobs are running simultaneously. Perhaps a
    special partition is needed for this?

Open to hearing any other ideas.

Thanks!
Phil

Reply via email to