DataKeeper runs chkdsk on all mirrored volumes prior to the volume being available for use. There is a numeric Cluster Property named DiskRunChkDsk associated with each DataKeeper Volume resource created. DataKeeper now creates a new flag DiskRunChkDsk in Windows Failover Clustering for each DataKeeper volume. This cluster property determines how chkdsk runs on each volume during disk check operations.
Additional Information about DiskRunChkDsk:
- When DiskRunChkDsk has a value of 0, it means chkdsk is enabled and the entire volume will be checked. It is set to a value of 0 by DEFAULT.
- When DiskRunChkDsk has a value of 4, it means chkdsk is skipped for the entire volume.
The volume command performed depends on the argument located in the DiskRunChkDsk cluster property for each DataKeeper volume. The location of this cluster property is in the registry here: HKEY_LOCAL_MACHINE/Cluster/Resources/{DataKeeper Volume GUID}/Parameters.
The complete list of values are numeric and are documented in the Microsoft article http://msdn.microsoft.com/en-us/library/windows/desktop/bb309232(v=vs.85).aspx
Running chkdsk before a volume is brought online is recommended to ensure that the volume is healthy.
To view, change, or set the cluster property value:
Retrieve the name of the DataKeeper volume resource that includes the volume letter. (Example: DataKeeper Volume E)
- To see the initial value – Run this powershell command: get-clusterresource “<dk resource name from step 1>” | get-clusterparameter (DiskRunChkDisk is shown in the table output.)
- To change the value – Run this powershell command: get-clusterresource “<name of resource>” | set-clusterparameter DiskRunChkDsk <value>.
How to Manually Run chkdsk on a Large volume:
First be sure to set the value of the cluster property to “4” if you want to bring the volume online without having to do chkdsk. Then you would:
- Pause all mirrors using the GUI “Pause and unlock mirrors”
- Run chkdsk manually (chkdsk /f <drv>:)
- Dismount when/if chkdsk asks if you want to dismount
- When chkdsk completes, Continue and lock mirrors
- Change DiskRunChkDsk back to 0 if you want DK to automatically chkdsk, or leave it set to 4 if you don’t
It is highly recommended to change the flag on all nodes in such circumstances. Please refer to the Microsoft blog on this specific issue http://blogs.technet.com/b/askcore/archive/2012/03/05/understanding-diskskipchkdsk-in-2008.aspx
The following messages will be logged in the Application Event log:
Message that disk is being checked
Event ID 101: Checking the dirty flag on volume <volume>
Message that volume is dirty and needs to be checked
Event ID 102: Volume <volume> dirty flags is <error number>
Message that an error occurred during volume online
Event ID 80: A failure occurred during the check of volume <volume>. Error: <error number>. The volume <volume> may be marked as failed.
Post your comment on this topic.