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

Cannot start ZFS-backed OST: "Can't find fsfilt_osd-zfs interface"

Details

    • Bug
    • Resolution: Fixed
    • Major
    • None
    • Lustre 2.4.0
    • Lustre OSS: 2.3.51-2chaos
    • 3
    • 4322

    Description

      After upgrading our ZFS-backed servers to 2.3.51-2chaos, I'm unable to start the OST:

      LustreError: 6295:0:(fsfilt.c:122:fsfilt_get_ops()) Can't find fsfilt_osd-zfs interface
      LustreError: 6295:0:(filter.c:2324:filter_setup()) lstest-OST0181: filter_common_setup failed: -256.
      LustreError: 6295:0:(obd_config.c:572:class_setup()) setup lstest-OST0181 failed (-256)
      LustreError: 6295:0:(obd_config.c:1545:class_config_llog_handler()) MGC172.20.5.2@o2ib500: cfg command failed: rc = -256
      Lustre:    cmd=cf003 0:lstest-OST0181  1:dev  2:0  3:f  
      LustreError: 15c-8: MGC172.20.5.2@o2ib500: The configuration from log 'lstest-OST0181' failed (-256). This may be the result of communication errors between this node and the MGS, a bad configuration, or other errors. See the syslog for more information.
      LustreError: 6183:0:(obd_mount.c:1212:server_start_targets()) failed to start server lstest-OST0181: -256
      Lustre: lstest-OST0181: Unable to start target: -256
      LustreError: 6183:0:(obd_config.c:619:class_cleanup()) Device 3 not setup
      Lustre: server umount lstest-OST0181 complete
      LustreError: 6183:0:(obd_mount.c:2332:lustre_fill_super()) Unable to mount  (-256)
      

      Attachments

        Activity

          [LU-2069] Cannot start ZFS-backed OST: "Can't find fsfilt_osd-zfs interface"

          I'm OK with that approach. Once we fix the build system it should be a non issue using the "--without-ldiskfs" option, which works for us.

          prakash Prakash Surya (Inactive) added a comment - I'm OK with that approach. Once we fix the build system it should be a non issue using the "--without-ldiskfs" option, which works for us.

          This could be fixed in a number of ways:

          • easiest thing is to delete the obdfilter code, as soon as ofd testing is working well
          • work out the recipie for /etc/modprobe.d/lustre.conf to force loading of ofd instead of ofd
          • add an explicit modprobe line to mount.lustre when it detects zfs backends

          Since #1 is what we want to do anyway, I think that we should just avoid doing extra work to gracefully switch between obdfilter and ofd, and for those few sites that are testing ZFS outside of test-framework in the next week can do the explicit modprobe of ofd if needed. Also, with http://review.whamcloud.com/4148, if --without-ldiskfs is given then the obdfilter code isn't built at all.

          adilger Andreas Dilger added a comment - This could be fixed in a number of ways: easiest thing is to delete the obdfilter code, as soon as ofd testing is working well work out the recipie for /etc/modprobe.d/lustre.conf to force loading of ofd instead of ofd add an explicit modprobe line to mount.lustre when it detects zfs backends Since #1 is what we want to do anyway, I think that we should just avoid doing extra work to gracefully switch between obdfilter and ofd, and for those few sites that are testing ZFS outside of test-framework in the next week can do the explicit modprobe of ofd if needed. Also, with http://review.whamcloud.com/4148 , if --without-ldiskfs is given then the obdfilter code isn't built at all.

          Thanks for the workaround. I was able to bring up the server after a "rmmod obdfilter && modprobe ofd".

          prakash Prakash Surya (Inactive) added a comment - Thanks for the workaround. I was able to bring up the server after a "rmmod obdfilter && modprobe ofd".

          Thanks, Andreas!

          morrone Christopher Morrone (Inactive) added a comment - Thanks, Andreas!

          Or Alex...

          adilger Andreas Dilger added a comment - Or Alex...

          This is because the code in master, unlike orion, still has the obdfilter module, in addition to the ofd module. One way to solve this (which we've done for testing on Hyperion) is to manually unload the obdfilter module, and modprobe the ofd module before mounting the OSTs. The test framework loads the modules explicitly, and has a "USE_OFD" environment variable that forces use of ofd, but that isn't helpful for direct mounting.

          I suspect it would also be possible to add something to /etc/modprobe.d/lustre.conf that would prefer installation of ofd over obdfilter, but I don't know offhand the details.

          The obdfilter module, along with its dependent code (lvfs, fsfilt, etc) will be removed from master shortly.

          adilger Andreas Dilger added a comment - This is because the code in master, unlike orion, still has the obdfilter module, in addition to the ofd module. One way to solve this (which we've done for testing on Hyperion) is to manually unload the obdfilter module, and modprobe the ofd module before mounting the OSTs. The test framework loads the modules explicitly, and has a "USE_OFD" environment variable that forces use of ofd, but that isn't helpful for direct mounting. I suspect it would also be possible to add something to /etc/modprobe.d/lustre.conf that would prefer installation of ofd over obdfilter, but I don't know offhand the details. The obdfilter module, along with its dependent code (lvfs, fsfilt, etc) will be removed from master shortly.

          People

            tappro Mikhail Pershin
            prakash Prakash Surya (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: