There have been several more questions recently around SmartPools and dynamic file placement.
I want to move 50TB’s of data from an X410 pool to an NL410 on a heterogeneous cluster, without running a Smartpools job. If I create a filepool policy to land all files written to a directory on the NL400 node pool, and then copy files to that location using ‘cp’, will they actually go to the NL pool immediately, without running a scheduled job?
Since the filepool policy applies to the directory, any new writes to it will automatically and instantaneously get the data policy applied. This applies to all access protocols, as well as copy commands like ‘cp’ issued directly from the OneFS command line interface (CLI).
However, simply moving a file into the directory (via ‘mv’, etc) will not occur until a SmartPools, SetProtectPlus, Multiscan, or Autobalance job runs to completion. Since these jobs can each perform a re-layout of data, that is when the files will be re-assigned to the desired NL pool. The file movement can be verified by running the isi get -dD <dir> command from the OneFS CLI.
So the key is whether you’re doing a copy (that is, a new write) or not. As long as you’re doing writes and the parent directory of the destination has the appropriate file pool policy applied, you should get the behavior you want.
One thing to note: If the actual operation that is desired is really a move rather than a copy, it may be faster to change the file pool policy and then do a recursive “isi filepool apply” on the affected files.
There’s negligible difference between using an NFS or SMB client versus performing the copy on-cluster via the OneFS CLI. As mentioned above, using “isi filepool apply” will be slightly quicker than a straight copy and delete, since the copy is parallelized above the filesystem layer.
For more information on SmartPools file placement, please refer to the following blog post: