显然,“验证”将通过失败来实际测试故障转移.但是命名“List”会让我觉得它只是在运行时对数据进行查询.我用以下脚本测试了这个:
$TestList = Test-Cluster -List | Where-Object {$_.DisplayName -like "List*"} Test-Cluster -Include $TestList.DisplayName -ReportName "c:\cluster reports\report"
生成此报告时,我没有看到任何已记录的群集错误或注意到任何故障转移活动. Microsoft technet对此也不是很清楚,但他们确实推断出这种行为符合我的想法.看这个摘录(强调我的):
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.
我想请你注意他们使用“验证”这个词.此外,在运行该脚本时,作为输出的一部分,它说:
Test Result: ClusterSkippedTestsCompleted
如果包含验证测试,则结果为:
Test Result: ClusterConditionallyApproved
在我的测试环境中,网络测试产生了一些警告,触发了条件批准.我已经搜索了相当多的文档来描述“验证”与“列表”拆分背后的逻辑,但我没有发现任何东西.这引出了一个问题……
列表请求是否会触发故障转移事件?
微软在考虑零停机时建立了测试.在大多数情况下,这是真的.有些测试会触发故障转移并导致停机.他们是:
>验证磁盘仲裁
>验证磁盘故障转移
>验证多个仲裁
>验证SCSI-3持久保留
>验证同时故障转移
重要的是要注意,如果在不使用include或exclude参数的情况下运行Test-Cluster,它将运行这些测试.虽然上面列出的测试将触发故障转移事件,但以下测试可能会影响性能.他们是:
>验证磁盘访问延迟
>验证文件系统
>验证基于Microsoft MPIO的磁盘
>验证SCSI设备重要产品数据
上面列出的所有测试都是存储类别的一部分.因此,通常建议在生产中的服务器上避免存储测试.要排除这些测试,请运行以下命令:
Test-Cluster -Ignore Storage
如果您使用Include参数有选择地选择测试,则可以运行两个安全存储测试.他们是:
>列出所有磁盘
>列表要验证的磁盘
所有可用的集群测试分为5个测试类别.它们是群集配置,清单,网络,存储和系统配置.只有存储类别包含将触发故障转移或影响性能的测试(根据微软的说法).此外,大多数这些测试类别无意在群集经过认证和运行后执行.除了一个……
对于现有群集
Microsoft设计了Cluster Configuration测试以在现有群集上使用.实际上,这些测试仅在现有集群上运行.要执行此测试类别,请运行以下命令:
Test-Cluster -Include "Cluster Configuration"