Powershell cmdletTest-Cluster
查询大量数据并执行验证测试,并将其包装成漂亮的报告。如果您运行Test-Cluster -List
,您将获得一个项目列表,您可以使用 cmdlet 单独查询。DisplayName
当您阅读's时,有一个通用的命名方案。它们都以"List"或"Validate"开头。
显然, “验证”将通过失败来实际测试故障转移。但是将某些东西命名为“列表”让我认为它只是在运行时对数据的查询。我已经使用以下脚本对此进行了测试:
$TestList = Test-Cluster -List | Where-Object {$_.DisplayName -like "List*"}
Test-Cluster -Include $TestList.DisplayName -ReportName "c:\cluster reports\report"
在生成此报告时,我没有看到任何记录的集群错误或注意到任何故障转移活动。微软技术网对此也不是很清楚,但他们确实推断出这种行为与我的想法是一致的。请参阅此摘录(重点是我的):
测试结果以您指定的文件名捕获在一个文件中。通过运行验证测试,您可以确认您的硬件和设置与故障转移集群兼容。有多种类型的测试,包括集群、库存、网络、存储、系统和其他类型的测试。存储测试不会测试集群角色正在使用的在线磁盘或存储池。要测试此类磁盘,请先运行 Stop-ClusterGroup 以停止集群角色,然后运行 Test-Cluster。测试完成后,再次启动集群角色,也称为资源组。
我想提请您注意他们对“验证”一词的使用。此外,在运行该脚本时,作为输出的一部分,它说:
Test Result:
ClusterSkippedTestsCompleted
如果您包括验证测试,则结果是:
Test Result:
ClusterConditionallyApproved
在我的测试环境中,网络测试产生了一些触发条件批准的警告。我用谷歌搜索了很多东西来找到描述“验证”与“列表”拆分背后的逻辑的文档,但我没有找到任何东西。这就引出了一个问题……
列表请求会触发故障转移事件吗?
Validation和List之间的分离旨在指导预期的结果。 验证测试是布尔值并返回通过/失败、是/否、启动/失败等。列表测试返回统计和操作数据以供审查。
Microsoft 在构建测试时考虑了零停机时间。在大多数情况下,这是真的。 有些测试会触发故障转移并导致停机。他们是:
需要注意的是,如果
Test-Cluster
在不使用 include 或 exclude 参数的情况下运行,它将运行这些测试。虽然上面列出的测试将触发故障转移事件,但以下测试可能会影响性能。他们是:上面列出的所有测试都是存储类别的一部分。因此,通常建议在生产中的服务器上避免存储测试。要排除这些测试,请运行以下命令:
如果您使用该
Include
参数有选择地选择测试,则可以运行两个安全存储测试。他们是:源 1和源 2
所有可用的集群测试都分为 5 个测试类别。它们是
Cluster Configuration
、Inventory
、Network
、Storage
和System Configuration
。只有该Storage
类别包含将触发故障转移或影响性能的测试(根据 Microsoft 的说法)。此外,这些测试类别中的大多数都不打算在集群获得认证和运行后执行。除了一个是...对于现有集群
Microsoft设计
Cluster Configuration
了用于现有集群的测试。事实上,这些测试只在现有集群上运行。要执行此测试类别,请运行以下命令:来源 3
根据我的经验,Test-Cluster 永远不会触发故障转移事件。它仅用于检查硬件和软件配置,以查看是否一切都与故障转移群集兼容。据我了解,在故障转移集群管理器中使用 GUI“验证集群”功能时,也会运行 Test-Cluster。它实际上并没有“测试”集群的“故障转移”功能。
根据下面的链接:
[测试集群描述][1] http://technet.microsoft.com/en-us/library/ee461026.aspx
示例 3:测试集群列表
此命令列出集群验证中所有测试和类别的名称。然后,您可以使用 -Ignore 或 -Include 指定这些测试名称以运行特定测试。
所以 list 命令只是给你一个测试列表,你可以运行和验证集群。
你的另一部分问题:显示名称
以 List 开头的 DisplayNames只是从集群节点中获取信息,而以 Validate 开头的 DisplayNames确实会测试配置(它会进行磁盘故障转移、共享测试、网络测试等...)
简单的回答:列表请求不会触发故障转移事件。
详细答案:自 2008R2 以来,将测试拆分为“验证”与“列表”的逻辑一直是一致的。大多数以“List”开头的测试都被认为是Inventory Tests,它们不会影响当前配置的集群的状态。所有以 list 开头的命令行开关本质上都是信息性的,如下面的技术网片段中所述。
可以在以下位置找到更多信息:Technet - 了解集群验证测试:清单