クラスターの診断データを収集する
適用対象: Azure Stack HCI バージョン 22H2 および 21H2、Windows Server 2022、Windows Server 2019、Windows Server 2016
記憶域スペース ダイレクトにはさまざまな診断ツールがあり、Azure Stack HCI および Windows サーバー クラスターのトラブルシューティングに必要なデータを収集するために使用できます。 この記事では、クラスターの診断に役立つ関連情報を収集するための SDDC 診断ツールのインストールと使用の方法について重点的に説明します。
ログとその他の情報は高密度であるため、この記事に記載されている情報は、エスカレーションされて、トリアージのためにデータを Microsoft に送信しなければならないことのある高度な問題のトラブルシューティングに役立ちます。
Windows Admin Center で診断ツールをインストールして使用する
Windows Admin Center (バージョン 1812 以降) を使用して、次のことを行うことができます。
- SDDC 診断ツールをインストールして最新の状態に保つ
- 毎日の診断実行のスケジュール (これらはシステムへの影響が小さく、バックグラウンドの実行時間は 5 分未満、クラスターで 500 MB を超えることはありません)
- サポートに送信するため、または自分で分析する必要がある場合に、以前に収集した診断情報を表示する
SDDC 診断ツールをインストールしてデータの収集を開始するには、次の手順を実行します。
Windows Admin Center を起動し、[ツール] > [診断] を選択します。 診断ツールがまだインストールされていない場合は、 [インストール] ボタンをクリックします。
診断データの収集を開始するには、 [収集] をクリックします。 次の内容のメッセージが表示されます: "Collecting diagnostic information. (診断情報を収集しています。) This may take a few minutes. (これには数分かかることがあります。)" 初期データ収集後、24 時間ごとに自動的にデータを収集する場合は、スライダーをオンに変更します。
データ収集が完了すると、次のスクリーンショットのように表示されます。 収集された診断情報を表示するには、 [Download (.zip)](ダウンロード (.zip)) または [Open in Files tool](ファイル ツールで開く) をクリックします。
PowerShell を使用した Get-SDDCDiagnosticInfo のインストール
Get-SDDCDiagnosticInfo
PowerShell コマンドレット (Get-PCStorageDiagnosticInfo
とも呼ばれ、以前は Test-StorageHealth
と呼ばれていた) を使用して、フェールオーバー クラスタリング (クラスター、リソース、ネットワーク、ノード)、記憶域スペース (物理ディスク、エンクロージャ、仮想ディスク)、クラスターの共有ボリューム、SMB ファイル共有、および重複除去のログを収集し、正常性チェックを実行できます。
このスクリプトのインストールには、PowerShell ギャラリーと GitHub の 2 つの方法があります。 この両方について下で説明します。
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 リポジトリはモジュールの最新バージョンです。 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 コマンドレットを使用して次を取得できます。
- ストレージの正常性に関するレポート、および異常なコンポーネントの詳細
- プール、ボリューム、重複除去ボリューム別のストレージ容量のレポート
- すべてのクラスター ノードからのイベント ログとエラー レポートの概要
記憶域クラスターに "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
参考までに、サンプル レポートとサンプル zip へのリンクを示します。
Get-SDDCDiagnosticInfo の出力
Get-SDDCDiagnosticInfo
の圧縮された出力に含まれるファイルを次に示します。
正常性の概要レポート
正常性の概要レポートは、次の形式で保存されます。
- 0_CloudHealthSummary.log
このファイルは収集されたすべてのデータを解析した後に生成され、システムの概要を簡単に示すことを意図しています。 その構成要素を次に示します。
- システム情報
- Storage の正常性の概要 (稼働中のノードの数、オンラインのリソース、オンラインのクラスターの共有ボリューム、異常なコンポーネントなど)
- 異常なコンポーネント (オフライン、障害発生、またはオンライン保留中のクラスター リソース) の詳細
- ファームウェアとドライバーの情報
- プール、物理ディスク、ボリュームの詳細
- ストレージのパフォーマンス (パフォーマンス カウンターが収集されます)
このレポートは、さらに有用な情報を含むように継続的に更新されています。 詳しくは、GitHub README をご覧ください。
ログと XML ファイル
このスクリプトは、さまざまなログ収集スクリプトを実行し、出力を xml ファイルとして保存します。 クラスターおよび正常性のログ、システム情報 (MSInfo32)、フィルター処理されていないイベント ログ (フェールオーバー クラスタリング、非診断、Hyper-V、記憶域スペースなど)、および記憶域診断情報 (操作ログ) を収集します。 収集される情報の最新情報については、GitHub README (収集する内容) を参照してください。
Get-SDDCDiagnosticInfo から XML ファイルを使用する方法
Get-SDDCDiagnosticInfo
コマンドレットによって収集されたデータで提供される、XML ファイルのデータを使用できます。 これらのファイルには、仮想ディスク、物理ディスク、基本的なクラスター情報、およびその他の PowerShell 関連の出力に関する情報が含まれています。
これらの出力の結果を表示するには、PowerShell ウィンドウを開き、次の手順を実行します。
ipmo storage
$d = import-clixml <filename>
$d
次のステップ
こちらで問題を報告すると、表示する内容に関するフィードバックを送信できます。 また、pull request を送信し、スクリプトへの有益な変更に貢献していただくこともできます。