Got a recent question from the field asking explicitly how FilePolicy and/or regular SmartPools handles open files and thought this might be of broader interest.

 

A customer is ingesting multiple live streams onto the F800 pool of their mixed cluster. At the same time they want to run SP jobs to start moving these onto another tier to do work on them. The files might still be open and writing into the F800 pool when the job runs to start tiering them over to the H5600 pool.


Process:

  • File open and being accessed on node Pool A
  • SmartPools job kicks off
  • Files on F800 pool A (ideally including open files) should be getting moved to H5600 pool

 

Will this work?


In short, yes. Customers routinely have ‘down-tiering’ workflows and the proposed process above should work as intended. A SmartPools or FilePolicy job should move the files transparently, even if they’re open and being modified. However, be aware that restriping large directories across tiers can cause brief latency.


Under the hood, the locks OneFS uses to provide consistency inside the file system (internal) are separate from the file locks provided for consistency between applications (external). OneFS can move metadata and blocks of data around while the file is locked by an application. The restriper also does work in small chunks to minimize disruption. Note that directories are the one place where the restriper has a higher impact, since directories require more consistency locking, and this will be addressed in a future release.