Currently we are using Ubuntu Server 20.04.3 LTS.

Boot: systemd-boot

We have replaced grub with systemd-boot. For introduction, see systemd-boot - ArchWiki (

To configure systemd-boot, use bootctl. To change kernel parameters, modify /etc/kernel/postinst.d/zz-update-systemd-boot. GitHub backup:

Network: netplan

Since Systemd v197, network interfaces use predictable naming schemes. See ( for detail.

Ubuntu use netplan to configure network. It reads network configuration from /etc/netplan/*.yaml, then convert them to systemd-networkd configuration.

Netplan configuration examples:



  1. Download drivers from Linux InfiniBand Drivers (
  2. tar -xzf MLNX_OFED_LINUX-5.4-
  3. cd to the directory and
sudo ./mlnxofedinstall --add-kernel-support

Configure IPoIB

For RHEL/CentOS, see IP over InfiniBand (IPoIB) - MLNX_OFED v5.1- - Mellanox Docs.

For Ubuntu, create /etc/netplan/10-infiniband.yaml with:

    version: 2
        ibp161s0f0: # Name of the InfiniBand interface
                - # Change to your IP address

You may need to change interface name and ip address to your own.


To manage two server at the same time, it's easier to use Ansible.

Network File System (NFS)

NFS is exported from node1. Only NFS v4 is supported:

/srv/nfs4 *(rw,sync,fsid=0,crossmnt,no_subtree_check)
/srv/nfs4/home *(rw,sync,no_subtree_check)

/proc/fs/nfsd/versions: -2 -3 +4 +4.1 +4.2

It is mounted on all nodes at /mnt/nfs4 and /mnt/home:

node1:/ /mnt/nfs4 nfs rw,noauto,x-systemd.automount 0 0
node1:/home /mnt/home nfs rw 0 0

You can use /mnt/home/<user> as your home directory:

# On node 1
sudo mkdir /srv/nfs4/home/<user>
# On all nodes
sudo usermod -d /mnt/home/<user> <user>

Other tools


See systemd-nspawn