You can use the Dynamic Storage Tiering graphical interface to create any of four types of file placement policy documents. Alternatively, you can use a text editor or XML editor to create XML policy documents directly. The graphical interface places policy rule statements in the correct order to achieve the desired behavior. When a text editor is used, it is the user's responsibility to order policy rules and the statements in them so that the desired behavior results.
The rules that comprise a placement policy may occur in any order, but during both file allocation and fsppadm enforce
relocation scans, the first rule in which a file is designated by a SELECT
statement is the only rule against which that file is evaluated. Thus, rules whose purpose is to supersede a generally applicable behavior for a special class of files should precede the general rules in a file placement policy document.
The following XML snippet illustrates faulty rule placement with potentially unintended consequences:
<!DOCTYPE FILE_PLACEMENT_POLICY SYSTEM "placement.dtd">
<FILE_PLACEMENT_POLICY Version="5.0">
The GeneralRule
rule specifies that all files created in the file system, designated by <PATTERN>*</PATTERN>
, should be created on tier2
volumes. The DatabaseRule
rule specifies that files whose names include an extension of .db
should be created on tier1
volumes. The GeneralRule
rule applies to any file created in the file system, including those with a naming pattern of *.db
, so the DatabaseRule
rule will never apply to any file. This fault can be remedied by exchanging the order of the two rules. If the DatabaseRule
rule occurs first in the policy document, VxFS encounters it first when determining where to new place files whose names follow the pattern *.db
, and correctly allocates space for them on tier1
volumes. For files to which the DatabaseRule
rule does not apply, VxFS continues scanning the policy and allocates space according to the specification in the CREATE
statement of the GeneralRule
rule.
A similar consideration applies to statements within a placement policy rule. VxFS processes these statements in order, and stops processing on behalf of a file when it encounters a statement that pertains to the file. This can result in unintended behavior.
The following XML snippet illustrates a RELOCATE
statement and a DELETE
statement in a rule that is intended to relocate if the files have not been accessed in 30 days, and delete the files if they have not been accessed in 90 days:
As written with the RELOCATE
statement preceding the DELETE
statement, files will never be deleted, because the <WHEN>
clause in the RELOCATE
statement applies to all selected files that have not been accessed for at least 30 days. This includes those that have not been accessed for 90 days. VxFS ceases to process a file against a placement policy when it identifies a statement that applies to that file, so the DELETE
statement would never occur. This example illustrates the general point that RELOCATE
and DELETE
statements that specify less inclusive criteria should precede statements that specify more inclusive criteria in a file placement policy document. Symantec-supplied graphical interfaces automatically produce the correct statement order for the policies they create.