Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-15976

2.15.0 - zfs-dkms packages cannot be installed under rhel8.5

Details

    • Bug
    • Resolution: Duplicate
    • Minor
    • None
    • Lustre 2.15.0
    • Alma Linux 8.5, kernel 4.18.0-348.23.1.el8_5.x86_64
    • 3
    • 9223372036854775807

    Description

      The Lustre-ZFS packages from the official Whamcloud repo do not install 

      dnf install lustre  lustre-osd-zfs-mount lustre-zfs-dkms

      because package lustre-osd-zfs-mount depends invariably on package kmod-lustre-osd-zfs.
      kmod-packages were built for kernel ...345.2.1.. and thus do not fit (nothing provides ksym...)
      That's what dkms is for?

      Attachments

        Issue Links

          Activity

            [LU-15976] 2.15.0 - zfs-dkms packages cannot be installed under rhel8.5
            yujian Jian Yu added a comment -

            The issue is being fixed in LU-16059.

            yujian Jian Yu added a comment - The issue is being fixed in LU-16059 .

            This dependency was added by https://review.whamcloud.com/37809 (LU-13120) for 2.14.  The solution is to either remove the kmod dependency from lustre-osd-zfs-mount, which may be the right answer because the dependencies have run kmod to utils packages prior to this, or add kmod to the "Provides" for dkms.

            utopiabound Nathaniel Clark added a comment - This dependency was added by https://review.whamcloud.com/37809 ( LU-13120 ) for 2.14.  The solution is to either remove the kmod dependency from lustre-osd-zfs-mount, which may be the right answer because the dependencies have run kmod to utils packages prior to this, or add kmod to the "Provides" for dkms.
            knweiss Karsten Weiss added a comment - - edited

            Nathaniel, this is not a personal choice but a rpm dependency of the official rpms:

             

            $ rpm -q --requires -p lustre-all-dkms-2.15.0-1.el8.noarch.rpm |grep lustre-osd-zfs-mount
            lustre-osd-zfs-mount
            $ rpm -q --requires -p lustre-osd-zfs-mount-2.15.0-1.el8.x86_64.rpm|grep kmod
            kmod-lustre-osd-zfs

             

            Please also see my comment above.

            knweiss Karsten Weiss added a comment - - edited Nathaniel, this is not a personal choice but a rpm dependency of the official rpms:   $ rpm -q --requires -p lustre-all-dkms-2.15.0-1.el8.noarch.rpm |grep lustre-osd-zfs-mount lustre-osd-zfs-mount $ rpm -q --requires -p lustre-osd-zfs-mount-2.15.0-1.el8.x86_64.rpm|grep kmod kmod-lustre-osd-zfs   Please also see my comment above.
            thomasr Thomas Roth added a comment -

            To clarify, I did several different attempts:

            • whamcloud-supplied kernel (348.2.1) plus kmod-packages -> errors
            • distribution-supplied kernel (348.23.1) plus dkms-packages -> errors
            • distribution-supplied kernel (348.23.1) plus self-compiled Lustre (from git) -> errors

            In the last step, I did "configure + make rpms", which yields new kmod-packages, obviously.

            These can be force-installed by supplying --nodeps.

            (I did not try "configure; make; make install"  - if that exists. That might avoid the fatal dependencies check, which seems to be introduced by the package-bundling step ?)

            thomasr Thomas Roth added a comment - To clarify, I did several different attempts: whamcloud-supplied kernel (348.2.1) plus kmod-packages -> errors distribution-supplied kernel (348.23.1) plus dkms-packages -> errors distribution-supplied kernel (348.23.1) plus self-compiled Lustre (from git) -> errors In the last step, I did " configure + make rpms ", which yields new kmod-packages, obviously. These can be force-installed by supplying --nodeps. (I did not try " configure; make; make install "  - if that exists. That might avoid the fatal dependencies check, which seems to be introduced by the package-bundling step ?)

            If you install via zfs-dkms, you need to install lustre-all-dkms or lustre-zfs-dkms, not the kmod-lustre-* rpms.

            utopiabound Nathaniel Clark added a comment - If you install via zfs-dkms, you need to install lustre-all-dkms or lustre-zfs-dkms, not the kmod-lustre-* rpms.

            Maybe I'm misunderstanding something fundamental but AFAICS at least in the ZFS+DKMS (patchless kernel) case the rpm "lustre-osd-zfs-mount" shouldn't have a hard requirement (introduced in LU-13120) for the (kernel-specific!)  "kmod-lustre-osd-zfs" rpm because the `lustre-zfs`DKMS module (rpm: lustre-zfs-dkms) does already compile and provide the kernel module osd_zfs.ko for the current kernel. And this is the only module the `kmod-lustre-osd-zfs` rpm contains.

            I.e. if we are using DKMS for lustre server there should not be a kmod requirement.

            knweiss Karsten Weiss added a comment - Maybe I'm misunderstanding something fundamental but AFAICS at least in the ZFS+DKMS (patchless kernel) case the rpm "lustre-osd-zfs-mount" shouldn't have a hard requirement (introduced in LU-13120 ) for the (kernel-specific!)  "kmod-lustre-osd-zfs" rpm because the `lustre-zfs`DKMS module (rpm: lustre-zfs-dkms) does already compile and provide the kernel module osd_zfs.ko for the current kernel. And this is the only module the `kmod-lustre-osd-zfs` rpm contains. I.e. if we are using DKMS for lustre server there should not be a kmod requirement.
            thomasr Thomas Roth added a comment - - edited

            Next iteration: Boot the kernel supplied by Whamcloud,

             

            uname -r
            4.18.0-348.2.1.el8_lustre.x86_64
            

            Reinstall zfs, zfs-dkms -> works
            Try Lustre:

             

            dnf install lustre kmod-lustre kmod-lustre-osd-zfs lustre-osd-zfs-mount
            Error: 
            Problem 1: conflicting requests
            
            nothing provides ksym(dmu_tx_abort) = 0xa9691ccd needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64 nothing provides ksym(zio_buf_alloc) = 0x0c211976 needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64
            ... 

            And again, with dkms

             

            dnf install lustre lustre-zfs-dkms lustre-osd-zfs-mount
            Error: 
            Problem 1: package lustre-osd-zfs-mount-2.15.0-1.el8.x86_64 requires kmod-lustre-osd-zfs, but none of the providers can be installed
            
            conflicting requests nothing provides ksym(dmu_tx_abort) = 0xa9691ccd needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64
            ... 
            thomasr Thomas Roth added a comment - - edited Next iteration: Boot the kernel supplied by Whamcloud,   uname -r 4.18.0-348.2.1.el8_lustre.x86_64 Reinstall zfs, zfs-dkms -> works Try Lustre:   dnf install lustre kmod-lustre kmod-lustre-osd-zfs lustre-osd-zfs-mount Error: Problem 1: conflicting requests nothing provides ksym(dmu_tx_abort) = 0xa9691ccd needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64 nothing provides ksym(zio_buf_alloc) = 0x0c211976 needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64 ... And again, with dkms   dnf install lustre lustre-zfs-dkms lustre-osd-zfs-mount Error: Problem 1: package lustre-osd-zfs-mount-2.15.0-1.el8.x86_64 requires kmod-lustre-osd-zfs, but none of the providers can be installed conflicting requests nothing provides ksym(dmu_tx_abort) = 0xa9691ccd needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64 ...
            mdiep Minh Diep added a comment -

            thomasr, to use ZFS, you can't really use any of lustre's binaries directly since they were built against lustre's patched kernel.

            I assume you use on non-patches kernel, so you might need to install zfs-dkms and lustre-zfs-dkms + lustre user tools.

            mdiep Minh Diep added a comment - thomasr , to use ZFS, you can't really use any of lustre's binaries directly since they were built against lustre's patched kernel. I assume you use on non-patches kernel, so you might need to install zfs-dkms and lustre-zfs-dkms + lustre user tools.
            thomasr Thomas Roth added a comment - - edited

            Actually, this might be due to some issue with the supplied zfs packages:
            I installed (from downloads.whamcloud.com/public/lustre/lustre-2.15.0/el8.5.2111)

            zfs.x86_64                   2.0.7-1.el8      
            zfs-dkms.noarch         2.0.7-1.el8
            libzpool4.x86_64                     2.0.7-1.el8    
            libzfs4.x86_64 2.0.7-1.el8
            libzfs4-devel.x86_64 2.0.7-1.el8

            Then tried the above installation of the Lustre packages, which failed, then got the git repo, configure

            ./configure --prefix=/usr --enable-modules --disable-iokit --disable-snmp --disable-doc --disable-tests --disable-maintainer-mode --with-linux=/lib/modules/4.18.0-348.23.1.el8_5.x86_64/build --with-linux-obj=/lib/modules/4.18.0-348.23.1.el8_5.x86_64/build --with-o2ib=/usr/src/kernels/4.18.0-348.23.1.el8_5.x86_64 --disable-gss --enable-server --disable-ldiskfs --with-linux=/lib/modules/4.18.0-348.23.1.el8_5.x86_64/build --with-linux-obj=/lib/modules/4.18.0-348.23.1.el8_5.x86_64/build --disable-manpages --disable-mpitests 

            , make rpms, resulting in the expected kmod-lustre-2.15.0-1, kmod-lustre-osd-zfs-2.15.0-1, ... lustre-osd-zfs-mount-2.15.0-1  - rpms, but

             

            rpm -i ./kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64.rpm
            error: Failed dependencies:
                ksym(__cv_broadcast) = 0x03cebd8a is needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64
                ksym(arc_add_prune_callback) = 0x1363912f is needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64
                ksym(arc_buf_size) = 0xa2990474 is needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64
                ksym(arc_remove_prune_callback) = 0x1ab2d851 is needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64
            ...
            

            ZFS by itself seems ok.
             

            2022-06-29 Update

            These self-compiled packages can be installed by

            rpm -i --nodeps ...

            Imho this points to the rpm-creating part of the code.

             

            thomasr Thomas Roth added a comment - - edited Actually, this might be due to some issue with the supplied zfs packages: I installed (from downloads.whamcloud.com/public/lustre/lustre-2.15.0/el8.5.2111) zfs.x86_64                   2.0.7-1.el8       zfs-dkms.noarch         2.0.7-1.el8 libzpool4.x86_64                     2.0.7-1.el8     libzfs4.x86_64 2.0.7-1.el8 libzfs4-devel.x86_64 2.0.7-1.el8 Then tried the above installation of the Lustre packages, which failed, then got the git repo, configure ./configure --prefix=/usr --enable-modules --disable-iokit --disable-snmp --disable-doc --disable-tests --disable-maintainer-mode --with-linux=/lib/modules/4.18.0-348.23.1.el8_5.x86_64/build --with-linux-obj=/lib/modules/4.18.0-348.23.1.el8_5.x86_64/build --with-o2ib=/usr/src/kernels/4.18.0-348.23.1.el8_5.x86_64 --disable-gss --enable-server --disable-ldiskfs --with-linux=/lib/modules/4.18.0-348.23.1.el8_5.x86_64/build --with-linux-obj=/lib/modules/4.18.0-348.23.1.el8_5.x86_64/build --disable-manpages --disable-mpitests  , make rpms , resulting in the expected kmod-lustre-2.15.0-1, kmod-lustre-osd-zfs-2.15.0-1, ... lustre-osd-zfs-mount-2.15.0-1  - rpms, but   rpm -i ./kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64.rpm error: Failed dependencies:     ksym(__cv_broadcast) = 0x03cebd8a is needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64     ksym(arc_add_prune_callback) = 0x1363912f is needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64     ksym(arc_buf_size) = 0xa2990474 is needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64     ksym(arc_remove_prune_callback) = 0x1ab2d851 is needed by kmod-lustre-osd-zfs-2.15.0-1.el8.x86_64 ... ZFS by itself seems ok.   2022-06-29 Update These self-compiled packages can be installed by rpm -i --nodeps ... Imho this points to the rpm-creating part of the code.  

            People

              wc-triage WC Triage
              thomasr Thomas Roth
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: