pnfsdsfile
—
display a pNFS data storage file's location(s) and/or modify the
“pnfsd.dsfile” extended attribute for them
pnfsdsfile |
[-qz ] [-s
dshostname] [-c
old-dshostname,new-dshostname]
[-m mirror_level]
[-r dshostname]
mdsfile |
The pnfsdsfile
command displays the data storage file's
location(s) for a pNFS service and/or modifies the
“pnfsd.dsfile” extended attribute on the
mdsfile. A pNFS service maintains a data storage file
for each regular file on the MetaData Server (MDS) on one or more of the Data
Servers (DS). If mirroring is enabled, the data storage file will be on more
that one of the DSs. Unless command options are specified, this command
displays the location(s) of the data storage file for the MDS file
mdsfile. It must be used on the MDS and the
mdsfile must be a file on the exported local file system
and not an NFSv4.1 mount. This information is stored in the
“pnfsd.dsfile” extended attribute for this
mdsfile. The command line options allow the information
in the “pnfsd.dsfile” extended attribute to be changed.
The following options are available:
-q
- This option suppresses printing of the DS file's location(s).
-z
- This option specifies that the file handle field of the pnfsd.dsfile
extended attribute is to filled with all zero bits. This forces the pNFS
MDS to do a Lookup RPC against the DS to acquire the file handle to update
it. Normally this will only be necessary after the DS file has been
recovered from a backup, causing the file handle to change.
-s
dshostname
- This option can be used with
-z
so that the
zeroing out of the file handle is only done if the DS server is the one
specified by this option.
-c
old-dshostname,new-dshostname
- This option allows a sysadmin to replace the host IP# for the DS in the
pnfsd.dsfile extended attribute. The old-hostname must resolve to the IP#
already in the pnfsd.dsfile extended attribute or the replacement will not
be done. If the old-dshostname matches, then the IP# is replaced by the
first AF_INET or AF_INET6 address that
getaddrinfo(3)
returns for the new-dshostname. Changing a DS server's host IP# should be
avoided, but this option will allow it to be changed, if the change is
unavoidable.
-m
mirror_level
- This option adds entrie(s) to the extended attributes with IP address set
to 0.0.0.0 to bring the number of entries up to
“mirror_level”. It can be used by a system administrator to
prepare a file for mirroring via the
pnfsdscopymr
command with
-r
option.
-r
dshostname
- This option sets the IP address of the extended attribute entry for the
dshostname to 0.0.0.0 so that it will no longer be
used.
This is meant to be used when mirroring is enabled and the
dshostname DS is disabled, so that it can be
re-enabled once it is repaired. This needs to be done for all files in
the exported MDS tree where the data may not be up-to-date on the
repaired DS when it is re-enabled. After being re-enabled, the command
pnfsdscopymr(1)
with the “-r” option will be used to copy the file's data
to this repaired DS and then update the extended attribute to use
it.
A typical use of this will be within a
find(1)
for all regular files in the MDS's exported tree.
For example, if the disabled DS is nfsv4-data3:
# cd <top-level-exported-directory-on-MDS>
# find . -type f -exec pnfsdsfile -q -r nfsv4-data3 {} \;
The pnfsdsfile
command first appeared in
FreeBSD 12.0.