Home > Veritas Storage Foundation™ File System Manual Pages
FSPPADM (1M) |
Maintenance Commands |
fsppadm analyze [ -P ] [ -i ] [ path ]
fsppadm enforce [ -P ] [ [ -a ] -r file ]
[ { -c .[ class. ] mount_point } |
{ -s size_count } |
{ -n file_count } |
{ -t hours }
path ]
fsppadm query [ -P ] [ -l | { [ -a ] [ -w ] } ] [ -i ] [ path ]
fsppadm unassign [ mount_point ]
fsppadm list [ -w ] [ mount_point ]
fsppadm print mount_point
fsppadm validate [ mount_point ] policy_file
fsppadm dump mount_point file
The path argument specifies a mount point, subdirectory in a mount point, or a single file. If a subdirectory or mount point is specified, the command recursively applies to all subdirectories within the specified subdirectory or mount point.
The policy_file argument specifies the path of the XML file that contains the rules of the placement policy. See the PLACEMENT POLICY GRAMMAR section for the XML format of the placement policy.
The file argument specifies the file into which to send output from a dump or enforce operation.
If mount_point is not specified, fsppadm sweeps all mounted VxFS file systems that have disk layout Version 7 and have active placement policies, except mounted Storage Checkpoints.
If path is not specified, fsppadm sweeps all mounted VxFS file systems that have disk layout Version 7 and have active placement policies, except mounted Storage Checkpoints.
Enforce operations are logged in a hidden file, .__fsppadm_enforce.log, in the lost+found directory of the mount point. This log file contains details such as files' previous locations, files' new locations, and the reasons for the files' relocations. The enforce operation creates the .__fsppadm_enforce.log file if the file does not exist. The enforce operation appends the file if the file already exists. The log file can be backed up or removed as with a normal file.
If path is not specified, fsppadm sweeps all mounted VxFS file systems that have disk layout Version 7 and have active placement policies, except mounted Storage Checkpoints. To prevent fsppadm from sweeping a file system, unmount the file system, unassign the file system's active placement policy, or specify the file systems to be swept when running the enforce operation.
If path is not specified, fsppadm sweeps all mounted VxFS file systems that have disk layout Version 7 and have active placement policies, except mounted Storage Checkpoints.
If mount_point is not specified, fsppadm sweeps all mounted VxFS file systems that have disk layout Version 7 and have active placement policies, except mounted Storage Checkpoints.
If mount_point is not specified, fsppadm sweeps all mounted VxFS file systems that have disk layout Version 7 and have active placement policies, except mounted Storage Checkpoints.
- -a
- Includes the access time, modification time, and file size of the specified paths in the report generated by -r. The -a option also includes IOTEMP if the active placement policy uses IOTEMP.
- -c
- Specifies a list of placement classes to which files must be relocated. A placement class is a specific subset of a file system's volume set in which a placement policy causes affected files to be created and extended. A null list, indicated by a period (.), can be specified; see the -l option. A non-null list must begin with a period (.), and is period-separated. Non-null lists of placement classes ignore any placement class information provided in the file list piped from the -l option. See EXAMPLES. If a non-null list is specified, the list of files to be relocated, as specified by the path argument, should not include files that will be deleted. Any such files will instead be relocated along with the files that are intended to be relocated.
If -c is specified, the assigned placement policy is ignored and the list of files to be relocated must be passed via standard input. Subsequent runs of the enforce operation without the -c option will enforce the active placement policy once again.
- -f
- If the placement policy uses IOTEMP, fsppadm tunes fcl_keeptime to the largest period of interest in the placement policy. See the vxtunefs(1M) manual page. This preserves I/O statistics for that period.
- -i
- Rebuilds the IOTEMP database. If the placement policy uses IOTEMP, the enforce operation automatically builds the IOTEMP database. Without specifying -i, the query operation uses the existing IOTEMP database, if any. To obtain meaningful results with the fsppadm query command, Symantec recommends that you rebuild the database if significant time passed since you last ran the enforce operation.
- -l
- Lists the pathnames of the files that would be selected to be relocated or deleted when the enforce operation is run. The list is generated such that the output can be piped to another instance of fsppadm as the list of files to be relocated or deleted with the -c option. However, see the EXAMPLES section for a way to accomplish this with only one instance of fsppadm. If -l is not specified, fsppadm query displays the pathnames of all the files under the specified subdirectory or path.
- -n file_count
- Specifies the maximum number of files that an enforce operation may relocate or delete in a given instance. An enforce operation that reaches the specified maximum can be restarted from the point at which the operation ended due to this limit.
- -P
- Private files used by the fsppadm command, such as .__fsppadm_enforce.log, are not picked by the assigned placement policy. The enforce operation will not relocate the private files. The query operation will not list the private files. The analyze operation will not consider the private files for space impact analysis.
- -r file
- Generates a report and dumps the output to the specified file. Reports include which files were picked up by which rule, if a given file path was relocated or deleted, and so on. Specify an absolute pathname for the file.
- -s size_count
- Specifies the maximum number of megabytes of data that an enforce operation may relocate in a given instance. An enforce operation that reaches the specified maximum can be restarted from the point at which the operation ended due to this limit.
- -t hours
- Specifies the maximum number of hours that an enforce operation may run. An enforce operation that times out can be restarted from the point at which the process was ended due to the time limit.
- -w
- Suppresses headings.
<?xml version="1.0"?> <!DOCTYPE PLACEMENT_POLICY [ <!-- The placement policy document definition file --> <!-- Specification for PLACEMENT_POLICY element. It can contain the following: 1. 0 or 1 COMMENT element 2. 1 or more RULE elements --> <!ELEMENT PLACEMENT_POLICY (COMMENT?, RULE+)> <!-- The attributes of PLACEMENT_POLICY element --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST PLACEMENT_POLICY Name CDATA #REQUIRED Version (5.0) #REQUIRED > <!-- Specification for COMMENT element --> <!ELEMENT COMMENT (#PCDATA)> <!-- Specification for RULE element. It can contain the following: 1. 0 or 1 COMMENT element 2. 1 or more SELECT elements 3. 0 or 1 CREATE element 4. 0 or more DELETE elements 5. 0 or more RELOCATE elements The elements must appear in the above order, particularly, DELETE elements, if any, must preceed RELOCATE elements, if any. If any of the DELETE elements triggers an action, subsequent elements (DELETE and/or RELOCATE elements, if any) will not be processed. --> <!ELEMENT RULE (COMMENT?, SELECT+, CREATE?, DELETE*, RELOCATE*)> <!-- The attributes of RULE element --> <!-- The possible and accepted values for Flags are 1. data --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST RULE Name CDATA #REQUIRED Flags (data) #REQUIRED > <!-- Specification for SELECT element. This describes selection criteria. It can contain the following: 1. 0 or 1 COMMENT elements 2. 0 or more DIRECTORY elements 3. 0 or more PATTERN elements 4. 0 or more USER elements 5. 0 or more GROUP elements The elements can appear in any order. --> <!ELEMENT SELECT (COMMENT?, DIRECTORY*, PATTERN*, USER*, GROUP*)> <!-- The attributes of SELECT element --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST SELECT Name CDATA #IMPLIED > <!-- Specification for DIRECTORY element The DIRECTORY element takes a path relative to the mount point. So if the intention is to sweep from /db/finance/data and /db is the mount point, DIRECTORY element should contain finance/data Only one value can be specified per element. --> <!ELEMENT DIRECTORY (#PCDATA)> <!-- The attributes of DIRECTORY element --> <!-- The possible and accepted values for Flags are 1. recursive 2. nonrecursive If a given directory appears in more than one RULE, all such DIRECTORY elements must all be recursive or nonrecursive but can not be a combination. If no DIRECTORY element is specified, all the files under the mount point will be selected. --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST DIRECTORY Flags (recursive|nonrecursive) #REQUIRED > <!-- Specification for PATTERN element The PATTERN can be a full name of a file, i.e., can not contain "/" characters. Or it can have a '*' character. The first '*' character will be considered as wild character and any other character, including a second '*' are treated as literals. Only one value can be specified per element. --> <!ELEMENT PATTERN (#PCDATA)> <!-- The attributes of PATTERN element --> <!-- The possible and accepted values for Flags are 1. recursive This is an optional attribute. It is meaningful only if the PATTERN is a dirctory. Default is nonrecursive, which will be case for file PATTERNs. If this attribute is specified, the enclosing SELECTion criteria will select all files in any component directory (for example dir1, in /mnt/dir0/dir1 if PATTERN is dir1) that is anywhere (below the DIRECTORY, - if it is specified and has 'recursive flag or - anywhere in file system, if DIRECTORY is not specified), provided the component directory matches the PATTERN (here 'dir1' in the example). If PATTERN has wild character '*' in it, wild char based matching is performed. --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST PATTERN Flags (recursive | nonrecursive) "nonrecursive" > <!-- Specification for USER element The USER is a name string of the 1 domain user Only one value can be specified per element. --> <!ELEMENT USER (#PCDATA)> <!-- Specification for GROUP element The GROUP is a name string of the 1 domain group Only one value can be specified per element. --> <!ELEMENT GROUP (#PCDATA)> <!-- Specification for CREATE element. This describes creation criteria. It can contain the following: 1. 0 or 1 COMMENT element 2. 1 ON element The order of elements may be significant in future --> <!ELEMENT CREATE (COMMENT?, ON)> <!-- The attributes of CREATE element --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST CREATE Name CDATA #IMPLIED Flags CDATA #IMPLIED > <!-- Specification for ON element. This describes location criteria. It can contain the following: 1. 0 or more DESTINATION elements Though zero DESTINATION elements is defined in grammar, current implementation requires at least on DESTINATION. --> <!ELEMENT ON (DESTINATION*)> <!-- The attributes of ON element --> <!-- The possible and accepted values for Flags is 1. any If this attribute is set, there may or may not be any CLASS elements in the DESTINATION elements under the ON element. If any of the DESTINATION elements have CLASS element, such CLASSes in the file system would be used first before other placement class storage is used. --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST ON Name CDATA #IMPLIED Flags (any) #IMPLIED > <!-- Specification for DESTINATION element. This describes target location. It can contain the following: 1. 0 or 1 CLASS element 2. 0 or 1 PERCENT element 3. 0 or 1 BALANCE_SIZE element --> <!ELEMENT DESTINATION (CLASS?, PERCENT?, BALANCE_SIZE?)> <!-- The attributes of DESTINATION element --> <!-- The possible and accepted values for Flags (THIS IS NOT IMPLEMENTED) 1. disallow If this 'disallow' is set, there must not be any PERCENT or BALANCE_SIZE elements in such DESTINATION element but there must be a CLASS element. There must not be any RELOCATE and DELETE statements in the enclosing RULE element either. --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST DESTINATION Name CDATA #IMPLIED Flags (disallow) #IMPLIED > <!-- Specification for CLASS element The file system resides on a multi-component volume set. Each volume in the volume set will be in what is called a placement class. The placement classes are implemented as tags on the volumes. These tags are organized into a hierarchy prefix. The placement policy uses the vxfs.placement_class. prefix. The CLASS element specifies the placement class of the underlying storage, without the prefix. For example, if a volume has a placement class of vxfs.placment_class.gold then gold would be the value of CLASS element. --> <!ELEMENT CLASS (#PCDATA)> <!-- Specification for PERCENT element (THIS IS NOT IMPLEMENTED) If the PERCENT element is in DESTINATION element, it determines how much of its CLASS can be filled up with the files selected by a given RULE. If the PERCENT element is in SOURCE element, it determines how much of its CLASS can be emptied when the files are relocated our deleted from it. --> <!ELEMENT PERCENT (#PCDATA)> <!-- Specification for BALANCE_SIZE element Multiple volumes may have the same placement class and there can be multiple DESTINATIONs (hence CLASSes) in a given ON (and TO) element. If a BALANCE_SIZE is specified for a given CLASS, the usage of volumes of that given placement class will be used evenly by allocating BALANCE_SIZE amount of space for each volume for each allocation. --> <!ELEMENT BALANCE_SIZE (#PCDATA)> <!-- The attributes of BALANCE_SIZE element --> <!-- The possible and accepted values for Units are 1. bytes 2. KB 3. MB 4. GB --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST BALANCE_SIZE Units (bytes|KB|MB|GB) #REQUIRED > <!-- Specification for DELETE element. This describes deletion criteria. It can contain the following: 1. 0 or 1 COMMENT element 2. 0 or 1 FROM element 3. 0 or 1 WHEN element --> <!ELEMENT DELETE (COMMENT?, FROM?, WHEN?)> <!-- The attributes of DELETE element --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST DELETE Name CDATA #IMPLIED Flags (none) #IMPLIED > <!-- Specification for RELOCATE element. This describes relocation criteria. It can contain the following: 1. 0 or 1 COMMENT element 2. 0 or 1 FROM element 3. 1 TO element 4. 0 or 1 WHEN element The order of TO elements is significant. Earlier CLASSes would be used before the latter ones. --> <!ELEMENT RELOCATE (COMMENT?, FROM?, TO, WHEN?)> <!-- The attributes of RELOCATE element --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST RELOCATE Name CDATA #IMPLIED Flags (none) #IMPLIED > <!-- Specification for FROM element. This describes source criteria. It can contain the following: 1. 1 or more SOURCE elements --> <!ELEMENT FROM (SOURCE+)> <!-- The attributes of FROM element --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST FROM Name CDATA #IMPLIED Flags (none) #IMPLIED > <!-- Specification for SOURCE element. This describes source location. It can contain the following: 1. 1 CLASS element 2. 0 or 1 PERCENT element --> <!ELEMENT SOURCE (CLASS, PERCENT?)> <!-- The attributes of SOURCE element --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST SOURCE Name CDATA #IMPLIED Flags (none) #IMPLIED > <!-- Specification for TO element. This describes destination criteria. It can contain the following: 1. 1 or more DESTINATION elements --> <!ELEMENT TO (DESTINATION+)> <!-- The attributes of TO element --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST TO Name CDATA #IMPLIED Flags (none) #IMPLIED > <!-- Specification for WHEN element. This describes relocation specifiers. It can contain the following: 1. 0 or 1 SIZE element 2. 0 or 1 ACCAGE element 3. 0 or 1 MODAGE element 4. 0 or 1 IOTEMP element 5. 0 or 1 ACCESSTEMP element The order of elements is significant. --> <!ELEMENT WHEN (SIZE?, ACCAGE?, MODAGE?, IOTEMP?, ACCESSTEMP?)> <!-- The attributes of WHEN element --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST WHEN Name CDATA #IMPLIED Flags (none) #IMPLIED > <!-- Specification for SIZE element It can contain the following: 1. 0 or 1 MIN element 2. 0 or 1 MAX element --> <!ELEMENT SIZE (MIN?, MAX?)> <!-- The attributes of SIZE element --> <!-- The possible and accepted values for Prefer are (THIS IS NOT IMPLEMENTED) 1. low 2. high The possible and accepted values for Units are 1. bytes 2. KB 3. MB 4. GB --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST SIZE Prefer (low|high) #IMPLIED Units (bytes|KB|MB|GB) #REQUIRED > <!-- Specification for ACCAGE element It can contain the following: 1. 0 or 1 MIN element 2. 0 or 1 MAX element --> <!ELEMENT ACCAGE (MIN?, MAX?)> <!-- The attributes of ACCAGE element --> <!-- The possible and accepted values for Prefer are (THIS IS NOT IMPLEMENTED) 1. low 2. high The possible and accepted values for Units are 1. hours 2. days --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST ACCAGE Prefer (low|high) #IMPLIED Units (hours|days) #REQUIRED > <!-- Specification for MODAGE element It can contain the following: 1. 0 or 1 MIN element 2. 0 or 1 MAX element --> <!ELEMENT MODAGE (MIN?, MAX?)> <!-- The attributes of MODAGE element --> <!-- The possible and accepted values for Prefer are (THIS IS NOT IMPLEMENTED) 1. low 2. high The possible and accepted values for Units are 1. hours 2. days --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST MODAGE Prefer (low|high) #IMPLIED Units (hours|days) #REQUIRED > <!-- Specification for IOTEMP element The value of IOTEMP represents bytes read (nrbytes), bytes written (nwbytes) or bytes transferred, i.e., read and written (nrwbytes), divided by the size of the file, over a specified PERIOD (in days). It can contain the following: 1. 0 or 1 MIN element 2. 0 or 1 MAX element 3. 1 PERIOD element --> <!ELEMENT IOTEMP (MIN?, MAX?, PERIOD)> <!-- The attributes of IOTEMP element --> <!-- The possible and accepted values for Prefer are (THIS IS NOT IMPLEMENTED) 1. low 2. high --> <!-- The possible and accepted values for Type are 1. nrbytes 2. nwbytes 3. nrwbytes --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST IOTEMP Prefer (low|high) #IMPLIED Type (nrbytes|nwbytes|nrwbytes) #REQUIRED > <!-- Specification for ACCESSTEMP element The value of ACCESSTEMP represents times read (nrbytes), times written (nwbytes) or times access i.e., read and written (nrws) over a specified PERIOD (in days). It can contain the following: 1. 0 or 1 MIN element 2. 0 or 1 MAX element 3. 1 PERIOD element --> <!ELEMENT ACCESSTEMP (MIN?, MAX?, PERIOD)> <!-- The attributes of ACCESSTEMP element --> <!-- The possible and accepted values for Prefer are (THIS IS NOT IMPLEMENTED) 1. low 2. high --> <!-- The possible and accepted values for Type are 1. nreads 2. nwrites 3. nrws --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST ACCESSTEMP Prefer (low|high) #IMPLIED Type (nreads|nwrites|nrws) #REQUIRED > <!-- Specification for MIN element --> <!ELEMENT MIN (#PCDATA)> <!-- The attributes of MIN element --> <!-- The possible and accepted values for Flags are 1. gt for greater than 2. eq for equal to 3. gteq for greater than or equal to --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST MIN Flags (gt|eq|gteq) #REQUIRED > <!-- Specification for MAX element --> <!ELEMENT MAX (#PCDATA)> <!-- The attributes of MAX element --> <!-- The possible and accepted values for Flags are 1. lt for less than 2. lteq for less than or equal to --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST MAX Flags (lt|lteq) #REQUIRED > <!-- Specification for PERIOD element --> <!ELEMENT PERIOD (#PCDATA)> <!-- The attributes of PERIOD element --> <!-- XML requires all attributes must be enclosed in double quotes --> <!ATTLIST PERIOD Units (days) #REQUIRED > ]>
# fsppadm assign /mount1 /tmp/iotemp.xml
To assign the placement policy iotemp.xml to all mounted VxFS file systems:
# fsppadm assign /tmp/iotemp.xml
To remove the active placement policy previously assigned to /mount1:
# fsppadm unassign /mount1
To remove the active placement policy from all mounted VxFS file systems:
# fsppadm unassign
To analyze the space impact if the enforce operation was run on /mount1:
# fsppadm analyze /mount1
To analyze the impact if the enforce operation were run on /mount1 and build the IOTEMP database if necessary:
# fsppadm analyze -i /mount1
To generate a list of affected files, which provides details about where the files currently reside, to where the files would be relocated, and which rule in the placement policy applies to the files:
# fsppadm query /mount1/dir1/dir2 /different_mount /mount1/dir3
To generate a list of affected files, which provides details about where the files currently reside, to where the files would be relocated, which rule in the placement policy applies to the files, and the reasons for taking such action:
# fsppadm query -a /mount1/dir1/dir2 /different_mount /mount1/dir3
In the above query operations, specify the -i option if the active placement policy on those file sytems use IOTEMP and the enforce operation has not been run recently.
To enforce the policy and generate a report:
# fsppadm enforce -r /tmp/report /mount1
To generate a report with additional details, such as IOTEMP information:
# fsppadm enforce -a -r /tmp/report /mount1
To generate a list of files and target classes to where the files would be relocated, of which the list can be piped to another fsppadm enforce operation directly:
# fsppadm query -l /mount1/dir1
The following list indicates that /mount1/dir1 has three files to which the placement policy applies. This list indicates that file1 is a candidate to be relocated to tier3 and tier4, while file2 is a candidate to be relocated to tier2. file3 is a candidate to be removed. The files to be removed will have a special target placement class of "." (a period). The period indicates that the enforce operation will delete the file. The output of the previous example could be as follows:
/mount1/dir1/file1 tier3 tier4 /mount1/dir1/file2 tier2 /mount1/dir1/file3 .
The above output can be piped to an enforce operation to move file1 to tier3 or to tier4 if moving to tier3 is not possible, to move file2 to tier2, and to delete file3:
# fsppadm query -l /mount1/dir1 | fsppadm enforce -c . /mount1
The same result as above can be achieved more directly with the following command:
# fsppadm enforce /mount1/dir1
However, if the same list is piped to an enforce operation that specifies -c .tier4.tier1, the operation will move file1 as well as file2 to tier4 if possible, or to tier1 if moving to tier4 is not possible:
# fsppadm query -l /mount1/dir1 | fsppadm enforce -c .tier4.tier1 /mount1
As a side effect, file3 will also be moved to tier4 if possible, or to tier1 if moving to tier4 is not possible. Thus, if alternate non-null target placement classes are specified via the -c option, fsppadm cannot be used to delete files.
If the target classes for relocation are specified with the -c option as well as on each input line following the file path, the target classes specified on each line of the input are ignored. As such, you need not specify file-specific targets on each line of the input if the target classes are specified with the -c option.
As the above example specifies placement classes with the -c option, any files that are to be deleted are instead relocated. The above list indicates that file3 is to be deleted since it has a target placement class of ".". file3 will instead be relocated to tier4 if possible, or to tier1 if moving to tier4 is not possible as specified by the argument for -c.
The file list could also be constructed manually, similar to the following list:
/mount1/dir1/file1 /mount1/dir2/file2
To validate the placement policy policy.xml against the mounted VxFS file system /mount1:
# fsppadm validate /mount1 /tmp/policy.xml
To validate the placement policy policy.xml against all mounted VxFS file systems:
# fsppadm validate /tmp/policy.xml
Veritas File System Administrator's Guide
Using Dynamic Storage Tiering Symantec Yellow Book
Last updated: 7 May 2007
Copyright ©2009 Symantec Corporation
All rights reserved.