The Powershell cmdlet Test-Cluster
queries a myriad of data and performs validation tests which it wraps into a pretty report. If you run Test-Cluster -List
you get a list of item's you can individually query with the cmdlet. There's a common naming scheme when you read the DisplayName
's. They all start with either "List" or "Validate".
Obviously "Validate" is going to actually test the failover by failing. But naming something "List" makes me think it's just a query for data as is at the time it was run. I've tested this with the following script:
$TestList = Test-Cluster -List | Where-Object {$_.DisplayName -like "List*"}
Test-Cluster -Include $TestList.DisplayName -ReportName "c:\cluster reports\report"
I don't see any logged cluster errors or notice any failover activity while this report is generated. Microsoft technet isn't exactly clear on this either, but they do infer that the behavior is inline with what I'm thinking it is. See this excerpt (emphasis mine):
Test results are captured in a file with the file name that you specify. By running the validation tests, you can confirm that your hardware and settings are compatible with Failover Clustering. There are multiple types of tests, including Cluster, Inventory, Network, Storage, System, and other types of tests. Storage tests will not test online disks or storage pools that are in use by a clustered role. To test such disks, first run Stop-ClusterGroup to stop the clustered role, and then run Test-Cluster. After the tests are done, start the clustered roles, also known as resource groups, again.
I'd like to call your attention to their use of the word "Validation". Additionally, when running that script, as part of the output it says:
Test Result:
ClusterSkippedTestsCompleted
If you include a validation test the result is:
Test Result:
ClusterConditionallyApproved
In my test environment the network tests generated some warnings which triggered the conditional approval. I've googled quite a bit to find documentation which describes the logic behind the "Validate" vs "List" split but I haven't turned up anything. This leads to the question...
Do list requests trigger a failover event?