收集叢集的診斷數據
適用於:Azure Stack HCI 版本 22H2 和 21H2、Windows Server 2022、Windows Server 2019、Windows Server 2016
重要
Azure Stack HCI 現在是 Azure Local 應用的一部分。 不過,舊版的 Azure Stack HCI,例如 22H2 會繼續參考 Azure Stack HCI,而且不會反映名稱變更。 深入了解。
儲存空間直接存取 中有許多診斷工具,可用來收集數據,以針對 Azure Stack HCI 和 Windows Server 叢集進行疑難解答。 在本文中,我們將著重於安裝和使用 SDDC 診斷工具來收集相關信息,以協助您診斷叢集。
由於記錄和其他資訊密集,本文中提供的資訊有助於針對已呈報的進階問題進行疑難解答,而且可能需要將數據傳送至Microsoft以進行分級。
搭配 Windows Admin Center 安裝和使用診斷工具
您可以使用 Windows Admin Center(1812 版及更新版本)來:
- 安裝 SDDC 診斷工具,並將其保持在最新狀態。
- 排程每日診斷執行 (這些對系統的影響很低,通常需要不到 5 分鐘的時間才能在背景中執行,而且不會佔用超過 500 MB 的叢集)。
- 如果您需要提供給支持人員,或自行分析,請檢視先前收集的診斷資訊。
若要安裝 SDDC 診斷工具並開始收集資料,請遵循下列步驟:
啟動 Windows Admin Center,然後選取 [ 工具 > 診斷]。 如果尚未安裝診斷工具,請按兩下 [ 安裝] 按鈕。
若要開始收集診斷數據,請按兩下 [ 收集]。 您應該會看到「收集診斷資訊」的訊息。 這可能需要幾分鐘的時間。初始數據收集之後,如果您想要每隔 24 小時自動收集數據,請將滑桿變更為 [開啟]。
在您看到下列螢幕快照之前,數據收集尚未完成。 若要檢視收集的診斷資訊,請選擇 [ 下載] (.zip) 或 [在檔案中開啟] 工具。
使用 PowerShell 安裝 Get-SDDCDiagnosticInfo
您可以使用 Get-SDDCDiagnosticInfo
PowerShell Cmdlet(亦稱 Get-PCStorageDiagnosticInfo
,先前稱為 Test-StorageHealth
),來收集日誌並執行故障轉移叢集(叢集、資源、網路、節點)、儲存空間(實體磁碟、機箱、虛擬磁碟)、叢集共用磁碟區、SMB 檔案共用和重複數據消除的健康檢查。
有兩種方法可以安裝腳本:PowerShell Gallery 和 GitHub。 以下概述這兩者。
PowerShell 資源庫
PowerShell 畫廊 是 GitHub 存放庫的快照。 請注意,從 PowerShell 資源庫安裝專案需要最新版的 PowerShellGet 模組,此模組可在 Windows 10、Windows Management Framework (WMF) 5.0 或 MSI 安裝程式中取得(適用於 PowerShell 3 和 4)。
我們在此過程中也安裝最新版 Microsoft 網路診斷工具,因為 Get-SDDCDiagnosticInfo
依賴這些工具。 此指令清單模組包含網路診斷和疑難解答工具,此工具是由 Microsoft Microsoft 核心網路產品群組所維護。
您可以在 PowerShell 中以系統管理員身分執行下列命令來安裝模組:
Install-PackageProvider NuGet -Force
Install-Module PrivateCloud.DiagnosticInfo -Force
Import-Module PrivateCloud.DiagnosticInfo -Force
Install-Module -Name MSFT.Network.Diag
若要更新模組,請在 PowerShell 中執行下列命令:
Update-Module PrivateCloud.DiagnosticInfo
GitHub
GitHub 存放庫 是模組最 up-to日期版本,因為我們在這裡持續反覆執行。 若要從 GitHub 安裝模組,請從 封存 下載最新的模組,並將 PrivateCloud.DiagnosticInfo 目錄解壓縮到 $env:PSModulePath
指向的正確 PowerShell 模組路徑:
# Allowing Tls12 and Tls11 -- e.g. github now requires Tls12
# If this is not set, the Invoke-WebRequest fails with "The request was aborted: Could not create SSL/TLS secure channel."
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$module = 'PrivateCloud.DiagnosticInfo'
Invoke-WebRequest -Uri https://github.com/PowerShell/$module/archive/master.zip -OutFile $env:TEMP\master.zip
Expand-Archive -Path $env:TEMP\master.zip -DestinationPath $env:TEMP -Force
if (Test-Path $env:SystemRoot\System32\WindowsPowerShell\v1.0\Modules\$module) {
rm -Recurse $env:SystemRoot\System32\WindowsPowerShell\v1.0\Modules\$module -ErrorAction Stop
Remove-Module $module -ErrorAction SilentlyContinue
} else {
Import-Module $module -ErrorAction SilentlyContinue
}
if (-not ($m = Get-Module $module -ErrorAction SilentlyContinue)) {
$md = "$env:ProgramFiles\WindowsPowerShell\Modules"
} else {
$md = (gi $m.ModuleBase -ErrorAction SilentlyContinue).PsParentPath
Remove-Module $module -ErrorAction SilentlyContinue
rm -Recurse $m.ModuleBase -ErrorAction Stop
}
cp -Recurse $env:TEMP\$module-master\$module $md -Force -ErrorAction Stop
rm -Recurse $env:TEMP\$module-master,$env:TEMP\master.zip
Import-Module $module -Force
如果您需要在離線叢集上取得此模組,請下載 zip 檔案、將它移至您的目標伺服器節點,然後安裝模組。
使用 PowerShell 收集記錄
啟用事件通道並完成安裝程序之後,您可以使用模組中的 Get-SDDCDiagnosticInfo
PowerShell Cmdlet 來取得:
- 報告記憶體健康情況,以及狀況不良元件的詳細數據。
- 依集區、磁碟區及重複資料消除的磁碟區的儲存容量報告。
- 來自所有叢集節點的事件記錄和摘要錯誤報告。
假設您的記憶體叢集名稱 CLUS01。
若要對遠端記憶體叢集執行:
Get-SDDCDiagnosticInfo -ClusterName CLUS01
若要在叢集儲存節點上本機執行:
Get-SDDCDiagnosticInfo
若要將結果儲存至指定的資料夾:
Get-SDDCDiagnosticInfo -WriteToPath D:\Folder
這是在真實叢集上呈現的樣子:
New-Item -Name SDDCDiagTemp -Path d:\ -ItemType Directory -Force
Get-SddcDiagnosticInfo -ClusterName S2D-Cluster -WriteToPath d:\SDDCDiagTemp
如您所見,腳本也會驗證目前的叢集狀態:
所有資料都會寫入 SDDCDiagTemp 資料夾:
文稿完成之後,它會在用戶目錄中建立 zip 檔案:
將報表產生至文字檔:
#find the latest diagnostic zip in UserProfile
$DiagZip=(get-childitem $env:USERPROFILE | where Name -like HealthTest*.zip)
$LatestDiagPath=($DiagZip | sort lastwritetime | select -First 1).FullName
#expand to temp directory
New-Item -Name SDDCDiagTemp -Path d:\ -ItemType Directory -Force
Expand-Archive -Path $LatestDiagPath -DestinationPath D:\SDDCDiagTemp -Force
#generate report and save to text file
$report=Show-SddcDiagnosticReport -Path D:\SDDCDiagTemp
$report | out-file d:\SDDCReport.txt
Get-SDDCDiagnosticInfo 輸出
下列檔案包含在 Get-SDDCDiagnosticInfo
的壓縮輸出中。
健康情況摘要報告
健康情況摘要報告會儲存為 0_CloudHealthSummary.log。
此檔案會在剖析所收集的數據之後產生,並旨在提供您系統的快速摘要。 其包含:
- 系統資訊。
- 記憶體健康情況概觀(節點數目增加、資源上線、叢集共用磁碟區在線、狀況不良的元件等等)。
- 狀況不良元素的詳細資料(離線、失敗或等待上線的叢集資源)。
- 韌體和驅動程序資訊。
- 集區、實體磁碟和磁碟區詳細數據。
- 記憶體效能(收集性能計數器)。
此報表會持續更新,以包含更有用的資訊。 如需最新資訊,請參閱 GitHub 自述檔。
記錄檔和 XML 檔案
腳本會執行各種記錄收集腳本,並將輸出儲存為 xml 檔案。 我們會收集叢集和健康狀況記錄、系統資訊(MSInfo32)、未篩選的事件記錄檔(如故障轉移叢集、診斷、Hyper-V、儲存空間等等),以及儲存診斷資訊(作業記錄)。 如需收集哪些資訊的最新資訊,請參閱 gitHub 自述檔 。
如何從 Get-SDDCDiagnosticInfo 取用 XML 檔案
您可以從 Get-SDDCDiagnosticInfo
Cmdlet 收集的數據中所提供的 XML 檔案中取用數據。 這些檔案具有虛擬磁碟、實體磁碟、基本叢集資訊和其他PowerShell相關輸出的相關信息。
若要查看這些輸出的結果,請開啟 PowerShell 視窗並執行下列命令:
ipmo storage
$d = import-clixml <filename>
$d