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

Enhance setstripe options for components

Details

    • Bug
    • Resolution: Duplicate
    • Minor
    • None
    • Lustre 2.10.0
    • None
    • 3
    • 9223372036854775807

    Description

      In current implementation of PFL component creation API, the setstripe options are inheritable, which means the next component will take all setstripe options appeared in previous components. This poses a problem that there is no way of creating a component with default options, unless it's in the first component in the lfs setstripe command.

      Per discussion with Andreas, a new setstripe option --parent is required to explicitly indicate the component will use default stripe from parent.

      Attachments

        Issue Links

          Activity

            [LU-9393] Enhance setstripe options for components
            yujian Jian Yu added a comment -

            I'm working on this in LDEV-435.

            yujian Jian Yu added a comment - I'm working on this in LDEV-435.

            Reassign to Xiong. This could be implemented in FLR project.

            niu Niu Yawei (Inactive) added a comment - Reassign to Xiong. This could be implemented in FLR project.

            I think we are discussing if it's right to introduce this option, but not when this option should be implemented (in PFL or FLR).

            There are already too many options for 'lfs setstripe', let's try to use single 'config file' option to reduce command line inputs, but not introducing one for each individual use case. In your mirror creation case, I think user may use a pre-defined config file for the mirror component. One thing worth noting is that "system/dir default stripe size, count, offset" could be obsoleted soon, because all default layouts (for root or parent dir) will be a composite layout.

            niu Niu Yawei (Inactive) added a comment - I think we are discussing if it's right to introduce this option, but not when this option should be implemented (in PFL or FLR). There are already too many options for 'lfs setstripe', let's try to use single 'config file' option to reduce command line inputs, but not introducing one for each individual use case. In your mirror creation case, I think user may use a pre-defined config file for the mirror component. One thing worth noting is that "system/dir default stripe size, count, offset" could be obsoleted soon, because all default layouts (for root or parent dir) will be a composite layout.
            jay Jinshan Xiong (Inactive) added a comment - - edited

            Well, you can't predicate how users want to use it. As I said, this is mainly for completeness and it would be used rarely in practice.

            I agree it makes more sense in mirror creation, because for mirror creation it is totally possible to use system default options for some mirrors. If you are reluctant to implement it, I can do it in FLR project.

            jay Jinshan Xiong (Inactive) added a comment - - edited Well, you can't predicate how users want to use it. As I said, this is mainly for completeness and it would be used rarely in practice. I agree it makes more sense in mirror creation, because for mirror creation it is totally possible to use system default options for some mirrors. If you are reluctant to implement it, I can do it in FLR project.
            bobijam Zhenyu Xu added a comment -

            I also tend to think the "default stripe option" for PFL file does not quite make sense; if you've taken effort to think of some stripe option for some components, you'd unlikely to abandon your choice and say "let the file system choose whatever its default stripe options for this component".

            bobijam Zhenyu Xu added a comment - I also tend to think the "default stripe option" for PFL file does not quite make sense; if you've taken effort to think of some stripe option for some components, you'd unlikely to abandon your choice and say "let the file system choose whatever its default stripe options for this component".

            In my view, those are different things. The ticket LU-9324 is working on saving and restoring file layout, while I'm trying to address the completeness problem for the command line.

            Saving & restoring layout is just a side benefit, using config file is a common way to address the problem of complex command line options.

            Thinking about the following problem - after I have specified some setstripe options for the first few components, and for some reason I want to use default options for the last component, there is no way of doing in current implementation.

            I suppose there will be no 'default options' when PFL deployed, default layout of the parent directory will usually be a composite layout.
            Even if user doesn't want to input last few options for the last component (regardless he has typed many options for first few components), he can specify a existing config file for the last component, though I don't quite think it's necessary.

            niu Niu Yawei (Inactive) added a comment - In my view, those are different things. The ticket LU-9324 is working on saving and restoring file layout, while I'm trying to address the completeness problem for the command line. Saving & restoring layout is just a side benefit, using config file is a common way to address the problem of complex command line options. Thinking about the following problem - after I have specified some setstripe options for the first few components, and for some reason I want to use default options for the last component, there is no way of doing in current implementation. I suppose there will be no 'default options' when PFL deployed, default layout of the parent directory will usually be a composite layout. Even if user doesn't want to input last few options for the last component (regardless he has typed many options for first few components), he can specify a existing config file for the last component, though I don't quite think it's necessary.

            In my view, those are different things. The ticket LU-9324 is working on saving and restoring file layout, while I'm trying to address the completeness problem for the command line.

            Thinking about the following problem - after I have specified some setstripe options for the first few components, and for some reason I want to use default options for the last component, there is no way of doing in current implementation.

            jay Jinshan Xiong (Inactive) added a comment - In my view, those are different things. The ticket LU-9324 is working on saving and restoring file layout, while I'm trying to address the completeness problem for the command line. Thinking about the following problem - after I have specified some setstripe options for the first few components, and for some reason I want to use default options for the last component, there is no way of doing in current implementation.

            You mean use '--parent' to inherit the attributes from the 1st component of parent's default layout to all components of 'lfs setstripe'? I don't quite see why we need this, and it looks to me not a good idea to further expand 'lfs setstrtripe' options.

            I think making a '--config-file' could be useful, the layout config file can be a plain text file in YAML format, so that it can be easily read/modified/stored by user, user can also use 'lfs getstripe' to dump a config file from any existing directory or file. I think Bobi is working on it in LU-9324.

            What do you think about? can '--config-file' address your problem? Thanks.

            niu Niu Yawei (Inactive) added a comment - You mean use '--parent' to inherit the attributes from the 1st component of parent's default layout to all components of 'lfs setstripe'? I don't quite see why we need this, and it looks to me not a good idea to further expand 'lfs setstrtripe' options. I think making a '--config-file' could be useful, the layout config file can be a plain text file in YAML format, so that it can be easily read/modified/stored by user, user can also use 'lfs getstripe' to dump a config file from any existing directory or file. I think Bobi is working on it in LU-9324 . What do you think about? can '--config-file' address your problem? Thanks.

            Hi Niu,

            Would you be able to help with this one?

            Thanks.
            Joe

            jgmitter Joseph Gmitter (Inactive) added a comment - Hi Niu, Would you be able to help with this one? Thanks. Joe

            People

              yujian Jian Yu
              jay Jinshan Xiong (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: