測試集群 Powershell cmdlet 列表與驗證
Powershell cmdlet
Test-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
在我的測試環境中,網路測試產生了一些觸發條件批准的警告。我用Google搜尋了很多東西來找到描述*“驗證”與“列表”*拆分背後的邏輯的文件,但我沒有找到任何東西。這就引出了一個問題……
列表請求會觸發故障轉移事件嗎?
Validation和List之間的分離旨在指導預期的結果。 驗證測試是布爾值並返回通過/失敗、是/否、啟動/失敗等。列表測試返回統計和操作數據以供審查。
Microsoft 在建構測試時考慮了零停機時間。在大多數情況下,這是真的。 有些測試會觸發故障轉移並導致停機。他們是:
- 驗證磁碟仲裁
- 驗證磁碟故障轉移
- 驗證多重仲裁
- 驗證 SCSI-3 永久保留
- 驗證同時故障轉移
需要注意的是,如果
Test-Cluster
在不使用 include 或 exclude 參數的情況下執行,它將執行這些測試。雖然上面列出的測試將觸發故障轉移事件,但以下測試可能會影響性能。他們是:
- 驗證磁碟訪問延遲
- 驗證文件系統
- 驗證基於 Microsoft MPIO 的磁碟
- 驗證 SCSI 設備重要產品數據
上面列出的所有測試都是儲存類別的一部分。因此,通常建議在生產中的伺服器上避免*儲存測試。*要排除這些測試,請執行以下命令:
Test-Cluster -Ignore Storage
如果您使用該
Include
參數有選擇地選擇測試,則可以執行兩個安全儲存測試。他們是:
- 列出所有磁碟
- 列出要驗證的磁碟
所有可用的集群測試都分為 5 個測試類別。它們是
Cluster Configuration
、Inventory
、Network
、Storage
和System Configuration
。只有該Storage
類別包含將觸發故障轉移或影響性能的測試(根據 Microsoft 的說法)。此外,這些測試類別中的大多數都不打算在集群獲得認證和執行後執行。除了一個是…對於現有集群
Microsoft設計
Cluster Configuration
了用於現有集群的測試。事實上,這些測試只在現有集群上執行。要執行此測試類別,請執行以下命令:Test-Cluster -Include "Cluster Configuration"