Install spank iso netns for 7lbd - BYUHPC/7lbd GitHub Wiki

Installation Guide

Previous installation step: Build and test the Guacamole client and connector

Next installation step: Installing the 7lbd OOD app

A SPANK plugin for Slurm is a way for systems administrators to run site-specific code as a part of the execution of a Slurm job. It can be used to modify the behavior of commands such as sbatch, salloc or srun. 7lbd uses the spank_iso_netns SPANK plugin to create a network namespace for the job being run. The SPANK plugin is code that modifies the Slurm software on the compute nodes in your cluster, not the Slurm controllers.

There are 3 files associated with the spank_iso_netns plugin:

  • spank_iso_netns.c This is the core of the SPANK plugin. You should not need to change any of the code here.
  • setup_script This is the code used by the plugin to create the network namespace. This code will need to be modified. See below.
  • http_proxy_fd.js An experimental proxy server used to provide license server and other external network access to VMs running inside the namespace. This script appears to work, but needs more testing and possible development.

Compile and install the plugin

Download and compile the spank_iso_netns.c plugin as per the plugin's instructions.

setup_script

Make sure that the path variables are set. This section looks like:

#PATH is not set by the SPANK plugin
PATH=/sbin:/usr/sbin:/bin:/usr/bin
NFT_TABLE_FOR_NETNS=iso_netns
HTTPPROXY_PATH=/apps/slurm-spank/spank_iso_netns/http_proxy_fd.js
NODE_PATH=node
SOCAT_PATH=/apps/slurm-spank/spank_iso_netns/socat/latest/bin/socat

For 7lbd, you do NOT want a veth pair set up. Make sure that create_veth is set to false.

create_veth=false

Test the plugin

Test the plugin using the suggested tests in the plugin's instructions.