Node Provisioning

Once the nodes are configured in Warewulf, they are ready to boot.

Node Hardware Setup

The only thing that Warewulf requires to provision is that the node is set to PXE boot. You may need to change the boot order if there is a local disk present and bootable. This is a configuration change you will have to make in the BIOS of the cluster node.

Each vendor does this differently and as a result we won’t go into the setup specifics here and if you can not find information on how to PXE boot your nodes, please contact your hardware vendor support.

Note

If you find that you are going to use Warewulf, or any other cluster provisioning tool, it is very helpful to require that hardware vendors preconfigure your cluster nodes with values of your choosing, and ask them to provide a text file that includes all of the HW/MAC addresses of the compute nodes in the order they are racked (which most creditable vendors will do). You can also ask them to certify their computing stack for the operating system you wish to use and the provisioning system. This helps hardware vendors to ensure their stack works with open source projects like Warewulf, Debian, OpenSuSE, and Rocky Linux.

The Provisioning Process

When the cluster node boots, the following order of operations will occur:

  1. BIOS:
    1. The system BIOS will bootstrap the initialization of the hardware

    2. The network card will register its option ROM into the BIOS

    3. The BIOS will run through all of its functions and finish with boot devices

    4. The boot devices are attempted in order

    5. When it gets to the network boot device, PXE is run from the firmware on the network card

  2. PXE:
    1. PXE will request a BOOTP/DHCP address on the network

    2. The Warewulf controller’s DHCP server will respond with a network configuration and filename to try and boot

    3. PXE will attempt to download the filename referred to in the DHCP response via TFTP

    4. The downloaded file will execute an iPXE stack which will reach out to the Warewulf server for it’s configuration

  3. Bootstrap:
    1. The Warewulf server will generate the iPXE configuration which will include directions of what else is necessary to download and how to boot.

    2. The kernel, container image, kernel modules, and system overlay are all downloaded over REST HTTP from the Warewulf Server

    3. iPXE executes the kernel and processes the overlays to provide a unified root file system

    4. Warewulf bootstraps the initialization of cluster node’s operating system #. File System (re)configuration #. SELinux #. wwclient is called as a background daemon and sleeps until network is ready

    5. The Warewulf bootstrap execs the container’s /sbin/init

  4. Container:
    1. The container now boots exactly as any operating system would expect

Node status

During the whole provisioning process of your nodes, you can check their status through the following command :

# wwctl node status
NODENAME             STAGE                SENT                      LASTSEEN (s)
================================================================================
c001                 RUNTIME_OVERLAY      generic.img.gz            16

For each node, there is 4 different stages :

  • IPXE

  • KERNEL

  • SYSTEM_OVERLAY

  • RUNTIME_OVERLAY

Those stages are directly linked to the The Provisioning Process section and are provided by the wwclient

Thanks to wwctl node status command, you can also check your communication between the warewulf client and server. Depending on your warewulf version, you should see a reset of the last seen counter every 1 minute due to the warewulf runtime overlay update.