Showing results for 
Search instead for 
Did you mean: 

Planning for FSA hydration – reporting

Level 0

Planning to hydrate a FSA file share and wanted to produce a before state report with list of all stub files. Based on few forum posts here, came up with this,

$tstfile = Get-Item -Path "F:\Users\testusr\DA\photos\photos_3.doc"
if ( $tstfile.Attributes.HasFlag([System.IO.FileAttributes]5632) ) {
write-host "File is a stub"

ReparsePoint=1024 / SparseFile=512 / Offline=4096

1. Will this logic capture a stub file accurately?

2. Or Ok use ( $tstfile.Attributes.HasFlag([System.IO.FileAttributes]1536) ignoring Offline attribute?

3. Once the hydration job is complete, to verify, use before report list of files as input to make sure results return a null value. Will this be an accurate assessment of successful hydration?

4. To look for any failures, use the before report list of files as input and look for any files with size 0 – will this be an accurate assessment of reporting hydration failures?

Thanks …


Partner    VIP    Accredited Certified

I unfortunately have little experience with FSA, and no test-environment anymore, but I am curious to learn if this works for you.

I hope some of the other in this forum can assist/confirm.

Regards. Gertjan

Level 6

Hi Luke37993492,

On a Windows system a valid EV Placeholder (PH) file would be APLO or PLO (Sparse,ReparsePoint, Offline) so you are correct.  The two most important are ResparsePoint and Offline as that will allow the file to be recalled from EV.  

In some cases files can be copied over PH files and the OS does not remove the O attribute.  These files would have full data but remain offline.  EV cannot interact with these files properly as they are invalid PH files.  Typically, we will see 'Element not found' in a report/Dtrace on these files.  

You can recall the files on the system by using FSAUtility -b as that will search for all PH files and then push those files from the EV server.  To validate they are recalled you could determine what files still show offline using the following: 

Get-ChildItem -Path \\server\share\folder -File -Recurse -Attributes  offline |select Fullname, Attributes  | Export-CSV c:\temp\offlinefiles.csv -notypeinformation

If files show offline, but have no ReparsePoint you can reset them to a Normal status and remove the offline value using the following as these files should contain full file data.  This is using the output from the first query as input file. Would ensure the paths to only the files you want to update are in the file and validate a couple contain full data before running command. 

Get-Content c:\temp\offlinefiles.csv | ForEach-Object {(get-item -path $_).Attributes = 'Normal'}