PFL known issues tracking ticket (LU-9349)

[LU-9324] sanity-pfl test 10 needs to reset the file system default layout Created: 12/Apr/17  Updated: 31/Jul/19  Resolved: 07/Mar/18

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.10.0
Fix Version/s: Lustre 2.11.0

Type: Technical task Priority: Major
Reporter: James Nunez (Inactive) Assignee: Zhenyu Xu
Resolution: Fixed Votes: 0
Labels: pfl, test

Issue Links:
Related
is related to LU-8998 Progressive File Layout (PFL) Resolved
is related to LU-10353 parallel-scale* tests fail with ‘No s... Open
is related to LU-7723 few tests in sanity.sh fail because o... Open
is related to LU-9897 Tracking of lustre library improvements. Open
is related to LU-9486 sanity test 27D failed with 'llapi_la... Resolved
is related to LU-11918 Allow setting default file layout on ... Open
Rank (Obsolete): 9223372036854775807

 Description   

sanity-pfl test_10 sets the default layout on $MOUNT and does not return the file system to the original state. For users running the Lustre test suites as a sanity check on their file systems, this is an unexpected side effect. We should return the file system to the state it was in before running sanity-pfl.

From sanity-pfl, the following code in test 10 sets the default layout:

        $LFS setstripe -d $MOUNT || error "clear root layout"

	# set root composite layout                                             
	$LFS setstripe -E 2M -c 1 -S 1M -E 16M -c2 -S 2M \
		-E -1 -c 4 -S 4M $MOUNT ||
                error "Set root layout failed"

Here's what the file system layout looks like before and after sanity-pfl test 10:

# lfs getstripe /lustre/scratch
/lustre/scratch
stripe_count:  1 stripe_size:   1048576 stripe_offset: -1
[root@eagle-48vm6 tests]# ./auster -k -v sanity-pfl --only 10
Started at Wed Apr 12 14:54:34 UTC 2017
…
./auster: completed with rc 0
[root@eagle-48vm6 tests]# lfs getstripe /lustre/scratch
/lustre/scratch
  lcm_layout_gen:  0
  lcm_entry_count: 3
    lcme_id:             N/A
    lcme_flags:          0
    lcme_extent.e_start: 0
    lcme_extent.e_end:   2097152
      stripe_count:  1       stripe_size:   1048576       stripe_offset: -1
    lcme_id:             N/A
    lcme_flags:          0
    lcme_extent.e_start: 2097152
    lcme_extent.e_end:   16777216
      stripe_count:  2       stripe_size:   2097152       stripe_offset: -1
    lcme_id:             N/A
    lcme_flags:          0
    lcme_extent.e_start: 16777216
    lcme_extent.e_end:   EOF
      stripe_count:  4       stripe_size:   4194304       stripe_offset: -1


 Comments   
Comment by Andreas Dilger [ 12/Apr/17 ]

I used to try and keep some tests like sanity.sh clean enough to run on an existing filesystem, but the number of tests that try to reformat the filesystem or make other configuration changes to the filesystem is high, so I don't know if running tests on real filesystems is advisable.

 

That said, tests should return the filesystem configuration to the original state, which poses a separate but interesting problem - how does one copy/save/restore a PFL layout?  Before PFL it was enough to store the stripe count and sometimes stripe size, but now this isn't enough. Should we allow "lfs setstripe" to accept the YAML-formatted layout from "lfs getstripe" to apply to a new file or directory? Some other mechanism to do something similar (e.g. generating command-line args for "lfs setstripe", which I don't really like)?

IMHO, we should also consider a patch to change test-framework to set the default layout to PFL for all tests, make sure that all tests pass, then land this patch. After that, we should consider how to make a PFL layout the default at format time for all new filesystems (i.e. outside of test-framework) since this is the kind of feature that everyone wants, and especially users that don't even know what it is. 

Comment by John Hammond [ 12/Apr/17 ]

Bobijam or Niu, could one of you take a look at this?

Comment by Gerrit Updater [ 13/Apr/17 ]

James Nunez (james.a.nunez@intel.com) uploaded a new patch: https://review.whamcloud.com/26576
Subject: LU-9324 test: Enable default file layout in testing
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 30fce57cef946ffcf980c62c6a7d732de503dd07

Comment by Gerrit Updater [ 13/Apr/17 ]

Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/26578
Subject: LU-9324 test: get layout parameters
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: cab6eb227bd348002fba1bdd817a2db3e8bbd190

Comment by Zhenyu Xu [ 13/Apr/17 ]

Is it more convenient to have some thing like

lfs getstripe --param-file=template_param_file lustre_file_or_dir

and then

lfs setstripe --param-file=template_param_file lustre_file_or_dir

than

lfs setstripe --copy=lustre_old_file lustre_new_file

?

User can manually edit the template_param_file to adjust the layout configuration before using it.

Comment by Niu Yawei (Inactive) [ 13/Apr/17 ]

Bobi, I think the first two commands should be enough.
1. 'lfs getstripe' to dump layout into a config file; (--dump-layout)
2. 'lfs setstripe' to accept config file as input argument; (--layout-config)

Given that 'lfs getstripe' output is already in YAML format, we may even just redirect the output of 'lfs getstripe' into a config file.

Comment by Gerrit Updater [ 14/Apr/17 ]

Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/26634
Subject: LU-9324 test: get layout parameters
Project: fs/lustre-release
Branch: pfl
Current Patch Set: 1
Commit: 5a1c12fb6f69dd31601fd6f3b1fcd294cf251532

Comment by Andreas Dilger [ 18/Apr/17 ]

Sorry, I didn't see comments here.

I agree that since "lfs getstripe" for composite files already produces YAML output, it would be useful to save this to a file, allow it to be edited, then use it as a template for a new file. There would need to be a new option like "lfs getstripe --yaml" (already default for composite files) that also dumps non-composite files in the same YAML format so that this works with all kinds of files. There would be some work needed for parsing the YAML input into a struct llapi_layout.

It would still be useful to allow "lfs setstripe --copy=/path/to/template/file [other options] /path/to/new/file" so that there is not a need to store the layout into a temporary file and edit it by the user. This would only get the layout from the existing file, optionally modify it, then use it as the template for the new file while ignoring all per-file details of the instantiated file (FID, object IDs, stripe indices), but keeping the generic parts (component count, stripe counts, stripe sizes, pools).

Comment by Gerrit Updater [ 18/Apr/17 ]

Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/26708
Subject: LU-9324 lfs: output stripe info in YAML format
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: c9e8576dce58837227bc35f468df6c7e2937f7a3

Comment by Gerrit Updater [ 19/Apr/17 ]

Andreas Dilger (andreas.dilger@intel.com) merged in patch https://review.whamcloud.com/26634/
Subject: LU-9324 test: get layout parameters
Project: fs/lustre-release
Branch: pfl
Current Patch Set:
Commit: 261406b2e2f9c52752067cf4040477152faac6f2

Comment by Gerrit Updater [ 26/Apr/17 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/26578/
Subject: LU-9324 test: get layout parameters
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 183f0a19969ce1fc10b8bf5156beaa1fc29bbd0b

Comment by Gerrit Updater [ 27/Apr/17 ]

Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/26859
Subject: LU-9324 lnet: move cyaml.h under lnet/include/
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: adc09ec2bcb8222072e6ed0d1162f8d932f81fe1

Comment by Gerrit Updater [ 27/Apr/17 ]

Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/26860
Subject: LU-9324 lfs: add setstripe --yaml=template parameter
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: e6a75228d8faf5efd53b3cca41b7a9768fc1f7a1

Comment by Gerrit Updater [ 28/Apr/17 ]

Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/26879
Subject: LU-9324 lfs: add setstripe --copy=lustre_file_or_dir parameter
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: e83e119ece8eacb59fad5b0c33ff4683bf319765

Comment by Gerrit Updater [ 11/May/17 ]

Andreas Dilger (andreas.dilger@intel.com) uploaded a new patch: https://review.whamcloud.com/27066
Subject: LU-9324 doc: update lfs setstripe man page and usage
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 9dd6ce71fc9f910396b2d437ace87bbe37f860bf

Comment by Gerrit Updater [ 12/May/17 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/26708/
Subject: LU-9324 lfs: output stripe info in YAML format
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 8bbbd4ea4f10a6d907ff0885d6c8334dacd748a6

Comment by Gerrit Updater [ 12/May/17 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/26859/
Subject: LU-9324 lnet: move cyaml.h under lnet/include/
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 9b8eb394ab9164066115596d26786bce80f07bd8

Comment by Gerrit Updater [ 03/Mar/18 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/26860/
Subject: LU-9324 lfs: add setstripe --yaml=template parameter
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 1a3cce7bb6c657454f87c33ef794805f651e5395

Comment by Gerrit Updater [ 06/Mar/18 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/26879/
Subject: LU-9324 lfs: add setstripe --copy=lustre_file_or_dir parameter
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 156883002a78d23645fa01931ae5e39a570fefbf

Comment by Peter Jones [ 07/Mar/18 ]

Several patches landed for 2.11. Residual work will be tracked under a new ticket

Generated at Sat Feb 10 02:25:10 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.