Some extra things that can be done

Last updated on 2026-06-17 | Edit this page

Overview

Questions

  • How can you provision additional compute nodes without repeating the full setup?
  • What is PXE booting and how does it help scale a cluster?

Objectives

  • Create a disk image of a configured compute node using dd
  • Set up PXE booting to allow nodes to boot from the network

Making an image of the compute node OS


  • On a Linux laptop (or with a USB SD card reader) take an image of this:

BASH

dd if=/dev/mmcblk0 of=node.img
  • Copy node.img to the master Raspberry Pi’s home directory.

Setup PXE booting


Download the pxe-boot scripts:

BASH

git clone https://github.com/carpentriesoffline/pxe-boot.git
cd pxe-boot
./pxe-install

Initalise a PXE node:

BASH

./pxe-add <serial number> ../node.img <IP address>  <node name> <mac address>

for example:

BASH

./pxe-add fa917c3a ../node.img 192.168.5.105 pixie002 dc:a6:32:af:83:d0

This will create an entry with the serial number in /pxe-boot and /pxe-root.

  • Copy the Slurm config to the node filesystems

BASH

cp /etc/slurm/slurm.conf /pxe-root/*/etc/slurm/

Test PXE booting


  • Boot up a client
  • Run sinfo to see if the cluster is working

You should see something like:

BASH

PARTITION     AVAIL  TIMELIMIT  NODES  STATE NODELIST
pixiecluster*    up   infinite      5   idle pixie[002-006]

Key Points
  • dd can create an exact disk image of a configured compute node SD card, which can then be written to new cards
  • PXE booting allows compute nodes to load their OS from the network, removing the need for individual SD cards