Lustre Clients for Ubuntu

Build and install Lustre clients for Ubuntu so that you can access a File Storage with Lustre file system.

Building Clients

Build a Lustre client compatible with your version of Ubuntu, then install the client.

Building for Ubuntu 22.04 x86_64

Build a Lustre client on one system and then install the client package on each instance that mounts a Lustre file system.

  1. Lustre 2.15.5 isn't compatible with Linux kernel 6. The client needs a kernel version of 5.15.x. Check the OS and kernel versions and kernel headers package linux-headers using the following commands:

    cat /etc/os-release
    uname -r

    In this example, the compatible kernel version used is 5.15.0-1040-oracle.

    If the required kernel is installed, check that the corresponding kernel headers package linux-headers is also installed.

    1. If a different kernel version is installed, install the required kernel version and kernel headers using the following commands, which use the example version of 5.15.0-1040-oracle:

      sudo apt-get install linux-image-5.15.0-1040-oracle
      sudo apt-get install linux-headers-5.15.0-1040-oracle
      sudo apt-get install linux-modules-5.15.0-1040-oracle
      Note

      You might only need to install the linux-headers packages if the required kernel is already installed.
    2. Update grub using the following command:

      sudo update-grub
    3. Inspect the /boot/grub/grub.cfg to get the entry for the kernel version and update the entry GRUB_DEFAULT in the file /etc/default/grub as follows:

      GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-1040-oracle'
    4. Update grub using the following command:

      sudo update-grub
    5. Reboot the client using the following command:

      sudo reboot

      After the reboot, ensure that the correct kernel version is running.

  2. Clone the Lustre client source repo and checkout the client using the following commands:

    git clone https://github.com/lustre/lustre-release.git lustre-client
    cd lustre-client/
    git checkout tags/2.15.5
  3. Install common packages using the following command:

    sudo apt-get install -y libreadline-dev libpython3-dev libkrb5-dev libkeyutils-dev flex bison libmount-dev quilt swig libtool make libnl-3-dev libnl-genl-3-dev libnl-3-dev pkg-config libhwloc-dev libnl-genl-3-dev libyaml-dev libtool libyaml-dev ed libreadline-dev dpatch libsnmp-dev mpi-default-dev libncurses5-dev libncurses-dev bison flex gnupg libelf-dev gcc libssl-dev bc wget bzip2 build-essential udev kmod cpio module-assistant debhelper libsnmp-dev mpi-default-dev libssl-dev python3-distutils-extra rsync
  4. Configure the client:

    cd lustre-client
    sudo sh autogen.sh
    ./configure --enable-client
  5. Edit the Debian control files to remove dependencies with latest linux-image and linux-headers packages. This removes dependency so that package manager doesn't look for these dependencies during package management. These dependencies must be installed manually. This enables the use of different kernel versions than the default available with Linux distribution. Without removing these dependencies, building the packages will fail. Edit the control files such as:

    vi debian/control.main

    Remove all the references in the two files, such as:

    linux-headers-generic | linux-headers-amd64 | linux-headers-arm64 , linux-image | linux-image-amd64 | linux-image-arm64, linux-headers-generic | linux-headers-amd64
  6. Build the debs packages using the following commands:

    sudo make debs
  7. Inspect the packages:

    ls -l debs/*.deb
  8. Move the *.deb packages to a safe place.
  9. Build the dkms-debs packages using the following command:

    sudo make dkms-debs
  10. If you plan to install the Lustre client on the same instance you built it, run the following commands:

    sudo make install
    sudo depmod
    sudo modprobe lustre

Proceed to Installing on Ubuntu 22.04 x86_64.

Building for Ubuntu 22.04 aarch64

Build a Lustre client on one system and then install the client package on each instance that mounts a Lustre file system.

  1. Check the OS and kernel versions using the following commands:

    cat /etc/os-release
    uname -r

    In this example, the compatible kernel version used is 5.15.0-1002-oracle.

    If the required kernel is installed, check that the corresponding kernel headers package linux-headers is also installed.

    1. If a different kernel version is installed, install the required kernel version and kernel headers using the following commands, which use the example version of 5.15.0-1002-oracle:

      sudo apt-get install linux-image-5.15.0-1002-oracle
      sudo apt-get install linux-headers-5.15.0-1002-oracle
      sudo apt-get install linux-modules-5.15.0-1002-oracle
      Note

      You might only need to install the linux-headers packages if the required kernel is already installed.
    2. Update grub using the following command:

      sudo update-grub
    3. Inspect the /boot/grub/grub.cfg to get the entry for the kernel version and update the entry GRUB_DEFAULT in the file /etc/default/grub as follows:

      GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-1002-oracle'
    4. Update grub using the following command:

      sudo update-grub
    5. Reboot the client using the following command:

      sudo reboot

      After the reboot, ensure that the correct kernel version is running.

  2. Clone the Lustre client source repo and checkout the client using the following commands:

    git clone https://github.com/lustre/lustre-release.git lustre-client
    cd lustre-client/
    git checkout tags/2.15.90
  3. Install common packages using the following command:

    sudo apt-get install -y libreadline-dev libpython3-dev libkrb5-dev libkeyutils-dev flex bison libmount-dev quilt swig libtool make libnl-3-dev libnl-genl-3-dev libnl-3-dev pkg-config libhwloc-dev libnl-genl-3-dev libyaml-dev libtool libyaml-dev ed libreadline-dev dpatch libsnmp-dev mpi-default-dev libncurses5-dev libncurses-dev bison flex gnupg libelf-dev gcc libssl-dev bc wget bzip2 build-essential udev kmod cpio module-assistant debhelper libsnmp-dev mpi-default-dev libssl-dev python3-distutils-extra rsync
  4. Configure the client:

    cd lustre-client
    sudo sh autogen.sh
    ./configure --enable-client
  5. Edit the Debian control files to remove dependencies with latest linux-image and linux-headers packages. This removes dependency so that package manager doesn't look for these dependencies during package management. These dependencies must be installed manually. This enables the use of different kernel versions than the default available with Linux distribution. Without removing these dependencies, building the packages will fail. Edit the control files such as:

    vi debian/control.main

    Remove all the references in the two files, such as:

    linux-headers-generic | linux-headers-amd64 | linux-headers-arm64 , linux-image | linux-image-amd64 | linux-image-arm64, linux-headers-generic | linux-headers-amd64
  6. Build the debs packages using the following commands:

    sudo make debs
  7. Inspect the packages:

    ls -l debs/*.deb
  8. Move the *.deb packages to a safe place.
  9. Build the dkms-debs packages using the following command:

    sudo make dkms-debs
  10. If you plan to install the Lustre client on the same instance you built it, run the following commands:

    sudo make install
    sudo depmod
    sudo modprobe lustre

Proceed to Installing on Ubuntu 22.04 aarch64.

Building for Ubuntu 24.04 x86_64

Build a Lustre client on one system and then install the client package on each instance that mounts a Lustre file system.

  1. Check the OS and kernel versions using the following commands:

    cat /etc/os-release
    uname -r

    In this example, the compatible kernel version used is 6.8.0-1022-oracle.

    If the required kernel is installed, check that the corresponding kernel headers package linux-headers is also installed.

    1. If a different kernel version is installed, install the required kernel version and kernel headers using the following commands, which use the example version of 6.8.0-1022-oracle:

      sudo apt-get install linux-image-6.8.0-1022-oracle-oracle
      sudo apt-get install linux-headers-6.8.0-1022-oracle-oracle
      sudo apt-get install linux-modules-6.8.0-1022-oracle-oracle
      Note

      You might only need to install the linux-headers packages if the required kernel is already installed.
    2. Update grub using the following command:

      sudo update-grub
    3. Inspect the /boot/grub/grub.cfg to get the entry for the kernel version and update the entry GRUB_DEFAULT in the file /etc/default/grub as follows:

      GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-1022-oracle'
    4. Update grub using the following command:

      sudo update-grub
    5. Reboot the client using the following command:

      sudo reboot

      After the reboot, ensure that the correct kernel version is running.

  2. Clone the Lustre client source repo and checkout the client using the following commands:

    git clone https://github.com/lustre/lustre-release.git lustre-client
    cd lustre-client/
    git checkout tags/2.15.90
  3. Install common packages using the following command:

    sudo apt-get install -y libreadline-dev libpython3-dev libkrb5-dev libkeyutils-dev flex bison libmount-dev quilt swig libtool make git libnl-3-dev libnl-genl-3-dev libnl-3-dev pkg-config libhwloc-dev libnl-genl-3-dev libyaml-dev libtool libyaml-dev ed libreadline-dev libsnmp-dev mpi-default-dev libncurses5-dev libncurses-dev bison flex gnupg libelf-dev gcc libssl-dev bc wget bzip2 build-essential udev kmod cpio module-assistant debhelper libsnmp-dev mpi-default-dev python3-distutils-extra rsync
  4. Configure the client:

    cd lustre-client
    sudo sh autogen.sh
    ./configure --enable-client
  5. Edit the Debian control files to remove dependencies with latest linux-image and linux-headers packages. This removes dependency so that package manager doesn't look for these dependencies during package management. These dependencies must be installed manually. This enables the use of different kernel versions than the default available with Linux distribution. Without removing these dependencies, building the packages will fail. Edit the control files such as:

    vi debian/control.main

    Remove all the references in the two files, such as:

    linux-headers-generic | linux-headers-amd64 | linux-headers-arm64 , linux-image | linux-image-amd64 | linux-image-arm64, linux-headers-generic | linux-headers-amd64
  6. Build the debs packages using the following commands:

    sudo make debs
  7. Inspect the packages:

    ls -l debs/*.deb
  8. Move the *.deb packages to a safe place.
  9. Build the dkms-debs packages using the following command:

    sudo make dkms-debs
  10. If you plan to install the Lustre client on the same instance you built it, run the following commands:

    sudo make install
    sudo depmod
    sudo modprobe lustre

Proceed to Installing on Ubuntu 24.04 x86_64.

Building for Ubuntu 24.04 aarch64

Build a Lustre client on one system and then install the client package on each instance that mounts a Lustre file system.

  1. Check the OS and kernel versions using the following commands:

    cat /etc/os-release
    uname -r

    In this example, the compatible kernel version used is 6.8.0-1026-oracle.

    If the required kernel is installed, check that the corresponding kernel headers package linux-headers is also installed.

    1. If a different kernel version is installed, install the required kernel version and kernel headers using the following commands, which use the example version of 6.8.0-1026-oracle:

      sudo apt-get install linux-image-6.8.0-1026-oracle
      sudo apt-get install linux-headers-6.8.0-1026-oracle
      sudo apt-get install linux-modules-6.8.0-1026-oracle
      Note

      You might only need to install the linux-headers packages if the required kernel is already installed.
    2. Update grub using the following command:

      sudo update-grub
    3. Inspect the /boot/grub/grub.cfg to get the entry for the kernel version and update the entry GRUB_DEFAULT in the file /etc/default/grub as follows:

      GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-1026-oracle'
    4. Update grub using the following command:

      sudo update-grub
    5. Reboot the client using the following command:

      sudo reboot

      After the reboot, ensure that the correct kernel version is running.

  2. Clone the Lustre client source repo and checkout the client using the following commands:

    git clone https://github.com/lustre/lustre-release.git lustre-client
    cd lustre-client/
    git checkout tags/2.15.90
  3. Install common packages using the following command:

    sudo apt-get install -y libreadline-dev libpython3-dev libkrb5-dev libkeyutils-dev flex bison libmount-dev quilt swig libtool make git libnl-3-dev libnl-genl-3-dev libnl-3-dev pkg-config libhwloc-dev libnl-genl-3-dev libyaml-dev libtool libyaml-dev ed libreadline-dev libsnmp-dev mpi-default-dev libncurses5-dev libncurses-dev bison flex gnupg libelf-dev gcc libssl-dev bc wget bzip2 build-essential udev kmod cpio module-assistant debhelper libsnmp-dev mpi-default-dev python3-distutils-extra rsync
  4. Configure the client:

    cd lustre-client
    sudo sh autogen.sh
    ./configure --enable-client
  5. Edit the Debian control files to remove dependencies with latest linux-image and linux-headers packages. Without removing these dependencies, building the packages will fail. Edit the control files such as:

    vi debian/control*

    Remove all the references in the two files, such as:

    linux-headers-generic | linux-headers-amd64 | linux-headers-arm64 , linux-image | linux-image-amd64 | linux-image-arm64, linux-headers-generic | linux-headers-amd64
  6. Build the packages using the following commands:

    sudo make debs
    sudo make dkms-debs
  7. Inspect the packages:

    ls -l debs/*.deb
  8. If you plan to install the Lustre client on the same instance you built it, run the following commands:

    sudo make install
    sudo depmod
    sudo modprobe lustre

Proceed to Installing on Ubuntu 24.04 aarch64.

Installing Clients

Use the following sections to install Lustre clients for Ubuntu. These steps assume that you already built a Lustre client for Ubuntu.

Installing on Ubuntu 22.04 x86_64

These steps assume that you already built a Lustre client for Ubuntu 22.

  1. Lustre 2.15.5 isn't compatible with Linux kernel 6. The client needs a kernel version of 5.15.x. Check the OS and kernel versions using the following commands:

    cat /etc/os-release
    uname -r

    In this example, the compatible kernel version used is 5.15.0-1040-oracle.

  2. If a different kernel version is installed, install the required kernel version and kernel headers using the following commands, which use the example version of 5.15.0-1040-oracle:

    sudo apt-get install linux-image-5.15.0-1040-oracle
    sudo apt-get install linux-headers-5.15.0-1040-oracle
    sudo apt-get install linux-modules-5.15.0-1040-oracle
  3. Update grub using the following command:

    sudo update-grub
  4. Update the entry GRUB_DEFAULT in the file /etc/default/grub as follows:

    GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-1040-oracle'
  5. Update grub using the following command:

    sudo update-grub
  6. Reboot the client using sudo reboot. After the reboot, ensure that the correct kernel version is running.
  7. Copy the package files that you built to the instance where you want to install the Lustre client. In the following example debs directory, the DKMS kernel module package was selected for its flexibility, but you may choose non-DKMS module RPMs if you prefer:

    rw-r--r-- 1 ubuntu ubuntu 17058172 Apr  2 02:26 lustre-client-modules-dkms_2.15.5-1_amd64.deb
    -rw-r--r-- 1 ubuntu ubuntu   678790 Apr  2 02:26 lustre-client-utils_2.15.5-1_amd64.deb
  8. Install the packages using the following commands:

    sudo apt-get update
    sudo apt install --fix-broken ./*.deb
  9. Test the modules using the following commands:

    sudo modprobe lustre
    sudo lsmod |grep lustre
  10. The Lustre client is ready. Reboot the system.

Installing on Ubuntu 22.04 aarch64

These steps assume that you already built a Lustre client for Ubuntu 22.

  1. Check the OS and kernel versions using the following commands:

    cat /etc/os-release
    uname -r

    In this example, the compatible kernel version used is 5.15.0-1002-oracle.

  2. If a different kernel version is installed, install the required kernel version and kernel headers using the following commands, which use the example version of 5.15.0-1002-oracle:

    sudo apt-get install linux-image-5.15.0-1002-oracle
    sudo apt-get install linux-headers-5.15.0-1002-oracle
    sudo apt-get install linux-modules-5.15.0-1002-oracle
  3. Update grub using the following command:

    sudo update-grub
  4. Update the entry GRUB_DEFAULT in the file /etc/default/grub as follows:

    GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-1002-oracle'
  5. Update grub using the following command:

    sudo update-grub
  6. Reboot the client using sudo reboot. After the reboot, ensure that the correct kernel version is running.
  7. Copy the package files that you built to the instance where you want to install the Lustre client. In the following example debs directory, the DKMS kernel module package was selected for its flexibility, but you may choose non-DKMS module RPMs if you prefer:

    -rw-r--r-- 1 ubuntu ubuntu 17058172 Apr  2 02:26 lustre-client-modules-dkms_2.15.5-1_amd64.deb
    -rw-r--r-- 1 ubuntu ubuntu   678790 Apr  2 02:26 lustre-client-utils_2.15.5-1_amd64.deb
  8. Install the packages using the following commands:

    sudo apt-get update
    sudo apt install --fix-broken ./*.deb
  9. Test the modules using the following commands:

    sudo modprobe lustre
    sudo lsmod |grep lustre
  10. The Lustre client is ready. Reboot the system.

Installing on Ubuntu 24.04 x86_64

These steps assume that you already built a Lustre client for Ubuntu 24.

  1. Check the OS and kernel versions using the following commands:

    cat /etc/os-release
    uname -r

    In this example, the compatible kernel version used is 6.8.0-1022-oracle.

  2. If a different kernel version is installed, install the required kernel version and kernel headers using the following commands, which use the example version of 6.8.0-1022-oracle:

    sudo apt-get install linux-image-6.8.0-1022-oracle
    sudo apt-get install linux-headers-6.8.0-1022-oracle
    sudo apt-get install linux-modules-6.8.0-1022-oracle
  3. Update grub using the following command:

    sudo update-grub
  4. Update the entry GRUB_DEFAULT in the file /etc/default/grub as follows:

    GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-1022-oracle'
  5. Update grub using the following command:

    sudo update-grub
  6. Reboot the client using sudo reboot. After the reboot, ensure that the correct kernel version is running.
  7. Copy the package files that you built to the instance where you want to install the Lustre client. In the following example debs directory, the DKMS kernel module package was selected for its flexibility, but you may choose non-DKMS module RPMs if you prefer:

    -rw-r--r-- 1 ubuntu ubuntu 17058172 Apr  2 02:26 lustre-client-modules-dkms_2.15.90-1_amd64.deb
    -rw-r--r-- 1 ubuntu ubuntu   678790 Apr  2 02:26 lustre-client-utils_2.15.5-1_amd64.deb
  8. Install the packages using the following commands:

    sudo apt-get update
    sudo apt install --fix-broken ./*.deb
  9. Test the modules using the following commands:

    sudo modprobe lustre

    In a success case, the output should be empty.

    sudo lsmod |grep lustre
  10. The Lustre client is ready. Reboot the system.

Installing on Ubuntu 24.04 aarch64

These steps assume that you already built a Lustre client for Ubuntu 24.

  1. Check the OS and kernel versions using the following commands:

    cat /etc/os-release
    uname -r

    In this example, the compatible kernel version used is 6.8.0-1026-oracle.

  2. If a different kernel version is installed, install the required kernel version and kernel headers using the following commands, which use the example version of 6.8.0-1026-oracle:

    sudo apt-get install linux-image-6.8.0-1026-oracle
    sudo apt-get install linux-headers-6.8.0-1026-oracle
    sudo apt-get install linux-modules-6.8.0-1026-oracle
  3. Update grub using the following command:

    sudo update-grub
  4. Update the entry GRUB_DEFAULT in the file /etc/default/grub as follows:

    GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-1026-oracle'
  5. Update grub using the following command:

    sudo update-grub
  6. Reboot the client using sudo reboot. After the reboot, ensure that the correct kernel version is running.
  7. Copy the package files that you built to the instance where you want to install the Lustre client. In the following example debs directory, the DKMS kernel module package was selected for its flexibility, but you may choose non-DKMS module RPMs if you prefer:

    -rw-r--r-- 1 ubuntu ubuntu 17058172 Apr  2 02:26 lustre-client-modules-dkms_2.15.90-1_aarch64.deb
    -rw-r--r-- 1 ubuntu ubuntu   678790 Apr  2 02:26 lustre-client-utils_2.15.5-1_aarch64.deb
  8. Install the packages using the following commands:

    sudo apt-get update
    sudo apt install --fix-broken ./*.deb
  9. Test the modules using the following commands:

    sudo modprobe lustre
    sudo lsmod |grep lustre
  10. The Lustre client is ready. Reboot the system.