If you have not done so already, you need to ensure that the FlexRAID.exe process is excluded from your Anti-Virus and other file protection tools. These tools will often interfere with FlexRAID changing the data it is processing in memory.
So, if you find yourself getting a lot of Validate and Verify errors and you know your array to be up to date, this should be your first step. Make the exclusion and re-Validate/re-Verify the array.
In all cases, before running the Verify task for Snapshot RAID, always ensure that the RAID is up to date and synced.
It is really pointless to run Verify when the RAID is out of sync.
If Verify still fails even after the RAID has been synced, you can re-verify the range being complained on to ensure that the failure was not a false positive.
To verify a particular range of your data, you will need to set the verifyStart and verifyNumOfBytes properties.
You can usually set those properties in the “Run-Time Properties” section and then run Verify through the command center (Toolbox -> Command Center). However, a good approach is to create and execute a FlexRAID Expression Script.
Here are the steps when using the expression script approach:
1. Re-verify that range being flagged as invalid. FlexRAID will tell you at which byte it failed. Let’s call it X. Set the verifyStart to X and verifyNumOfBytes to something like 1GB.
@config <REPLACE_WITH_VALUE_OF_YOUR_PARITY_CONFIG_NAME> @queued true @execute @task verify @param verifyStart= <REPLACE_WITH_VALUE_OF_X> @param verifyNumOfBytes=1GB
2. If it fails consistently at the same position after running the above script 2 or 3 times, run Validate
3. FlexRAID will usually tell you the name of the files open at the time of failure. Instead of validating the whole array, you can have FlexRAID just validate those files.
@config <REPLACE_WITH_VALUE_OF_YOUR_PARITY_CONFIG_NAME> @queued true @execute @task validate @param validateSet= <REPLACE_WITH_SEMICOLON_DELIMITED_FILE_NAMES> @error @email "Validate failed"
To validate the whole array, run validate from the command center or omit the “@param validateSet=
4. If Validate checks and you trust your data to be okay, run Force Sync Verify
@config <REPLACE_WITH_VALUE_OF_YOUR_PARITY_CONFIG_NAME> @queued true @execute @task force-sync-verify @param verifyStart= <REPLACE_WITH_VALUE_OF_X> @param verifyNumOfBytes=10GB
If you want to force sync verify the whole array, you can do it through the command center or omit the verifyStart and verifyNumOfBytes.
You can also omit the verifyNumOfBytes to force sync from the failed byte till the end of the array (recommended).
5. Otherwise, you will need to recreate the RAID.
Tip, if you set your logs to TRACE, the logs will have the name of the affected files.
Manually check those files.