Use ZFS as the backing filesystem for Lustre


The Lustre filesystem uses a modified version of the ext4 journaling filesystem to store data and metadata. This version, called ldiskfs, has been enhanced to improve performance and provide additional functionality required by Lustre.

It is also possible to use ZFS as the backing filesystem for Lustre MDT, OST, and MGS targets. This allows Lustre to leverage the scalability and data integrity features of ZFS for individual storage targets.

To learn how to use ldiskfs as a backing filesystem, see the Lustre Development Environment.


Clone the ZFS repository.

# git clone https://github.com/openzfs/zfs.git


Check out version 2.3.6 of the ZFS code.

# git checkout zfs-2.3.6


Install the following packages.

# dnf install -y libtirpc-devel libaio-devel python3-cffi


Build the ZFS RPM Packages.

# ./autogen.sh
# ./configure
# make rpms


Create a ZFS RPM repository using the built packages.

# mkdir /root/ZFS-Packages
# cp $( ls | grep "\.rpm" | grep -v "\.src\.rpm" ) /root/ZFS-Packages
# createrepo /root/ZFS-Packages


Create and open the /etc/yum.repos.d/ZFS.repo file, then add the following content.

[ZFS]
name=ZFS
baseurl=file:///root/ZFS-Packages
gpgcheck=0
enabled=1


Install the newly built ZFS packages.

# dnf install -y zfs libzfs6-devel kmod-zfs-devel kmod-zfs-devel-$(uname -r)


Everything is set. You can now continue building the Lustre RPMs. The Lustre build system will automatically detect the ZFS libraries.