测试集群 Powershell cmdlet 列表与验证

测试集群 Powershell cmdlet 列表与验证

Powershell cmdletTest-Cluster查询大量数据并执行验证测试,并将其包装成漂亮的报告。如果您运行,Test-Cluster -List您将获得一个可以使用 cmdlet 单独查询的项目列表。当您阅读时,有一个常见的命名方案。DisplayName它们都以“列表”或者“证实”

明显地“证实”实际上是通过失败来测试故障转移。但命名某事“列表”这让我认为它只是运行时对数据的查询。我使用以下脚本对此进行了测试:

$TestList = Test-Cluster -List | Where-Object {$_.DisplayName -like "List*"}
Test-Cluster -Include $TestList.DisplayName -ReportName "c:\cluster reports\report"

在生成此报告时,我没有看到任何记录的集群错误或注意到任何故障转移活动。Microsoft Technet 对此也没有明确说明,但他们确实推断该行为与我的想法一致。请参阅此摘录(重点是我的):

测试结果将被捕获到具有您指定文件名的文件中。通过运行验证测试,您可以确认您的硬件和设置与故障转移群集兼容。测试类型多种多样,包括集群、清单、网络、存储、系统和其他类型的测试。存储测试不会测试集群角色正在使用的在线磁盘或存储池。要测试此类磁盘,请先运行 Stop-ClusterGroup 以停止集群角色,然后运行 ​​Test-Cluster。测试完成后,再次启动集群角色(也称为资源组)。

测试集群 TechNet 页面

我想请你注意他们使用这个词“验证”。此外,运行该脚本时,输出内容如下:

Test Result:
ClusterSkippedTestsCompleted

如果包含验证测试,结果为:

Test Result:
ClusterConditionallyApproved

在我的测试环境中,网络测试生成了一些触发条件批准的警告。我在 Google 上搜索了很多,才找到描述条件批准背后逻辑的文档“证实”对比“列表”分裂但我什么也没发现。这就引出了一个问题……

列表请求是否会触发故障转移事件?

答案1

之间的分裂验证列表旨在指导预期的结果。 验证测试是布尔值,返回通过/失败、是/否、成功/失败等。列表测试返回统计和操作数据以供审查。

微软在设计测试时就考虑到了零停机时间。而且在大多数情况下,这都是正确的。 有些测试会触发故障转移并导致停机。 他们是:

  • 验证磁盘仲裁
  • 验证磁盘故障转移
  • 验证多重仲裁
  • 验证 SCSI-3 持久预留
  • 验证同时故障转移

需要注意的是,如果Test-Cluster在运行时没有使用 include 或 exclude 参数,则将运行这些测试。虽然上面列出的测试将触发故障转移事件,但以下测试可能会影响性能。 他们是:

  • 验证磁盘访问延迟
  • 验证文件系统
  • 验证基于 Microsoft MPIO 的磁盘
  • 验证 SCSI 设备重要产品数据

上面列出的所有测试都是贮存类别。因此,通常建议贮存应避免在生产服务器上进行测试。要排除这些测试,请运行以下命令:

Test-Cluster -Ignore Storage

如果您使用参数Include来选择性地选择测试,则可以运行两个安全存储测试。它们是:

  • 列出所有磁盘
  • 列出要验证的磁盘

来源1来源2

所有可用的集群测试分为 5 个测试类别。它们是Cluster Configuration、、、和。只有类别包含将触发故障Inventory转移或影响性能的测试(根据 Microsoft 的说法)。此外,大多数这些测试类别不打算在集群经过认证并投入运行后执行。除了一个...NetworkStorageSystem ConfigurationStorage

对于现有集群

微软设计 Cluster Configuration在现有集群上使用的测试。实际上,这些测试仅在现有集群上运行。要执行此测试类别,请运行以下命令:

Test-Cluster -Include "Cluster Configuration"

来源 3

答案2

根据我的经验,Test-Cluster 永远不会触发故障转移事件。它仅用于检查硬件和软件配置,以查看一切是否与故障转移群集兼容。据我了解,使用故障转移群集管理器中的 GUI“验证群集”功能时也会运行 Test-Cluster。它实际上并不“测试”群集的“故障转移”功能。

答案3

根据以下链接:

[测试集群描述][1]http://technet.microsoft.com/en-us/library/ee461026.aspx

示例 3:测试集群列表

此命令列出集群验证中的所有测试和类别的名称。然后您可以使用 -Ignore 或 -Include 指定这些测试名称来运行特定的测试。

因此,list 命令仅为您提供了可运行并验证集群的测试列表。


你的另一部分疑问是:显示名称

以以下名称开头的显示名称List 只是从集群节点获取信息,而 DisplayName 以验证是否实际测试配置(它执行磁盘故障转移、共享测试、网络测试等...)

答案4

简单答案:列出请求不要触发故障转移事件。

详细答案:将测试拆分为“证实”对比“列表”自 2008R2 以来一直保持一致。大多数测试始于“列表”被考虑库存测试,它们不会影响当前配置的集群的状态。所有以 list 开头的命令行都是信息性的,如下面的 Technet 代码片段中所述。

清单测试提供有关您正在测试的每台服务器上的硬件、软件和设置的信息列表。您可以单独使用清单测试(无需“验证群集配置向导”中的其他测试)来检查或记录硬件配置(例如,检查执行计划维护后每台服务器上的软件更新是否相同)。

更多信息请访问:Technet - 了解集群验证测试:清单

相关内容