Powershell

測試集群 Powershell cmdlet 列表與驗證

  • January 12, 2015

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。測試完成後,再次啟動集群角色,也稱為資源組。

測試集群 TechNet 頁面

我想提請您注意他們對*“驗證”*一詞的使用。此外,在執行該腳本時,作為輸出的一部分,它說:

Test Result:
ClusterSkippedTestsCompleted

如果您包括驗證測試,則結果是:

Test Result:
ClusterConditionallyApproved

在我的測試環境中,網路測試產生了一些觸發條件批准的警告。我用Google搜尋了很多東西來找到描述*“驗證”“列表”*拆分背後的邏輯的文件,但我沒有找到任何東西。這就引出了一個問題……

列表請求會觸發故障轉移事件嗎?

ValidationList之間的分離旨在指導預期的結果。 驗證測試是布爾值並返回通過/失敗、是/否、啟動/失敗等。列表測試返回統計和操作數據以供審查。

Microsoft 在建構測試時考慮了零停機時間。在大多數情況下,這是真的。 有些測試會觸發故障轉移並導致停機。他們是:

  • 驗證磁碟仲裁
  • 驗證磁碟故障轉移
  • 驗證多重仲裁
  • 驗證 SCSI-3 永久保留
  • 驗證同時故障轉移

需要注意的是,如果Test-Cluster在不使用 include 或 exclude 參數的情況下執行,它將執行這些測試。雖然上面列出的測試將觸發故障轉移事件,但以下測試可能會影響性能。他們是:

  • 驗證磁碟訪問延遲
  • 驗證文件系統
  • 驗證基於 Microsoft MPIO 的磁碟
  • 驗證 SCSI 設備重要產品數據

上面列出的所有測試都是儲存類別的一部分。因此,通常建議在生產中的伺服器上避免*儲存測試。*要排除這些測試,請執行以下命令:

Test-Cluster -Ignore Storage

如果您使用該Include參數有選擇地選擇測試,則可以執行兩個安全儲存測試。他們是:

  • 列出所有磁碟
  • 列出要驗證的磁碟

源 1源 2

所有可用的集群測試都分為 5 個測試類別。它們是Cluster ConfigurationInventoryNetworkStorageSystem Configuration。只有該Storage類別包含將觸發故障轉移或影響性能的測試(根據 Microsoft 的說法)。此外,這些測試類別中的大多數都不打算在集群獲得認證和執行後執行。除了一個是…

對於現有集群

Microsoft設計 Cluster Configuration了用於現有集群的測試。事實上,這些測試只在現有集群上執行。要執行此測試類別,請執行以下命令:

Test-Cluster -Include "Cluster Configuration"

來源 3

引用自:https://serverfault.com/questions/645648