-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
do not copy lustre striping info with dsync #324
Comments
Ugh, thanks for tracking this down and reporting it. I think this happens because dsync copies over the extended attributes verbatim from the source files. There is no command line option to disable copying those in dsync, though that would not be hard to add. As a work around, you could disable copying of extended attributes by modifying this function to just immediately return 0 and avoid copying any attributes: mpifileutils/src/common/mfu_flist_copy.c Line 160 in c90292b
Or we have a CMake option to disable support for extended attributes at configure time. My CMake syntax may be incorrect here:
Can you try either of those and let us know if it helps? Long term, we need to come up with a proper fix here so that we can optionally copy extended attributes, but still exclude copying of the Lustre-related extended attributes. Shorter term, we could likely add an option to skip those on dsync. |
This may be a bug in the Lustre xattr code for PFL file layouts - OST offset defaults to 0 when coying a PFL via xattrs. |
I worked around it by filtering out lov.lustre xattrs completely in mfu_copy_xattrs. But my reason for doing so was that I wanted the new file systems PFL layout to take effect and not whatever was on the old file system. That's likely not the correct thing to do... |
I think this needs to be a runtime option, since there are definitely users that want to copy the layout. For " |
Yes, definitely, I just needed a quick fix since I hit the https://jira.whamcloud.com/browse/LU-13062 problem when testing. What I've seen just now is that the fiemap call fails on anything that uses > 1 stripe, even without a PFL layout. Is that expected too? |
Yes, For efficiently copying files with holes, we are planning to use |
Hi @adilger @akesandgren @thiell please see #503. I believe that PR allows users sufficient control over whether xattrs are copied (and whether striping is preserved), but it would be great if you could confirm that. And if you're in the mood for a full review, that would be great, too. Thank you! |
Rather than always copying xattrs, introduce option "--xattrs | -X" to allow the user to control how this is done. -X is chosen for consistency with rsync. Options are "none" Copy no xattrs "all" Copy all xattrs (prior default) "non-lustre" Copy non-lustre xattrs (new default) "libattr" Copy xattrs not excluded by /etc/xattr.conf Copying xattrs is now independent of whether the user used the --preserve option. Lustre uses xattrs to record important information such as how the file data should be distributed among the Lustre servers. As a result, copying the lustre xattrs prevents certain default values from taking effect. If "non-lustre" option is in effect, xattrs named in lustre source file lustre_idl.h as of this writing are not copied (see XATTR_NAME_SOM and friends). In addition, xattrs with prefix "lustre" are not copied. The format of /etc/xattr.conf seems not to be described in man pages on RHEL 7 and RHEL 8 machines. Until that is fixed, see http://git.savannah.nongnu.org/cgit/attr.git/tree/xattr.conf Signed-off-by: Olaf Faaland <faaland1@llnl.gov> Closes hpc#324 Partially Addresses hpc#49 Partially Addresses hpc#400
Rather than always copying xattrs, introduce option "--xattrs | -X" to allow the user to control how this is done. -X is chosen for consistency with rsync. Options are "none" Copy no xattrs "all" Copy all xattrs (prior default) "non-lustre" Copy non-lustre xattrs (new default) "libattr" Copy xattrs not excluded by /etc/xattr.conf Copying xattrs is now independent of whether the user used the --preserve option. Lustre uses xattrs to record important information such as how the file data should be distributed among the Lustre servers. As a result, copying the lustre xattrs prevents certain default values from taking effect. If "non-lustre" option is in effect, xattrs named in lustre source file lustre_idl.h as of this writing are not copied (see XATTR_NAME_SOM and friends). In addition, xattrs with prefix "lustre" are not copied. Adds a dsync test that verifies "none", "all", and "libattr" variants. Tested on an xfs file system. The format of /etc/xattr.conf seems not to be described in man pages on RHEL 7 and RHEL 8 machines. Until that is fixed, see http://git.savannah.nongnu.org/cgit/attr.git/tree/xattr.conf Signed-off-by: Olaf Faaland <faaland1@llnl.gov> Closes hpc#324 Partially Addresses hpc#49 Partially Addresses hpc#400
Rather than always copying xattrs, introduce option "--xattrs | -X" to allow the user to control how this is done. -X is chosen for consistency with rsync. Options are "none" Copy no xattrs "all" Copy all xattrs (prior default) "non-lustre" Copy non-lustre xattrs (new default) "libattr" Copy xattrs not excluded by /etc/xattr.conf Copying xattrs is now independent of whether the user used the --preserve option. Lustre uses xattrs to record important information such as how the file data should be distributed among the Lustre servers. As a result, copying the lustre xattrs prevents certain default values from taking effect. If "non-lustre" option is in effect, xattrs named in lustre source file lustre_idl.h as of this writing are not copied (see XATTR_NAME_SOM and friends). In addition, xattrs with prefix "lustre" are not copied. Adds a dsync test that verifies "none", "all", and "libattr" variants. Tested on an xfs file system. The format of /etc/xattr.conf seems not to be described in man pages on RHEL 7 and RHEL 8 machines. Until that is fixed, see http://git.savannah.nongnu.org/cgit/attr.git/tree/xattr.conf Signed-off-by: Olaf Faaland <faaland1@llnl.gov> Closes hpc#324 Partially Addresses hpc#49 Partially Addresses hpc#400
Rather than always copying xattrs, introduce option "--xattrs | -X" to allow the user to control how this is done. -X is chosen for consistency with rsync. Options are "none" Copy no xattrs "all" Copy all xattrs (prior default) "non-lustre" Copy non-lustre xattrs (new default) "libattr" Copy xattrs not excluded by /etc/xattr.conf Copying xattrs is now independent of whether the user used the --preserve option. Lustre uses xattrs to record important information such as how the file data should be distributed among the Lustre servers. As a result, copying the lustre xattrs prevents certain default values from taking effect. If "non-lustre" option is in effect, xattrs named in lustre source file lustre_idl.h as of this writing are not copied (see XATTR_NAME_SOM and friends). In addition, xattrs with prefix "lustre" are not copied. Adds a dsync test that verifies "none", "all", and "libattr" variants. Tested on an xfs file system. The format of /etc/xattr.conf seems not to be described in man pages on RHEL 7 and RHEL 8 machines. Until that is fixed, see http://git.savannah.nongnu.org/cgit/attr.git/tree/xattr.conf Signed-off-by: Olaf Faaland <faaland1@llnl.gov> Closes hpc#324 Partially Addresses hpc#49 Partially Addresses hpc#400
Rather than always copying xattrs, introduce option "--xattrs | -X" to allow the user to control how this is done. -X is chosen for consistency with rsync. Options are "none" Copy no xattrs "all" Copy all xattrs (prior default) "non-lustre" Copy non-lustre xattrs (new default) "libattr" Copy xattrs not excluded by /etc/xattr.conf Copying xattrs is now independent of whether the user used the --preserve option. Lustre uses xattrs to record important information such as how the file data should be distributed among the Lustre servers. As a result, copying the lustre xattrs prevents certain default values from taking effect. If "non-lustre" option is in effect, xattrs named in lustre source file lustre_idl.h as of this writing are not copied (see XATTR_NAME_SOM and friends). In addition, xattrs with prefix "lustre" are not copied. Adds a dsync test that verifies "none", "all", and "libattr" variants. Tested on an xfs file system. The format of /etc/xattr.conf seems not to be described in man pages on RHEL 7 and RHEL 8 machines. Until that is fixed, see http://git.savannah.nongnu.org/cgit/attr.git/tree/xattr.conf Signed-off-by: Olaf Faaland <faaland1@llnl.gov> Closes hpc#324 Partially Addresses hpc#49 Partially Addresses hpc#400
Rather than always copying xattrs, introduce option "--xattrs | -X" to allow the user to control how this is done. -X is chosen for consistency with rsync. Options are "none" Copy no xattrs "all" Copy all xattrs (prior default) "non-lustre" Copy non-lustre xattrs (new default) "libattr" Copy xattrs not excluded by /etc/xattr.conf Copying xattrs is now independent of whether the user used the --preserve option. Lustre uses xattrs to record important information such as how the file data should be distributed among the Lustre servers. As a result, copying the lustre xattrs prevents certain default values from taking effect. If "non-lustre" option is in effect, xattrs named in lustre source file lustre_idl.h as of this writing are not copied (see XATTR_NAME_SOM and friends). In addition, xattrs with prefix "lustre" are not copied. Adds a dsync test that verifies "none", "all", and "libattr" variants. Tested on an xfs file system. The format of /etc/xattr.conf seems not to be described in man pages on RHEL 7 and RHEL 8 machines. Until that is fixed, see http://git.savannah.nongnu.org/cgit/attr.git/tree/xattr.conf Signed-off-by: Olaf Faaland <faaland1@llnl.gov> Closes hpc#324 Partially Addresses hpc#49 Partially Addresses hpc#400
Hi,
dsync cannot always be used from Lustre 2.12 to Lustre 2.10, as it tries to copy lustre striping params. Is there a way to not copy striping info with dsync? IIRC, with dcp, it only tries to copy lustre striping info when
-p
is provided. We have seen a weird behavior after a user used dsync with PFL'ed files: the result was that the first stripe on the destination filesystem is only using OST 0 (so this OST has become full of course), while the source files are also PFL'ed but their first stripe is spread across all OSTs (normal behavior).We would like to simply rely on the default striping configuration of the target filesystem. Each filesystem is different. This is related to #49 but more critical I think.
Resulting bogus files:
The text was updated successfully, but these errors were encountered: