There have been a couple of recent enquiries around the tiering of snapshots, and felt it might be of interest to a wider audience. For example:



“Within the SmartPools file pool settings, there’s the option to “set snapshot storage target to…” If this is configured to something other than the data storage target and you take a snapshot, will the snap be automatically created on the desired snapshot pool?”



The snapshot storage target setting is applied to each file version by SmartPools. When a snapshot is taken (ie. on copy on write), the pool setting is simply preserved. This means that the snapshot will initially be written to the default data pool and then moved The SmartPools job subsequently finds the snapshot version and moves it to intended pool during the next scheduled SmartPools job run.








Similarly, for regular files, SmartPools determines which node pool to write to based on one of two situations: If a file matches a file pool policy based on directory path, that file will be written into the Node Pool dictated by the File Pool policy immediately.  If that file matches a file pool policy which is based on any other criteria besides path name, SmartPools will write that file to the Node Pool with the most available capacity. If the file matches a file pool policy that places it on a different Node Pool than the highest capacity Node Pool, it will be moved when the next scheduled SmartPools job runs.



Under the hood, when the SmartPools job runs, it caches a policy on directories that it thinks will be applied to children of that directory.  When files are created they start out with that policy. At the next scheduled SmartPools job run, if a different policy matches from the configured file pool rules, it is applied at that time.

For more information on the SmartPools, please refer to the following blog post:  OneFS SmartPools - Storage Pools Taxonomy