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

udev add/change rule loads zfs module on clients

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.14.0, Lustre 2.12.4
    • Lustre 2.10.5, Lustre 2.12.2
    • None
    • 3
    • 9223372036854775807

    Description

      Lustre loads the zfs module whenever a block device is added or changed, if Lustre was built against zfs. It unintentionally does this on clients as well as servers.

      Commit 0d11a314787bc795797a016262e9bcfe86e2193e for LU-11563 added a udev rule,
      lustre/conf/99-lustre-server.rules

      When a block device is added or changed:
      udev -> l_tunedisk
      l_tunedisk -> mount_utils.c:osd_init()
      osd_init() > backfs_ops[]>init() AKA zfs_init()
      zfs_init() -> "/sbin/modprobe -q zfs"

      This occurs if the Lustre rpms installed are a full build of Lustre, instead of just a client build.

      Attachments

        Issue Links

          Activity

            [LU-12530] udev add/change rule loads zfs module on clients

            Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/36776/
            Subject: LU-12530 utils: narrow l_tunedisk udev rule
            Project: fs/lustre-release
            Branch: b2_12
            Current Patch Set:
            Commit: e365cf2b001af7ca0883d293b7c148bcaa8e1c61

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/36776/ Subject: LU-12530 utils: narrow l_tunedisk udev rule Project: fs/lustre-release Branch: b2_12 Current Patch Set: Commit: e365cf2b001af7ca0883d293b7c148bcaa8e1c61

            Minh Diep (mdiep@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/36776
            Subject: LU-12530 utils: narrow l_tunedisk udev rule
            Project: fs/lustre-release
            Branch: b2_12
            Current Patch Set: 1
            Commit: f5f3f9388aa9fa2c8eb7f2e83b3eb1912afea1fd

            gerrit Gerrit Updater added a comment - Minh Diep (mdiep@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/36776 Subject: LU-12530 utils: narrow l_tunedisk udev rule Project: fs/lustre-release Branch: b2_12 Current Patch Set: 1 Commit: f5f3f9388aa9fa2c8eb7f2e83b3eb1912afea1fd
            pjones Peter Jones added a comment -

            Landed for 2.14

            pjones Peter Jones added a comment - Landed for 2.14

            Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/36599/
            Subject: LU-12530 utils: narrow l_tunedisk udev rule
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 7b2cb54858daa60d560fd6374c4ecba552a10d27

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/36599/ Subject: LU-12530 utils: narrow l_tunedisk udev rule Project: fs/lustre-release Branch: master Current Patch Set: Commit: 7b2cb54858daa60d560fd6374c4ecba552a10d27

            After this lands, please consider backporting to b2_12. Thanks.

            ofaaland Olaf Faaland added a comment - After this lands, please consider backporting to b2_12. Thanks.

            Olaf Faaland-LLNL (faaland1@llnl.gov) uploaded a new patch: https://review.whamcloud.com/36599
            Subject: LU-12530 utils: narrow l_tunedisk udev rule
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: daa0f160640a6a3e5581e1f10ad33047a8a44ae6

            gerrit Gerrit Updater added a comment - Olaf Faaland-LLNL (faaland1@llnl.gov) uploaded a new patch: https://review.whamcloud.com/36599 Subject: LU-12530 utils: narrow l_tunedisk udev rule Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: daa0f160640a6a3e5581e1f10ad33047a8a44ae6

            One day ext4 will be what is ldiskfs today. So Nathaniel approach is the best idea.

            simmonsja James A Simmons added a comment - One day ext4 will be what is ldiskfs today. So Nathaniel approach is the best idea.
            utopiabound Nathaniel Clark added a comment - - edited

            For ldiskfs type, I think, the closest you can get is checking the FS_LABEL, that it matches one of these:

            MGS
            *-MDT*
            *-OST*
            

            If it doesn't match one of those, then it definitely isn't ldiskfs.

            utopiabound Nathaniel Clark added a comment - - edited For ldiskfs type, I think, the closest you can get is checking the FS_LABEL, that it matches one of these: MGS *-MDT* *-OST* If it doesn't match one of those, then it definitely isn't ldiskfs.
            ofaaland Olaf Faaland added a comment -

            I don't see another udev property that would help distinguish ext4-formatted devices from ldiskfs-formatted devices, but if you know of one that would be even better.

            ofaaland Olaf Faaland added a comment - I don't see another udev property that would help distinguish ext4-formatted devices from ldiskfs-formatted devices, but if you know of one that would be even better.
            ofaaland Olaf Faaland added a comment - - edited

            >> 3. zfs_tune_lustre() doesn't do anything
            >
            > But it might someday...

            That's fair, but it shouldn't do anything with the block devices in the pool in any case. If tunables need to be set at that level, that should be handled within ZFS so that non-lustre ZFS users get the benefit as well. ZFS already has to deal properly with block devices appearing and disappearing. For example, ZFS currently sets the elevator to "noop" for the block devices in the pool.

            zpool and dataset properties are persistent, so they don't need this treatment. One could also set module parameters upon module load, but this isn't the place for that.

            So I think this rule should match on

            ENV{ID_FS_TYPE}=="ext4"
            

            in addition to the ACTION and SUBSYSTEM already specified. That doesn't actually solve my problem, but I think it's a step in the right direction.

            ofaaland Olaf Faaland added a comment - - edited >> 3. zfs_tune_lustre() doesn't do anything > > But it might someday... That's fair, but it shouldn't do anything with the block devices in the pool in any case. If tunables need to be set at that level, that should be handled within ZFS so that non-lustre ZFS users get the benefit as well. ZFS already has to deal properly with block devices appearing and disappearing. For example, ZFS currently sets the elevator to "noop" for the block devices in the pool. zpool and dataset properties are persistent, so they don't need this treatment. One could also set module parameters upon module load, but this isn't the place for that. So I think this rule should match on ENV{ID_FS_TYPE}=="ext4" in addition to the ACTION and SUBSYSTEM already specified. That doesn't actually solve my problem, but I think it's a step in the right direction.

            People

              utopiabound Nathaniel Clark
              ofaaland Olaf Faaland
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: