Skip to content

build Cray

Miguel Gila edited this page Jun 27, 2016 · 8 revisions

Building udiRoot on a Cray Machine

Building and installing on a Cray system requires that you install Shifter into the same path both on the mainframe as well as any external login servers you might have.

CLE 5

Install Dependencies

  1. Install json-c (including devel packages)
  2. Install munge (including devel packages)
  3. Install curl (including devel packages)

For newer builds (after 2016.06) the following is also required:

  1. autoconf > 2.64
  2. automake > 1.10.1

Mainframe Build

  1. Download latest release of shifter/udiRoot and copy to /rr/current/software on your boot node
  2. Switch into xtopview
  3. untar/decompress shifter tar
  4. Descend to the udiRoot directory
  5. ./configure --prefix=/opt/shifter/udiRoot/ --sysconfdir=/etc/opt/shifter/udiRoot --with-json-c=/path/to/json-c --with-libcurl --with-munge [--with-slurm]
  6. make
  7. make install
  8. cd /opt/shifter/udiRoot
  9. ln -s default

Building Needed "extras" on the Cray

  1. Building kernel modules for a compute node from an internal login node (as root)
cd extras
./build_cray_kernel_modules.sh ari # by default it builds compute node packages
cd ${SHIFTER_INSTALL_DIR}          # this is an example, it needs to be located where udiRoot.conf specifies
mkdir -p kmod/$(uname -r |sed 's/ari_s/ari_c/g') # this is to make sure we generate the correct kernel version folder structure
cd kmod/$(uname -r |sed 's/ari_s/ari_c/g')
tar xf ${OLDPWD}/modules.tar
  1. Optional: building kernel modules for an internal node (as root). This is only required if you wish to run shifter locally on an internal login node.
cd extras
./build_cray_kernel_modules.sh ari # by default it builds compute node packages
cd ${SHIFTER_INSTALL_DIR}          # this is an example, it needs to be located where udiRoot.conf specifies
mkdir -p kmod/$(uname -r) 
cd kmod/$(uname -r)
tar xf ${OLDPWD}/modules.tar

Enabling the /etc/init.d/shifter_prep on the compute nodes

This script generates the proper loop devices on the compute nodes needed to create multiple containers per node. Make sure it exists on the compute nodes, it's executable and it's started at boot time.

Configuring etc/udiRoot.conf

Read the and modify the file udiRoot.conf.example located on your etc/ folder, as it should already have some configuration added.