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

When upgrading from Lustre 1.8 to 2.1, if the parameter root_squash is set, Lustre throws an error and denies mounting the filesystem. It's necessary to completely delete the parameter

Details

    • 3
    • 4459

    Description

      When upgrading from Lustre 1.8 to 2.1, if the parameter rootsquash is set, Lustre throws an error and denies mounting the filesystem. This is the error from the MDS logs:

      Mar 7 20:03:35 mds01 kernel: LustreError: 6610:0:(obd_config.c:1140:class_process_proc_param()) home-MDT0000: unknown param rootsquash=99:99
      Mar 7 20:03:35 mds01 kernel: LustreError: 6610:0:(obd_config.c:1361:class_config_llog_handler()) Err -38 on cfg command:
      Mar 7 20:03:35 mds01 kernel: Lustre: cmd=cf00f 0:home-MDT0000 1:mdt.rootsquash=99:99
      Mar 7 20:03:35 mds01 kernel: LustreError: 15c-8: MGC172.16.4.3 at tcp: The configuration from log 'home-MDT0000' failed (-38). 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.
      Mar 7 20:03:35 mds01 kernel: LustreError: 6124:0:(obd_mount.c:1192:server_start_targets()) failed to start server home-MDT0000: -38
      Mar 7 20:03:35 mds01 kernel: LustreError: 6124:0:(obd_mount.c:1723:server_fill_super()) Unable to start targets: -38
      Mar 7 20:03:35 mds01 kernel: Lustre: Failing over home-MDT0000

      We were able to overcome this using tunefs.lustre with the option --writeconf added. This should be managed automatically (ideally, migrating the configuration) or at least, documented.

      Attachments

        Issue Links

          Activity

            [LU-1203] When upgrading from Lustre 1.8 to 2.1, if the parameter root_squash is set, Lustre throws an error and denies mounting the filesystem. It's necessary to completely delete the parameter

            Please reopen ticket if there is additional work needed.

            jlevi Jodi Levi (Inactive) added a comment - Please reopen ticket if there is additional work needed.
            yujian Jian Yu added a comment -

            Patch for b2_1 branch: http://review.whamcloud.com/3900

            The one for master branch has been landed and also cherry-picked on b2_3 branch.

            yujian Jian Yu added a comment - Patch for b2_1 branch: http://review.whamcloud.com/3900 The one for master branch has been landed and also cherry-picked on b2_3 branch.
            yujian Jian Yu added a comment -

            The remaining work on this ticket is to improve the patch on master branch to handle more parameters as per the suggestion from Andreas.

            Patch for master branch: http://review.whamcloud.com/3836

            yujian Jian Yu added a comment - The remaining work on this ticket is to improve the patch on master branch to handle more parameters as per the suggestion from Andreas. Patch for master branch: http://review.whamcloud.com/3836
            yujian Jian Yu added a comment -

            The patches have been landed on master and b2_1 branches.

            The remaining work on this ticket is to improve the patch on master branch to handle more parameters as per the suggestion from Andreas on http://review.whamcloud.com/3237 :

            File lustre/mdt/mdt_handler.c
            Line 4779: strlen(CFG_NOSQUASH_NID_OLD)) == 0 &&
            If this list gets any longer (which I suspect it will, due to Di's patch http://review.whamcloud.com/1418 to split the MDT thread handling) then this should be modified to use an array of { "old", "new" } parameters, and if "new" is NULL then the parameter is obsolete and discarded. Then, the above code will just be a loop comparing the parameter against each "old" entry, and ending the loop if it matched, or "old" is NULL.

            I don't insist on this today, but since the code is already being changed, and will need to change again in the near future, it would be better to just get it right for the long term.

            yujian Jian Yu added a comment - The patches have been landed on master and b2_1 branches. The remaining work on this ticket is to improve the patch on master branch to handle more parameters as per the suggestion from Andreas on http://review.whamcloud.com/3237 : File lustre/mdt/mdt_handler.c Line 4779: strlen(CFG_NOSQUASH_NID_OLD)) == 0 && If this list gets any longer (which I suspect it will, due to Di's patch http://review.whamcloud.com/1418 to split the MDT thread handling) then this should be modified to use an array of { "old", "new" } parameters, and if "new" is NULL then the parameter is obsolete and discarded. Then, the above code will just be a loop comparing the parameter against each "old" entry, and ending the loop if it matched, or "old" is NULL. I don't insist on this today, but since the code is already being changed, and will need to change again in the near future, it would be better to just get it right for the long term.
            yujian Jian Yu added a comment -

            Patch for master branch: http://review.whamcloud.com/2680

            The above patch was landed on master branch.

            Here is the patch for b2_1 branch: http://review.whamcloud.com/3237.

            yujian Jian Yu added a comment - Patch for master branch: http://review.whamcloud.com/2680 The above patch was landed on master branch. Here is the patch for b2_1 branch: http://review.whamcloud.com/3237 .
            yujian Jian Yu added a comment -

            Patch for master branch: http://review.whamcloud.com/2680

            yujian Jian Yu added a comment - Patch for master branch: http://review.whamcloud.com/2680
            yujian Jian Yu added a comment -

            The old "mdt.nosquash_nid" parameter also needs to be renamed to "mdt.nosquash_nids".

            yujian Jian Yu added a comment - The old "mdt.nosquash_nid" parameter also needs to be renamed to "mdt.nosquash_nids".
            pjones Peter Jones added a comment -

            YuJian

            Could you please look into this one?

            Thanks

            Peter

            pjones Peter Jones added a comment - YuJian Could you please look into this one? Thanks Peter

            I agree that this should be handled internally to the MDT code in mdt_process_config() by renaming the parameter. The new parameter is called "mdt.root_squash" (note underscore).

            This was done similarly for the quota configuration in LU-110 (http://review.whamcloud.com/354).

            adilger Andreas Dilger added a comment - I agree that this should be handled internally to the MDT code in mdt_process_config() by renaming the parameter. The new parameter is called "mdt.root_squash" (note underscore). This was done similarly for the quota configuration in LU-110 ( http://review.whamcloud.com/354 ).

            People

              yujian Jian Yu
              ansanz Antonio Sanz
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: